ICSharpCode.TextEditor的Lisp语法高亮显示
本文关键字:高亮 显示 语法 Lisp TextEditor ICSharpCode | 更新日期: 2023-09-27 18:07:13
是否有一个通用的Lisp语法高亮显示。xshd文件与ICSharpCode.TextEditor使用?我在google上找不到这样的文档,而且编写语法高亮显示规范文件的文档格式非常糟糕,以至于我自己也写不出一个很好的文档。我可以突出显示基本的关键字,但仅此而已。
需要包含以下内容:
- 突出显示常见lisp关键字,如
list
、dolist
、read-line
。lambda
等 - 对
defun
、defmacro
、defvar
等后面的单词进行语法高亮显示,从而在文本(defun a () ...)
、a
中高亮显示。它不必是完整的,因为我可以添加更多,只是一个或两个很好,以显示如何完成。 - 突出
:a
等符号 - 突出显示反引号和单引号形式的引号列表,并"取消突出"引号列表中的转义格式(由
,
,@,
等转义) - 显示正在调用的函数的名称。例如,在文本
(a b c)
,a
需要突出显示 - 可选:任何我错过的东西,这将是有帮助的(我是新的lisp,所以我不知道所有可以突出显示)
有谁知道在哪里得到一个通用Lisp语法高亮显示文件的ICSharpCode。有这些功能的TextEditor ?
这是Scheme高亮显示的开始。不是很花哨,但展示了递归如何与规则集一起工作。
<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>