如何为Just任务的参数配置合理的自动补全功能?
Just任务参数自动补全实现方案
目前Just官方提供的基础补全(just --completions bash)仅支持任务名补全,不支持任务参数的自定义补全,但可以通过扩展Bash补全脚本实现需求:
针对固定可选值的参数补全(如task-a的x/y/z)
- 导出Just官方补全脚本到本地文件:
~/.cargo/bin/just --completions bash > ~/.just-completion.bash - 在该脚本末尾添加自定义补全逻辑:
_just_task_a_params() { COMPREPLY=( $(compgen -W "x y z" -- "${COMP_WORDS[COMP_CWORD]}") ) } # 关联task-a和对应的补全函数 complete -F _just_task_a_params -o default just task-a - 重新加载补全脚本:
source ~/.just-completion.bash
之后输入just task-a 按Tab就能得到x/y/z的补全建议,输入前缀也能自动匹配补全。
针对特定路径文件的参数补全(如task-b)
同样在补全脚本末尾添加:
_just_task_b_params() { # 指定要补全的目录路径,可添加过滤规则如仅匹配.sh文件 local target_dir="./src/scripts/" COMPREPLY=( $(compgen -f -X "!*.sh" -- "${target_dir}${COMP_WORDS[COMP_CWORD]}") ) # 移除路径前缀,仅保留文件名 COMPREPLY=( "${COMPREPLY[@]#${target_dir}}" ) } complete -F _just_task_b_params -o default just task-b
如果不需要文件过滤,去掉-X "!*.sh"参数即可。
注意事项
- Just版本更新后,官方补全脚本可能会变更,需要重新添加自定义逻辑
- 自定义补全函数的命名可自行调整,只要与
complete命令关联正确即可
内容的提问来源于stack exchange,提问作者Zeke Fast
相关产品推荐
相关产品推荐

