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

时间:2011-12-13 16:56:33

标签: regex emacs syntax preprocessor major-mode

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

但这没效果。

非常感谢有关如何进行此正则表达式匹配的任何帮助。

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

试试这个:"^\\s-*\\.\\(set\\|macro\\|endmacro\\)\\>"