Некоторое время назад я разработал режим GNU Emacs для редактирования конфигурационных файлов операционной системы Embox. Кроме всестороннего изучения Emacs Lisp мне потребовалось разобраться со структурой модуля режима, а также процессом и требованиями к публикации пакетов в MELPA, наиболее популярном архиве пакетов для GNU Emacs. В этом руководстве я расскажу, что нужно знать, чтобы написать свой собственный режим, и как опубликовать свой собственный пакет.
;;;###autoload
(define-derived-mode mybuild-mode prog-mode "Mybuild"
"Major mode for editing Mybuild files from Embox operating system."
:syntax-table mybuild-mode-syntax-table
(setq-local comment-start "// ")
(setq-local comment-end "")
(setq-local indent-tabs-mode nil)
(setq-local indent-line-function 'mybuild-mode-indent-line)
(setq-local font-lock-defaults '(mybuild-highlights)))