SMIE 旨在为代码结构导航和其他依赖代码语法结构的各类功能提供一站式解决方案,
尤其适用于自动缩进。主入口函数是 smie-setup,
通常在主模式初始化时调用。
设置 SMIE 结构导航与缩进功能。
grammar 是由 smie-prec2->grammar 生成的文法表。
rules-function 是一组缩进规则,供 smie-rules-function 使用。
keywords 为附加参数,可包含以下关键字:
:forward-token fun:指定向前词法分析器。
:backward-token fun:指定向后词法分析器。
调用该函数后,forward-sexp、backward-sexp、transpose-sexps
等命令即可正确处理语法表已支持的配对括号之外的结构元素。
例如,如果提供的文法足够精确,transpose-sexps
可以根据语言优先级规则正确交换 + 运算符的两个参数。
调用 smie-setup 也足以让 TAB 缩进按预期工作,
扩展 blink-matching-paren 以支持 begin...end 之类的结构,
并提供一些可绑定到主模式按键映射的命令。
关闭最近打开但尚未闭合的代码块。
功能类似 down-list,但同时会处理括号之外的嵌套标记,如 begin...end。