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