2013-08-08 5 views
0

Я использую rhtml-mode в Emacs.Как изменить цвет хеша в rhtml-режиме в Emacs

Когда я пишу хешу таким образом, как :key => "value", тогда :key правильно раскрашен.

Но с key: "value" стиль раскраски не работает. Изменен только цвет :.

Я попытался немного изменить режим rhtml. Режим, кажется, загружает рубиновый режим внутри, если текст if привязан к тегу <%%>. Странно, когда я пишу хэш в рубиновом режиме, оба типа письма правильно раскрашены.

Я использую рубиновый режим по умолчанию в Emacs24.

Как найти место (по номеру строки), где задан цвет ключа Хэш?

ответ

0

Короткий ответ: C-h vrhtml-in-erb-keywords. Это откроет буфер, показывающий вам регулярное выражение для ключевых слов rhtml. Там будет ссылка прямо туда, где она определена в файле elisp. Вы можете увидеть его определение here.

Добавьте следующие строки в ваш файл .emacs:

(add-hook 'rhtml-mode 
      (lambda() 
      (font-lock-add-keywords nil 
      '(("\\([0-9a-zA-Z_]*:\\)" 1 
       font-lock-constant-face t))))) 

Это заставит Emacs применить окраску, определяемую font-lock-constant-face к чему-либо, что соответствует регулярному выражению "\\([0-9a-zA-Z_]*:\\)". Это может быть больше, чем вы хотите, поэтому вы можете настроить его.

Я не уверен, что есть особенно простой способ узнать, где именно находится цвет для данного ключевого слова. Вы всегда можете сделать M-xdescribe-face с точкой над словом, на котором вы хотите получить информацию. Это скажет вам, как Emacs считает, что он должен быть окрашен - что-то вроде font-lock-keyword-face. C-h vfont-lock-keyword расскажет вам, как Emacs решил это, но не очень полезным способом.

Простейшим способом, вероятно, является просто открыть исходный код для режима, в котором вы находитесь, и выполнить поиск в том месте, где он определяет ключевые слова. Вы можете открыть исходный код C-h frhtml-mode, который откроет буфер справки со ссылкой на источник.