изменить цвет кода в блоке #if 0 ... #endif в режиме C / C ++ в Emacs 21.3.1 - PullRequest
4 голосов
/ 25 августа 2011

со ссылкой на ссылку, В режиме C / C ++ в Emacs измените грань кода в #if 0 ... # endif блоке, чтобы комментировать грань .

Я попробовал код, но, похоже, он не работает. Моя версия emacs - это GNU Emacs 21.3.1 для Linux.

Пожалуйста, дайте мне знать, где я ошибаюсь.

ТИА

1 Ответ

2 голосов
/ 27 августа 2011

cpp-highlight-mode можно заставить работать без взаимодействия с пользователем.Вот как я настроил мою:

(defun cpp-highlight-if-0/1 ()
  "Modify the face of text in between #if 0 ... #endif."
  (interactive)
  (setq cpp-known-face '(background-color . "dim gray"))
  (setq cpp-unknown-face 'default)
  (setq cpp-face-type 'dark)
  (setq cpp-known-writable 't)
  (setq cpp-unknown-writable 't)
  (setq cpp-edit-list
        '((#("1" 0 1
             (fontified nil))
           nil
           (background-color . "dim gray")
           both nil)
          (#("0" 0 1
             (fontified nil))
           (background-color . "dim gray")
           nil
           both nil)))
  (cpp-highlight-buffer t))

(defun jpk/c-mode-hook ()
  (cpp-highlight-if-0/1)
  (add-hook 'after-save-hook 'cpp-highlight-if-0/1 'append 'local)
  )

(add-hook 'c-mode-common-hook 'jpk/c-mode-hook)

Ключ выясняет, что cpp-highlight-mode смотрит на cpp-edit-list.Я настроил все так, как хотел интерактивный способ, а затем посмотрел на cpp-edit-list, в результате которого C-h v.

...