Emacs将预处理器添加到主模式



我正在尝试修改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\)\>"

您应该使用\.而不是^.。双斜杠转义了反斜杠的特殊含义,创建了字符串.,而后者中的^没有特殊含义。

最新更新