Font-Lock группы Emacs-Lisp Regexp - PullRequest
       31

Font-Lock группы Emacs-Lisp Regexp

0 голосов
/ 02 декабря 2018

В настоящее время я пишу мажорный режим для Emacs и пытаюсь выяснить, как заставить работать подсветку синтаксиса.Мой основной режим предназначен для языка, похожего на lisp, который выглядит следующим образом:

[= a 3]
[= [double x] [* x 2]]
[double a]

По сути, я пытаюсь написать регулярное выражение, соответствующее всем словам, которым предшествует [, но несамо [ для выделения вызовов функций.Я немного погуглил и обнаружил, что emacs не поддерживает просмотр с помощью регулярных выражений, так как мне это сделать?

1 Ответ

0 голосов
/ 02 декабря 2018

Вы можете указать номер группы регулярных выражений, которую вы хотите выделить.Таким образом, вы можете создать регулярное выражение для захвата [ плюс следующее имя функции, а затем выделить только имя функции, указав первую группу захвата, например.

(defvar my-mode-font-lock-keywords
  '(("\\[\\s-*\\([^\][:space:]]+\\)" (1 font-lock-function-name-face))))

(define-derived-mode my-mode prog-mode "MyMode"
  (setq-local font-lock-defaults '(my-mode-font-lock-keywords)))
...