#compdef scarb

autoload -U is-at-least

_scarb() {
    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[@]}" : \
'--manifest-path=[Path to Scarb.toml]:MANIFEST_PATH:_default' \
'--verbosity=[Set UI verbosity level by name.]:VERBOSITY:((quiet\:"Avoid printing anything to standard output"
no-warnings\:"Avoid printing warnings to standard output"
normal\:"Default verbosity level"
verbose\:"Print extra information to standard output"))' \
'--global-cache-dir=[Directory for all cache data stored by Scarb]:DIRECTORY:_default' \
'--global-config-dir=[Directory for global Scarb configuration files]:DIRECTORY:_default' \
'--target-dir=[Directory for all generated artifacts]:DIRECTORY:_default' \
'-P+[Specify the profile to use by name]:PROFILE:_default' \
'--profile=[Specify the profile to use by name]:PROFILE:_default' \
'*-v[Increase logging verbosity.]' \
'*--verbose[Increase logging verbosity.]' \
'(-v --verbose)*-q[Decrease logging verbosity.]' \
'(-v --verbose)*--quiet[Decrease logging verbosity.]' \
'(-v --verbose -q --quiet)--no-warnings[Decrease logging verbosity, hiding warnings but still showing errors.]' \
'--json[Print machine-readable output in NDJSON format]' \
'--offline[Run without accessing the network]' \
'--no-proc-macros[Do not load any procedural macros]' \
'--no-prebuilt-proc-macros[Do not load any prebuilt procedural macros]' \
'--release[Use release profile]' \
'--dev[Use dev profile]' \
'-h[Print help (see more with '\''--help'\'')]' \
'--help[Print help (see more with '\''--help'\'')]' \
'-V[Print version]' \
'--version[Print version]' \
":: :_scarb_commands" \
"*::: :->scarb" \
&& ret=0
    case $state in
    (scarb)
        words=($line[1] "${words[@]}")
        (( CURRENT += 1 ))
        curcontext="${curcontext%:*:*}:scarb-command-$line[1]:"
        case $line[1] in
            (add)
