nasıl

2013-09-02 19 views
5

nasıl yazmak yazı kilit anahtar debug yazı kilit anahtar hata hata ayıklamak için? Örneğinnasıl

(progn 
    (font-lock-add-keywords 
    nil 
    '(
    ;; ("hi1" . 'success) 
    ("hi2" . (intern (concat "warn" "ing"))) 
    )) 
    (font-lock-fontify-buffer)) 

Mesajlar tampon aşağıdaki iletiyi üretecektir:

yanlış tipi-argüman hatası üzerine çağrı yığını görmek için
Error during redisplay: (jit-lock-function 1) signaled (wrong-type-argument stringp 22) 

, ben toggle-debug-on-error çağırmak ve Emacs hala girmezse yazı tipi kilit hatası üzerine hata ayıklayıcı.

+0

biz söz konusu örneğin bir hata alıyorum neden olarak, http://stackoverflow.com/questions/18570224/how-does-a-progn-form-in-font-lock-keywords-work –

cevap

6

font-kilidi farklı şekillerde uygulanabilir. Varsayılan olarak uygular jit-lock-modu kullanarak uygulanır o "tembel" (aka "tam zamanında"), biz mesajı gösteremez bir anda uygulandığını dezavantajı olan (ya da hata ayıklayıcısını girin) çünkü bu bizi döngü dışı bırakabilir.

  • Kullanım jit-lock-debug-mode (son zamanlarda Emacs gelişim koduna eklendi): Yani soruna için iki yol vardır. nil
  • Seti font-lock-support-mode, kapatıp yazı-kilitlemek ve sonra geri açın.

Her iki seçenek de, yazı tipi kilidini, hata ayıklamanın kullanılabileceği bir zamanda uygulandığı şekilde değiştirmelidir.