Belirli bir mod için sözdizimi vurgulaması nasıl özelleştirilir


10

lua-mode.elDiğer büyük modları etkilemeden sözdizimi vurgulamamı değiştirmek istiyorum .

Sadece bir örnek olarak, ben gibi "anahtar kelimeleri" istiyorum if, then, elsezaman içinde kalın ve mavi yazı biçimiyle olmak lua-modebir düzenleme sırasında aynı vurgulama tarzı kalmadan (yerine varsayılan pembe) .texAUCTeX dosyayı.

Şimdiye kadar benim .emacsve daha sonra da aşağıdaki kodu koymak için denedim lua-mode.el:

(custom-set-faces
  '(font-lock-builtin-face ((t (:foreground "maroon3"))))
  '(font-lock-comment-face ((t (:foreground "green4"))))
  '(font-lock-keyword-face ((t (:foreground "dark blue" :weight bold))))
  '(font-lock-string-face ((t (:foreground "dark cyan")))))

ama bu şekilde çalıştığım her mod için aynı sözdizimi vurgulamasını alıyorum.

Bu soru ilgili olabilir: Büyük modu değiştirmeden sözdizimi vurgulamayı değiştir?

Bunu yapmanın (umarım basit ve genel) bir yolu var mı?

Yanıtlar:


8

Yüzler küreseldir, bu nedenle özelliklerini herhangi bir yerde değiştirmek, fark ettiğiniz gibi her yerde değiştirir. Yerel olarak değiştirmek için yüzün bir kopyasını oluşturun, kopyadaki öznitelikleri değiştirin ve ardından eski yüzü arabellek başına kopyaya yerel olarak ayarlamak için bir mod kancası kullanın. Aşağıdaki örnek bunu yapar font-lock-comment-face, ancak aynı büyütme herhangi bir yüz için işe yarayacaktır.

(make-variable-buffer-local 'font-lock-comment-face)
(copy-face 'font-lock-comment-face 'lua-comment-face)
(set-face-foreground 'lua-comment-face "green4")

(add-hook 'lua-mode-hook
          (lambda ()
            (setq font-lock-comment-face 'lua-comment-face)            
            ))
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.