Простейший учебник по подсветке синтаксиса Emacs?

Я хотел бы создать только второстепенный режим подсветки синтаксиса для Emacs. У меня есть «Написание расширений GNU Emacs» от О'Рейли, но в нем нет никаких подробностей. Есть ли простой учебник для режима выделения реального или поддельного языка программирования?

Спасибо


person Eli Schneider    schedule 08.10.2010    source источник
comment
возможный дубликат Как написать режим emacs для нового язык?   -  person dmckee --- ex-moderator kitten    schedule 08.10.2010
comment
@dmckee: Я не думаю, что это дубликат того вопроса. Это правда, что некоторые из ответов в некоторой степени затрагивают эту тему. Лучше указать ссылку на то, что, по вашему мнению, отвечает на этот вопрос, а не сигнализировать, что этот вопрос дублирует вопрос основного режима.   -  person Drew    schedule 04.12.2014


Ответы (3)


Возможно, лучше всего начать с определения пользовательского универсального режима. Вы можете определить базовую подсветку синтаксиса для языка так же просто, как следующий фрагмент.

(require 'generic-x)

(define-generic-mode 
  'my-mode                          ;; name of the mode
  '("//")                           ;; comments delimiter
  '("function" "var" "return")      ;; some keywords
  '(("=" . 'font-lock-operator) 
    ("+" . 'font-lock-operator)     ;; some operators
    (";" . 'font-lock-builtin))     ;; a built-in 
  '("\\.myext$")                    ;; files that trigger this mode
   nil                              ;; any other functions to call
  "My custom highlighting mode"     ;; doc string
)

Он отлично подходит для быстрого определения основной подсветки синтаксиса для малоизвестных языков. В некоторых случаях я даже использую его для файлов журналов.

person Colin Cochrane    schedule 08.10.2010
comment
можно ли сохранить этот файл как my-syntax.el и добавить что-то вроде (require 'my-syntax) в .emacs? Спасибо - person Eli Schneider; 08.10.2010
comment
Вы можете это сделать или поместить прямо в свой .emacs, если хотите. Если вы поместите его в отдельный файл, убедитесь, что он находится в вашем пути загрузки и что вы включили строку (укажите 'my-syntax') в конце, если вы хотите использовать (require 'my-syntax). - person Colin Cochrane; 08.10.2010
comment
@ColinCochrane, как вы используете его для файлов журналов? - person Andriy Tykhonov; 14.10.2013

В руководстве по режимам EmacsWiki содержится немного дополнительной информации о создании основного режима, если вы хотите расширить его только подсветка синтаксиса.

person Joakim Hårsman    schedule 16.10.2010

Возможно, вам будет полезно посмотреть этот ответ, в котором есть указатель на код, который определяет второстепенный режим для выделения определенных ключевых слов - но только в строках и комментариях.

Второстепенный режим лучше, если все, что вам нужно, - это подсветка - меньше багажа.

Соответствующие части руководства относятся к функции 'font-lock-add-keywords и переменная font-lock-keywords.

person Trey Jackson    schedule 10.10.2010