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)))

но это не сработало.

Любая помощь о том, как сделать это регулярное выражение будет принята с благодарностью.

2 ответа

Решение

Попробуй это: "^\\s-*\\.\\(set\\|macro\\|endmacro\\)\\>"

Вы должны использовать \\. скорее что ^\., Двойная косая черта избегает особого значения обратной косой черты, создавая строку \.тогда как ^ в последнем нет особого значения.

Другие вопросы по тегам