summaryrefslogtreecommitdiff
path: root/support
diff options
context:
space:
mode:
authormichelou <michelou@epfl.ch>2005-04-12 13:46:21 +0000
committermichelou <michelou@epfl.ch>2005-04-12 13:46:21 +0000
commit5b2c183efb929ecfce6fc8c8a307f4f1af69f279 (patch)
tree9e904954d3ae4b2e924c8255e9ee91b18532f96f /support
parent1bee42b554b0cb1fda7e17e546c5cd495b019f7d (diff)
downloadscala-5b2c183efb929ecfce6fc8c8a307f4f1af69f279.tar.gz
scala-5b2c183efb929ecfce6fc8c8a307f4f1af69f279.tar.bz2
scala-5b2c183efb929ecfce6fc8c8a307f4f1af69f279.zip
- syntax highlighting for Scala.
Diffstat (limited to 'support')
-rw-r--r--support/jedit/modes/README33
-rw-r--r--support/jedit/modes/scala.xml325
2 files changed, 358 insertions, 0 deletions
diff --git a/support/jedit/modes/README b/support/jedit/modes/README
new file mode 100644
index 0000000000..04609548f5
--- /dev/null
+++ b/support/jedit/modes/README
@@ -0,0 +1,33 @@
+* Introduction
+
+This directory contains an additional syntax highlighting mode (.xml) for
+Scala programs. You will need to add a mode catalog entry after placing the
+mode file in an appropriate mode directory.
+
+More information about jEdit is available from:
+
+ http://www.jedit.org/
+
+* Installation
+
+Copy the file "scala.xml" to the following location:
+
+ ~/.jedit/modes/
+
+or alternatively to the location:
+
+ <jedit_instdir>/modes/
+
+Add the following entry to the file "catalog" present in the same directory
+as "scala.xml" you just copied.
+
+ <MODE NAME="scala" FILE="scala.xml" FILE_NAME_GLOB="*.scala" />
+
+Restart the jEdit text editor.
+
+From that point on, loading a file whose name ends in ".scala" automatically
+turns Scala mode on.
+
+* Version
+
+$Id$
diff --git a/support/jedit/modes/scala.xml b/support/jedit/modes/scala.xml
new file mode 100644
index 0000000000..64e22f718d
--- /dev/null
+++ b/support/jedit/modes/scala.xml
@@ -0,0 +1,325 @@
+<?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*\(.*)" />
+ <PROPERTY NAME="indentSize" VALUE="2" />
+ <!-- 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="wordBreakChars" VALUE=",+-=&lt;&gt;/?^&amp;*" />
+ </PROPS>
+ <RULES ESCAPE="\" IGNORE_CASE="FALSE" HIGHLIGHT_DIGITS="TRUE">
+ <!-- Silly comment -->
+ <SEQ TYPE="COMMENT1">/**/</SEQ>
+
+ <!-- Scaladoc comment -->
+ <SPAN TYPE="COMMENT2" 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="<" AT_WHITESPACE_END="TRUE" TYPE="COMMENT2"
+ DELEGATE="XML_COMMENT">&lt;!--</SEQ_REGEXP>
+
+ <!-- start of xml tag (griba2010@ya.com) -->
+ <SEQ_REGEXP HASH_CHAR="<" AT_WHITESPACE_END="TRUE" TYPE="LITERAL3"
+ DELEGATE="XML_TAG">&lt;\/?\w*</SEQ_REGEXP>
+
+ <!-- symbol literals -->
+ <!-- see http://jedit.org/users-guide/regexps.html -->
+ <SEQ_REGEXP HASH_CHAR="'" TYPE="LITERAL4"
+ >'[[:alnum:]]+[^',;})]</SEQ_REGEXP>
+
+ <!-- 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>
+
+ <EOL_SPAN TYPE="COMMENT1">//</EOL_SPAN>
+
+ <!-- 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="<" TYPE="LITERAL2"
+ >&lt;:\s*\w+(\.\w+)*(#\w+)?</SEQ_REGEXP>
+ <SEQ_REGEXP HASH_CHAR=">" TYPE="LITERAL2"
+ >&gt;:\s*\w+(\.\w+)*(#\w+)?</SEQ_REGEXP>
+
+ <SEQ TYPE="NULL">)</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="NULL">.</SEQ>
+ <SEQ TYPE="NULL">,</SEQ>
+ <SEQ TYPE="NULL">;</SEQ>
+ <SEQ TYPE="NULL">]</SEQ>
+ <SEQ TYPE="NULL">[</SEQ>
+ <SEQ TYPE="NULL">?</SEQ>
+ <MARK_PREVIOUS TYPE="LABEL" EXCLUDE_MATCH="TRUE"
+ AT_LINE_START="TRUE">:</MARK_PREVIOUS>
+ <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" EXCLUDE_MATCH="TRUE">(</MARK_PREVIOUS>
+
+ <KEYWORDS IGNORE_CASE="FALSE">
+ <KEYWORD1>abstract</KEYWORD1>
+ <KEYWORD1>case</KEYWORD1>
+ <KEYWORD1>class</KEYWORD1>
+ <KEYWORD1>catch</KEYWORD1>
+ <KEYWORD1>def</KEYWORD1>
+ <KEYWORD1>do</KEYWORD1>
+ <KEYWORD1>else</KEYWORD1>
+ <KEYWORD1>extends</KEYWORD1>
+ <KEYWORD1>false</KEYWORD1>
+ <KEYWORD1>final</KEYWORD1>
+ <KEYWORD1>finally</KEYWORD1>
+ <KEYWORD1>for</KEYWORD1>
+ <KEYWORD1>if</KEYWORD1>
+ <KEYWORD1>import</KEYWORD1>
+ <KEYWORD1>new</KEYWORD1>
+ <KEYWORD1>null</KEYWORD1>
+ <KEYWORD1>object</KEYWORD1>
+ <KEYWORD1>override</KEYWORD1>
+ <KEYWORD1>package</KEYWORD1>
+ <KEYWORD1>private</KEYWORD1>
+ <KEYWORD1>protected</KEYWORD1>
+ <KEYWORD1>return</KEYWORD1>
+ <KEYWORD1>sealed</KEYWORD1>
+ <KEYWORD1>super</KEYWORD1>
+ <KEYWORD1>this</KEYWORD1>
+ <KEYWORD1>throw</KEYWORD1>
+ <KEYWORD1>trait</KEYWORD1>
+ <KEYWORD1>true</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>Any</KEYWORD3>
+ <KEYWORD3>Array</KEYWORD3>
+ <KEYWORD3>Enumeration</KEYWORD3>
+ <KEYWORD3>Function</KEYWORD3>
+ <KEYWORD3>List</KEYWORD3>
+ <KEYWORD3>Option</KEYWORD3>
+ <KEYWORD3>PartialFunction</KEYWORD3>
+ <KEYWORD3>Ref</KEYWORD3>
+ <KEYWORD3>Some</KEYWORD3>
+ <KEYWORD3>Stream</KEYWORD3>
+ <KEYWORD3>String</KEYWORD3>
+ <KEYWORD3>Symbol</KEYWORD3>
+
+ <!-- scala.* predefined objects -->
+ <KEYWORD4>Iterable</KEYWORD4>
+ <KEYWORD4>Nil</KEYWORD4>
+ <KEYWORD4>None</KEYWORD4>
+ <KEYWORD4>Predef</KEYWORD4>
+ </KEYWORDS>
+ </RULES>
+
+ <RULES SET="SCALADOC" DEFAULT="COMMENT2" IGNORE_CASE="TRUE">
+ <!-- so that @link{...} is highlighted -->
+ <SEQ TYPE="COMMENT2">{</SEQ>
+
+ <!-- so that *@param is highlighted -->
+ <SEQ TYPE="COMMENT2">*</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="COMMENT2">&lt;&lt;</SEQ>
+ <SEQ TYPE="COMMENT2">&lt;=</SEQ>
+ <SEQ TYPE="COMMENT2">&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="COMMENT2" />
+
+ <!-- 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 ">;" goto main rule set -->
+ <SEQ_REGEXP HASH_CHAR=">" DELEGATE="MAIN" TYPE="LITERAL3"
+ >&gt;\s*;</SEQ_REGEXP>
+
+ <!-- if ">" goto xml_text rule set -->
+ <SEQ DELEGATE="XML_TEXT" TYPE="LITERAL3">></SEQ>
+ </RULES>
+
+ <RULES SET="XML_TEXT" DEFAULT="COMMENT4">
+ <!-- scala expression -->
+ <SPAN DELEGATE="MAIN">
+ <BEGIN>{</BEGIN>
+ <END>}</END>
+ </SPAN>
+
+ <!-- if "<!--" goto xml_comment rule set -->
+ <SEQ_REGEXP HASH_CHAR="<" DELEGATE="XML_COMMENT" TYPE="COMMENT2"
+ >&lt;!--</SEQ_REGEXP>
+ <!-- if "<" goto xml_tag rule set -->
+ <SEQ_REGEXP HASH_CHAR="<" DELEGATE="XML_TAG" TYPE="LITERAL3"
+ >&lt;\/?\w*</SEQ_REGEXP>
+ </RULES>
+
+ <RULES SET="XML_COMMENT" DEFAULT="COMMENT2">
+ <!-- if end_of_comment with ";" goto main rule set -->
+ <SEQ_REGEXP HASH_CHAR="-" DELEGATE="MAIN" TYPE="COMMENT2"
+ >-->\s*;</SEQ_REGEXP>
+
+ <!-- if end_of_comment goto xml_text rule set -->
+ <SEQ DELEGATE="XML_TEXT" TYPE="COMMENT2">--></SEQ>
+ </RULES>
+</MODE>
+
+<!-- $Id$ -->