本节介绍主模式可通过 font-lock-defaults 中的
other-vars 进行设置的其他变量(see Font Lock 基础)。
若该变量非 nil,则其值应为一个无参函数,
用于为命令 M-x font-lock-fontify-block 选择一段外围文本范围以重新高亮。
该函数应通过设置区域来告知所选范围。
合适的选择是大小足以获得正确高亮效果、但又不至于过大而导致重新高亮变慢的文本范围。
典型取值:编程模式使用 mark-defun,文本模式使用 mark-paragraph。
该变量指定由字体锁定模式管理的额外属性(除 font-lock-face 之外)。
它由 font-lock-default-unfontify-region 使用,该函数默认仅管理 font-lock-face 属性。
若你希望字体锁定同时管理其他属性,必须在 font-lock-keywords 的 facespec 中指定这些属性,
并将其加入本列表。See 基于搜索的字体高亮。
用于对整个缓冲区执行高亮的函数。默认值为 font-lock-default-fontify-buffer。
用于取消整个缓冲区高亮的函数。在关闭字体锁定模式时使用。
默认值为 font-lock-default-unfontify-buffer。
用于对指定区域执行高亮的函数。它接收两个参数:区域起始位置和结束位置,
以及可选的第三个参数 verbose。若 verbose 非 nil,
函数应打印状态信息。默认值为 font-lock-default-fontify-region。
用于取消指定区域高亮的函数。它接收两个参数:区域起始位置和结束位置。
默认值为 font-lock-default-unfontify-region。
用于声明某区域的高亮已过期的函数。它接收两个参数:区域起始位置和结束位置。
该变量的默认值为 font-lock-after-change-function。
用于确保当前缓冲区指定区域已完成高亮的函数。
它接收两个参数:区域起始位置和结束位置。
该变量的默认函数会在缓冲区未高亮时调用 font-lock-default-fontify-buffer,
效果是确保缓冲区所有可访问部分均被高亮。
该函数告知字体锁定模式:在需要对当前缓冲区某部分执行高亮或重新高亮时,
运行 Lisp 函数 function。
它会在调用默认高亮函数之前先调用 function,并传入两个参数 start 和 end,
指明需要高亮或重新高亮的区域。
若 function 自身执行了高亮,可返回形如 (jit-lock-bounds beg . end) 的列表,
表明其实际高亮的区域边界;即时(“JIT”)字体锁定会利用该信息优化后续重绘周期,
以及后续调用 function 时传入的缓冲区文本区域。
可选参数 contextual 非 nil 时,会强制字体锁定模式始终对缓冲区中语法相关的部分重新高亮,
而不仅是修改过的行。该参数通常可以省略。
当字体锁定在缓冲区启用时,若 font-lock-keywords-only(see 语法字体锁定)值为 nil,
则会以非 nil 的 contextual 调用此函数。
若 function 此前已通过 jit-lock-register 注册为高亮函数,
本函数将取消其注册。
这是一个次要模式,用于辅助调试由即时字体锁定运行的代码。
启用该模式后,即时字体锁定在重绘周期中原本会抑制 Lisp 错误而运行的大部分代码,
将改为由定时器执行。因此该模式允许使用 debug-on-error(see 发生错误时进入调试器)
和 Edebug(see Edebug)等调试工具查找并修复字体锁定代码及其他由即时字体锁定运行的代码中的问题。
开发与调试字体锁定时另一个有用的命令是 font-lock-debug-fontify,
参见 Font Lock 基础。