添加新关键字时使用c模式中的face字体



我正在尝试自定义一些添加的单词,使其颜色与默认的人脸字体颜色不同。

这就是我正在做的:

(defconst lconfig-font-lock-faces  
  (list
   '(font-lock-function-name-face
     ((((class color)) (:foreground "DarkBlue"  :bold t))))
   '(font-lock-constant-face
     ((((class color)) (:foreground "Black"     :bold t))))

   '(font-lock-builtin-face
     ((((class color)) (:foreground nil))))
   '(font-lock-preprocessor-face
     ((((class color)) (:foreground nil))))
   )
  )
(autoload 'custom-set-faces "font-lock" "Set the color scheme" t)
(autoload 'font-lock-fontify-buffer "font-lock" "Fontify Buffer" t)
(progn (apply 'custom-set-faces lconfig-font-lock-faces)
       (add-hook 'c-mode-common-hook 'font-lock-fontify-buffer)
       (add-hook 'emacs-lisp-mode-hook 'font-lock-fontify-buffer)
       )
(global-font-lock-mode t)
(font-lock-add-keywords
 'c-mode
 '(
   ("^#[ t]*\(ifdef\|else\|ifndef\|if !?defined\|if\|elif\|endif\|ident\).*$" 1 font-lock-constant-face)                  ;#defines
   ("\(^#[ t]*define\|^#[ t]*include\|^#[ t]*undef\).*$" 1 font-lock-function-name-face)                                     ;other #s
 )
)

不幸的是,当打开一个c文件时,我看到#include和#define是黑色的。尽管它们应该与正则表达式匹配并变为深蓝色。此外,#ifdef和#endif是浅深色,而不是粗体。

感谢您的帮助。

以下是一些您可以修改的示例,例如,更改为c-模式而不是乳胶模式,并使用您的颜色和regexp进行修改。随着定义变得越来越复杂,它们在列表中出现的顺序可能会超过以前的定义——因此,如果你所做的应该有效,那么请检查它们出现的顺序。

(defvar lawlist-super-HotPink1 (make-face 'lawlist-super-HotPink1))
(set-face-attribute 'lawlist-super-HotPink1 nil :background "white" :foreground "HotPink1" :bold t :underline nil :font "Courier" :height 200)
(defvar lawlist-super-SeaGreen (make-face 'lawlist-super-SeaGreen))
(set-face-attribute 'lawlist-super-SeaGreen nil :background "white" :foreground "SeaGreen" :bold t :underline nil :font "Courier" :height 200)
(defvar lawlist-keywords-01
    (concat "\b\(?:"
        (regexp-opt (list "INSERT" "CLIENT" "RECIPIENT" "document-name" ))
    "\)\b"))
(defvar lawlist-keywords-02
    (list (concat "\b\(?:"
        (regexp-opt (list "FIXME" "TO-DO" "BUGS" ))
    "\)\b") 0 'lawlist-red t))
(font-lock-add-keywords 'latex-mode (list
    (list (concat "\({\)\(\\bf\)\(\\uline\)\({\)\(\(.\|n\)+?\)\(}\)\(}\)")
        '(1 lawlist-regular t)
        '(2 lawlist-red t)
        '(3 lawlist-blue t)
        '(4 lawlist-regular t)
        '(5 lawlist-bold-underline t)
        '(7 lawlist-regular t)
        '(8 lawlist-regular t))
    (list (concat
        "\("lawlist-keywords-01"\)") 1 'lawlist-bumble-bee t)
    lawlist-keywords-02
    (list (concat "\(\blawlist\b\)") 1 'lawlist-pink t)
))

(font-lock-add-keywords 'latex-mode '(
("INCLUDE\|REVISED" 0 lawlist-red t)
("\(foo\)-\(bar\)" (1 lawlist-super-orange t) (2 lawlist-super-cyan t))
("\(hello\) \(World\)" (1 lawlist-super-orange t) (2 lawlist-super-blue t))
) 'prepend)

编辑

(font-lock-add-keywords 'c-mode '(
("^#[ t]*\(ifdef\|else\|ifndef\|if !?defined\|if\|elif\|endif\|ident\).*$" (1 lawlist-super-HotPink1 t) )
("\(^#[ t]*define\|^#[ t]*include\|^#[ t]*undef\).*$" (1 lawlist-super-SeaGreen t))
) 'prepend)

相关内容

  • 没有找到相关文章

最新更新