Regex 语法突出显示规则,用于突出显示Lisp函数调用中的函数引用
我正在为Clojure编写Vim中的语法突出显示规则,或者另一个Lisp,其中Regex 语法突出显示规则,用于突出显示Lisp函数调用中的函数引用,regex,vim,clojure,lisp,syntax-highlighting,Regex,Vim,Clojure,Lisp,Syntax Highlighting,我正在为Clojure编写Vim中的语法突出显示规则,或者另一个Lisp,其中(fn…主要用于函数调用。我一直在强调函数调用的第一个单词,即函数引用。下面是我所在位置的演示: 如您所见,函数调用中的第一个单词(str(str a b c d))高亮显示。但是,文字列表中的第一个元素('(13)中的1)也会高亮显示,这是无意的。要强调的是,两个文本列表都突出显示了它们的第一个元素,这是错误的 下面是执行此突出显示的语法规则: syn match lispFunc "'\{0}\((\)\@<
(fn…
主要用于函数调用。我一直在强调函数调用的第一个单词,即函数引用。下面是我所在位置的演示:
如您所见,函数调用中的第一个单词(str
(str a b c d))高亮显示。但是,文字列表中的第一个元素('(13)
中的1
)也会高亮显示,这是无意的。要强调的是,两个文本列表都突出显示了它们的第一个元素,这是错误的
下面是执行此突出显示的语法规则:
syn match lispFunc "'\{0}\((\)\@<=\<.\{-1,}\>?\{0,1}"
synmatchlispfunc“'\{0}\(\)\@您可以使用
syn match lispFunc "\(\('\)\@<!(\)\@<=\<.\{-1,}\>?\{0,1}"
syn match lispFunc“\(\('\)\@?\{0,1}”
这里,\(\('\)\@是一个与(
)匹配的正向查找(
,前提是它前面没有”
。这个条件在正向查找中设置了一个('\)\@负向查找。这可能是注定的:什么是(解构绑定(ab)c…
要做什么?或者(let(ab c)…)
@tfb非常感谢您的输入,但我将重点放在为函数调用保留()
的Lisp上。从这个意义上讲,Clojure表现得非常好,但我更喜欢这将产生的噪音,而不是基于字典的函数高亮显示噪音。请尝试syn match lispFunc“\(\('\)\{0,1}“
>我关注的是为函数调用保留()的Lisp,即不是经典的MacCarthy Lisp、ANSI Lisp,也不是MacLisp或InterLisp之类的任何它的祖先,也不是Scheme,也不是Emacs Lisp、EuLisp、ISLisp。。。