编写补全函数教程
1. 语言模式指定
在某些场景下,需要指定编程语言名称作为参数,以便选择合适的规则实现诸如颜色语法高亮等功能。我们可以这样指定要补全的语言:
'-lm[specify language mode]:language mode:(Ada C Fortran NEdit\ Macro)'
甚至还能为每个匹配项指定描述:
'-lm: :((CSS\:Cascading\ style\ sheets HTML\:Hypertext\ Markup\ Language))'
需要注意的是,冒号要用反斜杠转义,避免被解释为另一个参数的开始;描述中的空格也需要进行转义。
2. 状态处理
对于补全支持的语言列表,硬编码列表并非理想选择,因为可以通过新版本或用户添加新语言支持。更好的做法是自动生成语言列表。
可以在 _arguments 规范中指定状态名称,例如对于 -lm 可以这样写:
'-lm[specify language mode]:language mode:->languages'
当 _arguments 返回时,会设置一些变量:
- state :包含需要补全的状态列表的数组。
- context :包含与每个状态关联的 zstyle </
超级会员免费看
订阅专栏 解锁全文
1576

被折叠的 条评论
为什么被折叠?



