2011-09-13 13 views

cevap

6

Büyük bir mod yazıyorsunuz, ancak font-lock-add-keywords, küçük modlarında da çalışıyor. C-h f RET font-lock-add-keywords ile belgelerine bakın. Yani burada

(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 
) 
2

buradan yeni bir sözdizimi kuralı dahil etmek konum modu uzatmak zorunda kalacak ya da basitçe hızlı ve kirli vurgulama için highlight-regexp kullanabilirsiniz.

+0

modunu uzatmak için - yani bunu istiyorum. Genişleyeceğim mod basit bir şekilde - benim tarafımdan da yazılır (dwim aracılığıyla sekme tamamlama, sözdizimi vurgulama ve akıllı yorumlar içerir). "hightlight-regexp" kesinlikle işe yarayacak. Cevabınız için teşekkürler. – Adobe

+0

Temel işaretleme modunu genişlettik [https://github.com/nibrahim/Hyde/blob/master/hyde-md.el]. Nasıl olduğuna bakabilirsin. Herhangi bir sözdizimi vurgulama yapmaz, ancak modunuzda 'font-lock-defaults' değişkenine ekleyerek bunu muhtemelen alabilirsiniz. –

+0

BTW: nasıl bir renk belirtebilirim? Bu onu belirtmez: '(highlight-regexp" \\ [\\ (. +? \\) \\] "'kırmızı-kırmızı)' ' – Adobe

2

bir özetini bulabilirsiniz: bir moda yeni anahtar kelimeler eklemek için

(font-lock-add-keywords 'emacs-lisp-mode 
    '(("foo" . font-lock-keyword-face))) 

Bu İfadelerinin sahip olabilir:

(font-lock-add-keywords 'emacs-lisp-mode '(("\\[\\(.+?\\)\\]" . font-lock-keyword-face))) 

(bu olmak köşeli parantez içinde her şeyin yazı yapar belirli bir rengin)

Geçerli mod ve geçerli emacs oturumu için yalnızca takip değerlendirebilirsiniz: (not - Burada bir mod belirtmeyen)

(font-lock-add-keywords nil '(("\\[\\(.+?\\)\\]" . font-lock-keyword-face))) 

kalıcı Sen moduna kanca olarak ekleyebilirsiniz yapmak için:

(add-hook 'bk-grmx-mode-hook 
      (lambda() 
      (font-lock-add-keywords nil '(("\\[\\(.+?\\)\\]" . font-lock-keyword-face))) 
     ) 
) 

Ayrıca mod şartnamesine ekleyebilirsiniz:

(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")