Emacs 为字体锁定指定规则
Emacs Specifying Rules for font-lock
我正在将所学的解析技术付诸实践。我正在尝试在 Emacs 中编写一种编程模式,因此我可以利用语法突出显示等功能。不幸的是,字体锁定不起作用。在 Google 上搜索并遵循教程后发现没有任何结果。下面是我的代码。任何建议表示赞赏。
;;;###autoload
(defgroup use-mode nil
"Mode for editing Use source files."
:group 'languages)
;;;###autoload
(defcustom use-mode-hook nil
"Hook run when use-mode is started.")
(defvar use-mode-map (make-sparse-keymap)
"Keymap for use-mode.")
;;;###autoload
(add-to-list 'auto-mode-alist '("\.use\'" . use-mode))
(defvar use-keywords-1 '("use" . font-lock-keyword-face)
"First level of font-lock in Use")
(defvar use-font-lock-keywords use-keywords-1
"Code highlighting.")
;;;###autoload
(define-derived-mode use-mode prog-mode "Use"
"Major mode for editing Use source files."
(setq font-lock-defaults '(use-font-lock-keywords)))
(provide 'use-mode)
定义字体锁定关键字时,应提供条目列表。所以,如果你替换:
(defvar use-keywords-1 '("use" . font-lock-keyword-face)
"First level of font-lock in Use")
有了以下内容,它将起作用:
(defvar use-keywords-1 '(("use" . font-lock-keyword-face))
"First level of font-lock in Use")
请注意,除非您打算编写一个非常高级的系统,否则您不需要提供不同级别,因此您可以删除 *-1
变量。
(以防万一你还没有看到它,我想推荐我的一个包,font-lock-studio。它是一个用于 font-lock 关键字的交互式调试器。)
我正在将所学的解析技术付诸实践。我正在尝试在 Emacs 中编写一种编程模式,因此我可以利用语法突出显示等功能。不幸的是,字体锁定不起作用。在 Google 上搜索并遵循教程后发现没有任何结果。下面是我的代码。任何建议表示赞赏。
;;;###autoload
(defgroup use-mode nil
"Mode for editing Use source files."
:group 'languages)
;;;###autoload
(defcustom use-mode-hook nil
"Hook run when use-mode is started.")
(defvar use-mode-map (make-sparse-keymap)
"Keymap for use-mode.")
;;;###autoload
(add-to-list 'auto-mode-alist '("\.use\'" . use-mode))
(defvar use-keywords-1 '("use" . font-lock-keyword-face)
"First level of font-lock in Use")
(defvar use-font-lock-keywords use-keywords-1
"Code highlighting.")
;;;###autoload
(define-derived-mode use-mode prog-mode "Use"
"Major mode for editing Use source files."
(setq font-lock-defaults '(use-font-lock-keywords)))
(provide 'use-mode)
定义字体锁定关键字时,应提供条目列表。所以,如果你替换:
(defvar use-keywords-1 '("use" . font-lock-keyword-face)
"First level of font-lock in Use")
有了以下内容,它将起作用:
(defvar use-keywords-1 '(("use" . font-lock-keyword-face))
"First level of font-lock in Use")
请注意,除非您打算编写一个非常高级的系统,否则您不需要提供不同级别,因此您可以删除 *-1
变量。
(以防万一你还没有看到它,我想推荐我的一个包,font-lock-studio。它是一个用于 font-lock 关键字的交互式调试器。)