#compdef lx

autoload -U is-at-least

_lx() {
    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[@]}" : \
'--server=[Fetch rocks/rockspecs from this server (takes priority over config file)]:server:_default' \
'*--extra-servers=[Fetch rocks/rockspecs from this server in addition to the main server{n} (overrides any entries in the config file)]:extra-server:_default' \
'--only-sources=[Restrict downloads to paths matching the given URL]:url:_default' \
'--namespace=[Specify the luarocks server namespace to use]:namespace:_default' \
'--lua-dir=[Specify the directory in which to install Lua{n} if not found]:prefix:_files' \
'--lua-version=[Which Lua installation to use.{n} Valid versions are\: '\''5.1'\'', '\''5.2'\'', '\''5.3'\'', '\''5.4'\'', '\''jit'\'' and '\''jit52'\'']:ver:_default' \
'--tree=[Which tree to operate on]:tree:_files' \
'--cache-dir=[Specifies the cache directory for e.g. luarocks manifests]:cache-dir:_files' \
'--data-dir=[Specifies the data directory (e.g. ~/.local/share/lux)]:data-dir:_files' \
'--vendor-dir=[Specifies a directory with locally vendored sources and RockSpecs.{n} When building or installing a package with this flag,{n} Lux will fetch sources from the <vendor-dir> instead of from a remote server]:vendor-dir:_files' \
'*--variables=[Override config variables.{n} Example\: \`lx -v "LUA=/path/to/lua" ...\`]:variable:_default' \
'--timeout=[Timeout on network operations, in seconds.{n} 0 means no timeout (wait forever). Default is 30]:seconds:_default' \
'--max-jobs=[Maximum buffer size for parallel jobs, such as downloading rockspecs and installing rocks. 0 means no limit. Default is 0]:MAX_JOBS:_default' \
'--dev[Enable the sub-repositories in luarocks servers for rockspecs of in-development versions]' \
'--verbose[Display verbose output of commands executed]' \
'--no-progress[Don'\''t print any progress bars or spinners]' \
'--nvim[Configure lux for installing Neovim packages]' \
'--no-luarc[Do not generate or update a \`.luarc.json\` file when building{n} a project]' \
'-h[Print help]' \
'--help[Print help]' \
'-V[Print version]' \
'--version[Print version]' \
":: :_lx_commands" \
"*::: :->lux-cli" \
&& ret=0
    case $state in
    (lux-cli)
        words=($line[1] "${words[@]}")
        (( CURRENT += 1 ))
        curcontext="${curcontext%:*:*}:lx-command-$line[1]:"
        case $line[1] in
            (add)
_arguments "${_arguments_options[@]}" : \
'*-b+[Install the package as a development dependency. {n} Also called \`dev\`]:BUILD:_default' \
'*-d+[Install the package as a development dependency. {n} Also called \`dev\`]:BUILD:_default' \
'*-b+[Install the package as a development dependency. {n} Also called \`dev\`]:BUILD:_default' \
'*--build=[Install the package as a development dependency. {n} Also called \`dev\`]:BUILD:_default' \
'*-t+[Install the package as a test dependency]:TEST:_default' \
'*-t+[Install the package as a test dependency]:TEST:_default' \
'*--test=[Install the package as a test dependency]:TEST:_default' \
'--force[Reinstall without prompt if a package is already installed]' \
'-h[Print help]' \
'--help[Print help]' \
'*::package_req -- Package or list of packages to install and add to the project'\''s dependencies. {n} Examples\: "pkg", "pkg@1.0.0", "pkg>=1.0.0" {n} If you do not specify a version requirement, lux will fetch the latest version. {n} {n} You can also specify git packages by providing a git URL shorthand. {n} Example\: "github\:owner/repo" {n} Supported git host prefixes are\: "github\:", "gitlab\:", "sourcehut\:" and "codeberg\:". {n} Lux will automatically fetch the latest SemVer tag or commit SHA if no SemVer tag is found. {n} Note that projects with git dependencies cannot be published to luarocks.org:_default' \
&& ret=0
;;
(build)
_arguments "${_arguments_options[@]}" : \
'--no-lock[Ignore the project'\''s lockfile and don'\''t create one]' \
'--only-deps[Build only the dependencies]' \
'-h[Print help]' \
'--help[Print help]' \
&& ret=0
;;
(check)
_arguments "${_arguments_options[@]}" : \
'*-i+[Comma-separated list of ignore patterns. Patterns must follow glob syntax. Lux will automatically add top-level ignored project files]:IGNORE:_default' \
'*--ignore=[Comma-separated list of ignore patterns. Patterns must follow glob syntax. Lux will automatically add top-level ignored project files]:IGNORE:_default' \
'--output-format=[The output format]:OUTPUT_FORMAT:(json text)' \
'--output=[Output destination.{n} (stdout or a file path, only used when the output format is json)]:OUTPUT:_default' \
'--warnings-as-errors[Treat warnings as errors]' \
'-h[Print help]' \
'--help[Print help]' \
&& ret=0
;;
(config)
_arguments "${_arguments_options[@]}" : \
'-h[Print help]' \
'--help[Print help]' \
":: :_lx__config_commands" \
"*::: :->config" \
&& ret=0

    case $state in
    (config)
        words=($line[1] "${words[@]}")
        (( CURRENT += 1 ))
        curcontext="${curcontext%:*:*}:lx-config-command-$line[1]:"
        case $line[1] in
            (init)
_arguments "${_arguments_options[@]}" : \
'(--current)--default[Initialise the default config for this system. If this flag is not set, an empty config file will be created]' \
'(--default)--current[Initialise the config file using the current config, with options picked up from CLI flags]' \
'-h[Print help]' \
'--help[Print help]' \
&& ret=0
;;
(edit)
_arguments "${_arguments_options[@]}" : \
'-h[Print help]' \
'--help[Print help]' \
&& ret=0
;;
(show)
_arguments "${_arguments_options[@]}" : \
'-h[Print help]' \
'--help[Print help]' \
&& ret=0
;;
(help)
_arguments "${_arguments_options[@]}" : \
":: :_lx__config__help_commands" \
"*::: :->help" \
&& ret=0

    case $state in
    (help)
        words=($line[1] "${words[@]}")
        (( CURRENT += 1 ))
        curcontext="${curcontext%:*:*}:lx-config-help-command-$line[1]:"
        case $line[1] in
            (init)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(edit)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(show)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(help)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
        esac
    ;;
esac
;;
        esac
    ;;
esac
;;
(completion)
_arguments "${_arguments_options[@]}" : \
'-h[Print help]' \
'--help[Print help]' \
'::shell -- The shell to generate the completion script for.{n} If not set, Lux will try to detect the current shell.{n} Possible values\: "bash", "elvish", "fish", "powershell", "zsh"{n}:(bash elvish fish powershell zsh)' \
&& ret=0
;;
(debug)
_arguments "${_arguments_options[@]}" : \
'-h[Print help]' \
'--help[Print help]' \
":: :_lx__debug_commands" \
"*::: :->debug" \
&& ret=0

    case $state in
    (debug)
        words=($line[1] "${words[@]}")
        (( CURRENT += 1 ))
        curcontext="${curcontext%:*:*}:lx-debug-command-$line[1]:"
        case $line[1] in
            (unpack)
