Seth Carnegie
Seth Carnegie

Reputation: 75130

Lisp syntax highlighting for ICSharpCode.TextEditor

Is there a Common Lisp syntax highlighting .xshd file for use with ICSharpCode.TextEditor? I haven't been able to find one on google, and the format for writing syntax highlighting specification files is so wretchedly documented that I can't make a very good one myself. I can highlight basic keywords, but not much more.

It needs to have the following:

Does anyone know where to get a Common Lisp syntax highlighting file for ICSharpCode.TextEditor that has these features?

Upvotes: 7

Views: 1294

Answers (1)

leppie
leppie

Reputation: 117220

Here is a start for a Scheme highlighter. Not very fancy, but shows how recursion works with the rulesets.

<SyntaxDefinition name="Scheme" extensions=".sls;.sps;.ss;.scm" 
     xmlns="http://icsharpcode.net/sharpdevelop/syntaxdefinition/2008">
  <Color foreground="Green" name="Comment" />
  <Color foreground="Blue" name="Syntax" />
  <Color foreground="Blue" name="Library Syntax" />
  <Color foreground="Blue" name="Auxilliary Syntax" />
  <Color foreground="DarkMagenta" name="Procedure" />

  <RuleSet>
    <Import ruleSet="Expression"/>
  </RuleSet>

    <RuleSet name="Expression">
        <Span color="Comment" multiline="false">
            <Begin>;</Begin>
        </Span>
    <Span color="Comment" multiline="true" >
      <Begin>\#\|</Begin>
      <End>\|\#</End>
    </Span>
    <Span ruleSet="Expression" multiline="true" >
      <Begin fontWeight="bold">\(</Begin>
      <End fontWeight="bold">\)</End>
    </Span>
    <Span  ruleSet="Expression" multiline="true">
      <Begin fontWeight="bold">\#\(</Begin>
      <End fontWeight="bold">\)</End>
    </Span>

    <Keywords color="Library Syntax">
      <Word>import</Word>
      <Word>export</Word>
      <Word>library</Word>
    </Keywords>

    <Keywords color="Syntax">
      <Word>define</Word>
      <Word>set!</Word>
      <Word>lambda</Word>
      <Word>begin</Word>
      <Word>if</Word>
      <Word>cond</Word>
      <Word>let</Word>
      <Word>letrec</Word>
    </Keywords>

    <Keywords color="Auxilliary Syntax">
      <Word>else</Word>
    </Keywords>

    <Keywords color="Procedure">
      <Word>map</Word>
      <Word>cons</Word>
      <Word>car</Word>
    </Keywords>

  </RuleSet>

</SyntaxDefinition>

Upvotes: 3

Related Questions