завершение zsh с вложенными функциями управления - PullRequest
0 голосов
/ 09 октября 2019

Я пишу функцию завершения для 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
...