浏览代码

Add shell completion for Swift Package Manager (#7046)

This was generated by the Swift compiler 4.1.2 using the following
command:

swift package completion-tool generate-zsh-script
Thi 6 年之前
父节点
当前提交
9624ce992e
共有 1 个文件被更改,包括 362 次插入0 次删除
  1. 362 0
      plugins/swiftpm/_swift

+ 362 - 0
plugins/swiftpm/_swift

@@ -0,0 +1,362 @@
+#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"
+        "--disable-prefetching[]"
+        "--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]"
+        "--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"
+        "--disable-prefetching[]"
+        "--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]"
+        "--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"
+        "--disable-prefetching[]"
+        "--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]"
+        "--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=(
+                'update:Update package dependencies'
+                'show-dependencies:Print the resolved dependency graph'
+                'resolve:Resolve package dependencies'
+                'fetch:'
+                'completion-tool:Completion tool (for shell completions)'
+                'edit:Put a package in editable mode'
+                'tools-version:Manipulate tools version of the current package'
+                'describe:Describe the current package'
+                'clean:Delete build artifacts'
+                'reset:Reset the complete cache/build directory'
+                'unedit:Remove a package from editable mode'
+                'generate-xcodeproj:Generates an Xcode project'
+                'init:Initialize a new package'
+                'dump-package:Print parsed Package.swift as JSON'
+            )
+            _describe "mode" modes
+            ;;
+        (arg)
+            case ${words[1]} in
+                (update)
+                    _swift_package_update
+                    ;;
+                (show-dependencies)
+                    _swift_package_show-dependencies
+                    ;;
+                (resolve)
+                    _swift_package_resolve
+                    ;;
+                (fetch)
+                    _swift_package_fetch
+                    ;;
+                (completion-tool)
+                    _swift_package_completion-tool
+                    ;;
+                (edit)
+                    _swift_package_edit
+                    ;;
+                (tools-version)
+                    _swift_package_tools-version
+                    ;;
+                (describe)
+                    _swift_package_describe
+                    ;;
+                (clean)
+                    _swift_package_clean
+                    ;;
+                (reset)
+                    _swift_package_reset
+                    ;;
+                (unedit)
+                    _swift_package_unedit
+                    ;;
+                (generate-xcodeproj)
+                    _swift_package_generate-xcodeproj
+                    ;;
+                (init)
+                    _swift_package_init
+                    ;;
+                (dump-package)
+                    _swift_package_dump-package
+                    ;;
+            esac
+            ;;
+    esac
+}
+
+_swift_package_update() {
+    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
+}
+
+_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_fetch() {
+    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_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_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_describe() {
+    arguments=(
+        "--type[json|text]: :{_values '' 'text[describe using text format]' 'json[describe using JSON format]'}"
+    )
+    _arguments $arguments && return
+}
+
+_swift_package_clean() {
+    arguments=(
+    )
+    _arguments $arguments && return
+}
+
+_swift_package_reset() {
+    arguments=(
+    )
+    _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_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"
+    )
+    _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
+}
+
+# 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"
+        "--disable-prefetching[]"
+        "--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]"
+        "--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}"[]: : "
+        "--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