Spec-Zone.ru › Elisp

Простой движок форматирования отступов

SMIE — это пакет, предоставляющий универсальный движок навигации и форматирования отступов. Основанный на очень простом парсере, использующем грамматику приоритетов операторов, он позволяет основным режимам расширять навигацию по выражениям Lisp, основанную на s-выражениях, на языки, отличные от Lisp, а также обеспечивает простой в использовании, но надёжный автоформатирование отступов.

Грамматика приоритетов операторов — это очень примитивная технология парсинга по сравнению с некоторыми более распространёнными техниками, используемыми в компиляторах. Она обладает следующими характеристиками: её возможности парсинга очень ограничены, и она в значительной степени неспособна обнаруживать синтаксические ошибки, но она имеет преимущество в алгоритмической эффективности и может анализировать вперёд так же хорошо, как и назад. На практике это означает, что SMIE может использовать её для форматирования отступов на основе обратного парсинга, что он может предоставить как forward-sexp , так и backward-sexp функциональность, и что он будет естественным образом работать с синтаксически некорректным кодом без каких-либо дополнительных усилий. Недостатком является то, что это также означает, что большинство языков программирования не могут быть правильно обработаны с помощью SMIE, по крайней мере, без применения некоторых специальных ухищрений (см. Хитрости SMIE).

• Настройка SMIE Настройка и особенности SMIE.
• Грамматики приоритетов операторов Очень простая техника парсинга.
• Грамматика SMIE Определение грамматики языка.
• Лексер SMIE Определение токенов.
• Хитрости SMIE Обход ограничений парсера.
• Форматирование отступов SMIE Указание правил форматирования отступов.
• Справочные функции для форматирования отступов SMIE Справочные функции для правил форматирования отступов.
• Пример форматирования отступов SMIE Примеры правил форматирования отступов.
• Настройка SMIE Настройка форматирования отступов.

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.html

Spec-Zone.ru

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