特定のモードのみの構文強調表示をカスタマイズする方法


10

lua-mode.el他の主要なモードに影響を与えずに、構文の強調表示を変更したいと思います。

ただ、一例として、私のような「キーワード」を希望ifthenelseときに大胆かつ青色の書体であることをlua-mode編集しているときに、同じハイライトスタイルをせずに(代わりにデフォルトのピンクの).texAUCTeXでファイルを。

これまでのところ、次のコードをmyに入れてから、my .emacsにも入れようとしましたlua-mode.el

(custom-set-faces
  '(font-lock-builtin-face ((t (:foreground "maroon3"))))
  '(font-lock-comment-face ((t (:foreground "green4"))))
  '(font-lock-keyword-face ((t (:foreground "dark blue" :weight bold))))
  '(font-lock-string-face ((t (:foreground "dark cyan")))))

しかし、この方法では、使用するすべてのモードで同じ構文の強調表示が得られます。

この質問は関連している可能性があります:メジャーモードを変更せずに構文の強調表示を変更しますか?

(うまくいけばシンプルで一般的な)これを行う方法はありますか?

回答:


8

顔はグローバルなので、気づいたように、属性をどこでも変更するとどこでも変更されます。ローカルで変更するには、顔のコピーを作成し、コピーの属性を変更してから、モードフックを使用して、古い顔をバッファごとにコピーにローカルに設定します。以下のサンプルはに対してそれをfont-lock-comment-face行いますが、同じ呪文はどの顔に対しても機能します。

(make-variable-buffer-local 'font-lock-comment-face)
(copy-face 'font-lock-comment-face 'lua-comment-face)
(set-face-foreground 'lua-comment-face "green4")

(add-hook 'lua-mode-hook
          (lambda ()
            (setq font-lock-comment-face 'lua-comment-face)            
            ))
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.