在我的font-lock-defaults
我有:
("\\(^\\| \\|\t\\)\\(![^\n]+\\)\n" 2 'factor-font-lock-comment)
评论字符是!
,这使得评论得到正确的面孔。这很有效,除非评论中有一个竞争的字体锁定实体,比如一个字符串(用双引号分隔):
! this line is font-locked fine
! this one is "not" because "strings"
您如何让 font-lock 了解评论已经被字体锁定,并且不需要尝试对其中的任何字符串进行字体锁定?显而易见的方法是!
在语法表中添加注释起始类:
(modify-syntax-entry ?! "< 2b" table)
此解决方案是不可能的,因为函数名称和其他包含的符号!
是合法的,例如map!
filter!
和foo!bar
。添加!
会导致包含此类名称的代码被错误地突出显示。