【发布时间】:2012-07-09 15:19:13
【问题描述】:
我正在努力改进 UnrealScript 的 emacs 主模式。 (许多)怪癖之一是它允许使用这样的语法在虚幻编辑器中指定工具提示:
var() int MyEditorVar <Foo=Bar|Tooltip=My tooltip text isn't quoted>;
变量声明后的尖括号表示以管道分隔的 Key=Value 元数据对列表,元数据不加引号但可以包含引号——管道 (|) 或右尖括号 (@987654325 @) 表示结束。
有没有一种方法可以让 emacs 语法表以一种有用的方式识别这种上下文相关的语法?我希望在这些变量元数据声明中以某种方式突出显示除了管道和直角括号之外的所有内容,但保留它们的正常突出显示。
现在,单引号字符被设置为引号分隔符(语法指示符"),所以 font-lock-mode 将这样的引号解释为开始一个带引号的字符串,它不是在这个非常具体的实例中,因此它会错误地突出显示所有内容,直到找到另一个据称匹配的单引号。
【问题讨论】:
-
你使用什么主要模式?
-
@Thomas: This major mode,进行了一些修改(额外的关键字等)。
标签: emacs elisp major-mode font-lock-mode