#compdef ltrs

autoload -U is-at-least

_ltrs() {
    typeset -A opt_args
    typeset -a _arguments_options
    local ret=1

    if is-at-least 5.2; then
        _arguments_options=(-s -S -C)
    else
        _arguments_options=(-s -C)
    fi

    local context curcontext="$curcontext" state line
    _arguments "${_arguments_options[@]}" : \
'-c+[Specify WHEN to colorize output]' \
'--color=[Specify WHEN to colorize output]' \
'--hostname=[Server'\''s hostname]:HOSTNAME:_default' \
'-p+[Server'\''s port number, with the empty string referring to no specific port]:PRT:_default' \
'--port=[Server'\''s port number, with the empty string referring to no specific port]:PRT:_default' \
'*-v[Increase logging verbosity]' \
'*--verbose[Increase logging verbosity]' \
'(-v --verbose)*-q[Decrease logging verbosity]' \
'(-v --verbose)*--quiet[Decrease logging verbosity]' \
'-h[Print help]' \
'--help[Print help]' \
'-V[Print version]' \
'--version[Print version]' \
":: :_ltrs_commands" \
"*::: :->languagetool-rust" \
&& ret=0
    case $state in
    (languagetool-rust)
        words=($line[1] "${words[@]}")
        (( CURRENT += 1 ))
        curcontext="${curcontext%:*:*}:ltrs-command-$line[1]:"
        case $line[1] in
            (check)
