我正在编辑Emacs自动检测为Conf[JavaProp]
的一些专有配置文件,即使用conf-javaprop-mode
中的conf-mode.el
。该模式几乎是完美的,除了这些文件没有c或c ++样式的注释,即
//foo
或
/* foo */
不应突出显示为评论。任何人都可以向我提供一些指导,说明我如何制作自己的conf-mode
扩展程序并自动加载它们或.emacs
中的任何内容吗?
答案 0 :(得分:0)
您可以使用((100, 200), 270, 0, (200, 200))
设置注释语法。例如,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))
答案 1 :(得分:0)
从conf模式创建自己的派生模式,然后将其作为专有文件的默认模式
(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))