Вспомогательные функции для правил отступа
SMIE предоставляет различные функции, разработанные специально для использования в функции правил отступа (несколько этих функций выдают ошибку, если используются в другом контексте). Все эти функции начинаются с префикса smie-rule-.
- Функция: smie-rule-bolp
Возвращает не-
nil, если текущий токен является первым на строке.
- Функция: smie-rule-hanging-p
Возвращает не-
nil, если текущий токен является висячим. Токен считается висячим, если он является последним токеном на строке и если ему предшествуют другие токены: одиночный токен на строке не считается висячим.
- Функция: smie-rule-next-p &rest tokens
Возвращает не-
nil, если следующий токен входит в список tokens.
- Функция: smie-rule-prev-p &rest tokens
Возвращает не-
nil, если предыдущий токен входит в список tokens.
- Функция: smie-rule-parent-p &rest parents
Возвращает не-
nil, если родитель текущего токена находится в списке parents.
- Функция: smie-rule-sibling-p
Возвращает не-
nil, если родитель текущего токена является фактически его братом/сестрой. Это имеет место, например, когда родителем","является предыдущий",".
- Функция: smie-rule-parent &optional offset
Возвращает правильный отступ для выравнивания текущего токена с родителем. Если не-
nil, offset должен быть целым числом, задающим дополнительный отступ.
- Функция: smie-rule-separator method
-
Отступы текущего токена как разделителя.
Под разделителем здесь подразумевается токен, чья единственная цель — разделять различные элементы внутри некоторого содержащего синтаксического конструкта, и который не имеет никакого семантического значения сам по себе (то есть он обычно не будет существовать как узел в дереве абстрактного синтаксиса).
Такой токен должен иметь ассоциативный синтаксис и быть тесно связан со своим синтаксическим родителем. Типичные примеры —
","в списках аргументов (включенных в скобки) или";"в последовательностях инструкций (включенных в блок{...}илиbegin...end).method должен быть именем метода, который был передан
smie-rules-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/SMIE-Indentation-Helpers.html