2013-09-02 6 views
5

私が書き込むフォントロックキーワードをデバッグするにはどうすればよいですか?例えばフォントロックキーワードをデバッグする方法エラー

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

は、メッセージバッファに次のようなメッセージが生成されます:

が間違った型引数のエラー時にコールスタックを見るために
Error during redisplay: (jit-lock-function 1) signaled (wrong-type-argument stringp 22) 

、私はtoggle-debug-on-errorを起動し、Emacsはまだ入りませんフォントロックエラー時にデバッガー。

+0

この特定の例でエラーが発生する理由については、http://stackoverflow.com/questions/18570224/how-does-a-progn-form-in-font-lock-keywords-work –

答えて

6

font-lock は、さまざまな方法で適用できます。デフォルトでは jit-lock-modeを使用して適用されます。これは を表示することができないときに適用されるという短所を持っています(遅延時間とも呼ばれます) メッセージ(またはデバッガを入力してください)、inf-loopになります。

  • 使用jit-lock-debug-mode(最近のEmacsの開発 コードに追加):だから は、問題を回避するには、2つの方法があります。
  • font-lock-support-modeをnilに設定してから、font-lockをオフにしてから をオンに戻します。

いずれのオプションも、デバッグが使用できる時刻 に適用されるようにフォントロックを変更する必要があります。

関連する問題