alvinalexander.com | career | drupal | java | mac | mysql | perl | scala | uml | unix  

jEdit example source code file (java.xml)

This example jEdit source code file (java.xml) is included in the DevDaily.com "Java Source Code Warehouse" project. The intent of this project is to help you "Learn Java by Example" TM.

Java - jEdit tags/keywords

begin, end, keyword1, keyword1, keyword3, keyword4, keyword4, label, operator, seq, seq, span, type, type

The jEdit java.xml source code

<?xml version="1.0"?>

<!DOCTYPE MODE SYSTEM "xmode.dtd">

<MODE>
	<PROPS>
		<PROPERTY NAME="commentStart" VALUE="/*" />
		<PROPERTY NAME="commentEnd" VALUE="*/" />
		<PROPERTY NAME="lineComment" VALUE="//" />
		<PROPERTY NAME="wordBreakChars" VALUE=",+-=<>/?^&*" />

		<!-- Auto indent -->
		<PROPERTY NAME="indentOpenBrackets" VALUE="{" />
		<PROPERTY NAME="indentCloseBrackets" VALUE="}" />
		<PROPERTY NAME="unalignedOpenBrackets" VALUE="(" />
		<PROPERTY NAME="unalignedCloseBrackets" VALUE=")" />
		<PROPERTY NAME="indentNextLine"
			VALUE="\s*(((if|while)\s*\(|else\s*|else\s+if\s*\(|for\s*\(.*\))[^{;]*)" />
		<PROPERTY NAME="unindentThisLine"
			VALUE="^.*(default:\s*|case.*:.*)$" />
		<PROPERTY NAME="electricKeys" VALUE=":" />
	</PROPS>
	<RULES IGNORE_CASE="FALSE"
		HIGHLIGHT_DIGITS="TRUE"
		DIGIT_RE="(0[lL]?|[1-9]\d{0,9}(\d{0,9}[lL])?|0[xX]\p{XDigit}{1,8}(\p{XDigit}{0,8}[lL])?|0[0-7]{1,11}([0-7]{0,11}[lL])?|([0-9]+\.[0-9]*|\.[0-9]+)([eE][+-]?[0-9]+)?[fFdD]?|[0-9]+([eE][+-]?[0-9]+[fFdD]?|([eE][+-]?[0-9]+)?[fFdD]))">

		<!-- Silly comment -->
		<SEQ TYPE="COMMENT1">/**/

		<!-- Javadoc comment -->
		<SPAN TYPE="COMMENT3" DELEGATE="JAVADOC">
			<BEGIN>/**
			<END>*/
		</SPAN>

		<!-- Java comment (C style) -->
		<SPAN TYPE="COMMENT1">
			<BEGIN>/*
			<END>*/
		</SPAN>

		<SPAN TYPE="LITERAL1" ESCAPE="\" NO_LINE_BREAK="TRUE">
			<BEGIN>"
			<END>"
		</SPAN>
		<SPAN TYPE="LITERAL1" ESCAPE="\" NO_LINE_BREAK="TRUE">
			<BEGIN>'
			<END>'
		</SPAN>

		<EOL_SPAN TYPE="COMMENT2">//

		<SEQ TYPE="OPERATOR">=
		<SEQ TYPE="OPERATOR">!
		<SEQ TYPE="OPERATOR">>=
		<SEQ TYPE="OPERATOR"><=
		<SEQ TYPE="OPERATOR">+
		<SEQ TYPE="OPERATOR">-
		<SEQ TYPE="OPERATOR">/

		<!-- workaround to stop "*" from being colorized
		     in import statements. -->
		<SEQ TYPE="NULL">.*

		<SEQ TYPE="OPERATOR">*
		<SEQ TYPE="OPERATOR">>
		<SEQ TYPE="OPERATOR"><
		<SEQ TYPE="OPERATOR">%
		<SEQ TYPE="OPERATOR">&
		<SEQ TYPE="OPERATOR">|
		<SEQ TYPE="OPERATOR">^
		<SEQ TYPE="OPERATOR">~
		<SEQ TYPE="OPERATOR">}
		<SEQ TYPE="OPERATOR">{
		<MARK_PREVIOUS TYPE="LABEL" MATCH_TYPE="OPERATOR"
			AT_WHITESPACE_END="TRUE">:</MARK_PREVIOUS>

		<!-- Function calls -->
		<MARK_PREVIOUS TYPE="FUNCTION" MATCH_TYPE="OPERATOR">(
		<SEQ TYPE="OPERATOR">)

		<!-- Annotation types -->
		<MARK_FOLLOWING TYPE="KEYWORD4">@

		<KEYWORDS>
			<KEYWORD1>abstract
			<KEYWORD1>break
			<KEYWORD1>case
			<KEYWORD1>catch
			<KEYWORD1>continue
			<KEYWORD1>default
			<KEYWORD1>do
			<KEYWORD1>else
			<KEYWORD1>extends
			<KEYWORD1>final
			<KEYWORD1>finally
			<KEYWORD1>for
			<KEYWORD1>if
			<KEYWORD1>implements
			<KEYWORD1>instanceof
			<KEYWORD1>native
			<KEYWORD1>new
			<KEYWORD1>private
			<KEYWORD1>protected
			<KEYWORD1>public
			<KEYWORD1>return
			<KEYWORD1>static
			<KEYWORD1>switch
			<KEYWORD1>synchronized
			<KEYWORD1>throw
			<KEYWORD1>throws
			<KEYWORD1>transient
			<KEYWORD1>try
			<KEYWORD1>volatile
			<KEYWORD1>while

			<KEYWORD2>package
			<KEYWORD2>import

			<KEYWORD3>boolean
			<KEYWORD3>byte
			<KEYWORD3>char
			<KEYWORD3>class
			<KEYWORD3>double
			<KEYWORD3>float
			<KEYWORD3>int
			<KEYWORD3>interface
			<KEYWORD3>long
			<KEYWORD3>short
			<KEYWORD3>void

			<KEYWORD1>assert
			<KEYWORD1>strictfp


			<LITERAL2>false
			<LITERAL2>null
			<LITERAL2>super
			<LITERAL2>this
			<LITERAL2>true

			<INVALID>goto
			<INVALID>const

			<!-- Java 1.5 -->
			<KEYWORD3>enum
		</KEYWORDS>
	</RULES>

	<RULES SET="JAVADOC" DEFAULT="COMMENT3" IGNORE_CASE="TRUE">

		<!-- so that *@param is highlighted -->
		<SEQ TYPE="COMMENT3">*

		<!-- Javadoc ignores tags inside 
		<!-- XXX no it doesn't -->
		<!-- SPAN TYPE="MARKUP" DELEGATE="JAVADOC_PRE">
			<BEGIN><pre>
			<END></pre>
		</SPAN -->

		<!-- HTML comments -->
		<SPAN TYPE="COMMENT1">
			<BEGIN><!--
			<END>-->
		</SPAN>

		<!-- Javadoc allows this -->
		<SEQ TYPE="COMMENT3"><<
		<SEQ TYPE="COMMENT3"><=
		<SEQ TYPE="COMMENT3">< 

        <!-- strings in quotes -->
        <SPAN TYPE="LITERAL1" ESCAPE="\" NO_LINE_BREAK="TRUE">
        <BEGIN>"
        <END>"
        </SPAN>

		<!-- HTML tags -->
		<SPAN TYPE="MARKUP" DELEGATE="xml::TAGS"
			NO_LINE_BREAK="TRUE">
			<BEGIN><
			<END>>
		</SPAN>

		<!-- so that @link{...} is highlighted -->
		<!-- XXX: this is wrong, {@link ..} is correct, see below -->
		<!---->

		<SPAN_REGEXP TYPE="LABEL" HASH_CHAR="{@" NO_WORD_BREAK="FALSE" DELEGATE="JAVADOC_PARAM">
			<BEGIN>\{@(link|linkplain|docRoot|code|literal)\s
			<END>}
		</SPAN_REGEXP>

		<!-- for the common usage of the cvs keyword $Id: java.xml 16047 2009-08-23 21:57:40Z kpouer $ -->
		<SPAN_REGEXP TYPE="LABEL" HASH_CHAR="@version" NO_WORD_BREAK="FALSE" DELEGATE="JAVADOC_PARAM">
			<BEGIN>@version\s+\$
			<END>$
		</SPAN_REGEXP>

		<!-- This works only when you use the same whitespace before and after the param's name,
			 eg. a tab before and after, but mixing space and tab won't work.
			 The reason is that you can't enter a regexp in END, except for the backreference operator $n -->
		<SPAN_REGEXP TYPE="LABEL" HASH_CHAR="@" NO_WORD_BREAK="FALSE" DELEGATE="JAVADOC_PARAM">
			<BEGIN>@(?:param|throws|exception|serialField)(\s)
			<END>$1
		</SPAN_REGEXP>

		<KEYWORDS>
		<!-- Note: the labels in comments are handled by SPANs above -->

		<!-- Official javadoc tags:
			 http://java.sun.com/j2se/1.5/docs/tooldocs/windows/javadoc.html#javadoctags -->
			<LABEL>@author
			<LABEL>@deprecated
		<!---->
		<!---->
			<LABEL>{@inheritDoc}
		<!---->
		<!---->
		<!---->
			<LABEL>@return
			<LABEL>@see
			<LABEL>@serial
			<LABEL>@serialData
		<!---->
			<LABEL>@since
		<!---->
			<LABEL>{@value}
			<LABEL>@version

		<!-- new in 1.5 -->
		<!---->
		<!---->

		<!-- SUNs proposed tags:
			 http://java.sun.com/j2se/javadoc/proposed-tags.html -->
			<KEYWORD2>@category
			<KEYWORD2>@example
			<KEYWORD2>@exclude
			<KEYWORD2>@index
			<KEYWORD2>@internal
			<KEYWORD2>@obsolete
			<KEYWORD2>@threadsafety
			<KEYWORD2>@tutorial
			<KEYWORD2>@todo

		<!-- Custom tags -->
			<KEYWORD4>@access
			<KEYWORD4>@beaninfo
			<KEYWORD4>@bon
			<KEYWORD4>@bug
			<KEYWORD4>@complexity
			<KEYWORD4>@design
			<KEYWORD4>@ensures
			<KEYWORD4>@equivalent
			<KEYWORD4>@generates
			<KEYWORD4>@guard
			<KEYWORD4>@hides
			<KEYWORD4>@history
			<KEYWORD4>@idea
			<KEYWORD4>@invariant
			<KEYWORD4>@modifies
			<KEYWORD4>@overrides
			<KEYWORD4>@post
			<KEYWORD4>@pre
			<KEYWORD4>@references
			<KEYWORD4>@requires
			<KEYWORD4>@review
			<KEYWORD4>@spec
			<KEYWORD4>@uses
			<KEYWORD4>@values
		</KEYWORDS>
	</RULES>

	<!-- just a dummy which makes use of the default token type COMMENT4 for highlighting the word after @param in javadoc -->
	<RULES SET="JAVADOC_PARAM" DEFAULT="COMMENT4" IGNORE_CASE="TRUE" />
</MODE>

Other jEdit examples (source code examples)

Here is a short list of links related to this jEdit java.xml source code file:

... this post is sponsored by my books ...

#1 New Release!

FP Best Seller

 

new blog posts

 

Copyright 1998-2021 Alvin Alexander, alvinalexander.com
All Rights Reserved.

A percentage of advertising revenue from
pages under the /java/jwarehouse URI on this website is
paid back to open source projects.