Quindi, ecco un riassunto: Per aggiungere nuove parole chiave a una modalità
(font-lock-add-keywords 'emacs-lisp-mode
'(("foo" . font-lock-keyword-face)))
Può avere espressioni regolari:
(font-lock-add-keywords 'emacs-lisp-mode '(("\\[\\(.+?\\)\\]" . font-lock-keyword-face)))
(questo rende fonte di tutto ciò che tra parentesi quadre di essere di un determinato colore)
Per la modalità corrente e la sessione corrente di emacs si può solo valutare la seguente:
(font-lock-add-keywords nil '(("\\[\\(.+?\\)\\]" . font-lock-keyword-face)))
(nota - non si specifica una modalità qui)
Per renderlo permanente è possibile aggiungerlo come un gancio per la modalità:
(add-hook 'bk-grmx-mode-hook
(lambda()
(font-lock-add-keywords nil '(("\\[\\(.+?\\)\\]" . font-lock-keyword-face)))
)
)
si può anche aggiungere che a una specifica modalità:
(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")
per estendere la modalità - che è quello che voglio. La modalità che ho intenzione di estendere è una semplice, anch'essa scritta da me (ha tab-completion, evidenziazione della sintassi e commenti intelligenti tramite dwim). 'hightlight-regexp' sicuramente funzionerà. Grazie per la tua risposta. – Adobe
Ho esteso la modalità di markdown di base [qui] (https://github.com/nibrahim/Hyde/blob/master/hyde-md.el). Puoi guardare quello per come. Non fa alcuna evidenziazione della sintassi, ma è possibile ottenerlo aggiungendo alla variabile 'font-lock-defaults' nella tua modalità. –
BTW: come si specifica un colore? Questo non lo specifica: '(highlight-regexp" \\ [\\ (. +? \\) \\] "'hi-red)' – Adobe