我正在尝试修改fortran主要模式,以便与同事编写的预处理器一起工作。预处理器指令的前缀都是"。"
例如:.set
.macro
函数类似于C的#define
到目前为止,我有:
(font-lock-add-keywords 'fortran-mode
'(("\<\(set\|macro\|endmacro\)\>" . font-lock-preprocessor-face)))
不幸的是,这并没有突出显示"。",这是理想的。另外,模式应该只匹配出现在行首的模式。我试过:
(font-lock-add-keywords 'fortran-mode
'(("\<\(^.set\|^.macro\|^.endmacro\)\>" . font-lock-preprocessor-face)))
但是没有成功。
任何关于如何使这个正则表达式匹配的帮助将非常感激。
试试这个:"^\s-*\.\(set\|macro\|endmacro\)\>"
您应该使用\.
而不是^.
。双斜杠转义了反斜杠的特殊含义,创建了字符串.
,而后者中的^
没有特殊含义。