Basit bir emacs modu yazarım. Açıkça her şeyi, örn. köşeli ayraçlar renklendirilmelidir. Böyle Yetirdiği olmalı:Emacs modu: köşeli parantez içinde bu şeyin nasıl belirtilmesi gerektiği
((if thing is in square brackets) . font-lock-string-face)
Basit bir emacs modu yazarım. Açıkça her şeyi, örn. köşeli ayraçlar renklendirilmelidir. Böyle Yetirdiği olmalı:Emacs modu: köşeli parantez içinde bu şeyin nasıl belirtilmesi gerektiği
((if thing is in square brackets) . font-lock-string-face)
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
)
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.
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")
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
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. –
BTW: nasıl bir renk belirtebilirim? Bu onu belirtmez: '(highlight-regexp" \\ [\\ (. +? \\) \\] "'kırmızı-kırmızı)' ' – Adobe