_arguments "${_arguments_options[@]}" : \
'-h[Print help]' \
'--help[Print help]' \
':path -- A path to a .src.rock file. Usually obtained via `lux download`:_files' \
'::destination -- Where to unpack the rock:_files' \
&& ret=0
;;
(fetch-remote)
_arguments "${_arguments_options[@]}" : \
'-h[Print help]' \
'--help[Print help]' \
':package_req:_default' \
'::path -- The directory to unpack to:_files' \
&& ret=0
;;
(unpack-remote)
_arguments "${_arguments_options[@]}" : \
'-h[Print help]' \
'--help[Print help]' \
':package_req:_default' \
'::path -- The directory to unpack to:_files' \
&& ret=0
;;
(project)
_arguments "${_arguments_options[@]}" : \
'--list-files[List files that are included. To avoid copying large files that are not relevant to the build process, Lux excludes hidden files and files that are ignored (e.g. by .gitignore or other .ignore files)]' \
'-h[Print help]' \
'--help[Print help]' \
&& ret=0
;;
(help)
_arguments "${_arguments_options[@]}" : \
":: :_lx__debug__help_commands" \
"*::: :->help" \
&& ret=0

    case $state in
    (help)
        words=($line[1] "${words[@]}")
        (( CURRENT += 1 ))
        curcontext="${curcontext%:*:*}:lx-debug-help-command-$line[1]:"
        case $line[1] in
            (unpack)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(fetch-remote)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(unpack-remote)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(project)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(help)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
        esac
    ;;
esac
;;
        esac
    ;;
esac
;;
(doc)
_arguments "${_arguments_options[@]}" : \
'--online[Ignore local docs and open the package'\''s homepage in a browser]' \
'-h[Print help]' \
'--help[Print help]' \
':package:_default' \
&& ret=0
;;
(download)
_arguments "${_arguments_options[@]}" : \
'-h[Print help]' \
'--help[Print help]' \
':package_req:_default' \
&& ret=0
;;
(fmt)
_arguments "${_arguments_options[@]}" : \
'--backend=[]:BACKEND:(stylua emmylua-codestyle)' \
'-h[Print help]' \
'--help[Print help]' \
'::workspace_or_file -- Optional path to a workspace or Lua file to format:_files' \
&& ret=0
;;
(generate-rockspec)
_arguments "${_arguments_options[@]}" : \
'-h[Print help]' \
'--help[Print help]' \
&& ret=0
;;
(info)
_arguments "${_arguments_options[@]}" : \
'-h[Print help]' \
'--help[Print help]' \
':package:_default' \
&& ret=0
;;
(install)
_arguments "${_arguments_options[@]}" : \
'--pin[Pin the packages so that they don'\''t get updated]' \
'--force[Reinstall without prompt if a package is already installed]' \
'-h[Print help]' \
'--help[Print help]' \
'*::package_req -- Package or list of packages to install:_default' \
&& ret=0
;;
(install-rockspec)
_arguments "${_arguments_options[@]}" : \
'--pin[Whether to pin the installed package and dependencies]' \
'-h[Print help]' \
'--help[Print help]' \
':rockspec_path -- The path to the RockSpec file to install:_files' \
&& ret=0
;;
(install-lua)
_arguments "${_arguments_options[@]}" : \
'-h[Print help]' \
'--help[Print help]' \
&& ret=0
;;
(lint)
_arguments "${_arguments_options[@]}" : \
'--no-ignore[By default, Lux will add top-level ignored files and directories{n} (like those in .gitignore) to luacheck'\''s exclude files.{n} This flag disables that behaviour.{n}]' \
'-h[Print help]' \
'--help[Print help]' \
'*::args -- Arguments to pass to the luacheck command.{n} If you pass arguments to luacheck, Lux will not pass any default arguments:_default' \
&& ret=0
;;
(list)
_arguments "${_arguments_options[@]}" : \
'--porcelain[]' \
'-h[Print help]' \
'--help[Print help]' \
&& ret=0
;;
(lua)
_arguments "${_arguments_options[@]}" : \
'--lua=[Path to the Lua interpreter to use]:LUA:_default' \
'--test[Add test dependencies to the environment]' \
'--build[Add build dependencies to the environment]' \
'--no-loader[Disable the Lux loader. If a rock has conflicting transitive dependencies, disabling the Lux loader may result in the wrong modules being loaded]' \
'--no-lock[Ignore the project'\''s lockfile and don'\''t create one]' \
'--only-deps[Build only the dependencies]' \
'--help[Print help]' \
'*::args -- Arguments to pass to Lua. See `lua -h`:_default' \
&& ret=0
;;
(new)
_arguments "${_arguments_options[@]}" : \
'--name=[The project'\''s name]:NAME:_default' \
'--description=[The description of the project]:DESCRIPTION:_default' \
'--license=[The license of the project. Generic license names will be inferred]:LICENSE:_default' \
'--maintainer=[The maintainer of this project. Does not have to be the code author]:MAINTAINER:_default' \
'--labels=[A comma-separated list of labels to apply to this project]:LABELS:_default' \
'--lua-versions=[A version constraint on the required Lua version for this project. Examples\: ">=5.1", "5.1"]:LUA_VERSIONS:_default' \
'--main=[]:MAIN:(src lua)' \
'-h[Print help]' \
'--help[Print help]' \
':target -- The directory of the project:_files' \
&& ret=0
;;
(outdated)
_arguments "${_arguments_options[@]}" : \
'--porcelain[]' \
'-h[Print help]' \
'--help[Print help]' \
&& ret=0
;;
(pack)
_arguments "${_arguments_options[@]}" : \
'-h[Print help]' \
'--help[Print help]' \
'::package_or_rockspec -- Path to a RockSpec or a package query for a package to pack.{n} Prioritises installed rocks and will install a rock to a temporary{n} directory if none is found.{n} In case of multiple matches, the latest version will be packed.{n} {n} Examples\:{n} - "pkg"{n} - "pkg@1.0.0"{n} - "pkg>=1.0.0"{n} - "/path/to/foo-1.0.0-1.rockspec"{n} {n} If not set, lux will build the current project and attempt to pack it.{n} To be able to pack a project, lux must be able to generate a release or dev{n} Lua rockspec.{n}:_default' \
&& ret=0
;;
(path)
_arguments "${_arguments_options[@]}" : \
'--prepend[Prepend the rocks tree paths to the system paths]' \
'-h[Print help]' \
'--help[Print help]' \
":: :_lx__path_commands" \
"*::: :->path" \
&& ret=0

    case $state in
    (path)
        words=($line[1] "${words[@]}")
        (( CURRENT += 1 ))
        curcontext="${curcontext%:*:*}:lx-path-command-$line[1]:"
        case $line[1] in
            (full)
