Я пишу функцию завершения для zsh
. Я взял за основу cargo
функцию завершения . По большей части он работает нормально, за исключением параметров -h
и --help
. Результат завершения для этих функций не выровнен и повторен многократно (представлен ниже). Это происходит только тогда, когда в структуре корпуса присутствуют функции управления (_describe
, _arguments
и т. Д.). Почему это происходит и как я могу исправить это поведение?
Функция завершения:
#compdef test
_test() {
local context state state_descr line
typeset -A opt_args
_arguments \
"(- 1 *)"{-h,--help}"[Help]" \
"1: :->command" \
"*:: :->args"
case $state in
command)
_alternative 'arguments:custom arg:(a b c)'
;;
args)
_arguments \
"-a[All]" \
"-n[None]"
esac
}
_test
Вывод оболочки:
> test -[TAB]
--help
-h
-- Help
--help
-h
-- Help
--help
-h
-- Help