Вспомогательный режим структуры
Вспомогательный режим структуры — это буферный вспомогательный режим, который скрывает части буфера, оставляя видимыми только строки заголовков. Этот вспомогательный режим можно использовать вместе с другими основными режимами (см. Вспомогательный режим структуры в Руководстве 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