Установить цвет для значений с плавающей запятой в режиме c в Emacs с использованием цветовой темы?

#emacs #syntax-highlighting

#emacs #подсветка синтаксиса

Вопрос:

Я использую EmacsForMacOsX, версия 23.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. О боже, способ раскрашивать целые числа вместо чисел с плавающей запятой был бы ПОТРЯСАЮЩИМ для глупых языков, которые беззвучно понимают числа на основе контекста.

2. Это было бы, не так ли? 🙂 Теперь, если бы я мог просто выяснить, как это сделать..

3. Пока что мне удалось найти cc-mode.el — моей первой попыткой будет добавить лицо для регулярного выражения » d * . d *».

Ответ №1:

Я нашел решение по адресу: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)