1

我正在尝试更改预处理器指令的默认字体#define#include而不使用font-lock-preprocessor-face. 相反,我想使用font-lock-add-keywords方法和正则表达式。我也希望这仅适用于汇编和 C 模式。

4

2 回答 2

1

如果您只想重新定义font-lock-preprocessor-face. c-mode原因是 font-lock 已经使用了正则表达式并且它已经很慢了。现在您将使用完全相同的正则表达式第二次解析完全相同的源。

我曾经使用一些自定义正则表达式来字体化 C++,但一年后将其关闭,因为它让我放慢了速度。

C-v您可以通过打开一个 50k 的源并使用一堆时间来检查它有多慢。现在再试一次find-file-literally- 很好。

改为这样做:

(make-face 'c-preprocessor-face)
(set-face-background 'c-preprocessor-face "blue")
(set-face-foreground 'c-preprocessor-face "yellow")
(add-hook 'asm-mode-hook
          (lambda ()
            (set (make-local-variable 
                  'font-lock-comment-face)
                 'c-preprocessor-face)))
(add-hook 'c-mode-hook
      (lambda()
            (set (make-local-variable 
                  'c-preprocessor-face-name)
                 'c-preprocessor-face)))
于 2013-08-03T07:19:05.817 回答
0

您是否看过我的commentanswer您之前的问题,这与当前线程基本上是相同的问题?

添加新关键字时c模式下的字体

于 2013-08-03T01:27:06.650 回答