Я пишу простой режим emacs. Как мне явно указать, что все вещи, например. квадратные скобки должны быть окрашены. Должно быть что-то вроде этого:
( (if thing is in square brackets) . font-lock-string-face)
Я пишу простой режим emacs. Как мне явно указать, что все вещи, например. квадратные скобки должны быть окрашены. Должно быть что-то вроде этого:
( (if thing is in square brackets) . font-lock-string-face)
Я предполагаю, что вы пишете основной режим, но font-lock-add-keywords
работает и в второстепенных режимах. Ознакомьтесь с его документацией с помощью C-h f RET font-lock-add-keywords
.
(define-derived-mode my-mode text-mode "mymode"
;; some init code
(font-lock-add-keywords nil '(("\\[\\(.*\\)\\]"
1 font-lock-warning-face prepend)))
;; some more init code
)
Итак, вот краткое изложение: чтобы добавить новые ключевые слова в режим
(font-lock-add-keywords 'emacs-lisp-mode
'(("foo" . font-lock-keyword-face)))
Он может иметь регулярные выражения:
(font-lock-add-keywords 'emacs-lisp-mode '(("\\[\\(.+?\\)\\]" . font-lock-keyword-face)))
(это делает шрифт всего в квадратных скобках заданного цвета)
Для текущего режима и текущего сеанса emacs вы можете просто оценить следующее:
(font-lock-add-keywords nil '(("\\[\\(.+?\\)\\]" . font-lock-keyword-face)))
(примечание. Здесь вы не указываете режим)
Чтобы сделать его постоянным, вы можете добавить его как хук в режим:
(add-hook 'bk-grmx-mode-hook
(lambda ()
(font-lock-add-keywords nil '(("\\[\\(.+?\\)\\]" . font-lock-keyword-face)))
)
)
Вы также можете добавить его в спецификацию режима:
(define-derived-mode bk-grmx-mode fundamental-mode
(setq font-lock-defaults '(bk-grmx-keyWords))
;; the next line is added:
(font-lock-add-keywords nil '(("\\[\\(.+?\\)\\]" . font-lock-keyword-face)))
(setq mode-name "bk-grmx-mode")
Вам нужно либо расширить режим, в котором вы находитесь, чтобы включить новое правило синтаксиса, либо вы можете просто использовать highlight-regexp
для быстрой и грязной подсветки.
hightlight-regexp
обязательно сработает. Спасибо за Ваш ответ.
- person Adobe; 13.09.2011
font-lock-defaults
в вашем режиме.
- person Noufal Ibrahim; 13.09.2011
(highlight-regexp "\\[\\(.+?\\)\\]" 'hi-red)
- person Adobe; 13.09.2011
face
, который вы должны customize
.
- person Noufal Ibrahim; 13.09.2011
(highlight-regexp REGEXP &optional FACE)
? Потому что я пишу режим...
- person Adobe; 13.09.2011