如何调试我写的字体锁定关键字?例如
(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 :(得分:6)
字体锁 可以以不同的方式应用。默认情况下,它使用 jit-lock-mode,它将“lazily”(又名“just-in-time”)应用于其中 它是在我们无法显示的时候应用的缺点 消息(或进入调试器),因为这将使我们inf循环。所以 有两种方法可以解决这个问题:
jit-lock-debug-mode
(最近添加到Emacs的开发中
码)。font-lock-support-mode
设置为nil,然后关闭字体锁定
回来。两个选项都应该更改font-lock,以便一次应用它 可以使用调试的地方。