私はemacsにCのいくつかの追加のキーワードを色付けさせようとしていました.特に、私はRESTRICTを追加しました. やった:
(add-hook 'c-mode-common-hook
(lambda ()
(font-lock-add-keywords nil
'(("\\<\\(RESTRICT\\)\\>" . font-lock-keyword-face))) ))
ただし、これは (当然のことながら) emacs が "RESTRICT" のインスタンスをキーワード フェイスで色付けするだけです。
"restrict" (小文字) は、C キーワードに関する emacs の知識の一部です。したがって、次のように宣言すると:
int * restrict foo;
「int」はタイプフェイス、「restrict」はキーワードフェイス、「foo」は変数名フェイスで色分けされています。しかし、新しい RESTRICT ワードを使用して宣言すると、次のようになります。
int * RESTRICT bar;
「int」は従来通り、RESTRICTはkeyword-faceで色付けします。しかし、「バー」はそれに影響しません。私のルールがなければ、「RESTRICT」は変数名の顔に色付けされ、「バー」は変更されません。これは適切です。
とにかく、問題は次のとおりです。変数名面を使用して2番目のコードブロックでemacsの色を「バー」にするにはどうすればよいですか? 特定の方法で「RESTRICT」のインスタンスを色付けするだけでなく、emacs が実際に「RESTRICT」を言語のキーワードとして (変数名が色付けされるように) 処理するようにしたいと考えています。