Установить цвет для значений с плавающей точкой в ​​c-режиме под Emacs, используя Color-Theme? - PullRequest
1 голос
/ 24 апреля 2011

Я использую EmacsForMacOsX, v23.3.1, и мне интересно, как я могу изменить цвет для значений с плавающей запятой celsiusFloat = (5.0/9.0);, чтобы он отличался от тех, которые я получаю из моего текущегоcolor-theme-billw тема для целых чисел age = 23;.

Я сомневаюсь, что StackOverflow окрашивает их по-разному.


РЕДАКТИРОВАТЬ: Мой первоначальный подход к добавлению регулярного выражения для плавающей запятой d*\.d* в cc-mode.el, очевидно, был не тем способом, которым Emacs работает с подсветкой синтаксиса (также известной как шрифт).блокировка) - дальнейшие исследования привели меня на следующий веб-сайт: http://www.gnu.org/software/emacs/elisp/html_node/Customizing-Keywords.html

Редактировать 2: Кажется, я нашел свой ответ в http://www.emacswiki.org/emacs/AddKeywords иhttp://www.gnu.org/software/emacs/manual/html_node/emacs/Font-Lock.html#Font-Lock

(add-hook 'c-mode-hook (lambda () (font-lock-add-keywords nil '(("[0-9]+\\.[0-9]+" 1 font-lock-warning-face t)))))

1 Ответ

0 голосов
/ 24 апреля 2011

Я нашел решение по адресу: http://hbfs.wordpress.com/2010/03/02/adding-keywords-in-emacs/

Первый:

(make-face 'font-lock-special-macro-face) ;; Create a new face
(set-face-foreground 'font-lock-special-macro-face "pink") ;; Set the colour

Затем мы добавляем регулярные выражения в список ключевых слов и связываем каждое регулярное выражение с гранью:

(defun add-custom-keyw()
  "adds a few special keywords for c and c++ modes"
  ;
  (font-lock-add-keywords nil
   '(
     ("[0-9]+\\.[0-9]+" . 'font-lock-special-macro-face )

     ; more of those would go here
     )
   )
 )

В последний раз мы подключаем его к нашему режиму:

(add-hook 'c-mode-hook 'add-custom-keyw)
...