Unverified Commit 02972f80 authored by Marco Eidinger's avatar Marco Eidinger Committed by GitHub

feat(swiftpm): update completion for Swift 5.7 (#11299)

* feat(swiftpm): update completion for Swift 5.7 * chore(docs): fix typo
parent 5ddb5890
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
## Description ## Description
This plugin provides a few utilities that make you faster on your daily work with the [Swift Package Manager](https://github.com/apple/swift-package-manager), as well as autocompletion for Swift 5.1. This plugin provides a few utilities that make you faster on your daily work with the [Swift Package Manager](https://github.com/apple/swift-package-manager), as well as autocompletion for Swift 5.7.
To start using it, add the `swiftpm` plugin to your `plugins` array in `~/.zshrc`: To start using it, add the `swiftpm` plugin to your `plugins` array in `~/.zshrc`:
......
#compdef swift #compdef swift
local context state state_descr line local context state state_descr line
_swift_commandname=$words[1]
typeset -A opt_args typeset -A opt_args
_swift() { _swift() {
_arguments -C \ integer ret=1
'(- :)--help[prints the synopsis and a list of the most commonly used commands]: :->arg' \ local -a args
'(-): :->command' \ args+=(
'(-)*:: :->arg' && return '(-h --help)'{-h,--help}'[Show help information.]'
'(-): :->command'
'(-)*:: :->arg'
)
_arguments -w -s -S $args[@] && ret=0
case $state in case $state in
(command) (command)
local tools local subcommands
tools=( subcommands=(
'build:build sources into binary products' 'run:Build and run an executable product'
'run:build and run an executable product' 'build:Build sources into binary products'
'package:perform operations on Swift packages' 'test:Build and run tests'
'test:build and run tests' 'package:Perform operations on Swift packages'
'help:Show subcommand help information.'
) )
_alternative \ _describe "subcommand" subcommands
'tools:common:{_describe "tool" tools }' \
'compiler: :_swift_compiler' && _ret=0
;; ;;
(arg) (arg)
case ${words[1]} in case ${words[1]} in
(build)
_swift_build
;;
(run) (run)
_swift_run _swift_run
;; ;;
(package) (build)
_swift_package _swift_build
;; ;;
(test) (test)
_swift_test _swift_test
;; ;;
(*) (package)
_swift_compiler _swift_package
;;
(help)
_swift_help
;; ;;
esac esac
;; ;;
esac esac
}
_swift_dependency() { return ret
local dependencies
dependencies=( $(swift package completion-tool list-dependencies) )
_describe '' dependencies
} }
_swift_executable() { _swift_run() {
local executables integer ret=1
executables=( $(swift package completion-tool list-executables) ) local -a args
_describe '' executables args+=(
'--package-path[Specify the package path to operate on (default current directory). This changes the working directory before any other operation]:package-path:_files -/'
'--cache-path[Specify the shared cache directory path]:cache-path:_files -/'
'--config-path[Specify the shared configuration directory path]:config-path:_files -/'
'--security-path[Specify the shared security directory path]:security-path:_files -/'
'--scratch-path[Specify a custom scratch directory path (default .build)]:scratch-path:_files -/'
'--enable-dependency-cache[Use a shared cache when fetching dependencies]'
'--disable-dependency-cache[Use a shared cache when fetching dependencies]'
'--enable-build-manifest-caching'
'--disable-build-manifest-caching'
'--manifest-cache[Caching mode of Package.swift manifests (shared: shared cache, local: package'"'"'s build directory, none: disabled]:manifest-cache:'
'(--verbose -v)'{--verbose,-v}'[Increase verbosity to include informational output]'
'(--very-verbose --vv)'{--very-verbose,--vv}'[Increase verbosity to include debug output]'
'--disable-sandbox[Disable using the sandbox when executing subprocesses]'
'--enable-netrc[Load credentials from a .netrc file]'
'--disable-netrc[Load credentials from a .netrc file]'
'--netrc-file[Specify the .netrc file path.]:netrc-file:_files'
'--enable-keychain[Search credentials in macOS keychain]'
'--disable-keychain[Search credentials in macOS keychain]'
'--resolver-fingerprint-checking:resolver-fingerprint-checking:'
'--enable-prefetching'
'--disable-prefetching'
'(--force-resolved-versions --disable-automatic-resolution --only-use-versions-from-resolved-file)'{--force-resolved-versions,--disable-automatic-resolution,--only-use-versions-from-resolved-file}'[Only use versions from the Package.resolved file and fail resolution if it is out-of-date]'
'--skip-update[Skip updating dependencies from their remote during a resolution]'
'--disable-scm-to-registry-transformation[disable source control to registry transformation]'
'--use-registry-identity-for-scm[look up source control dependencies in the registry and use their registry identity when possible to help deduplicate across the two origins]'
'--replace-scm-with-registry[look up source control dependencies in the registry and use the registry to retrieve them instead of source control when possible]'
'(--configuration -c)'{--configuration,-c}'[Build with configuration]:configuration:(debug release)'
'-Xcc[Pass flag through to all C compiler invocations]:Xcc:'
'-Xswiftc[Pass flag through to all Swift compiler invocations]:Xswiftc:'
'-Xlinker[Pass flag through to all linker invocations]:Xlinker:'
'-Xcxx[Pass flag through to all C++ compiler invocations]:Xcxx:'
'--triple:triple:'
'--sdk:sdk:_files -/'
'--toolchain:toolchain:_files -/'
'--sanitize[Turn on runtime checks for erroneous behavior, possible values: address, thread, undefined, scudo]:sanitize:'
'--auto-index-store[Enable or disable indexing-while-building feature]'
'--enable-index-store[Enable or disable indexing-while-building feature]'
'--disable-index-store[Enable or disable indexing-while-building feature]'
'--enable-parseable-module-interfaces'
'(--jobs -j)'{--jobs,-j}'[The number of jobs to spawn in parallel during the build process]:jobs:'
'--emit-swift-module-separately'
'--use-integrated-swift-driver'
'--experimental-explicit-module-build'
'--print-manifest-job-graph[Write the command graph for the build manifest as a graphviz file]'
'--build-system:build-system:(native xcode)'
'--enable-dead-strip[Disable/enable dead code stripping by the linker]'
'--disable-dead-strip[Disable/enable dead code stripping by the linker]'
'--static-swift-stdlib[Link Swift stdlib statically]'
'--no-static-swift-stdlib[Link Swift stdlib statically]'
'--repl[Launch Swift REPL for the package]'
'--debugger[Launch the executable in a debugger session]'
'--run[Launch the executable with the provided arguments]'
'--skip-build[Skip building the executable product]'
'--build-tests[Build both source and test targets]'
':executable:{local -a list; list=(${(f)"$(swift package completion-tool list-executables)"}); _describe '''' list}'
':arguments:'
'--version[Show the version.]'
'(-help -h --help)'{-help,-h,--help}'[Show help information.]'
)
_arguments -w -s -S $args[@] && ret=0
return ret
} }
# Generates completions for swift build
#
# In the final compdef file, set the following file header:
#
# #compdef _swift_build
# local context state state_descr line
# typeset -A opt_args
_swift_build() { _swift_build() {
arguments=( integer ret=1
"-Xcc[Pass flag through to all C compiler invocations]:Pass flag through to all C compiler invocations: " local -a args
"-Xswiftc[Pass flag through to all Swift compiler invocations]:Pass flag through to all Swift compiler invocations: " args+=(
"-Xlinker[Pass flag through to all linker invocations]:Pass flag through to all linker invocations: " '--package-path[Specify the package path to operate on (default current directory). This changes the working directory before any other operation]:package-path:_files -/'
"-Xcxx[Pass flag through to all C++ compiler invocations]:Pass flag through to all C++ compiler invocations: " '--cache-path[Specify the shared cache directory path]:cache-path:_files -/'
"(--configuration -c)"{--configuration,-c}"[Build with configuration (debug|release) ]: :{_values '' 'debug[build with DEBUG configuration]' 'release[build with RELEASE configuration]'}" '--config-path[Specify the shared configuration directory path]:config-path:_files -/'
"--build-path[Specify build/cache directory ]:Specify build/cache directory :_files" '--security-path[Specify the shared security directory path]:security-path:_files -/'
"(--chdir -C)"{--chdir,-C}"[]: :_files" '--scratch-path[Specify a custom scratch directory path (default .build)]:scratch-path:_files -/'
"--package-path[Change working directory before any other operation]:Change working directory before any other operation:_files" '--enable-dependency-cache[Use a shared cache when fetching dependencies]'
"--sanitize[Turn on runtime checks for erroneous behavior]: :{_values '' 'address[enable Address sanitizer]' 'thread[enable Thread sanitizer]' 'undefined[enable Undefined Behavior sanitizer]'}" '--disable-dependency-cache[Use a shared cache when fetching dependencies]'
"--disable-prefetching[]" '--enable-build-manifest-caching'
"--skip-update[Skip updating dependencies from their remote during a resolution]" '--disable-build-manifest-caching'
"--disable-sandbox[Disable using the sandbox when executing subprocesses]" '--manifest-cache[Caching mode of Package.swift manifests (shared: shared cache, local: package'"'"'s build directory, none: disabled]:manifest-cache:'
"--disable-package-manifest-caching[Disable caching Package.swift manifests]" '(--verbose -v)'{--verbose,-v}'[Increase verbosity to include informational output]'
"--version[]" '(--very-verbose --vv)'{--very-verbose,--vv}'[Increase verbosity to include debug output]'
"--destination[]: :_files" '--disable-sandbox[Disable using the sandbox when executing subprocesses]'
"(--verbose -v)"{--verbose,-v}"[Increase verbosity of informational output]" '--enable-netrc[Load credentials from a .netrc file]'
"--no-static-swift-stdlib[Do not link Swift stdlib statically \[default\]]" '--disable-netrc[Load credentials from a .netrc file]'
"--static-swift-stdlib[Link Swift stdlib statically]" '--netrc-file[Specify the .netrc file path.]:netrc-file:_files'
"--force-resolved-versions[]" '--enable-keychain[Search credentials in macOS keychain]'
"--disable-automatic-resolution[Disable automatic resolution if Package.resolved file is out-of-date]" '--disable-keychain[Search credentials in macOS keychain]'
"--enable-index-store[Enable indexing-while-building feature]" '--resolver-fingerprint-checking:resolver-fingerprint-checking:'
"--disable-index-store[Disable indexing-while-building feature]" '--enable-prefetching'
"--enable-pubgrub-resolver[\[Experimental\] Enable the new Pubgrub dependency resolver]" '--disable-prefetching'
"--enable-parseable-module-interfaces[]" '(--force-resolved-versions --disable-automatic-resolution --only-use-versions-from-resolved-file)'{--force-resolved-versions,--disable-automatic-resolution,--only-use-versions-from-resolved-file}'[Only use versions from the Package.resolved file and fail resolution if it is out-of-date]'
"--trace-resolver[]" '--skip-update[Skip updating dependencies from their remote during a resolution]'
"(--jobs -j)"{--jobs,-j}"[The number of jobs to spawn in parallel during the build process]:The number of jobs to spawn in parallel during the build process: " '--disable-scm-to-registry-transformation[disable source control to registry transformation]'
"--enable-test-discovery[Enable test discovery on platforms without Objective-C runtime]" '--use-registry-identity-for-scm[look up source control dependencies in the registry and use their registry identity when possible to help deduplicate across the two origins]'
"--build-tests[Build both source and test targets]" '--replace-scm-with-registry[look up source control dependencies in the registry and use the registry to retrieve them instead of source control when possible]'
"--product[Build the specified product]:Build the specified product: " '(--configuration -c)'{--configuration,-c}'[Build with configuration]:configuration:(debug release)'
"--target[Build the specified target]:Build the specified target: " '-Xcc[Pass flag through to all C compiler invocations]:Xcc:'
"--show-bin-path[Print the binary output path]" '-Xswiftc[Pass flag through to all Swift compiler invocations]:Xswiftc:'
) '-Xlinker[Pass flag through to all linker invocations]:Xlinker:'
_arguments $arguments && return '-Xcxx[Pass flag through to all C++ compiler invocations]:Xcxx:'
} '--triple:triple:'
'--sdk:sdk:_files -/'
# Generates completions for swift run '--toolchain:toolchain:_files -/'
# '--sanitize[Turn on runtime checks for erroneous behavior, possible values: address, thread, undefined, scudo]:sanitize:'
# In the final compdef file, set the following file header: '--auto-index-store[Enable or disable indexing-while-building feature]'
# '--enable-index-store[Enable or disable indexing-while-building feature]'
# #compdef _swift_run '--disable-index-store[Enable or disable indexing-while-building feature]'
# local context state state_descr line '--enable-parseable-module-interfaces'
# typeset -A opt_args '(--jobs -j)'{--jobs,-j}'[The number of jobs to spawn in parallel during the build process]:jobs:'
_swift_run() { '--emit-swift-module-separately'
arguments=( '--use-integrated-swift-driver'
":The executable to run:_swift_executable" '--experimental-explicit-module-build'
"-Xcc[Pass flag through to all C compiler invocations]:Pass flag through to all C compiler invocations: " '--print-manifest-job-graph[Write the command graph for the build manifest as a graphviz file]'
"-Xswiftc[Pass flag through to all Swift compiler invocations]:Pass flag through to all Swift compiler invocations: " '--build-system:build-system:(native xcode)'
"-Xlinker[Pass flag through to all linker invocations]:Pass flag through to all linker invocations: " '--enable-dead-strip[Disable/enable dead code stripping by the linker]'
"-Xcxx[Pass flag through to all C++ compiler invocations]:Pass flag through to all C++ compiler invocations: " '--disable-dead-strip[Disable/enable dead code stripping by the linker]'
"(--configuration -c)"{--configuration,-c}"[Build with configuration (debug|release) ]: :{_values '' 'debug[build with DEBUG configuration]' 'release[build with RELEASE configuration]'}" '--static-swift-stdlib[Link Swift stdlib statically]'
"--build-path[Specify build/cache directory ]:Specify build/cache directory :_files" '--no-static-swift-stdlib[Link Swift stdlib statically]'
"(--chdir -C)"{--chdir,-C}"[]: :_files" '--build-tests[Build both source and test targets]'
"--package-path[Change working directory before any other operation]:Change working directory before any other operation:_files" '--show-bin-path[Print the binary output path]'
"--sanitize[Turn on runtime checks for erroneous behavior]: :{_values '' 'address[enable Address sanitizer]' 'thread[enable Thread sanitizer]' 'undefined[enable Undefined Behavior sanitizer]'}" '--target[Build the specified target]:target:'
"--disable-prefetching[]" '--product[Build the specified product]:product:'
"--skip-update[Skip updating dependencies from their remote during a resolution]" '--version[Show the version.]'
"--disable-sandbox[Disable using the sandbox when executing subprocesses]" '(-help -h --help)'{-help,-h,--help}'[Show help information.]'
"--disable-package-manifest-caching[Disable caching Package.swift manifests]" )
"--version[]" _arguments -w -s -S $args[@] && ret=0
"--destination[]: :_files"
"(--verbose -v)"{--verbose,-v}"[Increase verbosity of informational output]" return ret
"--no-static-swift-stdlib[Do not link Swift stdlib statically \[default\]]" }
"--static-swift-stdlib[Link Swift stdlib statically]"
"--force-resolved-versions[]" _swift_test() {
"--disable-automatic-resolution[Disable automatic resolution if Package.resolved file is out-of-date]" integer ret=1
"--enable-index-store[Enable indexing-while-building feature]" local -a args
"--disable-index-store[Disable indexing-while-building feature]" args+=(
"--enable-pubgrub-resolver[\[Experimental\] Enable the new Pubgrub dependency resolver]" '--package-path[Specify the package path to operate on (default current directory). This changes the working directory before any other operation]:package-path:_files -/'
"--enable-parseable-module-interfaces[]" '--cache-path[Specify the shared cache directory path]:cache-path:_files -/'
"--trace-resolver[]" '--config-path[Specify the shared configuration directory path]:config-path:_files -/'
"(--jobs -j)"{--jobs,-j}"[The number of jobs to spawn in parallel during the build process]:The number of jobs to spawn in parallel during the build process: " '--security-path[Specify the shared security directory path]:security-path:_files -/'
"--enable-test-discovery[Enable test discovery on platforms without Objective-C runtime]" '--scratch-path[Specify a custom scratch directory path (default .build)]:scratch-path:_files -/'
"--skip-build[Skip building the executable product]" '--enable-dependency-cache[Use a shared cache when fetching dependencies]'
"--build-tests[Build both source and test targets]" '--disable-dependency-cache[Use a shared cache when fetching dependencies]'
"--repl[Launch Swift REPL for the package]" '--enable-build-manifest-caching'
) '--disable-build-manifest-caching'
_arguments $arguments && return '--manifest-cache[Caching mode of Package.swift manifests (shared: shared cache, local: package'"'"'s build directory, none: disabled]:manifest-cache:'
} '(--verbose -v)'{--verbose,-v}'[Increase verbosity to include informational output]'
'(--very-verbose --vv)'{--very-verbose,--vv}'[Increase verbosity to include debug output]'
# Generates completions for swift package '--disable-sandbox[Disable using the sandbox when executing subprocesses]'
# '--enable-netrc[Load credentials from a .netrc file]'
# In the final compdef file, set the following file header: '--disable-netrc[Load credentials from a .netrc file]'
# '--netrc-file[Specify the .netrc file path.]:netrc-file:_files'
# #compdef _swift_package '--enable-keychain[Search credentials in macOS keychain]'
# local context state state_descr line '--disable-keychain[Search credentials in macOS keychain]'
# typeset -A opt_args '--resolver-fingerprint-checking:resolver-fingerprint-checking:'
'--enable-prefetching'
'--disable-prefetching'
'(--force-resolved-versions --disable-automatic-resolution --only-use-versions-from-resolved-file)'{--force-resolved-versions,--disable-automatic-resolution,--only-use-versions-from-resolved-file}'[Only use versions from the Package.resolved file and fail resolution if it is out-of-date]'
'--skip-update[Skip updating dependencies from their remote during a resolution]'
'--disable-scm-to-registry-transformation[disable source control to registry transformation]'
'--use-registry-identity-for-scm[look up source control dependencies in the registry and use their registry identity when possible to help deduplicate across the two origins]'
'--replace-scm-with-registry[look up source control dependencies in the registry and use the registry to retrieve them instead of source control when possible]'
'(--configuration -c)'{--configuration,-c}'[Build with configuration]:configuration:(debug release)'
'-Xcc[Pass flag through to all C compiler invocations]:Xcc:'
'-Xswiftc[Pass flag through to all Swift compiler invocations]:Xswiftc:'
'-Xlinker[Pass flag through to all linker invocations]:Xlinker:'
'-Xcxx[Pass flag through to all C++ compiler invocations]:Xcxx:'
'--triple:triple:'
'--sdk:sdk:_files -/'
'--toolchain:toolchain:_files -/'
'--sanitize[Turn on runtime checks for erroneous behavior, possible values: address, thread, undefined, scudo]:sanitize:'
'--auto-index-store[Enable or disable indexing-while-building feature]'
'--enable-index-store[Enable or disable indexing-while-building feature]'
'--disable-index-store[Enable or disable indexing-while-building feature]'
'--enable-parseable-module-interfaces'
'(--jobs -j)'{--jobs,-j}'[The number of jobs to spawn in parallel during the build process]:jobs:'
'--emit-swift-module-separately'
'--use-integrated-swift-driver'
'--experimental-explicit-module-build'
'--print-manifest-job-graph[Write the command graph for the build manifest as a graphviz file]'
'--build-system:build-system:(native xcode)'
'--enable-dead-strip[Disable/enable dead code stripping by the linker]'
'--disable-dead-strip[Disable/enable dead code stripping by the linker]'
'--static-swift-stdlib[Link Swift stdlib statically]'
'--no-static-swift-stdlib[Link Swift stdlib statically]'
'--skip-build[Skip building the test target]'
'--parallel[Run the tests in parallel.]'
'--num-workers[Number of tests to execute in parallel.]:num-workers:'
'(--list-tests -l)'{--list-tests,-l}'[Lists test methods in specifier format]'
'--show-codecov-path[Print the path of the exported code coverage JSON file]'
'(-s --specifier)'{-s,--specifier}':specifier:'
'--filter[Run test cases matching regular expression, Format: <test-target>.<test-case> or <test-target>.<test-case>/<test>]:filter:'
'--skip[Skip test cases matching regular expression, Example: --skip PerformanceTests]:skip:'
'--xunit-output[Path where the xUnit xml file should be generated.]:xunit-output:_files -/'
'--test-product[Test the specified product.]:test-product:'
'--enable-testable-imports[Enable or disable testable imports. Enabled by default.]'
'--disable-testable-imports[Enable or disable testable imports. Enabled by default.]'
'--enable-code-coverage[Enable code coverage]'
'--disable-code-coverage[Enable code coverage]'
'--version[Show the version.]'
'(-help -h --help)'{-help,-h,--help}'[Show help information.]'
)
_arguments -w -s -S $args[@] && ret=0
return ret
}
_swift_package() { _swift_package() {
arguments=( integer ret=1
"-Xcc[Pass flag through to all C compiler invocations]:Pass flag through to all C compiler invocations: " local -a args
"-Xswiftc[Pass flag through to all Swift compiler invocations]:Pass flag through to all Swift compiler invocations: " args+=(
"-Xlinker[Pass flag through to all linker invocations]:Pass flag through to all linker invocations: " '--package-path[Specify the package path to operate on (default current directory). This changes the working directory before any other operation]:package-path:_files -/'
"-Xcxx[Pass flag through to all C++ compiler invocations]:Pass flag through to all C++ compiler invocations: " '--cache-path[Specify the shared cache directory path]:cache-path:_files -/'
"(--configuration -c)"{--configuration,-c}"[Build with configuration (debug|release) ]: :{_values '' 'debug[build with DEBUG configuration]' 'release[build with RELEASE configuration]'}" '--config-path[Specify the shared configuration directory path]:config-path:_files -/'
"--build-path[Specify build/cache directory ]:Specify build/cache directory :_files" '--security-path[Specify the shared security directory path]:security-path:_files -/'
"(--chdir -C)"{--chdir,-C}"[]: :_files" '--scratch-path[Specify a custom scratch directory path (default .build)]:scratch-path:_files -/'
"--package-path[Change working directory before any other operation]:Change working directory before any other operation:_files" '--enable-dependency-cache[Use a shared cache when fetching dependencies]'
"--sanitize[Turn on runtime checks for erroneous behavior]: :{_values '' 'address[enable Address sanitizer]' 'thread[enable Thread sanitizer]' 'undefined[enable Undefined Behavior sanitizer]'}" '--disable-dependency-cache[Use a shared cache when fetching dependencies]'
"--disable-prefetching[]" '--enable-build-manifest-caching'
"--skip-update[Skip updating dependencies from their remote during a resolution]" '--disable-build-manifest-caching'
"--disable-sandbox[Disable using the sandbox when executing subprocesses]" '--manifest-cache[Caching mode of Package.swift manifests (shared: shared cache, local: package'"'"'s build directory, none: disabled]:manifest-cache:'
"--disable-package-manifest-caching[Disable caching Package.swift manifests]" '(--verbose -v)'{--verbose,-v}'[Increase verbosity to include informational output]'
"--version[]" '(--very-verbose --vv)'{--very-verbose,--vv}'[Increase verbosity to include debug output]'
"--destination[]: :_files" '--disable-sandbox[Disable using the sandbox when executing subprocesses]'
"(--verbose -v)"{--verbose,-v}"[Increase verbosity of informational output]" '--enable-netrc[Load credentials from a .netrc file]'
"--no-static-swift-stdlib[Do not link Swift stdlib statically \[default\]]" '--disable-netrc[Load credentials from a .netrc file]'
"--static-swift-stdlib[Link Swift stdlib statically]" '--netrc-file[Specify the .netrc file path.]:netrc-file:_files'
"--force-resolved-versions[]" '--enable-keychain[Search credentials in macOS keychain]'
"--disable-automatic-resolution[Disable automatic resolution if Package.resolved file is out-of-date]" '--disable-keychain[Search credentials in macOS keychain]'
"--enable-index-store[Enable indexing-while-building feature]" '--resolver-fingerprint-checking:resolver-fingerprint-checking:'
"--disable-index-store[Disable indexing-while-building feature]" '--enable-prefetching'
"--enable-pubgrub-resolver[\[Experimental\] Enable the new Pubgrub dependency resolver]" '--disable-prefetching'
"--enable-parseable-module-interfaces[]" '(--force-resolved-versions --disable-automatic-resolution --only-use-versions-from-resolved-file)'{--force-resolved-versions,--disable-automatic-resolution,--only-use-versions-from-resolved-file}'[Only use versions from the Package.resolved file and fail resolution if it is out-of-date]'
"--trace-resolver[]" '--skip-update[Skip updating dependencies from their remote during a resolution]'
"(--jobs -j)"{--jobs,-j}"[The number of jobs to spawn in parallel during the build process]:The number of jobs to spawn in parallel during the build process: " '--disable-scm-to-registry-transformation[disable source control to registry transformation]'
"--enable-test-discovery[Enable test discovery on platforms without Objective-C runtime]" '--use-registry-identity-for-scm[look up source control dependencies in the registry and use their registry identity when possible to help deduplicate across the two origins]'
'--replace-scm-with-registry[look up source control dependencies in the registry and use the registry to retrieve them instead of source control when possible]'
'(--configuration -c)'{--configuration,-c}'[Build with configuration]:configuration:(debug release)'
'-Xcc[Pass flag through to all C compiler invocations]:Xcc:'
'-Xswiftc[Pass flag through to all Swift compiler invocations]:Xswiftc:'
'-Xlinker[Pass flag through to all linker invocations]:Xlinker:'
'-Xcxx[Pass flag through to all C++ compiler invocations]:Xcxx:'
'--triple:triple:'
'--sdk:sdk:_files -/'
'--toolchain:toolchain:_files -/'
'--sanitize[Turn on runtime checks for erroneous behavior, possible values: address, thread, undefined, scudo]:sanitize:'
'--auto-index-store[Enable or disable indexing-while-building feature]'
'--enable-index-store[Enable or disable indexing-while-building feature]'
'--disable-index-store[Enable or disable indexing-while-building feature]'
'--enable-parseable-module-interfaces'
'(--jobs -j)'{--jobs,-j}'[The number of jobs to spawn in parallel during the build process]:jobs:'
'--emit-swift-module-separately'
'--use-integrated-swift-driver'
'--experimental-explicit-module-build'
'--print-manifest-job-graph[Write the command graph for the build manifest as a graphviz file]'
'--build-system:build-system:(native xcode)'
'--enable-dead-strip[Disable/enable dead code stripping by the linker]'
'--disable-dead-strip[Disable/enable dead code stripping by the linker]'
'--static-swift-stdlib[Link Swift stdlib statically]'
'--no-static-swift-stdlib[Link Swift stdlib statically]'
'--version[Show the version.]'
'(-help -h --help)'{-help,-h,--help}'[Show help information.]'
'(-): :->command' '(-): :->command'
'(-)*:: :->arg' '(-)*:: :->arg'
) )
_arguments $arguments && return _arguments -w -s -S $args[@] && ret=0
case $state in case $state in
(command) (command)
local modes local subcommands
modes=( subcommands=(
'completion-tool:Completion tool (for shell completions)'
'dump-package:Print parsed Package.swift as JSON'
'describe:Describe the current package'
'clean:Delete build artifacts' 'clean:Delete build artifacts'
'show-dependencies:Print the resolved dependency graph' 'purge-cache:Purge the global repository cache.'
'init:Initialize a new package'
'unedit:Remove a package from editable mode'
'tools-version:Manipulate tools version of the current package'
'fetch:'
'resolve:Resolve package dependencies'
'reset:Reset the complete cache/build directory' 'reset:Reset the complete cache/build directory'
'generate-xcodeproj:Generates an Xcode project' 'update:Update package dependencies'
'describe:Describe the current package'
'init:Initialize a new package'
'_format:'
'diagnose-api-breaking-changes:Diagnose API-breaking changes to Swift modules in a package'
'experimental-api-diff:Deprecated - use `swift package diagnose-api-breaking-changes` instead'
'dump-symbol-graph:Dump Symbol Graph'
'dump-pif:'
'dump-package:Print parsed Package.swift as JSON'
'edit:Put a package in editable mode' 'edit:Put a package in editable mode'
'unedit:Remove a package from editable mode'
'config:Manipulate configuration of the package' 'config:Manipulate configuration of the package'
'update:Update package dependencies' 'resolve:Resolve package dependencies'
'fetch:'
'show-dependencies:Print the resolved dependency graph'
'tools-version:Manipulate tools version of the current package'
'generate-xcodeproj:Generates an Xcode project. This command will be deprecated soon.'
'compute-checksum:Compute the checksum for a binary artifact.'
'archive-source:Create a source archive for the package'
'completion-tool:Completion tool (for shell completions)'
'plugin:Invoke a command plugin or perform other actions on command plugins'
'default-command:'
) )
_describe "mode" modes _describe "subcommand" subcommands
;; ;;
(arg) (arg)
case ${words[1]} in case ${words[1]} in
(completion-tool) (clean)
_swift_package_completion-tool _swift_package_clean
;; ;;
(dump-package) (purge-cache)
_swift_package_dump-package _swift_package_purge-cache
;; ;;
(describe) (reset)
_swift_package_describe _swift_package_reset
;; ;;
(clean) (update)
_swift_package_clean _swift_package_update
;; ;;
(show-dependencies) (describe)
_swift_package_show-dependencies _swift_package_describe
;; ;;
(init) (init)
_swift_package_init _swift_package_init
;; ;;
(_format)
_swift_package__format
;;
(diagnose-api-breaking-changes)
_swift_package_diagnose-api-breaking-changes
;;
(experimental-api-diff)
_swift_package_experimental-api-diff
;;
(dump-symbol-graph)
_swift_package_dump-symbol-graph
;;
(dump-pif)
_swift_package_dump-pif
;;
(dump-package)
_swift_package_dump-package
;;
(edit)
_swift_package_edit
;;
(unedit) (unedit)
_swift_package_unedit _swift_package_unedit
;; ;;
(tools-version) (config)
_swift_package_tools-version _swift_package_config
;;
(resolve)
_swift_package_resolve
;; ;;
(fetch) (fetch)
_swift_package_fetch _swift_package_fetch
;; ;;
(resolve) (show-dependencies)
_swift_package_resolve _swift_package_show-dependencies
;; ;;
(reset) (tools-version)
_swift_package_reset _swift_package_tools-version
;; ;;
(generate-xcodeproj) (generate-xcodeproj)
_swift_package_generate-xcodeproj _swift_package_generate-xcodeproj
;; ;;
(edit) (compute-checksum)
_swift_package_edit _swift_package_compute-checksum
;; ;;
(config) (archive-source)
_swift_package_config _swift_package_archive-source
;; ;;
(update) (completion-tool)
_swift_package_update _swift_package_completion-tool
;;
(plugin)
_swift_package_plugin
;;
(default-command)
_swift_package_default-command
;; ;;
esac esac
;; ;;
esac esac
return ret
} }
_swift_package_completion-tool() { _swift_package_clean() {
arguments=( integer ret=1
": :{_values '' 'generate-bash-script[generate Bash completion script]' 'generate-zsh-script[generate Bash completion script]' 'list-dependencies[list all dependencies' names]' 'list-executables[list all executables' names]'}" local -a args
args+=(
'--version[Show the version.]'
'(-help -h --help)'{-help,-h,--help}'[Show help information.]'
) )
_arguments $arguments && return _arguments -w -s -S $args[@] && ret=0
return ret
} }
_swift_package_dump-package() { _swift_package_purge-cache() {
arguments=( integer ret=1
local -a args
args+=(
'--version[Show the version.]'
'(-help -h --help)'{-help,-h,--help}'[Show help information.]'
) )
_arguments $arguments && return _arguments -w -s -S $args[@] && ret=0
return ret
} }
_swift_package_describe() { _swift_package_reset() {
arguments=( integer ret=1
"--type[json|text]: :{_values '' 'text[describe using text format]' 'json[describe using JSON format]'}" local -a args
args+=(
'--version[Show the version.]'
'(-help -h --help)'{-help,-h,--help}'[Show help information.]'
) )
_arguments $arguments && return _arguments -w -s -S $args[@] && ret=0
return ret
} }
_swift_package_clean() { _swift_package_update() {
arguments=( integer ret=1
local -a args
args+=(
'(--dry-run -n)'{--dry-run,-n}'[Display the list of dependencies that can be updated]'
':packages:'
'--version[Show the version.]'
'(-help -h --help)'{-help,-h,--help}'[Show help information.]'
) )
_arguments $arguments && return _arguments -w -s -S $args[@] && ret=0
return ret
} }
_swift_package_show-dependencies() { _swift_package_describe() {
arguments=( integer ret=1
"--format[text|dot|json|flatlist]: :{_values '' 'text[list dependencies using text format]' 'dot[list dependencies using dot format]' 'json[list dependencies using JSON format]'}" local -a args
args+=(
'--type[json | text]:type:'
'--version[Show the version.]'
'(-help -h --help)'{-help,-h,--help}'[Show help information.]'
) )
_arguments $arguments && return _arguments -w -s -S $args[@] && ret=0
return ret
} }
_swift_package_init() { _swift_package_init() {
arguments=( integer ret=1
"--type[empty|library|executable|system-module|manifest]: :{_values '' 'empty[generates an empty project]' 'library[generates project for a dynamic library]' 'executable[generates a project for a cli executable]' 'system-module[generates a project for a system module]'}" local -a args
"--name[Provide custom package name]:Provide custom package name: " args+=(
'--type[Package type: empty | library | executable | system-module | manifest]:type:'
'--name[Provide custom package name]:name:'
'--version[Show the version.]'
'(-help -h --help)'{-help,-h,--help}'[Show help information.]'
) )
_arguments $arguments && return _arguments -w -s -S $args[@] && ret=0
return ret
} }
_swift_package_unedit() { _swift_package__format() {
arguments=( integer ret=1
":The name of the package to unedit:_swift_dependency" local -a args
"--force[Unedit the package even if it has uncommitted and unpushed changes.]" args+=(
':swift-format-flags:'
'--version[Show the version.]'
'(-help -h --help)'{-help,-h,--help}'[Show help information.]'
) )
_arguments $arguments && return _arguments -w -s -S $args[@] && ret=0
return ret
} }
_swift_package_tools-version() { _swift_package_diagnose-api-breaking-changes() {
arguments=( integer ret=1
"--set[Set tools version of package to the given value]:Set tools version of package to the given value: " local -a args
"--set-current[Set tools version of package to the current tools version in use]" args+=(
'--breakage-allowlist-path[The path to a text file containing breaking changes which should be ignored by the API comparison. Each ignored breaking change in the file should appear on its own line and contain the exact message to be ignored (e.g. '"'"'API breakage: func foo() has been removed'"'"').]:breakage-allowlist-path:_files -/'
':treeish:'
'--products[One or more products to include in the API comparison. If present, only the specified products (and any targets specified using `--targets`) will be compared.]:products:'
'--targets[One or more targets to include in the API comparison. If present, only the specified targets (and any products specified using `--products`) will be compared.]:targets:'
'--baseline-dir[The path to a directory used to store API baseline files. If unspecified, a temporary directory will be used.]:baseline-dir:_files -/'
'--regenerate-baseline[Regenerate the API baseline, even if an existing one is available.]'
'--version[Show the version.]'
'(-help -h --help)'{-help,-h,--help}'[Show help information.]'
) )
_arguments $arguments && return _arguments -w -s -S $args[@] && ret=0
return ret
} }
_swift_package_fetch() { _swift_package_experimental-api-diff() {
arguments=( integer ret=1
local -a args
args+=(
':args:'
'--version[Show the version.]'
'(-help -h --help)'{-help,-h,--help}'[Show help information.]'
) )
_arguments $arguments && return _arguments -w -s -S $args[@] && ret=0
return ret
} }
_swift_package_resolve() { _swift_package_dump-symbol-graph() {
arguments=( integer ret=1
":The name of the package to resolve:_swift_dependency" local -a args
"--version[The version to resolve at]:The version to resolve at: " args+=(
"--branch[The branch to resolve at]:The branch to resolve at: " '--pretty-print[Pretty-print the output JSON.]'
"--revision[The revision to resolve at]:The revision to resolve at: " '--skip-synthesized-members[Skip members inherited through classes or default implementations.]'
'--minimum-access-level[Include symbols with this access level or more. Possible values: private | fileprivate | internal | public | open]:minimum-access-level:(private fileprivate internal public open)'
'--skip-inherited-docs[Skip emitting doc comments for members inherited through classes or default implementations.]'
'--include-spi-symbols[Add symbols with SPI information to the symbol graph.]'
'--version[Show the version.]'
'(-help -h --help)'{-help,-h,--help}'[Show help information.]'
) )
_arguments $arguments && return _arguments -w -s -S $args[@] && ret=0
return ret
} }
_swift_package_reset() { _swift_package_dump-pif() {
arguments=( integer ret=1
local -a args
args+=(
'--preserve-structure[Preserve the internal structure of PIF]'
'--version[Show the version.]'
'(-help -h --help)'{-help,-h,--help}'[Show help information.]'
) )
_arguments $arguments && return _arguments -w -s -S $args[@] && ret=0
return ret
} }
_swift_package_generate-xcodeproj() { _swift_package_dump-package() {
arguments=( integer ret=1
"--xcconfig-overrides[Path to xcconfig file]:Path to xcconfig file:_files" local -a args
"--enable-code-coverage[Enable code coverage in the generated project]" args+=(
"--output[Path where the Xcode project should be generated]:Path where the Xcode project should be generated:_files" '--version[Show the version.]'
"--legacy-scheme-generator[Use the legacy scheme generator]" '(-help -h --help)'{-help,-h,--help}'[Show help information.]'
"--watch[Watch for changes to the Package manifest to regenerate the Xcode project]"
"--skip-extra-files[Do not add file references for extra files to the generated Xcode project]"
) )
_arguments $arguments && return _arguments -w -s -S $args[@] && ret=0
return ret
} }
_swift_package_edit() { _swift_package_edit() {
arguments=( integer ret=1
":The name of the package to edit:_swift_dependency" local -a args
"--revision[The revision to edit]:The revision to edit: " args+=(
"--branch[The branch to create]:The branch to create: " '--revision[The revision to edit]:revision:'
"--path[Create or use the checkout at this path]:Create or use the checkout at this path:_files" '--branch[The branch to create]:branch:'
'--path[Create or use the checkout at this path]:path:_files -/'
':package-name:'
'--version[Show the version.]'
'(-help -h --help)'{-help,-h,--help}'[Show help information.]'
) )
_arguments $arguments && return _arguments -w -s -S $args[@] && ret=0
return ret
}
_swift_package_unedit() {
integer ret=1
local -a args
args+=(
'--force[Unedit the package even if it has uncommitted and unpushed changes]'
':package-name:'
'--version[Show the version.]'
'(-help -h --help)'{-help,-h,--help}'[Show help information.]'
)
_arguments -w -s -S $args[@] && ret=0
return ret
} }
_swift_package_config() { _swift_package_config() {
arguments=( integer ret=1
local -a args
args+=(
'--version[Show the version.]'
'(-help -h --help)'{-help,-h,--help}'[Show help information.]'
'(-): :->command' '(-): :->command'
'(-)*:: :->arg' '(-)*:: :->arg'
) )
_arguments $arguments && return _arguments -w -s -S $args[@] && ret=0
case $state in case $state in
(command) (command)
local modes local subcommands
modes=( subcommands=(
'set-mirror:Set a mirror for a dependency'
'unset-mirror:Remove an existing mirror' 'unset-mirror:Remove an existing mirror'
'get-mirror:Print mirror configuration for the given package dependency' 'get-mirror:Print mirror configuration for the given package dependency'
'set-mirror:Set a mirror for a dependency'
) )
_describe "mode" modes _describe "subcommand" subcommands
;; ;;
(arg) (arg)
case ${words[1]} in case ${words[1]} in
(set-mirror)
_swift_package_config_set-mirror
;;
(unset-mirror) (unset-mirror)
_swift_package_config_unset-mirror _swift_package_config_unset-mirror
;; ;;
(get-mirror) (get-mirror)
_swift_package_config_get-mirror _swift_package_config_get-mirror
;; ;;
(set-mirror)
_swift_package_config_set-mirror
;;
esac esac
;; ;;
esac esac
return ret
}
_swift_package_config_set-mirror() {
integer ret=1
local -a args
args+=(
'--package-url[The package dependency url]:package-url:'
'--original-url[The original url]:original-url:'
'--mirror-url[The mirror url]:mirror-url:'
'--version[Show the version.]'
'(-help -h --help)'{-help,-h,--help}'[Show help information.]'
)
_arguments -w -s -S $args[@] && ret=0
return ret
} }
_swift_package_config_unset-mirror() { _swift_package_config_unset-mirror() {
arguments=( integer ret=1
"--package-url[The package dependency url]:The package dependency url: " local -a args
"--mirror-url[The mirror url]:The mirror url: " args+=(
'--package-url[The package dependency url]:package-url:'
'--original-url[The original url]:original-url:'
'--mirror-url[The mirror url]:mirror-url:'
'--version[Show the version.]'
'(-help -h --help)'{-help,-h,--help}'[Show help information.]'
) )
_arguments $arguments && return _arguments -w -s -S $args[@] && ret=0
return ret
} }
_swift_package_config_get-mirror() { _swift_package_config_get-mirror() {
arguments=( integer ret=1
"--package-url[The package dependency url]:The package dependency url: " local -a args
args+=(
'--package-url[The package dependency url]:package-url:'
'--original-url[The original url]:original-url:'
'--version[Show the version.]'
'(-help -h --help)'{-help,-h,--help}'[Show help information.]'
) )
_arguments $arguments && return _arguments -w -s -S $args[@] && ret=0
return ret
} }
_swift_package_config_set-mirror() { _swift_package_resolve() {
arguments=( integer ret=1
"--package-url[The package dependency url]:The package dependency url: " local -a args
"--mirror-url[The mirror url]:The mirror url: " args+=(
'--version[The version to resolve at]:version:'
'--branch[The branch to resolve at]:branch:'
'--revision[The revision to resolve at]:revision:'
':package-name:'
'--version[Show the version.]'
'(-help -h --help)'{-help,-h,--help}'[Show help information.]'
) )
_arguments $arguments && return _arguments -w -s -S $args[@] && ret=0
return ret
} }
_swift_package_update() { _swift_package_fetch() {
arguments=( integer ret=1
local -a args
args+=(
'--version[The version to resolve at]:version:'
'--branch[The branch to resolve at]:branch:'
'--revision[The revision to resolve at]:revision:'
':package-name:'
'--version[Show the version.]'
'(-help -h --help)'{-help,-h,--help}'[Show help information.]'
) )
_arguments $arguments && return _arguments -w -s -S $args[@] && ret=0
return ret
} }
# Generates completions for swift test _swift_package_show-dependencies() {
# integer ret=1
# In the final compdef file, set the following file header: local -a args
# args+=(
# #compdef _swift_test '--format[text | dot | json | flatlist]:format:'
# local context state state_descr line '(--output-path -o)'{--output-path,-o}'[The absolute or relative path to output the resolved dependency graph.]:output-path:_files -/'
# typeset -A opt_args '--version[Show the version.]'
_swift_test() { '(-help -h --help)'{-help,-h,--help}'[Show help information.]'
arguments=( )
"-Xcc[Pass flag through to all C compiler invocations]:Pass flag through to all C compiler invocations: " _arguments -w -s -S $args[@] && ret=0
"-Xswiftc[Pass flag through to all Swift compiler invocations]:Pass flag through to all Swift compiler invocations: "
"-Xlinker[Pass flag through to all linker invocations]:Pass flag through to all linker invocations: " return ret
"-Xcxx[Pass flag through to all C++ compiler invocations]:Pass flag through to all C++ compiler invocations: " }
"(--configuration -c)"{--configuration,-c}"[Build with configuration (debug|release) ]: :{_values '' 'debug[build with DEBUG configuration]' 'release[build with RELEASE configuration]'}"
"--build-path[Specify build/cache directory ]:Specify build/cache directory :_files" _swift_package_tools-version() {
"(--chdir -C)"{--chdir,-C}"[]: :_files" integer ret=1
"--package-path[Change working directory before any other operation]:Change working directory before any other operation:_files" local -a args
"--sanitize[Turn on runtime checks for erroneous behavior]: :{_values '' 'address[enable Address sanitizer]' 'thread[enable Thread sanitizer]' 'undefined[enable Undefined Behavior sanitizer]'}" args+=(
"--disable-prefetching[]" '--set-current[Set tools version of package to the current tools version in use]'
"--skip-update[Skip updating dependencies from their remote during a resolution]" '--set[Set tools version of package to the given value]:set:'
"--disable-sandbox[Disable using the sandbox when executing subprocesses]" '--version[Show the version.]'
"--disable-package-manifest-caching[Disable caching Package.swift manifests]" '(-help -h --help)'{-help,-h,--help}'[Show help information.]'
"--version[]" )
"--destination[]: :_files" _arguments -w -s -S $args[@] && ret=0
"(--verbose -v)"{--verbose,-v}"[Increase verbosity of informational output]"
"--no-static-swift-stdlib[Do not link Swift stdlib statically \[default\]]" return ret
"--static-swift-stdlib[Link Swift stdlib statically]" }
"--force-resolved-versions[]"
"--disable-automatic-resolution[Disable automatic resolution if Package.resolved file is out-of-date]" _swift_package_generate-xcodeproj() {
"--enable-index-store[Enable indexing-while-building feature]" integer ret=1
"--disable-index-store[Disable indexing-while-building feature]" local -a args
"--enable-pubgrub-resolver[\[Experimental\] Enable the new Pubgrub dependency resolver]" args+=(
"--enable-parseable-module-interfaces[]" '--xcconfig-overrides[Path to xcconfig file]:xcconfig-overrides:_files'
"--trace-resolver[]" '--output[Path where the Xcode project should be generated]:output:_files -/'
"(--jobs -j)"{--jobs,-j}"[The number of jobs to spawn in parallel during the build process]:The number of jobs to spawn in parallel during the build process: " '--legacy-scheme-generator[Use the legacy scheme generator]'
"--enable-test-discovery[Enable test discovery on platforms without Objective-C runtime]" '--watch[Watch for changes to the Package manifest to regenerate the Xcode project]'
"--skip-build[Skip building the test target]" '--skip-extra-files[Do not add file references for extra files to the generated Xcode project]'
"(--list-tests -l)"{--list-tests,-l}"[Lists test methods in specifier format]" '--enable-code-coverage[Enable code coverage]'
"--generate-linuxmain[Generate LinuxMain.swift entries for the package]" '--disable-code-coverage[Enable code coverage]'
"--parallel[Run the tests in parallel.]" '--version[Show the version.]'
"--num-workers[Number of tests to execute in parallel.]:Number of tests to execute in parallel.: " '(-help -h --help)'{-help,-h,--help}'[Show help information.]'
"(--specifier -s)"{--specifier,-s}"[]: : " )
"--xunit-output[]: :_files" _arguments -w -s -S $args[@] && ret=0
"--filter[Run test cases matching regular expression, Format: <test-target>.<test-case> or <test-target>.<test-case>/<test>]:Run test cases matching regular expression, Format: <test-target>.<test-case> or <test-target>.<test-case>/<test>: "
"--enable-code-coverage[Test with code coverage enabled]" return ret
) }
_arguments $arguments && return
} _swift_package_compute-checksum() {
integer ret=1
_swift_compiler() { local -a args
args+=(
':path:_files -/'
'--version[Show the version.]'
'(-help -h --help)'{-help,-h,--help}'[Show help information.]'
)
_arguments -w -s -S $args[@] && ret=0
return ret
}
_swift_package_archive-source() {
integer ret=1
local -a args
args+=(
'(-o --output)'{-o,--output}'[The absolute or relative path for the generated source archive]:output:_files -/'
'--version[Show the version.]'
'(-help -h --help)'{-help,-h,--help}'[Show help information.]'
)
_arguments -w -s -S $args[@] && ret=0
return ret
}
_swift_package_completion-tool() {
integer ret=1
local -a args
args+=(
':mode:(generate-bash-script generate-zsh-script generate-fish-script list-dependencies list-executables list-snippets)'
'--version[Show the version.]'
'(-help -h --help)'{-help,-h,--help}'[Show help information.]'
)
_arguments -w -s -S $args[@] && ret=0
return ret
}
_swift_package_plugin() {
integer ret=1
local -a args
args+=(
'--list[List the available command plugins]'
'--allow-writing-to-package-directory[Allow the plugin to write to the package directory]'
'--allow-writing-to-directory[Allow the plugin to write to an additional directory]:allow-writing-to-directory:'
':command:'
':arguments:'
'--version[Show the version.]'
'(-help -h --help)'{-help,-h,--help}'[Show help information.]'
)
_arguments -w -s -S $args[@] && ret=0
return ret
}
_swift_package_default-command() {
integer ret=1
local -a args
args+=(
'--allow-writing-to-package-directory[Allow the plugin to write to the package directory]'
'--allow-writing-to-directory[Allow the plugin to write to an additional directory]:allow-writing-to-directory:'
':remaining:'
'--version[Show the version.]'
'(-help -h --help)'{-help,-h,--help}'[Show help information.]'
)
_arguments -w -s -S $args[@] && ret=0
return ret
}
_swift_help() {
integer ret=1
local -a args
args+=(
':subcommands:'
)
_arguments -w -s -S $args[@] && ret=0
return ret
}
_custom_completion() {
local completions=("${(@f)$($*)}")
_describe '' completions
} }
_swift _swift
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment