语法字体高亮通过语法表(see Syntax Tables)查找并高亮语法相关的文本。
若启用,它会在基于搜索的高亮之前运行。变量
font-lock-syntactic-face-function(见下文说明)决定对哪些语法结构进行高亮。
有多个变量会影响语法高亮,你应当通过 font-lock-defaults 进行设置(see Font Lock 基础)。
每当字体锁定模式对一段文本执行语法高亮时,都会先调用
syntax-propertize-function 指定的函数。主模式可以利用它来应用
syntax-table 文本属性,以便在特殊场景下覆盖缓冲区自身的语法表。
See Syntax Properties。
若该变量值为非 nil,字体锁定将**不执行语法高亮**,
仅基于 font-lock-keywords 做基于搜索的高亮。
该值通常由字体锁定模式根据 font-lock-defaults 中的
keywords-only 元素自动设置。若值为 nil,
字体锁定会调用 jit-lock-register(see 字体锁定其他变量),
以便在某行被修改后,自动重新高亮缓冲区后续文本,以反映修改带来的新语法上下文。
若只想使用**语法高亮**,应将此变量设为非 nil,
同时将 font-lock-keywords 设为 nil(see Font Lock 基础)。
该变量保存用于高亮注释和字符串的语法表。
它通常由字体锁定模式根据 font-lock-defaults 中的
syntax-alist 元素设置。若值为 nil,
语法高亮将使用缓冲区自身的语法表(即函数 syntax-table 返回的值;see Syntax Table Functions)。
若该变量非 nil,其值应为一个函数,
用于为给定的语法元素(字符串或注释)决定使用哪种外观。
该函数接收一个参数:由 parse-partial-sexp 返回的当前点解析状态,
并应返回一个外观。默认函数对注释返回 font-lock-comment-face,
对字符串返回 font-lock-string-face(see 字体锁定专用外观)。
该变量通常通过 font-lock-defaults 中的 “other” 元素设置:
(setq-local font-lock-defaults
`(,python-font-lock-keywords
nil nil nil
(font-lock-syntactic-face-function
. python-font-lock-syntactic-face-function)))