关于 hooks.ps1
- 每个补全都有一个
hooks.ps1文件,用于动态添加补全项 - 它需要提供一个
handleCompletions函数 - 该函数会接收一个参数
$completions,它是一个数组,包含从 json 中解析的所有补全项 - 该函数需要返回一个新的数组,它将作为最终的补全数据被
PSCompletions使用
- 如果
config.json中没有定义hooks,它永远不会调用 - 只有
config.json中定义了hooks,且符合以下条件才会调用它hooks的值为true,且没有通过psc completion xxx enable_hooks 0禁用它hooks的值为false,但通过psc completion xxx enable_hooks 1启用了它
powershell
function handleCompletions($completions) {
$list = @()
# $input_arr = $PSCompletions.input_arr
$filter_input_arr = $PSCompletions.filter_input_arr # Without -*
# switch ($filter_input_arr[-1]) {
# 'add' {
# $list += $PSCompletions.return_completion('aaa', "Add aaa")
# }
# }
$list += $PSCompletions.return_completion('example', "It's from hooks")
return $list + $completions
}TIP
函数中使用 $PSCompletions.return_completion 来添加新的补全项
- 第一个参数是补全项的名称
- 第二个参数是补全项的帮助信息(tip)
- 第三个参数是可选的,用于指定补全项的特殊符号
SpaceTab:~OptionTab:?WriteSpaceTab:!