_arguments "${_arguments_options[@]}" : \
'--max-length=[Sets the maximum number of characters before splitting]:MAX_LENGTH:_default' \
'--split-pattern=[If text is too long, will split on this pattern]:SPLIT_PATTERN:_default' \
'--max-suggestions=[Max. number of suggestions kept. If negative, all suggestions are kept]:MAX_SUGGESTIONS:_default' \
'--type=[Specify the files type to use the correct parser]:TYPE:((auto\:"Auto"
raw\:"Raw text"
markdown\:"Markdown"
html\:"HTML"
typst\:"Typst"))' \
'(-d --data)-t+[The text to be checked. This, \`data\`, or \`\[FILENAMES...\]\` cannot be passed simultaneously. If nothing is specified, input will be read from \`stdin\`]:TEXT:_default' \
'(-d --data)--text=[The text to be checked. This, \`data\`, or \`\[FILENAMES...\]\` cannot be passed simultaneously. If nothing is specified, input will be read from \`stdin\`]:TEXT:_default' \
'(-t --text)-d+[The text to be checked, given as a JSON document that specifies what'\''s text and what'\''s markup. This or '\''text'\'' is required]:DATA:_default' \
'(-t --text)--data=[The text to be checked, given as a JSON document that specifies what'\''s text and what'\''s markup. This or '\''text'\'' is required]:DATA:_default' \
'-l+[A language code like \`en-US\`, \`de-DE\`, \`fr\`, or \`auto\` to guess the language automatically (see \`preferredVariants\` below)]:LANGUAGE:_default' \
'--language=[A language code like \`en-US\`, \`de-DE\`, \`fr\`, or \`auto\` to guess the language automatically (see \`preferredVariants\` below)]:LANGUAGE:_default' \
'-u+[Set to get Premium API access\: Your username/email as used to log in at languagetool.org]:USERNAME:_default' \
'--username=[Set to get Premium API access\: Your username/email as used to log in at languagetool.org]:USERNAME:_default' \
'-k+[Set to get Premium API access\: your API key (see <https\://languagetool.org/editor/settings/api>)]:API_KEY:_default' \
'--api-key=[Set to get Premium API access\: your API key (see <https\://languagetool.org/editor/settings/api>)]:API_KEY:_default' \
'*--dicts=[Comma-separated list of dictionaries to include words from; uses special default dictionary if this is unset]:DICTS:_default' \
'--mother-tongue=[A language code of the user'\''s native language, enabling false friends checks for some language pairs]:MOTHER_TONGUE:_default' \
'(-l --language)*--preferred-variants=[Comma-separated list of preferred language variants]:PREFERRED_VARIANTS:_default' \
'*--enabled-rules=[IDs of rules to be enabled, comma-separated]:ENABLED_RULES:_default' \
'*--disabled-rules=[IDs of rules to be disabled, comma-separated]:DISABLED_RULES:_default' \
'*--enabled-categories=[IDs of categories to be enabled, comma-separated]:ENABLED_CATEGORIES:_default' \
'*--disabled-categories=[IDs of categories to be disabled, comma-separated]:DISABLED_CATEGORIES:_default' \
'--level=[If set to \`picky\`, additional rules will be activated, i.e. rules that you might only find useful when checking formal text]:LEVEL:((default\:"Default level"
picky\:"Picky level"))' \
'-r[If present, raw JSON output will be printed instead of annotated text. This has no effect if \`--data\` is used, because it is never annotated]' \
'--raw[If present, raw JSON output will be printed instead of annotated text. This has no effect if \`--data\` is used, because it is never annotated]' \
'--enabled-only[If true, only the rules and categories whose IDs are specified with \`enabledRules\` or \`enabledCategories\` are enabled]' \
'*-v[Increase logging verbosity]' \
'*--verbose[Increase logging verbosity]' \
'(-v --verbose)*-q[Decrease logging verbosity]' \
'(-v --verbose)*--quiet[Decrease logging verbosity]' \
'-h[Print help (see more with '\''--help'\'')]' \
'--help[Print help (see more with '\''--help'\'')]' \
'-V[Print version]' \
'--version[Print version]' \
'*::filenames -- Optional filenames from which input is read:_files' \
&& ret=0
;;
(docker)
_arguments "${_arguments_options[@]}" : \
'-b+[Path to Docker'\''s binaries]:BIN:_default' \
'--bin=[Path to Docker'\''s binaries]:BIN:_default' \
'--container-name=[Name assigned to the container]:CONTAINER_NAME:_default' \
'-p+[Publish a container'\''s port(s) to the host]:PORT:_default' \
'--port=[Publish a container'\''s port(s) to the host]:PORT:_default' \
'*-v[Increase logging verbosity]' \
'*--verbose[Increase logging verbosity]' \
'(-v --verbose)*-q[Decrease logging verbosity]' \
'(-v --verbose)*--quiet[Decrease logging verbosity]' \
'-h[Print help]' \
'--help[Print help]' \
'-V[Print version]' \
'--version[Print version]' \
'::name -- Image or repository from a registry:_default' \
":: :_ltrs__docker_commands" \
"*::: :->docker" \
&& ret=0

    case $state in
    (docker)
        words=($line[2] "${words[@]}")
        (( CURRENT += 1 ))
        curcontext="${curcontext%:*:*}:ltrs-docker-command-$line[2]:"
        case $line[2] in
            (pull)
_arguments "${_arguments_options[@]}" : \
'*-v[Increase logging verbosity]' \
'*--verbose[Increase logging verbosity]' \
'(-v --verbose)*-q[Decrease logging verbosity]' \
'(-v --verbose)*--quiet[Decrease logging verbosity]' \
'-h[Print help (see more with '\''--help'\'')]' \
'--help[Print help (see more with '\''--help'\'')]' \
'-V[Print version]' \
'--version[Print version]' \
&& ret=0
;;
(start)
_arguments "${_arguments_options[@]}" : \
'*-v[Increase logging verbosity]' \
'*--verbose[Increase logging verbosity]' \
'(-v --verbose)*-q[Decrease logging verbosity]' \
'(-v --verbose)*--quiet[Decrease logging verbosity]' \
'-h[Print help (see more with '\''--help'\'')]' \
'--help[Print help (see more with '\''--help'\'')]' \
'-V[Print version]' \
'--version[Print version]' \
&& ret=0
;;
(stop)
_arguments "${_arguments_options[@]}" : \
'*-v[Increase logging verbosity]' \
'*--verbose[Increase logging verbosity]' \
'(-v --verbose)*-q[Decrease logging verbosity]' \
'(-v --verbose)*--quiet[Decrease logging verbosity]' \
'-h[Print help (see more with '\''--help'\'')]' \
'--help[Print help (see more with '\''--help'\'')]' \
'-V[Print version]' \
'--version[Print version]' \
&& ret=0
;;
(help)
_arguments "${_arguments_options[@]}" : \
":: :_ltrs__docker__help_commands" \
"*::: :->help" \
&& ret=0

    case $state in
    (help)
        words=($line[1] "${words[@]}")
        (( CURRENT += 1 ))
        curcontext="${curcontext%:*:*}:ltrs-docker-help-command-$line[1]:"
        case $line[1] in
            (pull)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(start)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(stop)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(help)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
        esac
    ;;
esac
;;
        esac
    ;;
esac
;;
(languages)
_arguments "${_arguments_options[@]}" : \
'*-v[Increase logging verbosity]' \
'*--verbose[Increase logging verbosity]' \
'(-v --verbose)*-q[Decrease logging verbosity]' \
'(-v --verbose)*--quiet[Decrease logging verbosity]' \
'-h[Print help]' \
'--help[Print help]' \
'-V[Print version]' \
'--version[Print version]' \
&& ret=0
;;
(lang)
_arguments "${_arguments_options[@]}" : \
'*-v[Increase logging verbosity]' \
'*--verbose[Increase logging verbosity]' \
'(-v --verbose)*-q[Decrease logging verbosity]' \
'(-v --verbose)*--quiet[Decrease logging verbosity]' \
'-h[Print help]' \
'--help[Print help]' \
'-V[Print version]' \
'--version[Print version]' \
&& ret=0
;;
(ping)
_arguments "${_arguments_options[@]}" : \
'*-v[Increase logging verbosity]' \
'*--verbose[Increase logging verbosity]' \
'(-v --verbose)*-q[Decrease logging verbosity]' \
'(-v --verbose)*--quiet[Decrease logging verbosity]' \
'-h[Print help]' \
'--help[Print help]' \
'-V[Print version]' \
'--version[Print version]' \
&& ret=0
;;
(words)
_arguments "${_arguments_options[@]}" : \
'--offset=[Offset of where to start in the list of words]:OFFSET:_default' \
'--limit=[Maximum number of words to return]:LIMIT:_default' \
'-u+[Your username as used to log in at languagetool.org]:USERNAME:_default' \
'--username=[Your username as used to log in at languagetool.org]:USERNAME:_default' \
'-k+[Your API key (see <https\://languagetool.org/editor/settings/api>)]:API_KEY:_default' \
'--api-key=[Your API key (see <https\://languagetool.org/editor/settings/api>)]:API_KEY:_default' \
'*--dicts=[Comma-separated list of dictionaries to include words from; uses special default dictionary if this is unset]:DICTS:_default' \
'*-v[Increase logging verbosity]' \
'*--verbose[Increase logging verbosity]' \
'(-v --verbose)*-q[Decrease logging verbosity]' \
'(-v --verbose)*--quiet[Decrease logging verbosity]' \
'-h[Print help]' \
'--help[Print help]' \
'-V[Print version]' \
'--version[Print version]' \
":: :_ltrs__words_commands" \
"*::: :->words" \
&& ret=0

    case $state in
    (words)
        words=($line[1] "${words[@]}")
        (( CURRENT += 1 ))
        curcontext="${curcontext%:*:*}:ltrs-words-command-$line[1]:"
        case $line[1] in
            (add)
_arguments "${_arguments_options[@]}" : \
'-u+[Your username as used to log in at languagetool.org]:USERNAME:_default' \
'--username=[Your username as used to log in at languagetool.org]:USERNAME:_default' \
'-k+[Your API key (see <https\://languagetool.org/editor/settings/api>)]:API_KEY:_default' \
'--api-key=[Your API key (see <https\://languagetool.org/editor/settings/api>)]:API_KEY:_default' \
'--dict=[Name of the dictionary to add the word to; non-existent dictionaries are created after calling this; if unset, adds to special default dictionary]:DICT:_default' \
'*-v[Increase logging verbosity]' \
'*--verbose[Increase logging verbosity]' \
'(-v --verbose)*-q[Decrease logging verbosity]' \
'(-v --verbose)*--quiet[Decrease logging verbosity]' \
'-h[Print help]' \
'--help[Print help]' \
'-V[Print version]' \
'--version[Print version]' \
':word -- The word to be added. Must not be a phrase, i.e., cannot contain white space. The word is added to a global dictionary that applies to all languages:_default' \
&& ret=0
;;
(delete)
_arguments "${_arguments_options[@]}" : \
'-u+[Your username as used to log in at languagetool.org]:USERNAME:_default' \
'--username=[Your username as used to log in at languagetool.org]:USERNAME:_default' \
'-k+[Your API key (see <https\://languagetool.org/editor/settings/api>)]:API_KEY:_default' \
'--api-key=[Your API key (see <https\://languagetool.org/editor/settings/api>)]:API_KEY:_default' \
'--dict=[Name of the dictionary to add the word to; non-existent dictionaries are created after calling this; if unset, adds to special default dictionary]:DICT:_default' \
'*-v[Increase logging verbosity]' \
'*--verbose[Increase logging verbosity]' \
'(-v --verbose)*-q[Decrease logging verbosity]' \
'(-v --verbose)*--quiet[Decrease logging verbosity]' \
'-h[Print help]' \
'--help[Print help]' \
'-V[Print version]' \
'--version[Print version]' \
':word -- The word to be removed:_default' \
&& ret=0
;;
(help)
_arguments "${_arguments_options[@]}" : \
":: :_ltrs__words__help_commands" \
"*::: :->help" \
&& ret=0

    case $state in
    (help)
        words=($line[1] "${words[@]}")
        (( CURRENT += 1 ))
        curcontext="${curcontext%:*:*}:ltrs-words-help-command-$line[1]:"
        case $line[1] in
            (add)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(delete)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(help)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
        esac
    ;;
esac
;;
        esac
    ;;
esac
;;
(completions)
_arguments "${_arguments_options[@]}" : \
'*-v[Increase logging verbosity]' \
'*--verbose[Increase logging verbosity]' \
'(-v --verbose)*-q[Decrease logging verbosity]' \
'(-v --verbose)*--quiet[Decrease logging verbosity]' \
'-h[Print help (see more with '\''--help'\'')]' \
'--help[Print help (see more with '\''--help'\'')]' \
'-V[Print version]' \
'--version[Print version]' \
':shell -- Shell for which to completion script is generated:(bash elvish fish powershell zsh)' \
&& ret=0
;;
(help)
_arguments "${_arguments_options[@]}" : \
":: :_ltrs__help_commands" \
"*::: :->help" \
&& ret=0

    case $state in
    (help)
        words=($line[1] "${words[@]}")
        (( CURRENT += 1 ))
        curcontext="${curcontext%:*:*}:ltrs-help-command-$line[1]:"
        case $line[1] in
            (check)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(docker)
_arguments "${_arguments_options[@]}" : \
":: :_ltrs__help__docker_commands" \
"*::: :->docker" \
&& ret=0

    case $state in
    (docker)
        words=($line[1] "${words[@]}")
        (( CURRENT += 1 ))
        curcontext="${curcontext%:*:*}:ltrs-help-docker-command-$line[1]:"
        case $line[1] in
            (pull)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(start)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(stop)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
        esac
    ;;
esac
;;
(languages)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(ping)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(words)
_arguments "${_arguments_options[@]}" : \
":: :_ltrs__help__words_commands" \
"*::: :->words" \
&& ret=0

    case $state in
    (words)
        words=($line[1] "${words[@]}")
        (( CURRENT += 1 ))
        curcontext="${curcontext%:*:*}:ltrs-help-words-command-$line[1]:"
        case $line[1] in
            (add)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(delete)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
        esac
    ;;
esac
;;
(completions)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(help)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
        esac
    ;;
esac
;;
        esac
    ;;
esac
}

(( $+functions[_ltrs_commands] )) ||
_ltrs_commands() {
    local commands; commands=(
'check:Check text using LanguageTool server' \
'docker:Commands to easily run a LanguageTool server with Docker' \
'languages:Return list of supported languages' \
'lang:Return list of supported languages' \
'ping:Ping the LanguageTool server and return time elapsed in ms if success' \
'words:Retrieve some user'\''s words list, or add / delete word from it' \
'completions:Generate tab-completion scripts for supported shells' \
'help:Print this message or the help of the given subcommand(s)' \
    )
    _describe -t commands 'ltrs commands' commands "$@"
}
(( $+functions[_ltrs__check_commands] )) ||
_ltrs__check_commands() {
    local commands; commands=()
    _describe -t commands 'ltrs check commands' commands "$@"
}
(( $+functions[_ltrs__completions_commands] )) ||
_ltrs__completions_commands() {
    local commands; commands=()
    _describe -t commands 'ltrs completions commands' commands "$@"
}
(( $+functions[_ltrs__docker_commands] )) ||
_ltrs__docker_commands() {
    local commands; commands=(
'pull:Pull a docker docker image' \
'start:Start a (detached) docker container' \
'stop:Stop a docker container' \
'help:Print this message or the help of the given subcommand(s)' \
    )
    _describe -t commands 'ltrs docker commands' commands "$@"
}
(( $+functions[_ltrs__docker__help_commands] )) ||
_ltrs__docker__help_commands() {
    local commands; commands=(
'pull:Pull a docker docker image' \
'start:Start a (detached) docker container' \
'stop:Stop a docker container' \
'help:Print this message or the help of the given subcommand(s)' \
    )
    _describe -t commands 'ltrs docker help commands' commands "$@"
}
(( $+functions[_ltrs__docker__help__help_commands] )) ||
_ltrs__docker__help__help_commands() {
    local commands; commands=()
    _describe -t commands 'ltrs docker help help commands' commands "$@"
}
(( $+functions[_ltrs__docker__help__pull_commands] )) ||
_ltrs__docker__help__pull_commands() {
    local commands; commands=()
    _describe -t commands 'ltrs docker help pull commands' commands "$@"
}
(( $+functions[_ltrs__docker__help__start_commands] )) ||
_ltrs__docker__help__start_commands() {
    local commands; commands=()
    _describe -t commands 'ltrs docker help start commands' commands "$@"
}
(( $+functions[_ltrs__docker__help__stop_commands] )) ||
_ltrs__docker__help__stop_commands() {
    local commands; commands=()
    _describe -t commands 'ltrs docker help stop commands' commands "$@"
}
(( $+functions[_ltrs__docker__pull_commands] )) ||
_ltrs__docker__pull_commands() {
    local commands; commands=()
    _describe -t commands 'ltrs docker pull commands' commands "$@"
}
(( $+functions[_ltrs__docker__start_commands] )) ||
_ltrs__docker__start_commands() {
    local commands; commands=()
    _describe -t commands 'ltrs docker start commands' commands "$@"
}
(( $+functions[_ltrs__docker__stop_commands] )) ||
_ltrs__docker__stop_commands() {
    local commands; commands=()
    _describe -t commands 'ltrs docker stop commands' commands "$@"
}
(( $+functions[_ltrs__help_commands] )) ||
_ltrs__help_commands() {
    local commands; commands=(
'check:Check text using LanguageTool server' \
'docker:Commands to easily run a LanguageTool server with Docker' \
'languages:Return list of supported languages' \
'ping:Ping the LanguageTool server and return time elapsed in ms if success' \
'words:Retrieve some user'\''s words list, or add / delete word from it' \
'completions:Generate tab-completion scripts for supported shells' \
'help:Print this message or the help of the given subcommand(s)' \
    )
    _describe -t commands 'ltrs help commands' commands "$@"
}
(( $+functions[_ltrs__help__check_commands] )) ||
_ltrs__help__check_commands() {
    local commands; commands=()
    _describe -t commands 'ltrs help check commands' commands "$@"
}
(( $+functions[_ltrs__help__completions_commands] )) ||
_ltrs__help__completions_commands() {
    local commands; commands=()
    _describe -t commands 'ltrs help completions commands' commands "$@"
}
(( $+functions[_ltrs__help__docker_commands] )) ||
_ltrs__help__docker_commands() {
    local commands; commands=(
'pull:Pull a docker docker image' \
'start:Start a (detached) docker container' \
'stop:Stop a docker container' \
    )
    _describe -t commands 'ltrs help docker commands' commands "$@"
}
(( $+functions[_ltrs__help__docker__pull_commands] )) ||
_ltrs__help__docker__pull_commands() {
    local commands; commands=()
    _describe -t commands 'ltrs help docker pull commands' commands "$@"
}
(( $+functions[_ltrs__help__docker__start_commands] )) ||
_ltrs__help__docker__start_commands() {
    local commands; commands=()
    _describe -t commands 'ltrs help docker start commands' commands "$@"
}
(( $+functions[_ltrs__help__docker__stop_commands] )) ||
_ltrs__help__docker__stop_commands() {
    local commands; commands=()
    _describe -t commands 'ltrs help docker stop commands' commands "$@"
}
(( $+functions[_ltrs__help__help_commands] )) ||
_ltrs__help__help_commands() {
    local commands; commands=()
    _describe -t commands 'ltrs help help commands' commands "$@"
}
(( $+functions[_ltrs__help__languages_commands] )) ||
_ltrs__help__languages_commands() {
    local commands; commands=()
    _describe -t commands 'ltrs help languages commands' commands "$@"
}
(( $+functions[_ltrs__help__ping_commands] )) ||
_ltrs__help__ping_commands() {
    local commands; commands=()
    _describe -t commands 'ltrs help ping commands' commands "$@"
}
(( $+functions[_ltrs__help__words_commands] )) ||
_ltrs__help__words_commands() {
    local commands; commands=(
'add:Add a word to some user'\''s list' \
'delete:Remove a word from some user'\''s list' \
    )
    _describe -t commands 'ltrs help words commands' commands "$@"
}
(( $+functions[_ltrs__help__words__add_commands] )) ||
_ltrs__help__words__add_commands() {
    local commands; commands=()
    _describe -t commands 'ltrs help words add commands' commands "$@"
}
(( $+functions[_ltrs__help__words__delete_commands] )) ||
_ltrs__help__words__delete_commands() {
    local commands; commands=()
    _describe -t commands 'ltrs help words delete commands' commands "$@"
}
(( $+functions[_ltrs__languages_commands] )) ||
_ltrs__languages_commands() {
    local commands; commands=()
    _describe -t commands 'ltrs languages commands' commands "$@"
}
(( $+functions[_ltrs__ping_commands] )) ||
_ltrs__ping_commands() {
    local commands; commands=()
    _describe -t commands 'ltrs ping commands' commands "$@"
}
(( $+functions[_ltrs__words_commands] )) ||
_ltrs__words_commands() {
    local commands; commands=(
'add:Add a word to some user'\''s list' \
'delete:Remove a word from some user'\''s list' \
'help:Print this message or the help of the given subcommand(s)' \
    )
    _describe -t commands 'ltrs words commands' commands "$@"
}
(( $+functions[_ltrs__words__add_commands] )) ||
_ltrs__words__add_commands() {
    local commands; commands=()
    _describe -t commands 'ltrs words add commands' commands "$@"
}
(( $+functions[_ltrs__words__delete_commands] )) ||
_ltrs__words__delete_commands() {
    local commands; commands=()
    _describe -t commands 'ltrs words delete commands' commands "$@"
}
(( $+functions[_ltrs__words__help_commands] )) ||
_ltrs__words__help_commands() {
    local commands; commands=(
'add:Add a word to some user'\''s list' \
'delete:Remove a word from some user'\''s list' \
'help:Print this message or the help of the given subcommand(s)' \
    )
    _describe -t commands 'ltrs words help commands' commands "$@"
}
(( $+functions[_ltrs__words__help__add_commands] )) ||
_ltrs__words__help__add_commands() {
    local commands; commands=()
    _describe -t commands 'ltrs words help add commands' commands "$@"
}
(( $+functions[_ltrs__words__help__delete_commands] )) ||
_ltrs__words__help__delete_commands() {
    local commands; commands=()
    _describe -t commands 'ltrs words help delete commands' commands "$@"
}
(( $+functions[_ltrs__words__help__help_commands] )) ||
_ltrs__words__help__help_commands() {
    local commands; commands=()
    _describe -t commands 'ltrs words help help commands' commands "$@"
}

if [ "$funcstack[1]" = "_ltrs" ]; then
    _ltrs "$@"
else
    compdef _ltrs ltrs
fi
