include scala.xml as of scala-2.9.1.final/misc/scala-tool-support/jedit/modes/scala.xml -- seems to be missing in more recent distributions;
authorwenzelm
Sat, 17 Mar 2012 17:36:10 +0100
changeset 46996 f1856425224e
parent 46995 b839e9fdf972
child 46997 395b7277ed76
include scala.xml as of scala-2.9.1.final/misc/scala-tool-support/jedit/modes/scala.xml -- seems to be missing in more recent distributions;
src/Tools/jEdit/lib/Tools/jedit
src/Tools/jEdit/src/modes/scala.xml
--- a/src/Tools/jEdit/lib/Tools/jedit	Sat Mar 17 16:13:41 2012 +0100
+++ b/src/Tools/jEdit/lib/Tools/jedit	Sat Mar 17 17:36:10 2012 +0100
@@ -228,7 +228,6 @@
   cp -p -R -f "${RESOURCES[@]}" dist/classes/.
   cp src/jEdit.props dist/properties/.
   cp -p -R -f src/modes/. dist/modes/.
-  cp -p -R -f "$SCALA_HOME/misc/scala-tool-support/jedit/modes/scala.xml" dist/modes/.
 
   perl -i -e 'while (<>) {
     if (m/NAME="javacc"/) {
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/Tools/jEdit/src/modes/scala.xml	Sat Mar 17 17:36:10 2012 +0100
@@ -0,0 +1,399 @@
+<?xml version="1.0"?>
+
+<!DOCTYPE MODE SYSTEM "xmode.dtd">
+
+<MODE>
+  <PROPS>
+    <PROPERTY NAME="indentOpenBrackets" VALUE="{" />
+    <PROPERTY NAME="indentCloseBrackets" VALUE="}" />
+    <PROPERTY NAME="lineUpClosingBracket" VALUE="true" />
+    <PROPERTY NAME="indentPrevLine"
+      VALUE="\s*(((if|while)\s*\(|else\s*(\{|$)|else\s+if\s*\(|case\s+.+:|default:)[^;]*|for\s*\(.*)" />
+    <!-- set this to 'true' if you want to use GNU coding style -->
+    <PROPERTY NAME="doubleBracketIndent" VALUE="false" />
+    <PROPERTY NAME="commentStart" VALUE="/*" />
+    <PROPERTY NAME="commentEnd" VALUE="*/" />
+    <PROPERTY NAME="lineComment" VALUE="//" />
+    <PROPERTY NAME="noTabs" VALUE="true" />
+    <PROPERTY NAME="tabSize" VALUE="2" />
+    <PROPERTY NAME="indentSize" VALUE="2" />
+    <PROPERTY NAME="wordBreakChars" VALUE=",+-=&lt;&gt;/?^&amp;*" />
+  </PROPS>
+  
+  <RULES ESCAPE="\" 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]))">
+	
+	<MARK_FOLLOWING TYPE="LABEL">@</MARK_FOLLOWING>
+	
+	<IMPORT DELEGATE="PRIMARY"/>
+  </RULES>
+  
+  <RULES SET="PRIMARY">
+    <!-- Silly comment -->
+    <SEQ TYPE="COMMENT1">/**/</SEQ>
+	
+    <EOL_SPAN TYPE="COMMENT2">//</EOL_SPAN>
+	
+    <!-- Scaladoc comment -->
+    <SPAN TYPE="COMMENT3" DELEGATE="SCALADOC">
+      <BEGIN>/**</BEGIN>
+      <END>*/</END>
+    </SPAN>
+
+    <!-- Scala comment (Java style) -->
+    <SPAN TYPE="COMMENT1">
+      <BEGIN>/*</BEGIN>
+      <END>*/</END>
+    </SPAN>
+
+    <!-- start of XML comment (griba2010@ya.com) -->  
+    <SEQ_REGEXP HASH_CHAR="&lt;" AT_WHITESPACE_END="TRUE" TYPE="COMMENT2" 
+                        DELEGATE="XML_COMMENT">&lt;!--</SEQ_REGEXP>
+
+    <!-- start of xml tag (griba2010@ya.com) -->  
+    <SEQ_REGEXP HASH_CHAR="&lt;" AT_WHITESPACE_END="TRUE" TYPE="LITERAL3" 
+                        DELEGATE="XML_TAG">&lt;\/?\w*</SEQ_REGEXP>
+	
+    <!-- string and character literals -->
+    <SPAN TYPE="LITERAL1" NO_LINE_BREAK="FALSE" ESCAPE="FALSE">
+      <BEGIN>"""</BEGIN>
+      <END>"""</END>
+    </SPAN>
+    <SPAN TYPE="LITERAL1" NO_LINE_BREAK="TRUE">
+      <BEGIN>"</BEGIN>
+      <END>"</END>
+    </SPAN>
+	<SEQ_REGEXP HASH_CHAR="'" TYPE="LITERAL1">'([^']|\\.)'</SEQ_REGEXP>
+
+    <!-- symbol literals -->
+    <SEQ_REGEXP HASH_CHAR="'" TYPE="LABEL">'[0-9a-zA-Z&gt;&lt;=+]([0-9a-zA-Z&gt;&lt;=+]|_[0-9a-zA-Z&gt;&lt;=+])*</SEQ_REGEXP>
+
+    <!-- type params between bracket pairs with -->
+    <!-- nested ones within (griba2010@ya.com) -->    
+    <SEQ_REGEXP HASH_CHAR="[" TYPE="LITERAL3"
+                       >\[[^\[\]]*(\[[^\[\]]*(\[[^\[\]]*\][^\[\]]*)*\][^\[\]]*)*\]</SEQ_REGEXP>  
+
+    <!-- type constraints (griba2010@ya.com) -->
+    <SEQ_REGEXP HASH_CHAR="&lt;" TYPE="LITERAL2"
+      >&lt;:\s*\w+(\.\w+)*(#\w+)?</SEQ_REGEXP>
+    <SEQ_REGEXP HASH_CHAR=">" TYPE="LITERAL2"
+                       >&gt;:\s*\w+(\.\w+)*(#\w+)?</SEQ_REGEXP>
+
+    <SEQ TYPE="OPERATOR">)</SEQ>
+    <SEQ TYPE="OPERATOR">=</SEQ>
+    <SEQ TYPE="OPERATOR">!</SEQ>
+    <SEQ TYPE="OPERATOR">&gt;=</SEQ>
+    <SEQ TYPE="OPERATOR">&gt;:</SEQ>
+    <SEQ TYPE="OPERATOR">&lt;=</SEQ>
+    <SEQ TYPE="OPERATOR">&lt;:</SEQ>
+    <SEQ TYPE="OPERATOR">+</SEQ>
+    <SEQ TYPE="OPERATOR">-</SEQ>
+    <SEQ TYPE="OPERATOR">/</SEQ>
+    <SEQ TYPE="OPERATOR">*</SEQ>
+    <SEQ TYPE="OPERATOR">&gt;</SEQ>
+    <SEQ TYPE="OPERATOR">&lt;</SEQ>
+    <SEQ TYPE="OPERATOR">%</SEQ>
+    <SEQ TYPE="OPERATOR">&amp;</SEQ>
+    <SEQ TYPE="OPERATOR">|</SEQ>
+    <SEQ TYPE="OPERATOR">^</SEQ>
+    <SEQ TYPE="OPERATOR">`</SEQ>
+    <SEQ TYPE="OPERATOR">~</SEQ>
+    <SEQ TYPE="OPERATOR">}</SEQ>
+    <SEQ TYPE="OPERATOR">{</SEQ>
+    <SEQ TYPE="NULL">.</SEQ>
+    <SEQ TYPE="NULL">,</SEQ>
+    <SEQ TYPE="NULL">;</SEQ>
+    <SEQ TYPE="NULL">]</SEQ>
+    <SEQ TYPE="NULL">[</SEQ>
+    <SEQ TYPE="NULL">?</SEQ>
+    <SEQ TYPE="NULL">:</SEQ>
+
+    <!-- after colon type descriptions (griba2010@ya.com) -->
+    <SEQ_REGEXP HASH_CHAR=":" TYPE="LITERAL2"
+                       >:\s*\w+(\.\w+)*(#\w+)?</SEQ_REGEXP>
+
+    <!-- Function calls -->
+    <MARK_PREVIOUS TYPE="FUNCTION" MATCH_TYPE="OPERATOR">(</MARK_PREVIOUS>
+	
+	<SPAN DELEGATE="PATTERN" MATCH_TYPE="KEYWORD1" AT_WORD_START="TRUE" NO_LINE_BREAK="TRUE">
+		<BEGIN>case </BEGIN>
+		<END>=&gt;</END>
+	</SPAN>
+
+    <KEYWORDS>
+      <KEYWORD1>abstract</KEYWORD1>
+      <KEYWORD1>case</KEYWORD1>
+      <KEYWORD1>catch</KEYWORD1>
+      <KEYWORD1>class</KEYWORD1>
+      <KEYWORD1>def</KEYWORD1>
+      <KEYWORD1>do</KEYWORD1>
+      <KEYWORD1>else</KEYWORD1>
+      <KEYWORD1>extends</KEYWORD1>
+      <KEYWORD1>final</KEYWORD1>
+      <KEYWORD1>finally</KEYWORD1>
+      <KEYWORD1>for</KEYWORD1>
+      <KEYWORD1>forSome</KEYWORD1>
+      <KEYWORD1>if</KEYWORD1>
+      <KEYWORD1>implicit</KEYWORD1>
+      <KEYWORD1>import</KEYWORD1>
+      <KEYWORD1>lazy</KEYWORD1>
+      <KEYWORD1>match</KEYWORD1>
+      <KEYWORD1>new</KEYWORD1>
+      <KEYWORD1>object</KEYWORD1>
+      <KEYWORD1>override</KEYWORD1>
+      <KEYWORD1>package</KEYWORD1>
+      <KEYWORD1>private</KEYWORD1>
+      <KEYWORD1>protected</KEYWORD1>
+      <KEYWORD1>requires</KEYWORD1>
+      <KEYWORD1>return</KEYWORD1>
+      <KEYWORD1>sealed</KEYWORD1>
+      <KEYWORD1>throw</KEYWORD1>
+      <KEYWORD1>trait</KEYWORD1>
+      <KEYWORD1>try</KEYWORD1>
+      <KEYWORD1>type</KEYWORD1>
+      <KEYWORD1>val</KEYWORD1>
+      <KEYWORD1>var</KEYWORD1>
+      <KEYWORD1>with</KEYWORD1>
+      <KEYWORD1>while</KEYWORD1>
+      <KEYWORD1>yield</KEYWORD1>
+      <KEYWORD1>=&gt;</KEYWORD1>
+
+      <!-- java.lang.* wrapper types -->
+      <KEYWORD2>Character</KEYWORD2>
+      <KEYWORD2>Integer</KEYWORD2>
+
+      <!-- scala.* primitive types -->
+      <KEYWORD2>Boolean</KEYWORD2>
+      <KEYWORD2>boolean</KEYWORD2>
+      <KEYWORD2>Byte</KEYWORD2>
+      <KEYWORD2>byte</KEYWORD2>
+      <KEYWORD2>Char</KEYWORD2>
+      <KEYWORD2>char</KEYWORD2>
+      <KEYWORD2>Double</KEYWORD2>
+      <KEYWORD2>double</KEYWORD2>
+      <KEYWORD2>Float</KEYWORD2>
+      <KEYWORD2>float</KEYWORD2>
+      <KEYWORD2>Int</KEYWORD2>
+      <KEYWORD2>int</KEYWORD2>
+      <KEYWORD2>Long</KEYWORD2>
+      <KEYWORD2>long</KEYWORD2>
+      <KEYWORD2>Short</KEYWORD2>
+      <KEYWORD2>short</KEYWORD2>
+      <KEYWORD2>Unit</KEYWORD2>
+      <KEYWORD2>unit</KEYWORD2>
+
+      <!-- scala.* predefined types -->
+      <KEYWORD3>Actor</KEYWORD3>
+      <KEYWORD3>ActorProxy</KEYWORD3>
+      <KEYWORD3>ActorTask</KEYWORD3>
+      <KEYWORD3>ActorThread</KEYWORD3>
+      <KEYWORD3>AllRef</KEYWORD3>
+      <KEYWORD3>Any</KEYWORD3>
+      <KEYWORD3>AnyRef</KEYWORD3>
+      <KEYWORD3>Application</KEYWORD3>
+      <KEYWORD3>AppliedType</KEYWORD3>
+      <KEYWORD3>Array</KEYWORD3>>
+      <KEYWORD3>ArrayBuffer</KEYWORD3>
+      <KEYWORD3>Attribute</KEYWORD3>
+      <KEYWORD3>BoxedArray</KEYWORD3>
+      <KEYWORD3>BoxedBooleanArray</KEYWORD3>
+      <KEYWORD3>BoxedByteArray</KEYWORD3>
+      <KEYWORD3>BoxedCharArray</KEYWORD3>
+      <KEYWORD3>Buffer</KEYWORD3>
+      <KEYWORD3>BufferedIterator</KEYWORD3>
+      <KEYWORD3>Enumeration</KEYWORD3>
+      <KEYWORD3>Fluid</KEYWORD3>
+      <KEYWORD3>Function</KEYWORD3>
+      <KEYWORD3>IScheduler</KEYWORD3>
+      <KEYWORD3>ImmutableMapAdaptor</KEYWORD3>
+      <KEYWORD3>ImmutableSetAdaptor</KEYWORD3>
+      <KEYWORD3>Iterable</KEYWORD3>
+      <KEYWORD3>List</KEYWORD3>
+      <KEYWORD3>Option</KEYWORD3>
+      <KEYWORD3>Pair</KEYWORD3>
+      <KEYWORD3>PartialFunction</KEYWORD3>
+      <KEYWORD3>Pid</KEYWORD3>
+      <KEYWORD3>PriorityQueue</KEYWORD3>
+      <KEYWORD3>PriorityQueueProxy</KEYWORD3>
+      <KEYWORD3>Reaction</KEYWORD3>
+      <KEYWORD3>Ref</KEYWORD3>
+      <KEYWORD3>Responder</KEYWORD3>
+      <KEYWORD3>RichInt</KEYWORD3>
+      <KEYWORD3>RichString</KEYWORD3>
+      <KEYWORD3>Rule</KEYWORD3>
+      <KEYWORD3>RuleTransformer</KEYWORD3>
+      <KEYWORD3>Script</KEYWORD3>
+      <KEYWORD3>Some</KEYWORD3>
+      <KEYWORD3>Stream</KEYWORD3>
+      <KEYWORD3>String</KEYWORD3>
+      <KEYWORD3>Symbol</KEYWORD3>
+      <KEYWORD3>TcpService</KEYWORD3>
+      <KEYWORD3>TcpServiceWorker</KEYWORD3>
+      <KEYWORD3>WorkerThread</KEYWORD3>
+
+      <!-- scala.* predefined objects -->
+      <KEYWORD4>Console</KEYWORD4>
+      <KEYWORD4>Nil</KEYWORD4>
+      <KEYWORD4>None</KEYWORD4>
+      <KEYWORD4>Predef</KEYWORD4>
+      <KEYWORD4>RemoteActor</KEYWORD4>
+      <KEYWORD4>SUnit</KEYWORD4>
+      <KEYWORD4>ScalaRunTime</KEYWORD4>
+      <KEYWORD4>Scheduler</KEYWORD4>
+      <KEYWORD4>TIMEOUT</KEYWORD4>
+      <KEYWORD4>TimerThread</KEYWORD4>
+	  
+	  <LITERAL2>false</LITERAL2>
+	  <LITERAL2>null</LITERAL2>
+	  <LITERAL2>super</LITERAL2>
+	  <LITERAL2>this</LITERAL2>
+	  <LITERAL2>true</LITERAL2>
+    </KEYWORDS>
+  </RULES>
+  
+  <RULES SET="PATTERN" DEFAULT="NULL" IGNORE_CASE="FALSE">
+  	<IMPORT DELEGATE="PRIMARY"/>
+	
+	<SEQ TYPE="OPERATOR">@</SEQ>
+  </RULES>
+
+  <RULES SET="SCALADOC" DEFAULT="COMMENT3" IGNORE_CASE="TRUE">
+    <!-- so that @link{...} is highlighted -->
+    <SEQ TYPE="COMMENT3">{</SEQ>
+
+    <!-- so that *@param is highlighted -->
+    <SEQ TYPE="COMMENT3">*</SEQ>
+
+    <!-- Javadoc ignores tags inside <pre> -->
+    <SPAN TYPE="MARKUP" DELEGATE="SCALADOC_PRE">
+      <BEGIN>&lt;pre&gt;</BEGIN>
+      <END>&lt;/pre&gt;</END>
+    </SPAN>
+
+    <!-- HTML comments -->
+    <SPAN TYPE="COMMENT1">
+      <BEGIN>&lt;!--</BEGIN>
+      <END>--&gt;</END>
+    </SPAN>
+
+    <!-- Javadoc allows this -->
+    <SEQ TYPE="COMMENT3">&lt;&lt;</SEQ>
+    <SEQ TYPE="COMMENT3">&lt;=</SEQ>
+    <SEQ TYPE="COMMENT3">&lt; </SEQ>
+
+    <!-- HTML tags -->
+    <SPAN TYPE="MARKUP" DELEGATE="xml::TAGS">
+      <BEGIN>&lt;</BEGIN>
+      <END>&gt;</END>
+    </SPAN>
+
+    <KEYWORDS>
+      <LABEL>@author</LABEL>
+      <LABEL>@beaninfo</LABEL>
+      <LABEL>@history</LABEL>
+      <LABEL>@bug</LABEL>
+      <LABEL>@review</LABEL>
+      <LABEL>@todo</LABEL>
+      <LABEL>@idea</LABEL>
+      <LABEL>@pre</LABEL>
+      <LABEL>@requires</LABEL>
+      <LABEL>@post</LABEL>
+      <LABEL>@ensures</LABEL>
+      <LABEL>@generates</LABEL>
+      <LABEL>@modifies</LABEL>
+      <LABEL>@invariant</LABEL>
+      <LABEL>@exception</LABEL>
+      <LABEL>@hides</LABEL>
+      <LABEL>@overrides</LABEL>
+      <LABEL>@equivalent</LABEL>
+      <LABEL>@bon</LABEL>
+      <LABEL>@access</LABEL>
+      <LABEL>@example</LABEL>
+      <LABEL>@design</LABEL>
+      <LABEL>@serial</LABEL>
+      <LABEL>@references</LABEL>
+      <LABEL>@uses</LABEL>
+      <LABEL>@guard</LABEL>
+      <LABEL>@values</LABEL>
+      <LABEL>@complexity</LABEL>
+      <LABEL>@deprecated</LABEL>
+      <LABEL>@docRoot</LABEL>
+      <LABEL>@exception</LABEL>
+      <LABEL>@link</LABEL>
+      <LABEL>@param</LABEL>
+      <LABEL>@return</LABEL>
+      <LABEL>@see</LABEL>
+      <LABEL>@serialData</LABEL>
+      <LABEL>@serialField</LABEL>
+      <LABEL>@since</LABEL>
+      <LABEL>@throws</LABEL>
+      <LABEL>@version</LABEL>
+      <LABEL>@spec</LABEL>
+    </KEYWORDS>
+  </RULES>
+
+  <RULES SET="SCALADOC_PRE" DEFAULT="COMMENT3" />
+
+  <!-- inside xml tag default type label -->
+  <!-- for attribute names (griba2010@ya.com) -->
+  <RULES SET="XML_TAG" DEFAULT="LABEL" IGNORE_CASE="TRUE">
+    <!-- string and character literals -->
+    <SPAN TYPE="LITERAL1" NO_LINE_BREAK="TRUE">
+      <BEGIN>"</BEGIN>
+      <END>"</END>
+    </SPAN>
+
+    <SPAN TYPE="LITERAL1" NO_LINE_BREAK="TRUE">
+      <BEGIN>'</BEGIN>
+      <END>'</END>
+    </SPAN>
+
+    <!-- scala attribute value -->
+    <SPAN DELEGATE="MAIN">
+      <BEGIN>{</BEGIN>
+      <END>}</END>
+    </SPAN>
+
+    <!-- if ">\n" goto main rule set -->
+    <SEQ_REGEXP HASH_CHAR="&gt;" DELEGATE="MAIN" TYPE="LITERAL3"
+                        >&gt;$</SEQ_REGEXP>
+
+    <!-- if ">;" goto main rule set -->
+    <SEQ_REGEXP HASH_CHAR="&gt;" DELEGATE="MAIN" TYPE="LITERAL3"
+                        >&gt;\s*;</SEQ_REGEXP>
+
+    <!-- if ">)" goto main rule set -->
+    <SEQ_REGEXP HASH_CHAR="&gt;" DELEGATE="MAIN" TYPE="LITERAL3"
+                        >&gt;\s*\)</SEQ_REGEXP>
+
+    <!-- if ">" goto xml_text rule set -->
+    <SEQ DELEGATE="XML_TEXT" TYPE="LITERAL3">&gt;</SEQ>
+  </RULES>
+
+  <RULES SET="XML_TEXT" DEFAULT="COMMENT4">
+    <!-- scala expression -->
+    <SPAN DELEGATE="MAIN">
+      <BEGIN>{</BEGIN>
+      <END>}</END>
+    </SPAN>
+
+    <SEQ_REGEXP HASH_CHAR="&lt;" DELEGATE="XML_COMMENT" TYPE="COMMENT2"
+                        >&lt;!--</SEQ_REGEXP>
+    <!-- if "<" goto xml_tag rule set -->
+    <SEQ_REGEXP HASH_CHAR="&lt;" DELEGATE="XML_TAG" TYPE="LITERAL3"
+                        >&lt;\/?\w*</SEQ_REGEXP>
+  </RULES>
+
+  <RULES SET="XML_COMMENT" DEFAULT="COMMENT2">
+    <!-- if end_of_comment with "\n" goto main rule set -->
+    <SEQ_REGEXP HASH_CHAR="-" DELEGATE="MAIN" TYPE="COMMENT2"
+                        >--&gt;$</SEQ_REGEXP>
+
+    <!-- if end_of_comment with ";" goto main rule set -->
+    <SEQ_REGEXP HASH_CHAR="-" DELEGATE="MAIN" TYPE="COMMENT2"
+                        >--&gt;\s*;</SEQ_REGEXP>
+
+    <!-- if end_of_comment goto xml_text rule set -->
+    <SEQ DELEGATE="XML_TEXT" TYPE="COMMENT2">--&gt;</SEQ>
+  </RULES>
+</MODE>