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

发布于 2024-12-21 03:49:25 字数 554 浏览 1 评论 0原文

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

但这没有用。

任何有关如何进行正则表达式匹配的帮助将不胜感激。

I am trying to modify the fortran major mode to work with a preprocessor a colleague wrote. The preprocessor directives are all prefixed by a "."

for example:

.set

.macro

function similar to C's #define

This far, I have:

(font-lock-add-keywords 'fortran-mode
 '(("\\<\\(set\\|macro\\|endmacro\\)\\>" . font-lock-preprocessor-face)))

Unfortunately, This does not highlight the "." which is desirable. Also, the pattern should only match if it appears at the start of the line.
I've tried:

(font-lock-add-keywords 'fortran-mode
 '(("\\<\\(^\.set\\|^\.macro\\|^\.endmacro\\)\\>" . font-lock-preprocessor-face)))

but that didn't work.

Any help on how to make this regex match would be greatly appreciated.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

静谧幽蓝 2024-12-28 03:49:25

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

try this: "^\\s-*\\.\\(set\\|macro\\|endmacro\\)\\>"

物价感观 2024-12-28 03:49:25

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

You should use \\. rather that ^\.. The double slashed escapes the special meaning of backslashes, creating the string \., whereas the ^ in the latter has no special meaning.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文