Spec-Zone.ru › Elisp

Переменные завершения

Ниже приведены некоторые переменные, которые можно использовать для изменения поведения завершения по умолчанию.

Пользовательская опция: completion-styles

Значение этой переменной представляет собой список стилей завершения (символов), используемых для выполнения завершения. Стиль завершения — это набор правил для генерации завершений. Каждый символ в этом списке должен иметь соответствующую запись в completion-styles-alist.

Переменная: completion-styles-alist

Эта переменная хранит список доступных стилей завершения. Каждый элемент в списке имеет вид

(style try-completion all-completions doc)

Здесь style — это имя стиля завершения (символ), который может быть использован в переменной completion-styles для ссылки на этот стиль; try-completion — это функция, выполняющая завершение; all-completions — это функция, которая отображает список завершений; и doc — это строка, описывающая стиль завершения.

Функции try-completion и all-completions должны принимать четыре аргумента: string, collection, predicate и point. Аргументы string, collection и predicate имеют те же значения, что и в try-completion (см. Основные завершения), а аргумент point — это позиция точки внутри string. Каждая функция должна возвращать значение, отличное от nil, если она выполнила свою задачу, и nil, если она не выполнила (например, если нет способа завершить string в соответствии со стилем завершения).

Когда пользователь вызывает команду завершения, например, minibuffer-complete (см. Команды завершения), Emacs ищет первый стиль в списке completion-styles и вызывает его функцию try-completion. Если эта функция возвращает nil, Emacs переходит к следующему стилю завершения в списке и вызывает его функцию try-completion, и так далее, пока одна из функций try-completion успешно не выполнит завершение и не вернёт значение, отличное от nil. Аналогичная процедура используется для отображения завершений с помощью функций all-completions.

См. Стили завершения в Руководстве по GNU Emacs для описания доступных стилей завершения.

Пользовательская опция: completion-category-overrides

Эта переменная определяет специальные стили завершения и другое поведение завершения, которое должно использоваться при завершении определённых типов текста. Её значение должно быть списком ассоциаций со следующей структурой: (category . alist). category — это символ, описывающий то, что завершается; в настоящее время определены категории buffer, file, и unicode-name, но другие могут быть определены с помощью специализированных функций завершения (см. Программируемое завершение). alist — это список ассоциаций, описывающий поведение завершения для соответствующей категории. Поддерживаются следующие ключи списка ассоциаций:

styles

Значение должно быть списком стилей завершения (символов).

cycle

Значение должно быть значением для completion-cycle-threshold (см. Опции завершения в Руководстве по GNU Emacs) для этой категории.

Дополнительные записи в списке ассоциаций могут быть определены в будущем.

Переменная: completion-extra-properties

Эта переменная используется для указания дополнительных свойств текущей команды завершения. Она предназначена для привязки с помощью специализированных команд завершения. Её значение должно быть списком пар свойство-значение.

:annotation-function

Значение должно быть функцией добавления аннотаций в буфере завершений. Эта функция должна принимать один аргумент, завершение, и должна возвращать nil или строку, которая должна отображаться рядом с завершением. Если эта функция не задаёт свой собственный вид для строки аннотации, то по умолчанию добавляется вид completions-annotations к этой строке.

:affixation-function

Значение должно быть функцией добавления префиксов и суффиксов к завершениям. Эта функция должна принимать один аргумент, список завершений, и должна возвращать список аннотированных завершений. Каждый элемент возвращаемого списка должен быть списком из трёх элементов: завершение, строка префикса и строка суффикса. Эта функция имеет приоритет над :annotation-function.

:exit-function

Значение должно быть функцией, которая выполняется после выполнения завершения. Функция должна принимать два аргумента, string и status, где string — это текст, к которому было применено завершение, а status указывает, какой тип операции произошёл: finished, если текст теперь завершён; sole, если текст больше нельзя завершить, но завершение не закончено; или exact, если текст является действительным завершением, но может быть дополнительно завершён.

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/Completion-Variables.html

Spec-Zone.ru

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