You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							373 lines
						
					
					
						
							16 KiB
						
					
					
				
			
		
		
	
	
							373 lines
						
					
					
						
							16 KiB
						
					
					
				| #compdef swift | |
| local context state state_descr line | |
| typeset -A opt_args | |
|  | |
| _swift() { | |
|     _arguments -C \ | |
|         '(- :)--help[prints the synopsis and a list of the most commonly used commands]: :->arg' \ | |
|         '(-): :->command' \ | |
|         '(-)*:: :->arg' && return | |
|  | |
|     case $state in | |
|         (command) | |
|             local tools | |
|             tools=( | |
|                 'build:build sources into binary products' | |
|                 'run:build and run an executable product' | |
|                 'package:perform operations on Swift packages' | |
|                 'test:build and run tests' | |
|             ) | |
|             _alternative \ | |
|                 'tools:common:{_describe "tool" tools }' \ | |
|                 'compiler: :_swift_compiler' && _ret=0 | |
|             ;; | |
|         (arg) | |
|             case ${words[1]} in | |
|                 (build) | |
|                     _swift_build | |
|                     ;; | |
|                 (run) | |
|                     _swift_run | |
|                     ;; | |
|                 (package) | |
|                     _swift_package | |
|                     ;; | |
|                 (test) | |
|                     _swift_test | |
|                     ;; | |
|                 (*) | |
|                     _swift_compiler | |
|                     ;; | |
|             esac | |
|             ;; | |
|     esac | |
| } | |
|  | |
| _swift_dependency() { | |
|     local dependencies | |
|     dependencies=( $(swift package completion-tool list-dependencies) ) | |
|     _describe '' dependencies | |
| } | |
|  | |
| _swift_executable() { | |
|     local executables | |
|     executables=( $(swift package completion-tool list-executables) ) | |
|     _describe '' executables | |
| } | |
|  | |
| # 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() { | |
|     arguments=( | |
|         "-Xcc[Pass flag through to all C compiler invocations]:Pass flag through to all C compiler invocations: " | |
|         "-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: " | |
|         "-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" | |
|         "(--chdir -C)"{--chdir,-C}"[]: :_files" | |
|         "--package-path[Change working directory before any other operation]:Change working directory before any other operation:_files" | |
|         "--sanitize[Turn on runtime checks for erroneous behavior]: :{_values '' 'address[enable Address sanitizer]' 'thread[enable Thread sanitizer]'}" | |
|         "--disable-prefetching[]" | |
|         "--skip-update[Skip updating dependencies from their remote during a resolution]" | |
|         "--disable-sandbox[Disable using the sandbox when executing subprocesses]" | |
|         "--version[]" | |
|         "--destination[]: :_files" | |
|         "(--verbose -v)"{--verbose,-v}"[Increase verbosity of informational output]" | |
|         "--no-static-swift-stdlib[Do not link Swift stdlib statically \[default\]]" | |
|         "--static-swift-stdlib[Link Swift stdlib statically]" | |
|         "--enable-build-manifest-caching[Enable llbuild manifest caching \[Experimental\]]" | |
|         "--build-tests[Build both source and test targets]" | |
|         "--product[Build the specified product]:Build the specified product: " | |
|         "--target[Build the specified target]:Build the specified target: " | |
|         "--show-bin-path[Print the binary output path]" | |
|     ) | |
|     _arguments $arguments && return | |
| } | |
|  | |
| # Generates completions for swift run | |
| # | |
| # In the final compdef file, set the following file header: | |
| # | |
| #     #compdef _swift_run | |
| #     local context state state_descr line | |
| #     typeset -A opt_args | |
| _swift_run() { | |
|     arguments=( | |
|         ":The executable to run:_swift_executable" | |
|         "-Xcc[Pass flag through to all C compiler invocations]:Pass flag through to all C compiler invocations: " | |
|         "-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: " | |
|         "-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" | |
|         "(--chdir -C)"{--chdir,-C}"[]: :_files" | |
|         "--package-path[Change working directory before any other operation]:Change working directory before any other operation:_files" | |
|         "--sanitize[Turn on runtime checks for erroneous behavior]: :{_values '' 'address[enable Address sanitizer]' 'thread[enable Thread sanitizer]'}" | |
|         "--disable-prefetching[]" | |
|         "--skip-update[Skip updating dependencies from their remote during a resolution]" | |
|         "--disable-sandbox[Disable using the sandbox when executing subprocesses]" | |
|         "--version[]" | |
|         "--destination[]: :_files" | |
|         "(--verbose -v)"{--verbose,-v}"[Increase verbosity of informational output]" | |
|         "--no-static-swift-stdlib[Do not link Swift stdlib statically \[default\]]" | |
|         "--static-swift-stdlib[Link Swift stdlib statically]" | |
|         "--enable-build-manifest-caching[Enable llbuild manifest caching \[Experimental\]]" | |
|         "--skip-build[Skip building the executable product]" | |
|     ) | |
|     _arguments $arguments && return | |
| } | |
|  | |
| # Generates completions for swift package | |
| # | |
| # In the final compdef file, set the following file header: | |
| # | |
| #     #compdef _swift_package | |
| #     local context state state_descr line | |
| #     typeset -A opt_args | |
| _swift_package() { | |
|     arguments=( | |
|         "-Xcc[Pass flag through to all C compiler invocations]:Pass flag through to all C compiler invocations: " | |
|         "-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: " | |
|         "-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" | |
|         "(--chdir -C)"{--chdir,-C}"[]: :_files" | |
|         "--package-path[Change working directory before any other operation]:Change working directory before any other operation:_files" | |
|         "--sanitize[Turn on runtime checks for erroneous behavior]: :{_values '' 'address[enable Address sanitizer]' 'thread[enable Thread sanitizer]'}" | |
|         "--disable-prefetching[]" | |
|         "--skip-update[Skip updating dependencies from their remote during a resolution]" | |
|         "--disable-sandbox[Disable using the sandbox when executing subprocesses]" | |
|         "--version[]" | |
|         "--destination[]: :_files" | |
|         "(--verbose -v)"{--verbose,-v}"[Increase verbosity of informational output]" | |
|         "--no-static-swift-stdlib[Do not link Swift stdlib statically \[default\]]" | |
|         "--static-swift-stdlib[Link Swift stdlib statically]" | |
|         "--enable-build-manifest-caching[Enable llbuild manifest caching \[Experimental\]]" | |
|         '(-): :->command' | |
|         '(-)*:: :->arg' | |
|     ) | |
|     _arguments $arguments && return | |
|     case $state in | |
|         (command) | |
|             local modes | |
|             modes=( | |
|                 'edit:Put a package in editable mode' | |
|                 'clean:Delete build artifacts' | |
|                 'init:Initialize a new package' | |
|                 'dump-package:Print parsed Package.swift as JSON' | |
|                 'describe:Describe the current package' | |
|                 'unedit:Remove a package from editable mode' | |
|                 'update:Update package dependencies' | |
|                 'completion-tool:Completion tool (for shell completions)' | |
|                 'tools-version:Manipulate tools version of the current package' | |
|                 'reset:Reset the complete cache/build directory' | |
|                 'resolve:Resolve package dependencies' | |
|                 'generate-xcodeproj:Generates an Xcode project' | |
|                 'fetch:' | |
|                 'show-dependencies:Print the resolved dependency graph' | |
|             ) | |
|             _describe "mode" modes | |
|             ;; | |
|         (arg) | |
|             case ${words[1]} in | |
|                 (edit) | |
|                     _swift_package_edit | |
|                     ;; | |
|                 (clean) | |
|                     _swift_package_clean | |
|                     ;; | |
|                 (init) | |
|                     _swift_package_init | |
|                     ;; | |
|                 (dump-package) | |
|                     _swift_package_dump-package | |
|                     ;; | |
|                 (describe) | |
|                     _swift_package_describe | |
|                     ;; | |
|                 (unedit) | |
|                     _swift_package_unedit | |
|                     ;; | |
|                 (update) | |
|                     _swift_package_update | |
|                     ;; | |
|                 (completion-tool) | |
|                     _swift_package_completion-tool | |
|                     ;; | |
|                 (tools-version) | |
|                     _swift_package_tools-version | |
|                     ;; | |
|                 (reset) | |
|                     _swift_package_reset | |
|                     ;; | |
|                 (resolve) | |
|                     _swift_package_resolve | |
|                     ;; | |
|                 (generate-xcodeproj) | |
|                     _swift_package_generate-xcodeproj | |
|                     ;; | |
|                 (fetch) | |
|                     _swift_package_fetch | |
|                     ;; | |
|                 (show-dependencies) | |
|                     _swift_package_show-dependencies | |
|                     ;; | |
|             esac | |
|             ;; | |
|     esac | |
| } | |
|  | |
| _swift_package_edit() { | |
|     arguments=( | |
|         ":The name of the package to edit:_swift_dependency" | |
|         "--revision[The revision to edit]:The revision to edit: " | |
|         "--branch[The branch to create]:The branch to create: " | |
|         "--path[Create or use the checkout at this path]:Create or use the checkout at this path:_files" | |
|     ) | |
|     _arguments $arguments && return | |
| } | |
|  | |
| _swift_package_clean() { | |
|     arguments=( | |
|     ) | |
|     _arguments $arguments && return | |
| } | |
|  | |
| _swift_package_init() { | |
|     arguments=( | |
|         "--type[empty|library|executable|system-module]: :{_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]'}" | |
|     ) | |
|     _arguments $arguments && return | |
| } | |
|  | |
| _swift_package_dump-package() { | |
|     arguments=( | |
|     ) | |
|     _arguments $arguments && return | |
| } | |
|  | |
| _swift_package_describe() { | |
|     arguments=( | |
|         "--type[json|text]: :{_values '' 'text[describe using text format]' 'json[describe using JSON format]'}" | |
|     ) | |
|     _arguments $arguments && return | |
| } | |
|  | |
| _swift_package_unedit() { | |
|     arguments=( | |
|         ":The name of the package to unedit:_swift_dependency" | |
|         "--force[Unedit the package even if it has uncommited and unpushed changes.]" | |
|     ) | |
|     _arguments $arguments && return | |
| } | |
|  | |
| _swift_package_update() { | |
|     arguments=( | |
|     ) | |
|     _arguments $arguments && return | |
| } | |
|  | |
| _swift_package_completion-tool() { | |
|     arguments=( | |
|         ": :{_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]'}" | |
|     ) | |
|     _arguments $arguments && return | |
| } | |
|  | |
| _swift_package_tools-version() { | |
|     arguments=( | |
|         "--set[Set tools version of package to the given value]:Set tools version of package to the given value: " | |
|         "--set-current[Set tools version of package to the current tools version in use]" | |
|     ) | |
|     _arguments $arguments && return | |
| } | |
|  | |
| _swift_package_reset() { | |
|     arguments=( | |
|     ) | |
|     _arguments $arguments && return | |
| } | |
|  | |
| _swift_package_resolve() { | |
|     arguments=( | |
|         ":The name of the package to resolve:_swift_dependency" | |
|         "--version[The version to resolve at]:The version to resolve at: " | |
|         "--branch[The branch to resolve at]:The branch to resolve at: " | |
|         "--revision[The revision to resolve at]:The revision to resolve at: " | |
|     ) | |
|     _arguments $arguments && return | |
| } | |
|  | |
| _swift_package_generate-xcodeproj() { | |
|     arguments=( | |
|         "--xcconfig-overrides[Path to xcconfig file]:Path to xcconfig file:_files" | |
|         "--enable-code-coverage[Enable code coverage in the generated project]" | |
|         "--output[Path where the Xcode project should be generated]:Path where the Xcode project should be generated:_files" | |
|         "--legacy-scheme-generator[Use the legacy scheme generator]" | |
|         "--watch[Watch for changes to the Package manifest to regenerate the Xcode project]" | |
|     ) | |
|     _arguments $arguments && return | |
| } | |
|  | |
| _swift_package_fetch() { | |
|     arguments=( | |
|     ) | |
|     _arguments $arguments && return | |
| } | |
|  | |
| _swift_package_show-dependencies() { | |
|     arguments=( | |
|         "--format[text|dot|json|flatlist]: :{_values '' 'text[list dependencies using text format]' 'dot[list dependencies using dot format]' 'json[list dependencies using JSON format]'}" | |
|     ) | |
|     _arguments $arguments && return | |
| } | |
|  | |
| # Generates completions for swift test | |
| # | |
| # In the final compdef file, set the following file header: | |
| # | |
| #     #compdef _swift_test | |
| #     local context state state_descr line | |
| #     typeset -A opt_args | |
| _swift_test() { | |
|     arguments=( | |
|         "-Xcc[Pass flag through to all C compiler invocations]:Pass flag through to all C compiler invocations: " | |
|         "-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: " | |
|         "-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" | |
|         "(--chdir -C)"{--chdir,-C}"[]: :_files" | |
|         "--package-path[Change working directory before any other operation]:Change working directory before any other operation:_files" | |
|         "--sanitize[Turn on runtime checks for erroneous behavior]: :{_values '' 'address[enable Address sanitizer]' 'thread[enable Thread sanitizer]'}" | |
|         "--disable-prefetching[]" | |
|         "--skip-update[Skip updating dependencies from their remote during a resolution]" | |
|         "--disable-sandbox[Disable using the sandbox when executing subprocesses]" | |
|         "--version[]" | |
|         "--destination[]: :_files" | |
|         "(--verbose -v)"{--verbose,-v}"[Increase verbosity of informational output]" | |
|         "--no-static-swift-stdlib[Do not link Swift stdlib statically \[default\]]" | |
|         "--static-swift-stdlib[Link Swift stdlib statically]" | |
|         "--enable-build-manifest-caching[Enable llbuild manifest caching \[Experimental\]]" | |
|         "--skip-build[Skip building the test target]" | |
|         "(--list-tests -l)"{--list-tests,-l}"[Lists test methods in specifier format]" | |
|         "--generate-linuxmain[Generate LinuxMain.swift entries for the package]" | |
|         "--parallel[Run the tests in parallel.]" | |
|         "(--specifier -s)"{--specifier,-s}"[]: : " | |
|         "--xunit-output[]: :_files" | |
|         "--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>: " | |
|     ) | |
|     _arguments $arguments && return | |
| } | |
|  | |
| _swift_compiler() { | |
| } | |
|  | |
| _swift
 | |
| 
 |