C# ICSharpCode.TextEditor的Lisp语法高亮显示
是否有一个用于ICSharpCode.TextEditor的公共Lisp语法突出显示.xshd文件?我还没有在谷歌上找到一个,而编写语法突出说明文件的格式是如此糟糕,以至于我自己也做不出一个很好的格式。我可以突出显示基本的关键字,但不能做更多 它需要具备以下功能:C# ICSharpCode.TextEditor的Lisp语法高亮显示,c#,syntax-highlighting,common-lisp,icsharpcode,text-editor,C#,Syntax Highlighting,Common Lisp,Icsharpcode,Text Editor,是否有一个用于ICSharpCode.TextEditor的公共Lisp语法突出显示.xshd文件?我还没有在谷歌上找到一个,而编写语法突出说明文件的格式是如此糟糕,以至于我自己也做不出一个很好的格式。我可以突出显示基本的关键字,但不能做更多 它需要具备以下功能: 突出显示常见的lisp关键字,例如list,dolist,readlineλ等 突出显示defun、defmacro、defvar等后面的单词的语法,以便在文本(defun a()…)中突出显示a。它不必是完整的,因为我可以添加更多
- 突出显示常见的lisp关键字,例如
,list
,dolist
<代码>λ等readline
- 突出显示
、defun
、defmacro
等后面的单词的语法,以便在文本defvar
中突出显示(defun a()…)
。它不必是完整的,因为我可以添加更多,只要一两个就可以展示它是如何完成的a
- 突出显示符号,如
:a
- 突出显示后引号和单引号表单中的引用列表,以及引用列表中的“取消高亮”转义表单(通过
、、
等转义)@、
- 突出显示正在调用的函数的名称。例如,在文本
中,需要突出显示(a b c)
a
- 可选:我错过的任何其他有用的内容(我是lisp新手,所以我不知道可以突出显示的所有内容)
有人知道在哪里可以获得ICSharpCode.TextEditor的公共Lisp语法突出显示文件,该文件具有这些功能吗?下面是一个方案高亮显示的开始。不是很花哨,但展示了递归如何处理规则集
<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>
;
\#\|
\|\#
\(
\)
\#\(
\)
进口
出口
图书馆
定义
设置
兰姆达
开始
如果
康德
让
莱特雷克
其他的
地图
欺骗
汽车
“Ping”我,如果你得到答案,我也希望这个方案:)@leppie我怀疑我会得到答案,但我会很快设置一个悬赏。你使用的是什么版本的ICSharpCode.TextEditor?我也许可以看看,我已经试过3.2和那个最新版本(4.something)。如果你真的找到了,我很乐意赏金给你。代码应该相对简单,我以前为xacc.ide和VS2008为IronScheme都做过代码。这就是我从Ruby.xshd开始所做的。你知道如何突出括号中的第一个单词吗?比如在(a b c)
a
会被突出显示。在Ruby one中,它有(
,它使前面的单词变成蓝色(
)。我试过MarkNext
,但它不起作用。你能想出什么办法吗?在规则中使用肯定的lookbehind断言regex应该起作用,但它不起作用:(你如何使用正则表达式?你必须告诉它它们是正则表达式而不是纯文本吗?尽管这不是我所需要的,谢谢你的尝试,有50个代表:)