Вы можете использовать font-lock-add-keywords
, чтобы выделить разделители строк, выполнив что-то вроде следующего:
(font-lock-add-keywords 'foo-mode '(("\\s\"\\|\\s|" 0 'my-string-delimiter-face t)))
Регулярное выражение "\\s\"\\|\\s|"
соответствует одному символу, который должен иметь синтаксический класс "строковая кавычка" (\\s\"
part) или "общий разделитель строк" (\\s|
part).\s
соответствует различным синтаксическим классам символов, о которых вы можете прочитать в руководстве по Elisp под (elisp)Syntax Tables
и (elisp)Regexp Backslash
.
Немного легче читать, если вы видите его без экранирования строки: \s"\|\s|
0
означает применение грани ко всей совпадающей строке, а t
в конце заставляет эту грань переопределять любые грани, которые уже присутствуют в строке (поскольку во многих режимах будет выделеновся строка, включая разделители с font-lock-string-face
или подобным)
'foo-mode
может быть в кавычках именем любого режима (например, 'emacs-lisp-mode
, 'php-mode
) или nil
, чтобы сделать этот буфер измененияЛокально только в текущем буфере.(В этом случае вам, вероятно, следует поместить это в ловушки режимов тех режимов, к которым вы хотите применить его)
my-string-delimiter-face
может быть любым существующим лицом, или вы можете определить его, выполнив что-то вроде следующего:
(defface my-string-delimiter-face
'((t (:foreground "red" :weight bold)))
"My custom face for string delimiters")