Spec-Zone.ru › Elisp

Вспомогательный режим структуры

Вспомогательный режим структуры — это буферный вспомогательный режим, который скрывает части буфера, оставляя видимыми только строки заголовков. Этот вспомогательный режим можно использовать вместе с другими основными режимами (см. Вспомогательный режим структуры в Руководстве Emacs).

Есть два способа определить, какие строки являются заголовками: с помощью переменной outline-regexp или outline-search-function.

Переменная: outline-regexp

Эта переменная является регулярным выражением. Любая строка, начало которой соответствует этому регулярному выражению, считается строкой заголовка. Совпадения, начинающиеся внутри строки (не у левого края), не учитываются.

Переменная: outline-search-function

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

Переменная outline-search-function задаёт функцию с четырьмя аргументами: bound, move, backward и looking-at. Функция выполняет две задачи: проверяет, является ли текущая строка строкой заголовка, и находит следующую или предыдущую строку заголовка. Если аргумент looking-at не равен nil, функция должна возвращать значение, отличное от nil, когда точка находится в начале строки заголовка структуры. Если аргумент looking-at равен nil, используются первые три аргумента. Аргумент bound — это позиция в буфере, ограничивающая поиск. Найденное совпадение не должно заканчиваться после этой позиции. Значение nil означает поиск до конца доступной части буфера. Если аргумент move не равен nil, при неудачном поиске точка должна переместиться к границе поиска, а функция должна вернуть nil. Если аргумент backward не равен nil, функция должна искать предыдущий заголовок в обратном направлении.

Переменная: outline-level

Эта переменная является функцией без аргументов, которая должна возвращать уровень текущего заголовка. Она необходима в обоих случаях: независимо от того, определяете ли вы outline-regexp или outline-search-function.

Если Emacs собран с поддержкой tree-sitter, он может автоматически использовать вспомогательный режим структуры, если основной режим задаёт одну из следующих переменных.

Переменная: treesit-outline-predicate

Эта переменная указывает Emacs, как находить строки с заголовками структуры. Её значением должно быть предикатное выражение, которое соответствует узлу в строке заголовка.

Переменная: treesit-aggregated-outline-predicate

Эта переменная позволяет основным режимам настраивать структуры для нескольких языков. Её значение — это alist, сопоставляющий символы языков заголовкам структуры, как описано выше для значения treesit-outline-predicate.

Если эта переменная не равна nil, она имеет приоритет над treesit-outline-predicate при настройке заголовков структуры.

Copyright © 1990-1996, 1998-2026 Free Software Foundation, Inc.
Licensed under the GNU GPL license.
https://www.gnu.org/software/emacs/manual/html_node/elisp/Outline-Minor-Mode.html

Spec-Zone.ru

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