2017-01-18 7 views
0

Я редактирую некоторые собственные конфигурационные файлы, которые Emacs автоопределяет как Conf[JavaProp], то есть используя conf-javaprop-mode от conf-mode.el. Этот режим почти идеально, за исключением того, что эти файлы не имеют комментарии с или с ++ стиль, т.е.Настройка режима emacs conf

//foo 

или

/* foo */ 

должны не быть выделены в качестве комментариев. Может ли кто-нибудь предоставить мне некоторые рекомендации относительно того, как я могу сделать свои собственные расширения до conf-mode и автоматически загружать их или что-то еще из моего .emacs?

+0

Вы можете вручную переключить режим на 'конф-окна-mode' или' конф -unix-mode'? Я думаю, что стиль '//' comment - это особенность 'conf-javaprop-mode'. – 0x5453

ответ

0

Чтобы задать синтаксис комментария, вы можете использовать conf-mode-initialize. Например, здесь приведено простое значение для .ctags, где # должен начинать комментарий только после пробелов. Просто измените, какой режим conf вы хотите наследовать, и удалите таблицу свойств/таблицы синтаксиса, если вы не хотите, чтобы эти изменения также были изменены.

(require 'conf-mode) 

(defun dotctags-propertize (start end) 
    (goto-char start) 
    (funcall 
    (syntax-propertize-rules 
    ("^\\s-*#.*" (0 "<"))) 
    (point) end)) 

(defvar dotctags-mode-syntax-table 
    (let ((st (make-syntax-table conf-windows-mode-syntax-table))) 
    (modify-syntax-entry ?\; "." st) 
    (modify-syntax-entry ?\n ">" st) 
    st)) 

;;;###autoload 
(define-derived-mode dotctags-mode conf-windows-mode "Conf[cTags]" 
    "Conf Mode for ctags config." 
    :syntax-table dotctags-mode-syntax-table 
    (conf-mode-initialize "#") 
    (setq-local comment-end "") 
    (setq-local syntax-propertize-function #'dotctags-propertize)) 

;;;###autoload 
(add-to-list 'auto-mode-alist '("\\.ctags\\'" . dotctags-mode)) 
0

Создайте свой собственный производный режим из конф-режиме, а затем сделать его режим по умолчанию для файла propietary

(define-derived-mode conf-my-mode conf-unix-mode "Conf[MyMode]" 
    "Conf mode of my own" 
    (conf-mode-initialize "#" 'conf-my-mode-font-lock-keywords)) 
(add-to-list 'auto-mode-alist '("\\.your-extension\\'" . conf-my-mode)) 
Смежные вопросы