Spec-Zone.ru › Elisp

Синтаксическое выделение шрифтом

Синтаксическое форматирование использует таблицу синтаксиса (см. Таблицы синтаксиса), чтобы находить и выделять синтаксически значимый текст. Если включено, оно выполняется до выделения по поиску. Переменная 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API