我正在尝试修改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)))
但这没效果。
非常感谢有关如何进行此正则表达式匹配的任何帮助。
答案 0 :(得分:0)
您应该使用\\.
而不是^\.
。双重斜线逃避反斜杠的特殊含义,创建字符串\.
,而后者中的^
没有特殊含义。
答案 1 :(得分:0)
试试这个:"^\\s-*\\.\\(set\\|macro\\|endmacro\\)\\>"