jEdit

jEdit S2 edit mode

Originally posted on 2005-05-02

This will give you syntax highlighting in jEdit for LiveJournal’s S2 styling system.

Drop into [jedit profile dir]/modes/ and edit catalog to include something like <MODE FILE="s2.xml" NAME="S2" FILE_NAME_GLOB="*.s2" />

Source: s2.xml

<?xml version="1.0"?>
 
<!DOCTYPE MODE SYSTEM "xmode.dtd">
 
<MODE>
  <PROPS>
    <PROPERTY NAME="lineComment" VALUE="#" />
    <PROPERTY NAME="indentOpenBrackets" VALUE="{" />
    <PROPERTY NAME="indentCloseBrackets" VALUE="}" />
    <PROPERTY NAME="lineUpClosingBracket" VALUE="true" />
  </PROPS>
  <RULES ESCAPE="\" HIGHLIGHT_DIGITS="TRUE" IGNORE_CASE="FALSE">
    <!-- Comments -->
    <EOL_SPAN TYPE="COMMENT1">#</EOL_SPAN>
 
    <!-- Variables -->
    <SEQ_REGEXP HASH_CHAR="$" TYPE="KEYWORD2">\$(?:(\.|\*)|\w)+</SEQ_REGEXP>
 
    <!-- Literals -->
    <SPAN TYPE="LITERAL1">
      <BEGIN>"""</BEGIN>
      <END>"""</END>
    </SPAN>
    <SPAN TYPE="LITERAL1" DELEGATE="LITERAL">
      <BEGIN>"</BEGIN>
      <END>"</END>
    </SPAN>
 
    <!-- Function calls -->
    <MARK_PREVIOUS TYPE="FUNCTION" EXCLUDE_MATCH="TRUE">(</MARK_PREVIOUS>
 
    <!-- Operators -->
    <SEQ TYPE="OPERATOR">&gt;=</SEQ>
    <SEQ TYPE="OPERATOR">&lt;=</SEQ>
    <SEQ TYPE="OPERATOR">&gt;</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">*</SEQ>
    <SEQ TYPE="OPERATOR">%</SEQ>
    <SEQ TYPE="OPERATOR">}</SEQ>
    <SEQ TYPE="OPERATOR">{</SEQ>
    <SEQ TYPE="OPERATOR">?</SEQ>
    <SEQ TYPE="OPERATOR">:</SEQ>
 
    <!-- Keywords -->
    <KEYWORDS>
      <KEYWORD1>return</KEYWORD1>
      <KEYWORD1>if</KEYWORD1>
      <KEYWORD1>while</KEYWORD1>
      <KEYWORD1>elsif</KEYWORD1>
      <KEYWORD1>else</KEYWORD1>
      <KEYWORD1>foreach</KEYWORD1>
      <KEYWORD2>int</KEYWORD2>
      <KEYWORD2>bool</KEYWORD2>
      <KEYWORD2>string</KEYWORD2>
      <KEYWORD1>layerinfo</KEYWORD1>
      <KEYWORD1>property</KEYWORD1>
      <KEYWORD1>set</KEYWORD1>
      <KEYWORD1>function</KEYWORD1>
      <KEYWORD1>var</KEYWORD1>
      <KEYWORD1>class</KEYWORD1>
 
      <OPERATOR>not</OPERATOR>
      <OPERATOR>and</OPERATOR>
      <OPERATOR>or</OPERATOR>
 
      <KEYWORD3>isnull</KEYWORD3>
      <KEYWORD3>defined</KEYWORD3>
      <KEYWORD3>newnull</KEYWORD3>
      <KEYWORD3>new</KEYWORD3>
      <KEYWORD3>reverse</KEYWORD3>
      <KEYWORD3>size</KEYWORD3>
      <KEYWORD3>extends</KEYWORD3>
      <KEYWORD3>builtin</KEYWORD3>
      <KEYWORD3>use</KEYWORD3>
    </KEYWORDS>
  </RULES>
</MODE>
Syndicate content Syndicate content