_arguments "${_arguments_options[@]}" : \
'*-p+[Packages to run this command on, can be a concrete package name (\`foobar\`) or a prefix glob (\`foo*\`)]:SPEC:_default' \
'*--package=[Packages to run this command on, can be a concrete package name (\`foobar\`) or a prefix glob (\`foo*\`)]:SPEC:_default' \
'(-p --package)*--exclude=[Exclude packages from the command]:SPEC:_default' \
'(--git --branch --tag --rev)--path=[Filesystem path to local package to add]:PATH:_default' \
'--git=[Git repository location]:URI:_default' \
'--branch=[Git branch to download the package from]:BRANCH:_default' \
'--tag=[Git tag to download the package from]:TAG:_default' \
'--rev=[Git reference to download the package from]:REV:_default' \
'--verbosity=[Set UI verbosity level by name.]:VERBOSITY:((quiet\:"Avoid printing anything to standard output"
no-warnings\:"Avoid printing warnings to standard output"
normal\:"Default verbosity level"
verbose\:"Print extra information to standard output"))' \
'--dry-run[Do not actually write the manifest]' \
'(-p --package)-w[Run for all packages in the workspace]' \
'(-p --package)--workspace[Run for all packages in the workspace]' \
'--dev[Add as development dependency]' \
'*-v[Increase logging verbosity.]' \
'*--verbose[Increase logging verbosity.]' \
'(-v --verbose)*-q[Decrease logging verbosity.]' \
'(-v --verbose)*--quiet[Decrease logging verbosity.]' \
'(-v --verbose -q --quiet)--no-warnings[Decrease logging verbosity, hiding warnings but still showing errors.]' \
'-h[Print help (see more with '\''--help'\'')]' \
'--help[Print help (see more with '\''--help'\'')]' \
'*::packages -- Reference to a package to add as a dependency:_default' \
&& ret=0
;;
(remove)
_arguments "${_arguments_options[@]}" : \
'*-p+[Packages to run this command on, can be a concrete package name (\`foobar\`) or a prefix glob (\`foo*\`)]:SPEC:_default' \
'*--package=[Packages to run this command on, can be a concrete package name (\`foobar\`) or a prefix glob (\`foo*\`)]:SPEC:_default' \
'(-p --package)*--exclude=[Exclude packages from the command]:SPEC:_default' \
'--verbosity=[Set UI verbosity level by name.]:VERBOSITY:((quiet\:"Avoid printing anything to standard output"
no-warnings\:"Avoid printing warnings to standard output"
normal\:"Default verbosity level"
verbose\:"Print extra information to standard output"))' \
'--dry-run[Do not actually write the manifest]' \
'(-p --package)-w[Run for all packages in the workspace]' \
'(-p --package)--workspace[Run for all packages in the workspace]' \
'--dev[Remove as development dependency]' \
'*-v[Increase logging verbosity.]' \
'*--verbose[Increase logging verbosity.]' \
'(-v --verbose)*-q[Decrease logging verbosity.]' \
'(-v --verbose)*--quiet[Decrease logging verbosity.]' \
'(-v --verbose -q --quiet)--no-warnings[Decrease logging verbosity, hiding warnings but still showing errors.]' \
'-h[Print help (see more with '\''--help'\'')]' \
'--help[Print help (see more with '\''--help'\'')]' \
'*::packages -- Dependencies to be removed:_default' \
&& ret=0
;;
(list)
_arguments "${_arguments_options[@]}" : \
'--index=[Registry index URL to query package versions from]:URL:_default' \
'(--all)--limit=[Limit the number of results]:LIMIT:_default' \
'--verbosity=[Set UI verbosity level by name.]:VERBOSITY:((quiet\:"Avoid printing anything to standard output"
no-warnings\:"Avoid printing warnings to standard output"
normal\:"Default verbosity level"
verbose\:"Print extra information to standard output"))' \
'--all[Show all available versions]' \
'*-v[Increase logging verbosity.]' \
'*--verbose[Increase logging verbosity.]' \
'(-v --verbose)*-q[Decrease logging verbosity.]' \
'(-v --verbose)*--quiet[Decrease logging verbosity.]' \
'(-v --verbose -q --quiet)--no-warnings[Decrease logging verbosity, hiding warnings but still showing errors.]' \
'-h[Print help (see more with '\''--help'\'')]' \
'--help[Print help (see more with '\''--help'\'')]' \
':package_name -- Package name:_default' \
&& ret=0
;;
(build)
_arguments "${_arguments_options[@]}" : \
'*-p+[Packages to run this command on, can be a concrete package name (\`foobar\`) or a prefix glob (\`foo*\`)]:SPEC:_default' \
'*--package=[Packages to run this command on, can be a concrete package name (\`foobar\`) or a prefix glob (\`foo*\`)]:SPEC:_default' \
'(-p --package)*--exclude=[Exclude packages from the command]:SPEC:_default' \
'*--target-names=[Comma separated list of target names to compile]:TARGET_NAMES:_default' \
'(--target-names -t --test)*--target-kinds=[Comma separated list of target kinds to compile]:TARGET_KINDS:_default' \
'*-F+[Comma separated list of features to activate]:FEATURES:_default' \
'*--features=[Comma separated list of features to activate]:FEATURES:_default' \
'--verbosity=[Set UI verbosity level by name.]:VERBOSITY:((quiet\:"Avoid printing anything to standard output"
no-warnings\:"Avoid printing warnings to standard output"
normal\:"Default verbosity level"
verbose\:"Print extra information to standard output"))' \
'(-p --package)-w[Run for all packages in the workspace]' \
'(-p --package)--workspace[Run for all packages in the workspace]' \
'-t[Build tests]' \
'--test[Build tests]' \
'(--no-default-features)--all-features[Activate all available features]' \
'(--all-features)--no-default-features[Do not activate the \`default\` feature]' \
'--ignore-cairo-version[Do not error on \`cairo-version\` mismatch]' \
'*-v[Increase logging verbosity.]' \
'*--verbose[Increase logging verbosity.]' \
'(-v --verbose)*-q[Decrease logging verbosity.]' \
'(-v --verbose)*--quiet[Decrease logging verbosity.]' \
'(-v --verbose -q --quiet)--no-warnings[Decrease logging verbosity, hiding warnings but still showing errors.]' \
'-h[Print help (see more with '\''--help'\'')]' \
'--help[Print help (see more with '\''--help'\'')]' \
&& ret=0
;;
(expand)
_arguments "${_arguments_options[@]}" : \
'*-p+[Packages to run this command on, can be a concrete package name (\`foobar\`) or a prefix glob (\`foo*\`)]:SPEC:_default' \
'*--package=[Packages to run this command on, can be a concrete package name (\`foobar\`) or a prefix glob (\`foo*\`)]:SPEC:_default' \
'(-p --package)*--exclude=[Exclude packages from the command]:SPEC:_default' \
'*-F+[Comma separated list of features to activate]:FEATURES:_default' \
'*--features=[Comma separated list of features to activate]:FEATURES:_default' \
'--target-kind=[Specify the target to expand by target kind]:TARGET_KIND:_default' \
'--target-name=[Specify the target to expand by target name]:TARGET_NAME:_default' \
'-e+[Emit the expanded file to stdout]:EMIT:(stdout)' \
'--emit=[Emit the expanded file to stdout]:EMIT:(stdout)' \
'--verbosity=[Set UI verbosity level by name.]:VERBOSITY:((quiet\:"Avoid printing anything to standard output"
no-warnings\:"Avoid printing warnings to standard output"
normal\:"Default verbosity level"
verbose\:"Print extra information to standard output"))' \
'(-p --package)-w[Run for all packages in the workspace]' \
'(-p --package)--workspace[Run for all packages in the workspace]' \
'(--no-default-features)--all-features[Activate all available features]' \
'(--all-features)--no-default-features[Do not activate the \`default\` feature]' \
'--ignore-cairo-version[Do not error on \`cairo-version\` mismatch]' \
'--ugly[Do not attempt formatting]' \
'*-v[Increase logging verbosity.]' \
'*--verbose[Increase logging verbosity.]' \
'(-v --verbose)*-q[Decrease logging verbosity.]' \
'(-v --verbose)*--quiet[Decrease logging verbosity.]' \
'(-v --verbose -q --quiet)--no-warnings[Decrease logging verbosity, hiding warnings but still showing errors.]' \
'-h[Print help (see more with '\''--help'\'')]' \
'--help[Print help (see more with '\''--help'\'')]' \
&& ret=0
;;
(cache)
_arguments "${_arguments_options[@]}" : \
'--verbosity=[Set UI verbosity level by name.]:VERBOSITY:((quiet\:"Avoid printing anything to standard output"
no-warnings\:"Avoid printing warnings to standard output"
normal\:"Default verbosity level"
verbose\:"Print extra information to standard output"))' \
'*-v[Increase logging verbosity.]' \
'*--verbose[Increase logging verbosity.]' \
'(-v --verbose)*-q[Decrease logging verbosity.]' \
'(-v --verbose)*--quiet[Decrease logging verbosity.]' \
'(-v --verbose -q --quiet)--no-warnings[Decrease logging verbosity, hiding warnings but still showing errors.]' \
'-h[Print help (see more with '\''--help'\'')]' \
'--help[Print help (see more with '\''--help'\'')]' \
":: :_scarb__subcmd__cache_commands" \
"*::: :->cache" \
&& ret=0

    case $state in
    (cache)
        words=($line[1] "${words[@]}")
        (( CURRENT += 1 ))
        curcontext="${curcontext%:*:*}:scarb-cache-command-$line[1]:"
        case $line[1] in
            (clean)
_arguments "${_arguments_options[@]}" : \
'--verbosity=[Set UI verbosity level by name.]:VERBOSITY:((quiet\:"Avoid printing anything to standard output"
no-warnings\:"Avoid printing warnings to standard output"
normal\:"Default verbosity level"
verbose\:"Print extra information to standard output"))' \
'*-v[Increase logging verbosity.]' \
'*--verbose[Increase logging verbosity.]' \
'(-v --verbose)*-q[Decrease logging verbosity.]' \
'(-v --verbose)*--quiet[Decrease logging verbosity.]' \
'(-v --verbose -q --quiet)--no-warnings[Decrease logging verbosity, hiding warnings but still showing errors.]' \
'-h[Print help (see more with '\''--help'\'')]' \
'--help[Print help (see more with '\''--help'\'')]' \
&& ret=0
;;
(path)
_arguments "${_arguments_options[@]}" : \
'--verbosity=[Set UI verbosity level by name.]:VERBOSITY:((quiet\:"Avoid printing anything to standard output"
no-warnings\:"Avoid printing warnings to standard output"
normal\:"Default verbosity level"
verbose\:"Print extra information to standard output"))' \
'*-v[Increase logging verbosity.]' \
'*--verbose[Increase logging verbosity.]' \
'(-v --verbose)*-q[Decrease logging verbosity.]' \
'(-v --verbose)*--quiet[Decrease logging verbosity.]' \
'(-v --verbose -q --quiet)--no-warnings[Decrease logging verbosity, hiding warnings but still showing errors.]' \
'-h[Print help (see more with '\''--help'\'')]' \
'--help[Print help (see more with '\''--help'\'')]' \
&& ret=0
;;
(help)
_arguments "${_arguments_options[@]}" : \
":: :_scarb__subcmd__cache__subcmd__help_commands" \
"*::: :->help" \
&& ret=0

    case $state in
    (help)
        words=($line[1] "${words[@]}")
        (( CURRENT += 1 ))
        curcontext="${curcontext%:*:*}:scarb-cache-help-command-$line[1]:"
        case $line[1] in
            (clean)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(path)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(help)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
        esac
    ;;
esac
;;
        esac
    ;;
esac
;;
(check)
_arguments "${_arguments_options[@]}" : \
'*-p+[Packages to run this command on, can be a concrete package name (\`foobar\`) or a prefix glob (\`foo*\`)]:SPEC:_default' \
'*--package=[Packages to run this command on, can be a concrete package name (\`foobar\`) or a prefix glob (\`foo*\`)]:SPEC:_default' \
'(-p --package)*--exclude=[Exclude packages from the command]:SPEC:_default' \
'*--target-names=[Comma separated list of target names to compile]:TARGET_NAMES:_default' \
'(--target-names -t --test)*--target-kinds=[Comma separated list of target kinds to compile]:TARGET_KINDS:_default' \
'*-F+[Comma separated list of features to activate]:FEATURES:_default' \
'*--features=[Comma separated list of features to activate]:FEATURES:_default' \
'--verbosity=[Set UI verbosity level by name.]:VERBOSITY:((quiet\:"Avoid printing anything to standard output"
no-warnings\:"Avoid printing warnings to standard output"
normal\:"Default verbosity level"
verbose\:"Print extra information to standard output"))' \
'(-p --package)-w[Run for all packages in the workspace]' \
'(-p --package)--workspace[Run for all packages in the workspace]' \
'-t[Build tests]' \
'--test[Build tests]' \
'(--no-default-features)--all-features[Activate all available features]' \
'(--all-features)--no-default-features[Do not activate the \`default\` feature]' \
'--ignore-cairo-version[Do not error on \`cairo-version\` mismatch]' \
'*-v[Increase logging verbosity.]' \
'*--verbose[Increase logging verbosity.]' \
'(-v --verbose)*-q[Decrease logging verbosity.]' \
'(-v --verbose)*--quiet[Decrease logging verbosity.]' \
'(-v --verbose -q --quiet)--no-warnings[Decrease logging verbosity, hiding warnings but still showing errors.]' \
'-h[Print help (see more with '\''--help'\'')]' \
'--help[Print help (see more with '\''--help'\'')]' \
&& ret=0
;;
(clean)
_arguments "${_arguments_options[@]}" : \
'--verbosity=[Set UI verbosity level by name.]:VERBOSITY:((quiet\:"Avoid printing anything to standard output"
no-warnings\:"Avoid printing warnings to standard output"
normal\:"Default verbosity level"
verbose\:"Print extra information to standard output"))' \
'*-v[Increase logging verbosity.]' \
'*--verbose[Increase logging verbosity.]' \
'(-v --verbose)*-q[Decrease logging verbosity.]' \
'(-v --verbose)*--quiet[Decrease logging verbosity.]' \
'(-v --verbose -q --quiet)--no-warnings[Decrease logging verbosity, hiding warnings but still showing errors.]' \
'-h[Print help (see more with '\''--help'\'')]' \
'--help[Print help (see more with '\''--help'\'')]' \
&& ret=0
;;
(completions)
_arguments "${_arguments_options[@]}" : \
'--verbosity=[Set UI verbosity level by name.]:VERBOSITY:((quiet\:"Avoid printing anything to standard output"
no-warnings\:"Avoid printing warnings to standard output"
normal\:"Default verbosity level"
verbose\:"Print extra information to standard output"))' \
'*-v[Increase logging verbosity.]' \
'*--verbose[Increase logging verbosity.]' \
'(-v --verbose)*-q[Decrease logging verbosity.]' \
'(-v --verbose)*--quiet[Decrease logging verbosity.]' \
'(-v --verbose -q --quiet)--no-warnings[Decrease logging verbosity, hiding warnings but still showing errors.]' \
'-h[Print help (see more with '\''--help'\'')]' \
'--help[Print help (see more with '\''--help'\'')]' \
'-V[Print version]' \
'--version[Print version]' \
'::shell -- Target shell for completion generation:(bash elvish fish powershell zsh)' \
&& ret=0
;;
(commands)
_arguments "${_arguments_options[@]}" : \
'--verbosity=[Set UI verbosity level by name.]:VERBOSITY:((quiet\:"Avoid printing anything to standard output"
no-warnings\:"Avoid printing warnings to standard output"
normal\:"Default verbosity level"
verbose\:"Print extra information to standard output"))' \
'*-v[Increase logging verbosity.]' \
'*--verbose[Increase logging verbosity.]' \
'(-v --verbose)*-q[Decrease logging verbosity.]' \
'(-v --verbose)*--quiet[Decrease logging verbosity.]' \
'(-v --verbose -q --quiet)--no-warnings[Decrease logging verbosity, hiding warnings but still showing errors.]' \
'-h[Print help (see more with '\''--help'\'')]' \
'--help[Print help (see more with '\''--help'\'')]' \
&& ret=0
;;
(fetch)
_arguments "${_arguments_options[@]}" : \
'--verbosity=[Set UI verbosity level by name.]:VERBOSITY:((quiet\:"Avoid printing anything to standard output"
no-warnings\:"Avoid printing warnings to standard output"
normal\:"Default verbosity level"
verbose\:"Print extra information to standard output"))' \
'*-v[Increase logging verbosity.]' \
'*--verbose[Increase logging verbosity.]' \
'(-v --verbose)*-q[Decrease logging verbosity.]' \
'(-v --verbose)*--quiet[Decrease logging verbosity.]' \
'(-v --verbose -q --quiet)--no-warnings[Decrease logging verbosity, hiding warnings but still showing errors.]' \
'-h[Print help (see more with '\''--help'\'')]' \
'--help[Print help (see more with '\''--help'\'')]' \
&& ret=0
;;
(fmt)
_arguments "${_arguments_options[@]}" : \
'-e+[Emit the formatted file to stdout]:EMIT:(stdout)' \
'--emit=[Emit the formatted file to stdout]:EMIT:(stdout)' \
'*-p+[Packages to run this command on, can be a concrete package name (\`foobar\`) or a prefix glob (\`foo*\`)]:SPEC:_default' \
'*--package=[Packages to run this command on, can be a concrete package name (\`foobar\`) or a prefix glob (\`foo*\`)]:SPEC:_default' \
'(-p --package)*--exclude=[Exclude packages from the command]:SPEC:_default' \
'--verbosity=[Set UI verbosity level by name.]:VERBOSITY:((quiet\:"Avoid printing anything to standard output"
no-warnings\:"Avoid printing warnings to standard output"
normal\:"Default verbosity level"
verbose\:"Print extra information to standard output"))' \
'(-e --emit)-c[Only check if files are formatted, do not write the changes to disk]' \
'(-e --emit)--check[Only check if files are formatted, do not write the changes to disk]' \
'--no-color[Do not color output]' \
'(-p --package)-w[Run for all packages in the workspace]' \
'(-p --package)--workspace[Run for all packages in the workspace]' \
'*-v[Increase logging verbosity.]' \
'*--verbose[Increase logging verbosity.]' \
'(-v --verbose)*-q[Decrease logging verbosity.]' \
'(-v --verbose)*--quiet[Decrease logging verbosity.]' \
'(-v --verbose -q --quiet)--no-warnings[Decrease logging verbosity, hiding warnings but still showing errors.]' \
'-h[Print help (see more with '\''--help'\'')]' \
'--help[Print help (see more with '\''--help'\'')]' \
'::path -- Path to a file or directory to format. If provided, only this file or directory will be formatted:_default' \
&& ret=0
;;
(init)
_arguments "${_arguments_options[@]}" : \
'--name=[Set the resulting package name, defaults to the directory name]:NAME:_default' \
'--test-runner=[Test runner to use. Starts interactive session if not specified]:TEST_RUNNER:((starknet-foundry\:"Uses the \`Starknet Foundry\` test runner"
none\:"No test runner"))' \
'--verbosity=[Set UI verbosity level by name.]:VERBOSITY:((quiet\:"Avoid printing anything to standard output"
no-warnings\:"Avoid printing warnings to standard output"
normal\:"Default verbosity level"
verbose\:"Print extra information to standard output"))' \
'--no-vcs[Do not initialize a new Git repository]' \
'*-v[Increase logging verbosity.]' \
'*--verbose[Increase logging verbosity.]' \
'(-v --verbose)*-q[Decrease logging verbosity.]' \
'(-v --verbose)*--quiet[Decrease logging verbosity.]' \
'(-v --verbose -q --quiet)--no-warnings[Decrease logging verbosity, hiding warnings but still showing errors.]' \
'-h[Print help (see more with '\''--help'\'')]' \
'--help[Print help (see more with '\''--help'\'')]' \
&& ret=0
;;
(manifest-path)
_arguments "${_arguments_options[@]}" : \
'--verbosity=[Set UI verbosity level by name.]:VERBOSITY:((quiet\:"Avoid printing anything to standard output"
no-warnings\:"Avoid printing warnings to standard output"
normal\:"Default verbosity level"
verbose\:"Print extra information to standard output"))' \
'*-v[Increase logging verbosity.]' \
'*--verbose[Increase logging verbosity.]' \
'(-v --verbose)*-q[Decrease logging verbosity.]' \
'(-v --verbose)*--quiet[Decrease logging verbosity.]' \
'(-v --verbose -q --quiet)--no-warnings[Decrease logging verbosity, hiding warnings but still showing errors.]' \
'-h[Print help (see more with '\''--help'\'')]' \
'--help[Print help (see more with '\''--help'\'')]' \
&& ret=0
;;
(metadata)
_arguments "${_arguments_options[@]}" : \
'--format-version=[Format version]:VERSION:_default' \
'*-F+[Comma separated list of features to activate]:FEATURES:_default' \
'*--features=[Comma separated list of features to activate]:FEATURES:_default' \
'--verbosity=[Set UI verbosity level by name.]:VERBOSITY:((quiet\:"Avoid printing anything to standard output"
no-warnings\:"Avoid printing warnings to standard output"
normal\:"Default verbosity level"
verbose\:"Print extra information to standard output"))' \
'--no-deps[Output information only about the workspace members and don'\''t fetch dependencies]' \
'(--no-default-features)--all-features[Activate all available features]' \
'(--all-features)--no-default-features[Do not activate the \`default\` feature]' \
'--ignore-cairo-version[Do not error on \`cairo-version\` mismatch]' \
'*-v[Increase logging verbosity.]' \
'*--verbose[Increase logging verbosity.]' \
'(-v --verbose)*-q[Decrease logging verbosity.]' \
'(-v --verbose)*--quiet[Decrease logging verbosity.]' \
'(-v --verbose -q --quiet)--no-warnings[Decrease logging verbosity, hiding warnings but still showing errors.]' \
'-h[Print help (see more with '\''--help'\'')]' \
'--help[Print help (see more with '\''--help'\'')]' \
&& ret=0
;;
(new)
_arguments "${_arguments_options[@]}" : \
'--name=[Set the resulting package name, defaults to the directory name]:NAME:_default' \
'--test-runner=[Test runner to use. Starts interactive session if not specified]:TEST_RUNNER:((starknet-foundry\:"Uses the \`Starknet Foundry\` test runner"
none\:"No test runner"))' \
'--verbosity=[Set UI verbosity level by name.]:VERBOSITY:((quiet\:"Avoid printing anything to standard output"
no-warnings\:"Avoid printing warnings to standard output"
normal\:"Default verbosity level"
verbose\:"Print extra information to standard output"))' \
'--no-vcs[Do not initialize a new Git repository]' \
'*-v[Increase logging verbosity.]' \
'*--verbose[Increase logging verbosity.]' \
'(-v --verbose)*-q[Decrease logging verbosity.]' \
'(-v --verbose)*--quiet[Decrease logging verbosity.]' \
'(-v --verbose -q --quiet)--no-warnings[Decrease logging verbosity, hiding warnings but still showing errors.]' \
'-h[Print help (see more with '\''--help'\'')]' \
'--help[Print help (see more with '\''--help'\'')]' \
':path -- Path to the new package directory:_default' \
&& ret=0
;;
(tree)
_arguments "${_arguments_options[@]}" : \
'*-p+[Packages to run this command on, can be a concrete package name (\`foobar\`) or a prefix glob (\`foo*\`)]:SPEC:_default' \
'*--package=[Packages to run this command on, can be a concrete package name (\`foobar\`) or a prefix glob (\`foo*\`)]:SPEC:_default' \
'(-p --package)*--exclude=[Exclude packages from the command]:SPEC:_default' \
'*--prune=[Prune the given package(s) from the display of the dependency tree]:PRUNE:_default' \
'--depth=[Maximum display depth of the dependency tree]:DEPTH:_default' \
'--verbosity=[Set UI verbosity level by name.]:VERBOSITY:((quiet\:"Avoid printing anything to standard output"
no-warnings\:"Avoid printing warnings to standard output"
normal\:"Default verbosity level"
verbose\:"Print extra information to standard output"))' \
'(-p --package)-w[Run for all packages in the workspace]' \
'(-p --package)--workspace[Run for all packages in the workspace]' \
'--no-dedupe[Do not de-duplicate repeated dependencies]' \
'--core[Include the \`core\` package in the dependency tree]' \
'*-v[Increase logging verbosity.]' \
'*--verbose[Increase logging verbosity.]' \
'(-v --verbose)*-q[Decrease logging verbosity.]' \
'(-v --verbose)*--quiet[Decrease logging verbosity.]' \
'(-v --verbose -q --quiet)--no-warnings[Decrease logging verbosity, hiding warnings but still showing errors.]' \
'-h[Print help (see more with '\''--help'\'')]' \
'--help[Print help (see more with '\''--help'\'')]' \
&& ret=0
;;
(package)
_arguments "${_arguments_options[@]}" : \
'*-p+[Packages to run this command on, can be a concrete package name (\`foobar\`) or a prefix glob (\`foo*\`)]:SPEC:_default' \
'*--package=[Packages to run this command on, can be a concrete package name (\`foobar\`) or a prefix glob (\`foo*\`)]:SPEC:_default' \
'(-p --package)*--exclude=[Exclude packages from the command]:SPEC:_default' \
'*-F+[Comma separated list of features to activate]:FEATURES:_default' \
'*--features=[Comma separated list of features to activate]:FEATURES:_default' \
'--verbosity=[Set UI verbosity level by name.]:VERBOSITY:((quiet\:"Avoid printing anything to standard output"
no-warnings\:"Avoid printing warnings to standard output"
normal\:"Default verbosity level"
verbose\:"Print extra information to standard output"))' \
'-l[Print files included in a package without making one]' \
'--list[Print files included in a package without making one]' \
'--no-metadata[Ignore warnings about a lack of human-usable metadata]' \
'--allow-dirty[Allow working directories with uncommitted VCS changes to be packaged]' \
'--no-verify[Do not verify the contents by building them]' \
'(-p --package)-w[Run for all packages in the workspace]' \
'(-p --package)--workspace[Run for all packages in the workspace]' \
'(--no-default-features)--all-features[Activate all available features]' \
'(--all-features)--no-default-features[Do not activate the \`default\` feature]' \
'--ignore-cairo-version[Do not error on \`cairo-version\` mismatch]' \
'*-v[Increase logging verbosity.]' \
'*--verbose[Increase logging verbosity.]' \
'(-v --verbose)*-q[Decrease logging verbosity.]' \
'(-v --verbose)*--quiet[Decrease logging verbosity.]' \
'(-v --verbose -q --quiet)--no-warnings[Decrease logging verbosity, hiding warnings but still showing errors.]' \
'-h[Print help (see more with '\''--help'\'')]' \
'--help[Print help (see more with '\''--help'\'')]' \
&& ret=0
;;
(proc-macro-server)
_arguments "${_arguments_options[@]}" : \
'--verbosity=[Set UI verbosity level by name.]:VERBOSITY:((quiet\:"Avoid printing anything to standard output"
no-warnings\:"Avoid printing warnings to standard output"
normal\:"Default verbosity level"
verbose\:"Print extra information to standard output"))' \
'*-v[Increase logging verbosity.]' \
'*--verbose[Increase logging verbosity.]' \
'(-v --verbose)*-q[Decrease logging verbosity.]' \
'(-v --verbose)*--quiet[Decrease logging verbosity.]' \
'(-v --verbose -q --quiet)--no-warnings[Decrease logging verbosity, hiding warnings but still showing errors.]' \
'-h[Print help (see more with '\''--help'\'')]' \
'--help[Print help (see more with '\''--help'\'')]' \
&& ret=0
;;
(publish)
_arguments "${_arguments_options[@]}" : \
'--index=[Registry index URL to upload the package to]:URL:_default' \
'*-p+[Packages to run this command on, can be a concrete package name (\`foobar\`) or a prefix glob (\`foo*\`)]:SPEC:_default' \
'*--package=[Packages to run this command on, can be a concrete package name (\`foobar\`) or a prefix glob (\`foo*\`)]:SPEC:_default' \
'(-p --package)*--exclude=[Exclude packages from the command]:SPEC:_default' \
'*-F+[Comma separated list of features to activate]:FEATURES:_default' \
'*--features=[Comma separated list of features to activate]:FEATURES:_default' \
'--verbosity=[Set UI verbosity level by name.]:VERBOSITY:((quiet\:"Avoid printing anything to standard output"
no-warnings\:"Avoid printing warnings to standard output"
normal\:"Default verbosity level"
verbose\:"Print extra information to standard output"))' \
'--allow-dirty[Allow working directories with uncommitted VCS changes to be packaged]' \
'--no-verify[Do not verify the contents by building them]' \
'(-p --package)-w[Run for all packages in the workspace]' \
'(-p --package)--workspace[Run for all packages in the workspace]' \
'(--no-default-features)--all-features[Activate all available features]' \
'(--all-features)--no-default-features[Do not activate the \`default\` feature]' \
'--ignore-cairo-version[Do not error on \`cairo-version\` mismatch]' \
'*-v[Increase logging verbosity.]' \
'*--verbose[Increase logging verbosity.]' \
'(-v --verbose)*-q[Decrease logging verbosity.]' \
'(-v --verbose)*--quiet[Decrease logging verbosity.]' \
'(-v --verbose -q --quiet)--no-warnings[Decrease logging verbosity, hiding warnings but still showing errors.]' \
'-h[Print help (see more with '\''--help'\'')]' \
'--help[Print help (see more with '\''--help'\'')]' \
&& ret=0
;;
(lint)
_arguments "${_arguments_options[@]}" : \
'*-p+[Packages to run this command on, can be a concrete package name (\`foobar\`) or a prefix glob (\`foo*\`)]:SPEC:_default' \
'*--package=[Packages to run this command on, can be a concrete package name (\`foobar\`) or a prefix glob (\`foo*\`)]:SPEC:_default' \
'(-p --package)*--exclude=[Exclude packages from the command]:SPEC:_default' \
'*--target-names=[Comma separated list of target names to compile]:TARGET_NAMES:_default' \
'*-F+[Comma separated list of features to activate]:FEATURES:_default' \
'*--features=[Comma separated list of features to activate]:FEATURES:_default' \
'--verbosity=[Set UI verbosity level by name.]:VERBOSITY:((quiet\:"Avoid printing anything to standard output"
no-warnings\:"Avoid printing warnings to standard output"
normal\:"Default verbosity level"
verbose\:"Print extra information to standard output"))' \
'(-p --package)-w[Run for all packages in the workspace]' \
'(-p --package)--workspace[Run for all packages in the workspace]' \
'-t[Should lint the tests]' \
'--test[Should lint the tests]' \
'-f[Should fix the lint when it can]' \
'--fix[Should fix the lint when it can]' \
'--ignore-cairo-version[Do not error on \`cairo-version\` mismatch]' \
'(--no-default-features)--all-features[Activate all available features]' \
'(--all-features)--no-default-features[Do not activate the \`default\` feature]' \
'-d[Should fail on any warning]' \
'--deny-warnings[Should fail on any warning]' \
'*-v[Increase logging verbosity.]' \
'*--verbose[Increase logging verbosity.]' \
'(-v --verbose)*-q[Decrease logging verbosity.]' \
'(-v --verbose)*--quiet[Decrease logging verbosity.]' \
'(-v --verbose -q --quiet)--no-warnings[Decrease logging verbosity, hiding warnings but still showing errors.]' \
'-h[Print help (see more with '\''--help'\'')]' \
'--help[Print help (see more with '\''--help'\'')]' \
'::path -- Path to a file or directory to lint. If provided, only this file or directory will be linted:_default' \
&& ret=0
;;
(run)
_arguments "${_arguments_options[@]}" : \
'*-p+[Packages to run this command on, can be a concrete package name (\`foobar\`) or a prefix glob (\`foo*\`)]:SPEC:_default' \
'*--package=[Packages to run this command on, can be a concrete package name (\`foobar\`) or a prefix glob (\`foo*\`)]:SPEC:_default' \
'(-p --package)*--exclude=[Exclude packages from the command]:SPEC:_default' \
'--verbosity=[Set UI verbosity level by name.]:VERBOSITY:((quiet\:"Avoid printing anything to standard output"
no-warnings\:"Avoid printing warnings to standard output"
normal\:"Default verbosity level"
verbose\:"Print extra information to standard output"))' \
'(-p --package)-w[Run for all packages in the workspace]' \
'(-p --package)--workspace[Run for all packages in the workspace]' \
'--workspace-root[Run the script in workspace root only]' \
'*-v[Increase logging verbosity.]' \
'*--verbose[Increase logging verbosity.]' \
'(-v --verbose)*-q[Decrease logging verbosity.]' \
'(-v --verbose)*--quiet[Decrease logging verbosity.]' \
'(-v --verbose -q --quiet)--no-warnings[Decrease logging verbosity, hiding warnings but still showing errors.]' \
'-h[Print help (see more with '\''--help'\'')]' \
'--help[Print help (see more with '\''--help'\'')]' \
'::script -- The name of the script from the manifest file to execute:_default' \
'*::args -- Arguments to pass to the executed script:_default' \
&& ret=0
;;
(test)
_arguments "${_arguments_options[@]}" : \
'*-p+[Packages to run this command on, can be a concrete package name (\`foobar\`) or a prefix glob (\`foo*\`)]:SPEC:_default' \
'*--package=[Packages to run this command on, can be a concrete package name (\`foobar\`) or a prefix glob (\`foo*\`)]:SPEC:_default' \
'(-p --package)*--exclude=[Exclude packages from the command]:SPEC:_default' \
'*-F+[Comma separated list of features to activate]:FEATURES:_default' \
'*--features=[Comma separated list of features to activate]:FEATURES:_default' \
'--verbosity=[Set UI verbosity level by name.]:VERBOSITY:((quiet\:"Avoid printing anything to standard output"
no-warnings\:"Avoid printing warnings to standard output"
normal\:"Default verbosity level"
verbose\:"Print extra information to standard output"))' \
'(-p --package)-w[Run for all packages in the workspace]' \
'(-p --package)--workspace[Run for all packages in the workspace]' \
'(--no-default-features)--all-features[Activate all available features]' \
'(--all-features)--no-default-features[Do not activate the \`default\` feature]' \
'*-v[Increase logging verbosity.]' \
'*--verbose[Increase logging verbosity.]' \
'(-v --verbose)*-q[Decrease logging verbosity.]' \
'(-v --verbose)*--quiet[Decrease logging verbosity.]' \
'(-v --verbose -q --quiet)--no-warnings[Decrease logging verbosity, hiding warnings but still showing errors.]' \
'-h[Print help (see more with '\''--help'\'')]' \
'--help[Print help (see more with '\''--help'\'')]' \
'*::args -- Arguments for the test program:_default' \
&& ret=0
;;
(update)
_arguments "${_arguments_options[@]}" : \
'--verbosity=[Set UI verbosity level by name.]:VERBOSITY:((quiet\:"Avoid printing anything to standard output"
no-warnings\:"Avoid printing warnings to standard output"
normal\:"Default verbosity level"
verbose\:"Print extra information to standard output"))' \
'*-v[Increase logging verbosity.]' \
'*--verbose[Increase logging verbosity.]' \
'(-v --verbose)*-q[Decrease logging verbosity.]' \
'(-v --verbose)*--quiet[Decrease logging verbosity.]' \
'(-v --verbose -q --quiet)--no-warnings[Decrease logging verbosity, hiding warnings but still showing errors.]' \
'-h[Print help (see more with '\''--help'\'')]' \
'--help[Print help (see more with '\''--help'\'')]' \
&& ret=0
;;
(cairo-language-server)
_arguments "${_arguments_options[@]}" : \
'::verbose:_default' \
'::verbosity:_default' \
'::no_warnings:_default' \
'::quiet:_default' \
&& ret=0
;;
(cairo-test)
_arguments "${_arguments_options[@]}" : \
'*-p+[Packages to run this command on, can be a concrete package name (\`foobar\`) or a prefix glob (\`foo*\`)]:SPEC:_default' \
'*--package=[Packages to run this command on, can be a concrete package name (\`foobar\`) or a prefix glob (\`foo*\`)]:SPEC:_default' \
'(-p --package)*--exclude=[Exclude packages from the command]:SPEC:_default' \
'-f+[Run only tests whose name contain FILTER]:FILTER:_default' \
'--filter=[Run only tests whose name contain FILTER]:FILTER:_default' \
'-t+[Choose test kind to run]:TEST_KIND:((unit\:"Run only unit tests"
integration\:"Run only integration tests"
all\:"Run all tests"))' \
'--test-kind=[Choose test kind to run]:TEST_KIND:((unit\:"Run only unit tests"
integration\:"Run only integration tests"
all\:"Run all tests"))' \
'--verbosity=[Set UI verbosity level by name.]:VERBOSITY:((quiet\:"Avoid printing anything to standard output"
no-warnings\:"Avoid printing warnings to standard output"
normal\:"Default verbosity level"
verbose\:"Print extra information to standard output"))' \
'(-p --package)-w[Run for all packages in the workspace]' \
'(-p --package)--workspace[Run for all packages in the workspace]' \
'--include-ignored[Run ignored and not ignored tests]' \
'--ignored[Run only ignored tests]' \
'--print-resource-usage[Whether to print resource usage after each test]' \
'--json[Print machine-readable output in NDJSON format]' \
'*-v[Increase logging verbosity.]' \
'*--verbose[Increase logging verbosity.]' \
'(-v --verbose)*-q[Decrease logging verbosity.]' \
'(-v --verbose)*--quiet[Decrease logging verbosity.]' \
'(-v --verbose -q --quiet)--no-warnings[Decrease logging verbosity, hiding warnings but still showing errors.]' \
'-h[Print help (see more with '\''--help'\'')]' \
'--help[Print help (see more with '\''--help'\'')]' \
'-V[Print version]' \
'--version[Print version]' \
&& ret=0
;;
(doc)
_arguments "${_arguments_options[@]}" : \
'*-p+[Packages to run this command on, can be a concrete package name (\`foobar\`) or a prefix glob (\`foo*\`)]:SPEC:_default' \
'*--package=[Packages to run this command on, can be a concrete package name (\`foobar\`) or a prefix glob (\`foo*\`)]:SPEC:_default' \
'(-p --package)*--exclude=[Exclude packages from the command]:SPEC:_default' \
'--output-format=[Specifies a format of generated files]:OUTPUT_FORMAT:((markdown\:"Generates documentation in Markdown format. Generated files are fully compatible with mdBook. For more information visit <https\://rust-lang.github.io/mdBook>"
json\:"Saves information collected from packages in JSON format instead of generating documentation. This may be useful if you want to generate documentation files by yourself. The precise output structure is not guaranteed to be stable"))' \
'*-F+[Comma separated list of features to activate]:FEATURES:_default' \
'*--features=[Comma separated list of features to activate]:FEATURES:_default' \
'--verbosity=[Set UI verbosity level by name.]:VERBOSITY:((quiet\:"Avoid printing anything to standard output"
no-warnings\:"Avoid printing warnings to standard output"
normal\:"Default verbosity level"
verbose\:"Print extra information to standard output"))' \
'--remote-base-url=[Base URL of a remote repository. Used for generating links to source code]:REMOTE_BASE_URL:_default' \
'(-p --package)-w[Run for all packages in the workspace]' \
'(-p --package)--workspace[Run for all packages in the workspace]' \
'--document-private-items[Generates documentation also for private items]' \
'--build[Build generated documentation]' \
'--open[Open the generated documentation in a browser]' \
'(--no-default-features)--all-features[Activate all available features]' \
'(--all-features)--no-default-features[Do not activate the \`default\` feature]' \
'--json[Print machine-readable output in NDJSON format]' \
'*-v[Increase logging verbosity.]' \
'*--verbose[Increase logging verbosity.]' \
'(-v --verbose)*-q[Decrease logging verbosity.]' \
'(-v --verbose)*--quiet[Decrease logging verbosity.]' \
'(-v --verbose -q --quiet)--no-warnings[Decrease logging verbosity, hiding warnings but still showing errors.]' \
'--disable-remote-linking[Enables/disables linking documentation items to the source code repository]' \
'-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[@]}" : \
":: :_scarb__subcmd__help_commands" \
"*::: :->help" \
&& ret=0

    case $state in
    (help)
        words=($line[1] "${words[@]}")
        (( CURRENT += 1 ))
        curcontext="${curcontext%:*:*}:scarb-help-command-$line[1]:"
        case $line[1] in
            (add)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(remove)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(list)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(build)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(expand)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(cache)
_arguments "${_arguments_options[@]}" : \
":: :_scarb__subcmd__help__subcmd__cache_commands" \
"*::: :->cache" \
&& ret=0

    case $state in
    (cache)
        words=($line[1] "${words[@]}")
        (( CURRENT += 1 ))
        curcontext="${curcontext%:*:*}:scarb-help-cache-command-$line[1]:"
        case $line[1] in
            (clean)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(path)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
        esac
    ;;
esac
;;
(check)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(clean)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(completions)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(commands)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(fetch)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(fmt)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(init)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(manifest-path)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(metadata)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(new)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(tree)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(package)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(proc-macro-server)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(publish)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(lint)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(run)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(test)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(update)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(cairo-language-server)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(cairo-test)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(doc)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(help)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
        esac
    ;;
esac
;;
        esac
    ;;
esac
}

(( $+functions[_scarb_commands] )) ||
_scarb_commands() {
    local commands; commands=(
'add:Add dependencies to a Scarb.toml manifest file' \
'remove:Remove dependencies from a manifest file' \
'list:Fetch and list available versions of a package from the registry' \
'build:Compile current project' \
'expand:Expand macros' \
'cache:Manipulate packages cache' \
'check:Analyze the current package and report errors, but don'\''t build Sierra files' \
'clean:Remove generated artifacts' \
'completions:Generate shell completions for Scarb' \
'commands:List installed commands' \
'fetch:Fetch dependencies of packages from the network' \
'fmt:Format project files' \
'init:Create a new Scarb package in the existing directory' \
'manifest-path:Print a path to the current Scarb.toml file to standard output' \
'metadata:Output the resolved dependencies of a package, the concrete versions used, including overrides, in machine-readable format' \
'new:Create a new Scarb package at PATH' \
'tree:Display a tree visualisation of a dependency graph' \
'package:Assemble the local package into a distributable tarball' \
'proc-macro-server:Start the proc macro server' \
'publish:Upload a package to the registry' \
'lint:Checks a package to catch common mistakes and improve your Cairo code' \
'run:Run arbitrary package scripts' \
'test:Execute all unit and integration tests of a local package' \
'update:Update dependencies' \
'cairo-language-server:Start the Cairo Language Server' \
'cairo-test:Execute all unit tests of a local package' \
'doc:Generate documentation based on code comments' \
'help:Print this message or the help of the given subcommand(s)' \
    )
    _describe -t commands 'scarb commands' commands "$@"
}
(( $+functions[_scarb__subcmd__add_commands] )) ||
_scarb__subcmd__add_commands() {
    local commands; commands=()
    _describe -t commands 'scarb add commands' commands "$@"
}
(( $+functions[_scarb__subcmd__build_commands] )) ||
_scarb__subcmd__build_commands() {
    local commands; commands=()
    _describe -t commands 'scarb build commands' commands "$@"
}
(( $+functions[_scarb__subcmd__cache_commands] )) ||
_scarb__subcmd__cache_commands() {
    local commands; commands=(
'clean:Remove all cached dependencies' \
'path:Print the path of the cache directory' \
'help:Print this message or the help of the given subcommand(s)' \
    )
    _describe -t commands 'scarb cache commands' commands "$@"
}
(( $+functions[_scarb__subcmd__cache__subcmd__clean_commands] )) ||
_scarb__subcmd__cache__subcmd__clean_commands() {
    local commands; commands=()
    _describe -t commands 'scarb cache clean commands' commands "$@"
}
(( $+functions[_scarb__subcmd__cache__subcmd__help_commands] )) ||
_scarb__subcmd__cache__subcmd__help_commands() {
    local commands; commands=(
'clean:Remove all cached dependencies' \
'path:Print the path of the cache directory' \
'help:Print this message or the help of the given subcommand(s)' \
    )
    _describe -t commands 'scarb cache help commands' commands "$@"
}
(( $+functions[_scarb__subcmd__cache__subcmd__help__subcmd__clean_commands] )) ||
_scarb__subcmd__cache__subcmd__help__subcmd__clean_commands() {
    local commands; commands=()
    _describe -t commands 'scarb cache help clean commands' commands "$@"
}
(( $+functions[_scarb__subcmd__cache__subcmd__help__subcmd__help_commands] )) ||
_scarb__subcmd__cache__subcmd__help__subcmd__help_commands() {
    local commands; commands=()
    _describe -t commands 'scarb cache help help commands' commands "$@"
}
(( $+functions[_scarb__subcmd__cache__subcmd__help__subcmd__path_commands] )) ||
_scarb__subcmd__cache__subcmd__help__subcmd__path_commands() {
    local commands; commands=()
    _describe -t commands 'scarb cache help path commands' commands "$@"
}
(( $+functions[_scarb__subcmd__cache__subcmd__path_commands] )) ||
_scarb__subcmd__cache__subcmd__path_commands() {
    local commands; commands=()
    _describe -t commands 'scarb cache path commands' commands "$@"
}
(( $+functions[_scarb__subcmd__cairo-language-server_commands] )) ||
_scarb__subcmd__cairo-language-server_commands() {
    local commands; commands=()
    _describe -t commands 'scarb cairo-language-server commands' commands "$@"
}
(( $+functions[_scarb__subcmd__cairo-test_commands] )) ||
_scarb__subcmd__cairo-test_commands() {
    local commands; commands=()
    _describe -t commands 'scarb cairo-test commands' commands "$@"
}
(( $+functions[_scarb__subcmd__check_commands] )) ||
_scarb__subcmd__check_commands() {
    local commands; commands=()
    _describe -t commands 'scarb check commands' commands "$@"
}
(( $+functions[_scarb__subcmd__clean_commands] )) ||
_scarb__subcmd__clean_commands() {
    local commands; commands=()
    _describe -t commands 'scarb clean commands' commands "$@"
}
(( $+functions[_scarb__subcmd__commands_commands] )) ||
_scarb__subcmd__commands_commands() {
    local commands; commands=()
    _describe -t commands 'scarb commands commands' commands "$@"
}
(( $+functions[_scarb__subcmd__completions_commands] )) ||
_scarb__subcmd__completions_commands() {
    local commands; commands=()
    _describe -t commands 'scarb completions commands' commands "$@"
}
(( $+functions[_scarb__subcmd__doc_commands] )) ||
_scarb__subcmd__doc_commands() {
    local commands; commands=()
    _describe -t commands 'scarb doc commands' commands "$@"
}
(( $+functions[_scarb__subcmd__expand_commands] )) ||
_scarb__subcmd__expand_commands() {
    local commands; commands=()
    _describe -t commands 'scarb expand commands' commands "$@"
}
(( $+functions[_scarb__subcmd__fetch_commands] )) ||
_scarb__subcmd__fetch_commands() {
    local commands; commands=()
    _describe -t commands 'scarb fetch commands' commands "$@"
}
(( $+functions[_scarb__subcmd__fmt_commands] )) ||
_scarb__subcmd__fmt_commands() {
    local commands; commands=()
    _describe -t commands 'scarb fmt commands' commands "$@"
}
(( $+functions[_scarb__subcmd__help_commands] )) ||
_scarb__subcmd__help_commands() {
    local commands; commands=(
'add:Add dependencies to a Scarb.toml manifest file' \
'remove:Remove dependencies from a manifest file' \
'list:Fetch and list available versions of a package from the registry' \
'build:Compile current project' \
'expand:Expand macros' \
'cache:Manipulate packages cache' \
'check:Analyze the current package and report errors, but don'\''t build Sierra files' \
'clean:Remove generated artifacts' \
'completions:Generate shell completions for Scarb' \
'commands:List installed commands' \
'fetch:Fetch dependencies of packages from the network' \
'fmt:Format project files' \
'init:Create a new Scarb package in the existing directory' \
'manifest-path:Print a path to the current Scarb.toml file to standard output' \
'metadata:Output the resolved dependencies of a package, the concrete versions used, including overrides, in machine-readable format' \
'new:Create a new Scarb package at PATH' \
'tree:Display a tree visualisation of a dependency graph' \
'package:Assemble the local package into a distributable tarball' \
'proc-macro-server:Start the proc macro server' \
'publish:Upload a package to the registry' \
'lint:Checks a package to catch common mistakes and improve your Cairo code' \
'run:Run arbitrary package scripts' \
'test:Execute all unit and integration tests of a local package' \
'update:Update dependencies' \
'cairo-language-server:Start the Cairo Language Server' \
'cairo-test:Execute all unit tests of a local package' \
'doc:Generate documentation based on code comments' \
'help:Print this message or the help of the given subcommand(s)' \
    )
    _describe -t commands 'scarb help commands' commands "$@"
}
(( $+functions[_scarb__subcmd__help__subcmd__add_commands] )) ||
_scarb__subcmd__help__subcmd__add_commands() {
    local commands; commands=()
    _describe -t commands 'scarb help add commands' commands "$@"
}
(( $+functions[_scarb__subcmd__help__subcmd__build_commands] )) ||
_scarb__subcmd__help__subcmd__build_commands() {
    local commands; commands=()
    _describe -t commands 'scarb help build commands' commands "$@"
}
(( $+functions[_scarb__subcmd__help__subcmd__cache_commands] )) ||
_scarb__subcmd__help__subcmd__cache_commands() {
    local commands; commands=(
'clean:Remove all cached dependencies' \
'path:Print the path of the cache directory' \
    )
    _describe -t commands 'scarb help cache commands' commands "$@"
}
(( $+functions[_scarb__subcmd__help__subcmd__cache__subcmd__clean_commands] )) ||
_scarb__subcmd__help__subcmd__cache__subcmd__clean_commands() {
    local commands; commands=()
    _describe -t commands 'scarb help cache clean commands' commands "$@"
}
(( $+functions[_scarb__subcmd__help__subcmd__cache__subcmd__path_commands] )) ||
_scarb__subcmd__help__subcmd__cache__subcmd__path_commands() {
    local commands; commands=()
    _describe -t commands 'scarb help cache path commands' commands "$@"
}
(( $+functions[_scarb__subcmd__help__subcmd__cairo-language-server_commands] )) ||
_scarb__subcmd__help__subcmd__cairo-language-server_commands() {
    local commands; commands=()
    _describe -t commands 'scarb help cairo-language-server commands' commands "$@"
}
(( $+functions[_scarb__subcmd__help__subcmd__cairo-test_commands] )) ||
_scarb__subcmd__help__subcmd__cairo-test_commands() {
    local commands; commands=()
    _describe -t commands 'scarb help cairo-test commands' commands "$@"
}
(( $+functions[_scarb__subcmd__help__subcmd__check_commands] )) ||
_scarb__subcmd__help__subcmd__check_commands() {
    local commands; commands=()
    _describe -t commands 'scarb help check commands' commands "$@"
}
(( $+functions[_scarb__subcmd__help__subcmd__clean_commands] )) ||
_scarb__subcmd__help__subcmd__clean_commands() {
    local commands; commands=()
    _describe -t commands 'scarb help clean commands' commands "$@"
}
(( $+functions[_scarb__subcmd__help__subcmd__commands_commands] )) ||
_scarb__subcmd__help__subcmd__commands_commands() {
    local commands; commands=()
    _describe -t commands 'scarb help commands commands' commands "$@"
}
(( $+functions[_scarb__subcmd__help__subcmd__completions_commands] )) ||
_scarb__subcmd__help__subcmd__completions_commands() {
    local commands; commands=()
    _describe -t commands 'scarb help completions commands' commands "$@"
}
(( $+functions[_scarb__subcmd__help__subcmd__doc_commands] )) ||
_scarb__subcmd__help__subcmd__doc_commands() {
    local commands; commands=()
    _describe -t commands 'scarb help doc commands' commands "$@"
}
(( $+functions[_scarb__subcmd__help__subcmd__expand_commands] )) ||
_scarb__subcmd__help__subcmd__expand_commands() {
    local commands; commands=()
    _describe -t commands 'scarb help expand commands' commands "$@"
}
(( $+functions[_scarb__subcmd__help__subcmd__fetch_commands] )) ||
_scarb__subcmd__help__subcmd__fetch_commands() {
    local commands; commands=()
    _describe -t commands 'scarb help fetch commands' commands "$@"
}
(( $+functions[_scarb__subcmd__help__subcmd__fmt_commands] )) ||
_scarb__subcmd__help__subcmd__fmt_commands() {
    local commands; commands=()
    _describe -t commands 'scarb help fmt commands' commands "$@"
}
(( $+functions[_scarb__subcmd__help__subcmd__help_commands] )) ||
_scarb__subcmd__help__subcmd__help_commands() {
    local commands; commands=()
    _describe -t commands 'scarb help help commands' commands "$@"
}
(( $+functions[_scarb__subcmd__help__subcmd__init_commands] )) ||
_scarb__subcmd__help__subcmd__init_commands() {
    local commands; commands=()
    _describe -t commands 'scarb help init commands' commands "$@"
}
(( $+functions[_scarb__subcmd__help__subcmd__lint_commands] )) ||
_scarb__subcmd__help__subcmd__lint_commands() {
    local commands; commands=()
    _describe -t commands 'scarb help lint commands' commands "$@"
}
(( $+functions[_scarb__subcmd__help__subcmd__list_commands] )) ||
_scarb__subcmd__help__subcmd__list_commands() {
    local commands; commands=()
    _describe -t commands 'scarb help list commands' commands "$@"
}
(( $+functions[_scarb__subcmd__help__subcmd__manifest-path_commands] )) ||
_scarb__subcmd__help__subcmd__manifest-path_commands() {
    local commands; commands=()
    _describe -t commands 'scarb help manifest-path commands' commands "$@"
}
(( $+functions[_scarb__subcmd__help__subcmd__metadata_commands] )) ||
_scarb__subcmd__help__subcmd__metadata_commands() {
    local commands; commands=()
    _describe -t commands 'scarb help metadata commands' commands "$@"
}
(( $+functions[_scarb__subcmd__help__subcmd__new_commands] )) ||
_scarb__subcmd__help__subcmd__new_commands() {
    local commands; commands=()
    _describe -t commands 'scarb help new commands' commands "$@"
}
(( $+functions[_scarb__subcmd__help__subcmd__package_commands] )) ||
_scarb__subcmd__help__subcmd__package_commands() {
    local commands; commands=()
    _describe -t commands 'scarb help package commands' commands "$@"
}
(( $+functions[_scarb__subcmd__help__subcmd__proc-macro-server_commands] )) ||
_scarb__subcmd__help__subcmd__proc-macro-server_commands() {
    local commands; commands=()
    _describe -t commands 'scarb help proc-macro-server commands' commands "$@"
}
(( $+functions[_scarb__subcmd__help__subcmd__publish_commands] )) ||
_scarb__subcmd__help__subcmd__publish_commands() {
    local commands; commands=()
    _describe -t commands 'scarb help publish commands' commands "$@"
}
(( $+functions[_scarb__subcmd__help__subcmd__remove_commands] )) ||
_scarb__subcmd__help__subcmd__remove_commands() {
    local commands; commands=()
    _describe -t commands 'scarb help remove commands' commands "$@"
}
(( $+functions[_scarb__subcmd__help__subcmd__run_commands] )) ||
_scarb__subcmd__help__subcmd__run_commands() {
    local commands; commands=()
    _describe -t commands 'scarb help run commands' commands "$@"
}
(( $+functions[_scarb__subcmd__help__subcmd__test_commands] )) ||
_scarb__subcmd__help__subcmd__test_commands() {
    local commands; commands=()
    _describe -t commands 'scarb help test commands' commands "$@"
}
(( $+functions[_scarb__subcmd__help__subcmd__tree_commands] )) ||
_scarb__subcmd__help__subcmd__tree_commands() {
    local commands; commands=()
    _describe -t commands 'scarb help tree commands' commands "$@"
}
(( $+functions[_scarb__subcmd__help__subcmd__update_commands] )) ||
_scarb__subcmd__help__subcmd__update_commands() {
    local commands; commands=()
    _describe -t commands 'scarb help update commands' commands "$@"
}
(( $+functions[_scarb__subcmd__init_commands] )) ||
_scarb__subcmd__init_commands() {
    local commands; commands=()
    _describe -t commands 'scarb init commands' commands "$@"
}
(( $+functions[_scarb__subcmd__lint_commands] )) ||
_scarb__subcmd__lint_commands() {
    local commands; commands=()
    _describe -t commands 'scarb lint commands' commands "$@"
}
(( $+functions[_scarb__subcmd__list_commands] )) ||
_scarb__subcmd__list_commands() {
    local commands; commands=()
    _describe -t commands 'scarb list commands' commands "$@"
}
(( $+functions[_scarb__subcmd__manifest-path_commands] )) ||
_scarb__subcmd__manifest-path_commands() {
    local commands; commands=()
    _describe -t commands 'scarb manifest-path commands' commands "$@"
}
(( $+functions[_scarb__subcmd__metadata_commands] )) ||
_scarb__subcmd__metadata_commands() {
    local commands; commands=()
    _describe -t commands 'scarb metadata commands' commands "$@"
}
(( $+functions[_scarb__subcmd__new_commands] )) ||
_scarb__subcmd__new_commands() {
    local commands; commands=()
    _describe -t commands 'scarb new commands' commands "$@"
}
(( $+functions[_scarb__subcmd__package_commands] )) ||
_scarb__subcmd__package_commands() {
    local commands; commands=()
    _describe -t commands 'scarb package commands' commands "$@"
}
(( $+functions[_scarb__subcmd__proc-macro-server_commands] )) ||
_scarb__subcmd__proc-macro-server_commands() {
    local commands; commands=()
    _describe -t commands 'scarb proc-macro-server commands' commands "$@"
}
(( $+functions[_scarb__subcmd__publish_commands] )) ||
_scarb__subcmd__publish_commands() {
    local commands; commands=()
    _describe -t commands 'scarb publish commands' commands "$@"
}
(( $+functions[_scarb__subcmd__remove_commands] )) ||
_scarb__subcmd__remove_commands() {
    local commands; commands=()
    _describe -t commands 'scarb remove commands' commands "$@"
}
(( $+functions[_scarb__subcmd__run_commands] )) ||
_scarb__subcmd__run_commands() {
    local commands; commands=()
    _describe -t commands 'scarb run commands' commands "$@"
}
(( $+functions[_scarb__subcmd__test_commands] )) ||
_scarb__subcmd__test_commands() {
    local commands; commands=()
    _describe -t commands 'scarb test commands' commands "$@"
}
(( $+functions[_scarb__subcmd__tree_commands] )) ||
_scarb__subcmd__tree_commands() {
    local commands; commands=()
    _describe -t commands 'scarb tree commands' commands "$@"
}
(( $+functions[_scarb__subcmd__update_commands] )) ||
_scarb__subcmd__update_commands() {
    local commands; commands=()
    _describe -t commands 'scarb update commands' commands "$@"
}

if [ "$funcstack[1]" = "_scarb" ]; then
    _scarb "$@"
else
    compdef _scarb scarb
fi
