Синтаксическое выделение шрифтом
Синтаксическое форматирование использует таблицу синтаксиса (см. Таблицы синтаксиса), чтобы находить и выделять синтаксически значимый текст. Если включено, оно выполняется до выделения по поиску. Переменная font-lock-syntactic-face-function, документированная ниже, определяет, какие синтаксические конструкции следует выделять. Есть несколько переменных, влияющих на синтаксическое форматирование; вы должны установить их с помощью font-lock-defaults (см. Основы выделения шрифтом).
Всякий раз, когда режим выделения шрифтом выполняет синтаксическое форматирование участка текста, он сначала вызывает функцию, указанную в syntax-propertize-function. Основные режимы могут использовать это для применения syntax-table свойств текста, чтобы переопределить таблицу синтаксиса буфера в особых случаях. См. Свойства синтаксиса.
- Переменная: font-lock-keywords-only
Если значение этой переменной не
nil, Font Lock не выполняет синтаксическое форматирование, а только форматирование по поиску, основанное наfont-lock-keywords. Обычно устанавливается режимом выделения шрифтом на основе элемента keywords-only вfont-lock-defaults. Если значение равноnil, Font Lock вызоветjit-lock-register(см. Другие переменные выделения шрифтом), чтобы подготовиться к автоматическому переформатированию текста буфера после изменения строки, чтобы отразить новый синтаксический контекст из-за изменения.
- Переменная: font-lock-syntax-table
Эта переменная хранит таблицу синтаксиса, используемую для форматирования комментариев и строк. Обычно устанавливается режимом выделения шрифтом на основе элемента syntax-alist в
font-lock-defaults. Если это значение равноnil, синтаксическое форматирование использует таблицу синтаксиса буфера (значение, возвращаемое функциейsyntax-table; см. Функции таблиц синтаксиса).
- Переменная: font-lock-syntactic-face-function
-
Если эта переменная не
nil, она должна быть функцией, определяющей, какой стиль шрифта использовать для данного синтаксического элемента (строки или комментария).Функция вызывается с одним аргументом, состоянием разбора в точке, возвращенном
parse-partial-sexp, и должна вернуть стиль шрифта. Значение по умолчанию возвращаетfont-lock-comment-faceдля комментариев иfont-lock-string-faceдля строк (см. Стиль шрифта для выделения шрифтом).Эта переменная обычно устанавливается через элементы "other" в
font-lock-defaults:(setq-local font-lock-defaults `(,python-font-lock-keywords nil nil nil nil (font-lock-syntactic-face-function . python-font-lock-syntactic-face-function)))
Copyright © 1990-1996, 1998-2022 Free Software Foundation, Inc.
Licensed under the GNU GPL license.
https://www.gnu.org/software/emacs/manual/html_node/elisp/Syntactic-Font-Lock.html