_arguments "${_arguments_options[@]}" : \
'--shell=[The shell to format for]:SHELL:(posix fish nu)' \
'--no-bin[Do not export \`PATH\` (\`bin\` paths)]' \
'--no-loader[Do not add \`require('\''lux'\'').loader()\` to \`LUA_INIT\`. If a rock has conflicting transitive dependencies, disabling the Lux loader may result in the wrong modules being loaded]' \
'-h[Print help]' \
'--help[Print help]' \
&& ret=0
;;
(lua)
_arguments "${_arguments_options[@]}" : \
'-h[Print help]' \
'--help[Print help]' \
&& ret=0
;;
(c)
_arguments "${_arguments_options[@]}" : \
'-h[Print help]' \
'--help[Print help]' \
&& ret=0
;;
(bin)
_arguments "${_arguments_options[@]}" : \
'-h[Print help]' \
'--help[Print help]' \
&& ret=0
;;
(init)
_arguments "${_arguments_options[@]}" : \
'-h[Print help]' \
'--help[Print help]' \
&& ret=0
;;
(help)
_arguments "${_arguments_options[@]}" : \
":: :_lx__path__help_commands" \
"*::: :->help" \
&& ret=0

    case $state in
    (help)
        words=($line[1] "${words[@]}")
        (( CURRENT += 1 ))
        curcontext="${curcontext%:*:*}:lx-path-help-command-$line[1]:"
        case $line[1] in
            (full)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(lua)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(c)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(bin)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(init)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(help)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
        esac
    ;;
esac
;;
        esac
    ;;
esac
;;
(pin)
_arguments "${_arguments_options[@]}" : \
'*-b+[Pin a development dependency. Also called \`dev\`]:BUILD:_default' \
'*-d+[Pin a development dependency. Also called \`dev\`]:BUILD:_default' \
'*-b+[Pin a development dependency. Also called \`dev\`]:BUILD:_default' \
'*--build=[Pin a development dependency. Also called \`dev\`]:BUILD:_default' \
'*-t+[Pin a test dependency]:TEST:_default' \
'*--test=[Pin a test dependency]:TEST:_default' \
'-h[Print help]' \
'--help[Print help]' \
'*::package -- Installed package or dependency to pin. If pinning a dependency in a project, this should be the package name:_default' \
&& ret=0
;;
(purge)
_arguments "${_arguments_options[@]}" : \
'-h[Print help]' \
'--help[Print help]' \
&& ret=0
;;
(remove)
_arguments "${_arguments_options[@]}" : \
'*-b+[Remove a development dependency. Also called \`dev\`]:BUILD:_default' \
'*-d+[Remove a development dependency. Also called \`dev\`]:BUILD:_default' \
'*-b+[Remove a development dependency. Also called \`dev\`]:BUILD:_default' \
'*--build=[Remove a development dependency. Also called \`dev\`]:BUILD:_default' \
'*-t+[Remove a test dependency]:TEST:_default' \
'*--test=[Remove a test dependency]:TEST:_default' \
'-h[Print help]' \
'--help[Print help]' \
'*::package -- Package or list of packages to remove from the dependencies:_default' \
&& ret=0
;;
(run)
_arguments "${_arguments_options[@]}" : \
'--dir=[Path in which to run the command.{n} Defaults to the project root]:DIR:_files' \
'--no-loader[Do not add \`require('\''lux'\'').loader()\` to \`LUA_INIT\`.{n} If a rock has conflicting transitive dependencies,{n} disabling the Lux loader may result in the wrong modules being loaded]' \
'--no-lock[Ignore the project'\''s lockfile and don'\''t create one]' \
'--only-deps[Build only the dependencies]' \
'-h[Print help]' \
'--help[Print help]' \
'*::args:_default' \
&& ret=0
;;
(exec)
_arguments "${_arguments_options[@]}" : \
'--no-loader[Do not add \`require('\''lux'\'').loader()\` to \`LUA_INIT\`. If a rock has conflicting transitive dependencies, disabling the Lux loader may result in the wrong modules being loaded]' \
'-h[Print help]' \
'--help[Print help]' \
':command -- The command to run:_default' \
'*::args -- Arguments to pass to the program:_default' \
&& ret=0
;;
(search)
_arguments "${_arguments_options[@]}" : \
'--porcelain[Return a machine readable format]' \
'-h[Print help]' \
'--help[Print help]' \
':lua_package_req:_default' \
&& ret=0
;;
(test)
_arguments "${_arguments_options[@]}" : \
'--impure[Don'\''t isolate the user environment (keep \`HOME\` and \`XDG\` environment variables)]' \
'--no-lock[Ignore the project'\''s lockfile and don'\''t create one]' \
'-h[Print help]' \
'--help[Print help]' \
'*::test_args -- Extra arguments to pass to the test runner or test script:_default' \
&& ret=0
;;
(uninstall)
_arguments "${_arguments_options[@]}" : \
'-h[Print help]' \
'--help[Print help]' \
'*::packages -- The package or packages to uninstall from the system:_default' \
&& ret=0
;;
(unpin)
_arguments "${_arguments_options[@]}" : \
'*-b+[Pin a development dependency. Also called \`dev\`]:BUILD:_default' \
'*-d+[Pin a development dependency. Also called \`dev\`]:BUILD:_default' \
'*-b+[Pin a development dependency. Also called \`dev\`]:BUILD:_default' \
'*--build=[Pin a development dependency. Also called \`dev\`]:BUILD:_default' \
'*-t+[Pin a test dependency]:TEST:_default' \
'*--test=[Pin a test dependency]:TEST:_default' \
'-h[Print help]' \
'--help[Print help]' \
'*::package -- Installed package or dependency to pin. If pinning a dependency in a project, this should be the package name:_default' \
&& ret=0
;;
(update)
_arguments "${_arguments_options[@]}" : \
'*-b+[Build dependencies to update. Also called \`dev\`. When used with the --toml flag in a project, these must be package names]:BUILD:_default' \
'*-d+[Build dependencies to update. Also called \`dev\`. When used with the --toml flag in a project, these must be package names]:BUILD:_default' \
'*-b+[Build dependencies to update. Also called \`dev\`. When used with the --toml flag in a project, these must be package names]:BUILD:_default' \
'*--build=[Build dependencies to update. Also called \`dev\`. When used with the --toml flag in a project, these must be package names]:BUILD:_default' \
'*-t+[Build dependencies to update. When used with the --toml flag in a project, these must be package names]:TEST:_default' \
'*--test=[Build dependencies to update. When used with the --toml flag in a project, these must be package names]:TEST:_default' \
'--no-integrity-check[Skip the integrity checks for installed rocks when syncing the project lockfile]' \
'--toml[Upgrade packages in the project'\''s lux.toml (if operating on a project)]' \
'-h[Print help]' \
'--help[Print help]' \
'*::packages -- Packages to update. When used with the --toml flag in a project, these must be package names:_default' \
&& ret=0
;;
(upload)
_arguments "${_arguments_options[@]}" : \
'-h[Print help]' \
'--help[Print help]' \
&& ret=0
;;
(vendor)
_arguments "${_arguments_options[@]}" : \
'--rockspec=[RockSpec to vendor the packages for.{n} If not set, Lux will vendor dependencies of the current project]:ROCKSPEC:_files' \
'--no-lock[Ignore the project'\''s lockfile, if present]' \
'--no-delete[Don'\''t delete the <vendor-dir> when vendoring,{n} but rather keep all existing contents of the vendor directory]' \
'-h[Print help]' \
'--help[Print help]' \
'::vendor_dir -- The directory in which to vendor the dependencies. Must be set if `--vendor-dir` is not set:_files' \
&& ret=0
;;
(which)
_arguments "${_arguments_options[@]}" : \
'-h[Print help]' \
'--help[Print help]' \
':module -- The module to search for:_default' \
'*::packages -- Only search in these packages:_default' \
&& ret=0
;;
(shell)
_arguments "${_arguments_options[@]}" : \
'--test[Add test dependencies to the shell'\''s paths,{n} in addition to the regular dependencies]' \
'(--test)--build[Add *only* build dependencies to the shell'\''s paths]' \
'--no-loader[Disable the Lux loader.{n} If a rock has conflicting transitive dependencies,{n} disabling the Lux loader may result in the wrong modules being loaded.{n}]' \
'-h[Print help]' \
'--help[Print help]' \
&& ret=0
;;
(help)
_arguments "${_arguments_options[@]}" : \
":: :_lx__help_commands" \
"*::: :->help" \
&& ret=0

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

    case $state in
    (config)
        words=($line[1] "${words[@]}")
        (( CURRENT += 1 ))
        curcontext="${curcontext%:*:*}:lx-help-config-command-$line[1]:"
        case $line[1] in
            (init)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(edit)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(show)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
        esac
    ;;
esac
;;
(completion)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(debug)
_arguments "${_arguments_options[@]}" : \
":: :_lx__help__debug_commands" \
"*::: :->debug" \
&& ret=0

    case $state in
    (debug)
        words=($line[1] "${words[@]}")
        (( CURRENT += 1 ))
        curcontext="${curcontext%:*:*}:lx-help-debug-command-$line[1]:"
        case $line[1] in
            (unpack)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(fetch-remote)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(unpack-remote)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(project)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
        esac
    ;;
esac
;;
(doc)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(download)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(fmt)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(generate-rockspec)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(info)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(install)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(install-rockspec)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(install-lua)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(lint)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(list)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(lua)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(new)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(outdated)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(pack)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(path)
_arguments "${_arguments_options[@]}" : \
":: :_lx__help__path_commands" \
"*::: :->path" \
&& ret=0

    case $state in
    (path)
        words=($line[1] "${words[@]}")
        (( CURRENT += 1 ))
        curcontext="${curcontext%:*:*}:lx-help-path-command-$line[1]:"
        case $line[1] in
            (full)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(lua)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(c)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(bin)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(init)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
        esac
    ;;
esac
;;
(pin)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(purge)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(remove)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(run)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(exec)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(search)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(test)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(uninstall)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(unpin)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(update)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(upload)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(vendor)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(which)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(shell)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(help)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
        esac
    ;;
esac
;;
        esac
    ;;
esac
}

(( $+functions[_lx_commands] )) ||
_lx_commands() {
    local commands; commands=(
'add:Add a dependency to the current project' \
'build:Build/compile a project' \
'check:\[EXPERIMENTAL\]{n} Type check the current project based on EmmyLua/LuaCATS annotations.{n} Respects \`.emmyrc.json\` and \`.luarc.json\` files in the project directory' \
'config:Interact with the lux configuration' \
'completion:Generate autocompletion scripts for the shell.{n} Example\: \`lx completion zsh > ~/.zsh/completions/_lx\`' \
'debug:Internal commands for debugging Lux itself' \
'doc:Show documentation for an installed rock' \
'download:Download a specific rock file from a luarocks server' \
'fmt:Formats the codebase with stylua' \
'generate-rockspec:Generate a rockspec file from a project' \
'info:Show metadata for any rock' \
'install:Install a rock for use on the system' \
'install-rockspec:Install a local rockspec for use on the system' \
'install-lua:Manually install and manage Lua headers for various Lua versions' \
'lint:Lint the current project using \`luacheck\`' \
'list:List currently installed rocks' \
'lua:Run lua, with the \`LUA_PATH\` and \`LUA_CPATH\` set to the specified lux tree' \
'new:Create a new Lua project' \
'outdated:List outdated rocks' \
'pack:Create a packed rock for distribution, packing sources or binaries' \
'path:Return the currently configured package path' \
'pin:Pin an existing rock, preventing any updates to the package' \
'purge:Remove all installed rocks from a tree' \
'remove:Remove a rock from the current project'\''s lux.toml dependencies' \
'run:Run the current project with the provided arguments' \
'exec:Execute a command that has been installed with lux. If the command is not found, a package named after the command will be installed' \
'search:Query the luarocks servers' \
'test:Run the test suite in the current project directory.{n} Lux supports the following test backends, specified by the \`\[test\]\` table in the lux.toml\:{n} {n} - busted\:{n} {n} https\://lunarmodules.github.io/busted/{n} {n} Example\:{n} {n} \`\`\`toml{n} \[test\]{n} type = "busted"{n} flags = \[ \] # Optional CLI flags to pass to busted{n} \`\`\`{n} {n} \`lx test\` will default to using \`busted\` if no test backend is specified and\:{n} * there is a \`.busted\` file in the project root{n} * or \`busted\` is one of the \`test_dependencies\`).{n} {n} - busted-nlua\:{n}\: {n} \[currently broken on macOS and Windows\] A build backend for running busted tests with Neovim as the Lua interpreter. Used for testing Neovim plugins. {n} Example\:{n} {n} \`\`\`toml{n} \[test\]{n} type = "busted-nlua"{n} flags = \[ \] # Optional CLI flags to pass to busted{n} \`\`\`{n} {n} \`lx test\` will default to using \`busted-nlua\` if no test backend is specified and\:{n} * there is a \`.busted\` file in the project root{n} * or \`busted\` and \`nlua\` are \`test_dependencies\`.{n} {n} - command\:{n} {n} Name/file name of a shell command that will run the test suite.{n} Example\:{n} {n} \`\`\`toml{n} \[test\]{n} type = "command"{n} command = "make"{n} flags = \[ "test" \]{n} \`\`\`{n} {n} - script\:{n} {n} Relative path to a Lua script that will run the test suite.{n} Example\:{n} {n} \`\`\`toml{n} \[test\]{n} type = "script"{n} script = "tests.lua" # Expects a tests.lua file in the project root{n} flags = \[ \] # Optional arguments passed to the test script{n} \`\`\`{n}' \
'uninstall:Uninstall a rock from the system' \
'unpin:Unpins an existing rock, allowing updates to alter the package' \
'update:Updates all rocks in a project' \
'upload:Generate a Lua rockspec for a Lux project and upload it to the public luarocks repository.{n} You can specify a source template for release and dev packages in the lux.toml.{n} {n} Example\:{n} {n} \`\`\`toml{n} \[source\]{n} url = "https\://host.com/owner/\$(PACKAGE)/refs/tags/\$(REF).zip"{n} dev = "git+https\://host.com/owner/\$(PACKAGE).git"{n} \`\`\`{n} {n} You can use the following variables in the source template\:{n} {n} - \$(PACKAGE)\: The package name.{n} - \$(VERSION)\: The package version.{n} - \$(REF)\: The git tag or revision (if in a git repository).{n} - You may also specify environment variables with \`\$(<VAR_NAME>)\`.{n} {n} If the \`version\` is not set in the lux.toml, lux will search the current commit for SemVer tags and if found, will use it to generate the package version' \
'vendor:Vendor the dependencies of a project or RockSpec locally. When building or installing a package with the \`--vendor-dir\` option{n} or the \`\[vendor_dir\]\` config option, Lux will fetch sources from the <vendor-dir>{n} instead of from a remote server' \
'which:Tell which file corresponds to a given module name' \
'shell:Spawns an interactive shell with PATH, LUA_PATH, LUA_CPATH and LUA_INIT set' \
'help:Print this message or the help of the given subcommand(s)' \
    )
    _describe -t commands 'lx commands' commands "$@"
}
(( $+functions[_lx__add_commands] )) ||
_lx__add_commands() {
    local commands; commands=()
    _describe -t commands 'lx add commands' commands "$@"
}
(( $+functions[_lx__build_commands] )) ||
_lx__build_commands() {
    local commands; commands=()
    _describe -t commands 'lx build commands' commands "$@"
}
(( $+functions[_lx__check_commands] )) ||
_lx__check_commands() {
    local commands; commands=()
    _describe -t commands 'lx check commands' commands "$@"
}
(( $+functions[_lx__completion_commands] )) ||
_lx__completion_commands() {
    local commands; commands=()
    _describe -t commands 'lx completion commands' commands "$@"
}
(( $+functions[_lx__config_commands] )) ||
_lx__config_commands() {
    local commands; commands=(
'init:Initialise a new config file' \
'edit:Edit the current config file' \
'show:Show the current config. This includes options picked up from CLI flags' \
'help:Print this message or the help of the given subcommand(s)' \
    )
    _describe -t commands 'lx config commands' commands "$@"
}
(( $+functions[_lx__config__edit_commands] )) ||
_lx__config__edit_commands() {
    local commands; commands=()
    _describe -t commands 'lx config edit commands' commands "$@"
}
(( $+functions[_lx__config__help_commands] )) ||
_lx__config__help_commands() {
    local commands; commands=(
'init:Initialise a new config file' \
'edit:Edit the current config file' \
'show:Show the current config. This includes options picked up from CLI flags' \
'help:Print this message or the help of the given subcommand(s)' \
    )
    _describe -t commands 'lx config help commands' commands "$@"
}
(( $+functions[_lx__config__help__edit_commands] )) ||
_lx__config__help__edit_commands() {
    local commands; commands=()
    _describe -t commands 'lx config help edit commands' commands "$@"
}
(( $+functions[_lx__config__help__help_commands] )) ||
_lx__config__help__help_commands() {
    local commands; commands=()
    _describe -t commands 'lx config help help commands' commands "$@"
}
(( $+functions[_lx__config__help__init_commands] )) ||
_lx__config__help__init_commands() {
    local commands; commands=()
    _describe -t commands 'lx config help init commands' commands "$@"
}
(( $+functions[_lx__config__help__show_commands] )) ||
_lx__config__help__show_commands() {
    local commands; commands=()
    _describe -t commands 'lx config help show commands' commands "$@"
}
(( $+functions[_lx__config__init_commands] )) ||
_lx__config__init_commands() {
    local commands; commands=()
    _describe -t commands 'lx config init commands' commands "$@"
}
(( $+functions[_lx__config__show_commands] )) ||
_lx__config__show_commands() {
    local commands; commands=()
    _describe -t commands 'lx config show commands' commands "$@"
}
(( $+functions[_lx__debug_commands] )) ||
_lx__debug_commands() {
    local commands; commands=(
'unpack:Unpack the contents of a rock' \
'fetch-remote:Fetch a remote rock from its RockSpec source' \
'unpack-remote:Download a .src.rock from luarocks.org and unpack it' \
'project:View information about the current project' \
'help:Print this message or the help of the given subcommand(s)' \
    )
    _describe -t commands 'lx debug commands' commands "$@"
}
(( $+functions[_lx__debug__fetch-remote_commands] )) ||
_lx__debug__fetch-remote_commands() {
    local commands; commands=()
    _describe -t commands 'lx debug fetch-remote commands' commands "$@"
}
(( $+functions[_lx__debug__help_commands] )) ||
_lx__debug__help_commands() {
    local commands; commands=(
'unpack:Unpack the contents of a rock' \
'fetch-remote:Fetch a remote rock from its RockSpec source' \
'unpack-remote:Download a .src.rock from luarocks.org and unpack it' \
'project:View information about the current project' \
'help:Print this message or the help of the given subcommand(s)' \
    )
    _describe -t commands 'lx debug help commands' commands "$@"
}
(( $+functions[_lx__debug__help__fetch-remote_commands] )) ||
_lx__debug__help__fetch-remote_commands() {
    local commands; commands=()
    _describe -t commands 'lx debug help fetch-remote commands' commands "$@"
}
(( $+functions[_lx__debug__help__help_commands] )) ||
_lx__debug__help__help_commands() {
    local commands; commands=()
    _describe -t commands 'lx debug help help commands' commands "$@"
}
(( $+functions[_lx__debug__help__project_commands] )) ||
_lx__debug__help__project_commands() {
    local commands; commands=()
    _describe -t commands 'lx debug help project commands' commands "$@"
}
(( $+functions[_lx__debug__help__unpack_commands] )) ||
_lx__debug__help__unpack_commands() {
    local commands; commands=()
    _describe -t commands 'lx debug help unpack commands' commands "$@"
}
(( $+functions[_lx__debug__help__unpack-remote_commands] )) ||
_lx__debug__help__unpack-remote_commands() {
    local commands; commands=()
    _describe -t commands 'lx debug help unpack-remote commands' commands "$@"
}
(( $+functions[_lx__debug__project_commands] )) ||
_lx__debug__project_commands() {
    local commands; commands=()
    _describe -t commands 'lx debug project commands' commands "$@"
}
(( $+functions[_lx__debug__unpack_commands] )) ||
_lx__debug__unpack_commands() {
    local commands; commands=()
    _describe -t commands 'lx debug unpack commands' commands "$@"
}
(( $+functions[_lx__debug__unpack-remote_commands] )) ||
_lx__debug__unpack-remote_commands() {
    local commands; commands=()
    _describe -t commands 'lx debug unpack-remote commands' commands "$@"
}
(( $+functions[_lx__doc_commands] )) ||
_lx__doc_commands() {
    local commands; commands=()
    _describe -t commands 'lx doc commands' commands "$@"
}
(( $+functions[_lx__download_commands] )) ||
_lx__download_commands() {
    local commands; commands=()
    _describe -t commands 'lx download commands' commands "$@"
}
(( $+functions[_lx__exec_commands] )) ||
_lx__exec_commands() {
    local commands; commands=()
    _describe -t commands 'lx exec commands' commands "$@"
}
(( $+functions[_lx__fmt_commands] )) ||
_lx__fmt_commands() {
    local commands; commands=()
    _describe -t commands 'lx fmt commands' commands "$@"
}
(( $+functions[_lx__generate-rockspec_commands] )) ||
_lx__generate-rockspec_commands() {
    local commands; commands=()
    _describe -t commands 'lx generate-rockspec commands' commands "$@"
}
(( $+functions[_lx__help_commands] )) ||
_lx__help_commands() {
    local commands; commands=(
'add:Add a dependency to the current project' \
'build:Build/compile a project' \
'check:\[EXPERIMENTAL\]{n} Type check the current project based on EmmyLua/LuaCATS annotations.{n} Respects \`.emmyrc.json\` and \`.luarc.json\` files in the project directory' \
'config:Interact with the lux configuration' \
'completion:Generate autocompletion scripts for the shell.{n} Example\: \`lx completion zsh > ~/.zsh/completions/_lx\`' \
'debug:Internal commands for debugging Lux itself' \
'doc:Show documentation for an installed rock' \
'download:Download a specific rock file from a luarocks server' \
'fmt:Formats the codebase with stylua' \
'generate-rockspec:Generate a rockspec file from a project' \
'info:Show metadata for any rock' \
'install:Install a rock for use on the system' \
'install-rockspec:Install a local rockspec for use on the system' \
'install-lua:Manually install and manage Lua headers for various Lua versions' \
'lint:Lint the current project using \`luacheck\`' \
'list:List currently installed rocks' \
'lua:Run lua, with the \`LUA_PATH\` and \`LUA_CPATH\` set to the specified lux tree' \
'new:Create a new Lua project' \
'outdated:List outdated rocks' \
'pack:Create a packed rock for distribution, packing sources or binaries' \
'path:Return the currently configured package path' \
'pin:Pin an existing rock, preventing any updates to the package' \
'purge:Remove all installed rocks from a tree' \
'remove:Remove a rock from the current project'\''s lux.toml dependencies' \
'run:Run the current project with the provided arguments' \
'exec:Execute a command that has been installed with lux. If the command is not found, a package named after the command will be installed' \
'search:Query the luarocks servers' \
'test:Run the test suite in the current project directory.{n} Lux supports the following test backends, specified by the \`\[test\]\` table in the lux.toml\:{n} {n} - busted\:{n} {n} https\://lunarmodules.github.io/busted/{n} {n} Example\:{n} {n} \`\`\`toml{n} \[test\]{n} type = "busted"{n} flags = \[ \] # Optional CLI flags to pass to busted{n} \`\`\`{n} {n} \`lx test\` will default to using \`busted\` if no test backend is specified and\:{n} * there is a \`.busted\` file in the project root{n} * or \`busted\` is one of the \`test_dependencies\`).{n} {n} - busted-nlua\:{n}\: {n} \[currently broken on macOS and Windows\] A build backend for running busted tests with Neovim as the Lua interpreter. Used for testing Neovim plugins. {n} Example\:{n} {n} \`\`\`toml{n} \[test\]{n} type = "busted-nlua"{n} flags = \[ \] # Optional CLI flags to pass to busted{n} \`\`\`{n} {n} \`lx test\` will default to using \`busted-nlua\` if no test backend is specified and\:{n} * there is a \`.busted\` file in the project root{n} * or \`busted\` and \`nlua\` are \`test_dependencies\`.{n} {n} - command\:{n} {n} Name/file name of a shell command that will run the test suite.{n} Example\:{n} {n} \`\`\`toml{n} \[test\]{n} type = "command"{n} command = "make"{n} flags = \[ "test" \]{n} \`\`\`{n} {n} - script\:{n} {n} Relative path to a Lua script that will run the test suite.{n} Example\:{n} {n} \`\`\`toml{n} \[test\]{n} type = "script"{n} script = "tests.lua" # Expects a tests.lua file in the project root{n} flags = \[ \] # Optional arguments passed to the test script{n} \`\`\`{n}' \
'uninstall:Uninstall a rock from the system' \
'unpin:Unpins an existing rock, allowing updates to alter the package' \
'update:Updates all rocks in a project' \
'upload:Generate a Lua rockspec for a Lux project and upload it to the public luarocks repository.{n} You can specify a source template for release and dev packages in the lux.toml.{n} {n} Example\:{n} {n} \`\`\`toml{n} \[source\]{n} url = "https\://host.com/owner/\$(PACKAGE)/refs/tags/\$(REF).zip"{n} dev = "git+https\://host.com/owner/\$(PACKAGE).git"{n} \`\`\`{n} {n} You can use the following variables in the source template\:{n} {n} - \$(PACKAGE)\: The package name.{n} - \$(VERSION)\: The package version.{n} - \$(REF)\: The git tag or revision (if in a git repository).{n} - You may also specify environment variables with \`\$(<VAR_NAME>)\`.{n} {n} If the \`version\` is not set in the lux.toml, lux will search the current commit for SemVer tags and if found, will use it to generate the package version' \
'vendor:Vendor the dependencies of a project or RockSpec locally. When building or installing a package with the \`--vendor-dir\` option{n} or the \`\[vendor_dir\]\` config option, Lux will fetch sources from the <vendor-dir>{n} instead of from a remote server' \
'which:Tell which file corresponds to a given module name' \
'shell:Spawns an interactive shell with PATH, LUA_PATH, LUA_CPATH and LUA_INIT set' \
'help:Print this message or the help of the given subcommand(s)' \
    )
    _describe -t commands 'lx help commands' commands "$@"
}
(( $+functions[_lx__help__add_commands] )) ||
_lx__help__add_commands() {
    local commands; commands=()
    _describe -t commands 'lx help add commands' commands "$@"
}
(( $+functions[_lx__help__build_commands] )) ||
_lx__help__build_commands() {
    local commands; commands=()
    _describe -t commands 'lx help build commands' commands "$@"
}
(( $+functions[_lx__help__check_commands] )) ||
_lx__help__check_commands() {
    local commands; commands=()
    _describe -t commands 'lx help check commands' commands "$@"
}
(( $+functions[_lx__help__completion_commands] )) ||
_lx__help__completion_commands() {
    local commands; commands=()
    _describe -t commands 'lx help completion commands' commands "$@"
}
(( $+functions[_lx__help__config_commands] )) ||
_lx__help__config_commands() {
    local commands; commands=(
'init:Initialise a new config file' \
'edit:Edit the current config file' \
'show:Show the current config. This includes options picked up from CLI flags' \
    )
    _describe -t commands 'lx help config commands' commands "$@"
}
(( $+functions[_lx__help__config__edit_commands] )) ||
_lx__help__config__edit_commands() {
    local commands; commands=()
    _describe -t commands 'lx help config edit commands' commands "$@"
}
(( $+functions[_lx__help__config__init_commands] )) ||
_lx__help__config__init_commands() {
    local commands; commands=()
    _describe -t commands 'lx help config init commands' commands "$@"
}
(( $+functions[_lx__help__config__show_commands] )) ||
_lx__help__config__show_commands() {
    local commands; commands=()
    _describe -t commands 'lx help config show commands' commands "$@"
}
(( $+functions[_lx__help__debug_commands] )) ||
_lx__help__debug_commands() {
    local commands; commands=(
'unpack:Unpack the contents of a rock' \
'fetch-remote:Fetch a remote rock from its RockSpec source' \
'unpack-remote:Download a .src.rock from luarocks.org and unpack it' \
'project:View information about the current project' \
    )
    _describe -t commands 'lx help debug commands' commands "$@"
}
(( $+functions[_lx__help__debug__fetch-remote_commands] )) ||
_lx__help__debug__fetch-remote_commands() {
    local commands; commands=()
    _describe -t commands 'lx help debug fetch-remote commands' commands "$@"
}
(( $+functions[_lx__help__debug__project_commands] )) ||
_lx__help__debug__project_commands() {
    local commands; commands=()
    _describe -t commands 'lx help debug project commands' commands "$@"
}
(( $+functions[_lx__help__debug__unpack_commands] )) ||
_lx__help__debug__unpack_commands() {
    local commands; commands=()
    _describe -t commands 'lx help debug unpack commands' commands "$@"
}
(( $+functions[_lx__help__debug__unpack-remote_commands] )) ||
_lx__help__debug__unpack-remote_commands() {
    local commands; commands=()
    _describe -t commands 'lx help debug unpack-remote commands' commands "$@"
}
(( $+functions[_lx__help__doc_commands] )) ||
_lx__help__doc_commands() {
    local commands; commands=()
    _describe -t commands 'lx help doc commands' commands "$@"
}
(( $+functions[_lx__help__download_commands] )) ||
_lx__help__download_commands() {
    local commands; commands=()
    _describe -t commands 'lx help download commands' commands "$@"
}
(( $+functions[_lx__help__exec_commands] )) ||
_lx__help__exec_commands() {
    local commands; commands=()
    _describe -t commands 'lx help exec commands' commands "$@"
}
(( $+functions[_lx__help__fmt_commands] )) ||
_lx__help__fmt_commands() {
    local commands; commands=()
    _describe -t commands 'lx help fmt commands' commands "$@"
}
(( $+functions[_lx__help__generate-rockspec_commands] )) ||
_lx__help__generate-rockspec_commands() {
    local commands; commands=()
    _describe -t commands 'lx help generate-rockspec commands' commands "$@"
}
(( $+functions[_lx__help__help_commands] )) ||
_lx__help__help_commands() {
    local commands; commands=()
    _describe -t commands 'lx help help commands' commands "$@"
}
(( $+functions[_lx__help__info_commands] )) ||
_lx__help__info_commands() {
    local commands; commands=()
    _describe -t commands 'lx help info commands' commands "$@"
}
(( $+functions[_lx__help__install_commands] )) ||
_lx__help__install_commands() {
    local commands; commands=()
    _describe -t commands 'lx help install commands' commands "$@"
}
(( $+functions[_lx__help__install-lua_commands] )) ||
_lx__help__install-lua_commands() {
    local commands; commands=()
    _describe -t commands 'lx help install-lua commands' commands "$@"
}
(( $+functions[_lx__help__install-rockspec_commands] )) ||
_lx__help__install-rockspec_commands() {
    local commands; commands=()
    _describe -t commands 'lx help install-rockspec commands' commands "$@"
}
(( $+functions[_lx__help__lint_commands] )) ||
_lx__help__lint_commands() {
    local commands; commands=()
    _describe -t commands 'lx help lint commands' commands "$@"
}
(( $+functions[_lx__help__list_commands] )) ||
_lx__help__list_commands() {
    local commands; commands=()
    _describe -t commands 'lx help list commands' commands "$@"
}
(( $+functions[_lx__help__lua_commands] )) ||
_lx__help__lua_commands() {
    local commands; commands=()
    _describe -t commands 'lx help lua commands' commands "$@"
}
(( $+functions[_lx__help__new_commands] )) ||
_lx__help__new_commands() {
    local commands; commands=()
    _describe -t commands 'lx help new commands' commands "$@"
}
(( $+functions[_lx__help__outdated_commands] )) ||
_lx__help__outdated_commands() {
    local commands; commands=()
    _describe -t commands 'lx help outdated commands' commands "$@"
}
(( $+functions[_lx__help__pack_commands] )) ||
_lx__help__pack_commands() {
    local commands; commands=()
    _describe -t commands 'lx help pack commands' commands "$@"
}
(( $+functions[_lx__help__path_commands] )) ||
_lx__help__path_commands() {
    local commands; commands=(
'full:Generate an export statement for all paths (formatted as a shell command). \[Default\]' \
'lua:Generate a \`LUA_PATH\` expression for \`lua\` libraries in the lux tree. (not formatted as a shell command)' \
'c:Generate a \`LUA_CPATH\` expression for native \`lib\` libraries in the lux tree. (not formatted as a shell command)' \
'bin:Generate a \`PATH\` expression for \`bin\` executables in the lux tree. (not formatted as a shell command)' \
'init:Generate a \`LUA_INIT\` expression for the lux loader. (not formatted as a shell command)' \
    )
    _describe -t commands 'lx help path commands' commands "$@"
}
(( $+functions[_lx__help__path__bin_commands] )) ||
_lx__help__path__bin_commands() {
    local commands; commands=()
    _describe -t commands 'lx help path bin commands' commands "$@"
}
(( $+functions[_lx__help__path__c_commands] )) ||
_lx__help__path__c_commands() {
    local commands; commands=()
    _describe -t commands 'lx help path c commands' commands "$@"
}
(( $+functions[_lx__help__path__full_commands] )) ||
_lx__help__path__full_commands() {
    local commands; commands=()
    _describe -t commands 'lx help path full commands' commands "$@"
}
(( $+functions[_lx__help__path__init_commands] )) ||
_lx__help__path__init_commands() {
    local commands; commands=()
    _describe -t commands 'lx help path init commands' commands "$@"
}
(( $+functions[_lx__help__path__lua_commands] )) ||
_lx__help__path__lua_commands() {
    local commands; commands=()
    _describe -t commands 'lx help path lua commands' commands "$@"
}
(( $+functions[_lx__help__pin_commands] )) ||
_lx__help__pin_commands() {
    local commands; commands=()
    _describe -t commands 'lx help pin commands' commands "$@"
}
(( $+functions[_lx__help__purge_commands] )) ||
_lx__help__purge_commands() {
    local commands; commands=()
    _describe -t commands 'lx help purge commands' commands "$@"
}
(( $+functions[_lx__help__remove_commands] )) ||
_lx__help__remove_commands() {
    local commands; commands=()
    _describe -t commands 'lx help remove commands' commands "$@"
}
(( $+functions[_lx__help__run_commands] )) ||
_lx__help__run_commands() {
    local commands; commands=()
    _describe -t commands 'lx help run commands' commands "$@"
}
(( $+functions[_lx__help__search_commands] )) ||
_lx__help__search_commands() {
    local commands; commands=()
    _describe -t commands 'lx help search commands' commands "$@"
}
(( $+functions[_lx__help__shell_commands] )) ||
_lx__help__shell_commands() {
    local commands; commands=()
    _describe -t commands 'lx help shell commands' commands "$@"
}
(( $+functions[_lx__help__test_commands] )) ||
_lx__help__test_commands() {
    local commands; commands=()
    _describe -t commands 'lx help test commands' commands "$@"
}
(( $+functions[_lx__help__uninstall_commands] )) ||
_lx__help__uninstall_commands() {
    local commands; commands=()
    _describe -t commands 'lx help uninstall commands' commands "$@"
}
(( $+functions[_lx__help__unpin_commands] )) ||
_lx__help__unpin_commands() {
    local commands; commands=()
    _describe -t commands 'lx help unpin commands' commands "$@"
}
(( $+functions[_lx__help__update_commands] )) ||
_lx__help__update_commands() {
    local commands; commands=()
    _describe -t commands 'lx help update commands' commands "$@"
}
(( $+functions[_lx__help__upload_commands] )) ||
_lx__help__upload_commands() {
    local commands; commands=()
    _describe -t commands 'lx help upload commands' commands "$@"
}
(( $+functions[_lx__help__vendor_commands] )) ||
_lx__help__vendor_commands() {
    local commands; commands=()
    _describe -t commands 'lx help vendor commands' commands "$@"
}
(( $+functions[_lx__help__which_commands] )) ||
_lx__help__which_commands() {
    local commands; commands=()
    _describe -t commands 'lx help which commands' commands "$@"
}
(( $+functions[_lx__info_commands] )) ||
_lx__info_commands() {
    local commands; commands=()
    _describe -t commands 'lx info commands' commands "$@"
}
(( $+functions[_lx__install_commands] )) ||
_lx__install_commands() {
    local commands; commands=()
    _describe -t commands 'lx install commands' commands "$@"
}
(( $+functions[_lx__install-lua_commands] )) ||
_lx__install-lua_commands() {
    local commands; commands=()
    _describe -t commands 'lx install-lua commands' commands "$@"
}
(( $+functions[_lx__install-rockspec_commands] )) ||
_lx__install-rockspec_commands() {
    local commands; commands=()
    _describe -t commands 'lx install-rockspec commands' commands "$@"
}
(( $+functions[_lx__lint_commands] )) ||
_lx__lint_commands() {
    local commands; commands=()
    _describe -t commands 'lx lint commands' commands "$@"
}
(( $+functions[_lx__list_commands] )) ||
_lx__list_commands() {
    local commands; commands=()
    _describe -t commands 'lx list commands' commands "$@"
}
(( $+functions[_lx__lua_commands] )) ||
_lx__lua_commands() {
    local commands; commands=()
    _describe -t commands 'lx lua commands' commands "$@"
}
(( $+functions[_lx__new_commands] )) ||
_lx__new_commands() {
    local commands; commands=()
    _describe -t commands 'lx new commands' commands "$@"
}
(( $+functions[_lx__outdated_commands] )) ||
_lx__outdated_commands() {
    local commands; commands=()
    _describe -t commands 'lx outdated commands' commands "$@"
}
(( $+functions[_lx__pack_commands] )) ||
_lx__pack_commands() {
    local commands; commands=()
    _describe -t commands 'lx pack commands' commands "$@"
}
(( $+functions[_lx__path_commands] )) ||
_lx__path_commands() {
    local commands; commands=(
'full:Generate an export statement for all paths (formatted as a shell command). \[Default\]' \
'lua:Generate a \`LUA_PATH\` expression for \`lua\` libraries in the lux tree. (not formatted as a shell command)' \
'c:Generate a \`LUA_CPATH\` expression for native \`lib\` libraries in the lux tree. (not formatted as a shell command)' \
'bin:Generate a \`PATH\` expression for \`bin\` executables in the lux tree. (not formatted as a shell command)' \
'init:Generate a \`LUA_INIT\` expression for the lux loader. (not formatted as a shell command)' \
'help:Print this message or the help of the given subcommand(s)' \
    )
    _describe -t commands 'lx path commands' commands "$@"
}
(( $+functions[_lx__path__bin_commands] )) ||
_lx__path__bin_commands() {
    local commands; commands=()
    _describe -t commands 'lx path bin commands' commands "$@"
}
(( $+functions[_lx__path__c_commands] )) ||
_lx__path__c_commands() {
    local commands; commands=()
    _describe -t commands 'lx path c commands' commands "$@"
}
(( $+functions[_lx__path__full_commands] )) ||
_lx__path__full_commands() {
    local commands; commands=()
    _describe -t commands 'lx path full commands' commands "$@"
}
(( $+functions[_lx__path__help_commands] )) ||
_lx__path__help_commands() {
    local commands; commands=(
'full:Generate an export statement for all paths (formatted as a shell command). \[Default\]' \
'lua:Generate a \`LUA_PATH\` expression for \`lua\` libraries in the lux tree. (not formatted as a shell command)' \
'c:Generate a \`LUA_CPATH\` expression for native \`lib\` libraries in the lux tree. (not formatted as a shell command)' \
'bin:Generate a \`PATH\` expression for \`bin\` executables in the lux tree. (not formatted as a shell command)' \
'init:Generate a \`LUA_INIT\` expression for the lux loader. (not formatted as a shell command)' \
'help:Print this message or the help of the given subcommand(s)' \
    )
    _describe -t commands 'lx path help commands' commands "$@"
}
(( $+functions[_lx__path__help__bin_commands] )) ||
_lx__path__help__bin_commands() {
    local commands; commands=()
    _describe -t commands 'lx path help bin commands' commands "$@"
}
(( $+functions[_lx__path__help__c_commands] )) ||
_lx__path__help__c_commands() {
    local commands; commands=()
    _describe -t commands 'lx path help c commands' commands "$@"
}
(( $+functions[_lx__path__help__full_commands] )) ||
_lx__path__help__full_commands() {
    local commands; commands=()
    _describe -t commands 'lx path help full commands' commands "$@"
}
(( $+functions[_lx__path__help__help_commands] )) ||
_lx__path__help__help_commands() {
    local commands; commands=()
    _describe -t commands 'lx path help help commands' commands "$@"
}
(( $+functions[_lx__path__help__init_commands] )) ||
_lx__path__help__init_commands() {
    local commands; commands=()
    _describe -t commands 'lx path help init commands' commands "$@"
}
(( $+functions[_lx__path__help__lua_commands] )) ||
_lx__path__help__lua_commands() {
    local commands; commands=()
    _describe -t commands 'lx path help lua commands' commands "$@"
}
(( $+functions[_lx__path__init_commands] )) ||
_lx__path__init_commands() {
    local commands; commands=()
    _describe -t commands 'lx path init commands' commands "$@"
}
(( $+functions[_lx__path__lua_commands] )) ||
_lx__path__lua_commands() {
    local commands; commands=()
    _describe -t commands 'lx path lua commands' commands "$@"
}
(( $+functions[_lx__pin_commands] )) ||
_lx__pin_commands() {
    local commands; commands=()
    _describe -t commands 'lx pin commands' commands "$@"
}
(( $+functions[_lx__purge_commands] )) ||
_lx__purge_commands() {
    local commands; commands=()
    _describe -t commands 'lx purge commands' commands "$@"
}
(( $+functions[_lx__remove_commands] )) ||
_lx__remove_commands() {
    local commands; commands=()
    _describe -t commands 'lx remove commands' commands "$@"
}
(( $+functions[_lx__run_commands] )) ||
_lx__run_commands() {
    local commands; commands=()
    _describe -t commands 'lx run commands' commands "$@"
}
(( $+functions[_lx__search_commands] )) ||
_lx__search_commands() {
    local commands; commands=()
    _describe -t commands 'lx search commands' commands "$@"
}
(( $+functions[_lx__shell_commands] )) ||
_lx__shell_commands() {
    local commands; commands=()
    _describe -t commands 'lx shell commands' commands "$@"
}
(( $+functions[_lx__test_commands] )) ||
_lx__test_commands() {
    local commands; commands=()
    _describe -t commands 'lx test commands' commands "$@"
}
(( $+functions[_lx__uninstall_commands] )) ||
_lx__uninstall_commands() {
    local commands; commands=()
    _describe -t commands 'lx uninstall commands' commands "$@"
}
(( $+functions[_lx__unpin_commands] )) ||
_lx__unpin_commands() {
    local commands; commands=()
    _describe -t commands 'lx unpin commands' commands "$@"
}
(( $+functions[_lx__update_commands] )) ||
_lx__update_commands() {
    local commands; commands=()
    _describe -t commands 'lx update commands' commands "$@"
}
(( $+functions[_lx__upload_commands] )) ||
_lx__upload_commands() {
    local commands; commands=()
    _describe -t commands 'lx upload commands' commands "$@"
}
(( $+functions[_lx__vendor_commands] )) ||
_lx__vendor_commands() {
    local commands; commands=()
    _describe -t commands 'lx vendor commands' commands "$@"
}
(( $+functions[_lx__which_commands] )) ||
_lx__which_commands() {
    local commands; commands=()
    _describe -t commands 'lx which commands' commands "$@"
}

if [ "$funcstack[1]" = "_lx" ]; then
    _lx "$@"
else
    compdef _lx lx
fi
