Второстепенный режим Outline — это второстепенный режим, специфичный для буфера, который скрывает части буфера, оставляя видимыми только строки заголовков. Этот второстепенный режим может использоваться совместно с другими основными режимами (см. Второстепенный режим Outline в Руководстве Emacs).
Существует два способа определения того, какие строки являются заголовками: с помощью
переменной outline-regexp или outline-search-function.
Эта переменная — регулярное выражение. Любая строка, начало которой соответствует этому регулярному выражению, считается строкой заголовка. Соответствия, начинающиеся внутри строки (не по левому поля), не учитываются.
В качестве альтернативы, когда невозможно создать регулярное выражение, соответствующее строкам заголовков, вы можете определить функцию, которая поможет второстепенному режиму Outline найти строки заголовков.
Переменная outline-search-function указывает функцию с
четырьмя аргументами: bound, move, backward и
looking-at. Функция выполняет две задачи: соответствует текущей
строке заголовка и находит следующую или предыдущую строку заголовка.
Если аргумент looking-at не равен nil, он должен
возвращать не-nil, когда указатель находится в начале строки
заголовка Outline.
Если аргумент looking-at равен nil, используются
первые три аргумента. Аргумент bound — это позиция буфера,
ограничивающая поиск. Найденное совпадение не должно заканчиваться после этой
позиции. Значение nil означает поиск до конца доступной части буфера. Если
аргумент move не равен nil, неудачный поиск
должен перейти к пределу поиска и вернуть nil.
Если аргумент backward не равен nil, эта
функция должна искать предыдущий заголовок назад.
Эта переменная — функция, которая не принимает аргументов и должна
вернуть уровень текущего заголовка.
Она требуется в обоих случаях: независимо от того, определяете ли вы
outline-regexp или outline-search-function.
Если Emacs собран с tree-sitter, он может автоматически использовать второстепенный режим Outline, если основной режим устанавливает следующую переменную.
Эта переменная указывает Emacs, как находить строки с заголовками Outline. Это должно быть предикатом, который соответствует узлу в строке заголовка.