24.2.8 Общие режимы

Общие режимы — это простые основные режимы с базовой поддержкой синтаксиса комментариев и режима Font Lock. Чтобы определить общий режим, используйте макрос define-generic-mode. Посмотрите файл generic-x.el для примеров использования define-generic-mode.

Макрос: define-generic-mode mode comment-list keyword-list font-lock-list auto-mode-list function-list &optional docstring

Этот макрос определяет команду общего режима с именем mode (символ, не в кавычках). Необязательный аргумент docstring — это документация для команды режима. Если вы не укажете его, define-generic-mode сгенерирует его по умолчанию.

Аргумент comment-list — это список, в котором каждый элемент является либо символом, либо строкой из одной или двух символов, либо ячейкой cons. Символ или строка настраивается в таблице синтаксиса как стартер комментария. Если запись является ячейкой cons, CAR настраивается как стартер комментария, а CDR — как завершитель комментария. (Используйте nil для последнего, если вы хотите, чтобы комментарии заканчивались в конце строки.) Обратите внимание, что механизм таблицы синтаксиса имеет ограничения относительно того, какие стартеры и завершители комментариев фактически возможны. См. Таблицы синтаксиса.

Аргумент keyword-list — это список ключевых слов, которые будут выделены с помощью font-lock-keyword-face. Каждое ключевое слово должно быть строкой. Тем временем, font-lock-list — это список дополнительных выражений для выделения. Каждый элемент этого списка должен иметь ту же форму, что и элемент font-lock-keywords. См. Выделение на основе поиска.

Аргумент auto-mode-list — это список регулярных выражений, которые добавляются к переменной auto-mode-alist. Они добавляются при выполнении формы define-generic-mode, а не при расширении вызова макроса.

Наконец, function-list — это список функций, которые команда режима вызовет для дополнительной настройки. Она вызывает эти функции непосредственно перед выполнением переменной хука режима mode-hook.