在我的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。添加!会导致包含此类名称的代码被错误地突出显示。