24.7.9.2 缓冲区修改后需要高亮的区域

当缓冲区被修改时,字体锁定默认重新高亮的区域是覆盖修改位置的最小整行序列。 虽然这在大多数情况下工作良好,但某些场景下并不适用—— 例如,某次修改改变了更早行上文文本的语法含义。

你可以通过设置以下变量来扩大(甚至缩小)需要重新高亮的区域:

Variable: font-lock-extend-after-change-region-function

这个缓冲区局部变量要么为 nil,要么是一个函数, 供字体锁定模式调用以确定需要扫描并高亮的区域。

该函数接收三个参数:来自 after-change-functions 的标准参数 begendold-len(see Change Hooks)。 它应当返回一个 cons 对,表示要高亮区域的起始和结束缓冲区位置(按此顺序), 或返回 nil(表示按标准方式选择区域)。 该函数需要保持当前点、匹配数据和当前限制不变。 其返回的区域可以在行中间开始或结束。

由于该函数在每次缓冲区修改后都会调用,因此必须保证足够高效。

emacs

Emacs

org-mode

Orgmode

Donations

打赏

Copyright

© Jasper Hsu

Creative Commons

Creative Commons

Attribute

Attribute

Noncommercial

Noncommercial

Share Alike

Share Alike