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).
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.0.
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`:
'tools-version:Manipulate tools version of the current package'
'clean:Delete build artifacts'
'reset:Reset the complete cache/build directory'
'resolve:Resolve package dependencies'
'generate-xcodeproj:Generates an Xcode project'
'generate-xcodeproj:Generates an Xcode project'
'fetch:'
'reset:Reset the complete cache/build directory'
'show-dependencies:Print the resolved dependency graph'
'init:Initialize a new package'
)
)
_describe "mode" modes
_describe "mode" modes
;;
;;
(arg)
(arg)
case ${words[1]} in
case ${words[1]} in
(edit)
(update)
_swift_package_edit
_swift_package_update
;;
(clean)
_swift_package_clean
;;
(init)
_swift_package_init
;;
(dump-package)
_swift_package_dump-package
;;
;;
(describe)
(describe)
_swift_package_describe
_swift_package_describe
;;
;;
(resolve)
_swift_package_resolve
;;
(tools-version)
_swift_package_tools-version
;;
(unedit)
(unedit)
_swift_package_unedit
_swift_package_unedit
;;
;;
(update)
(show-dependencies)
_swift_package_update
_swift_package_show-dependencies
;;
;;
(completion-tool)
(fetch)
_swift_package_completion-tool
_swift_package_fetch
;;
;;
(tools-version)
(dump-package)
_swift_package_tools-version
_swift_package_dump-package
;;
;;
(reset)
(edit)
_swift_package_reset
_swift_package_edit
;;
;;
(resolve)
(config)
_swift_package_resolve
_swift_package_config
;;
(completion-tool)
_swift_package_completion-tool
;;
(clean)
_swift_package_clean
;;
;;
(generate-xcodeproj)
(generate-xcodeproj)
_swift_package_generate-xcodeproj
_swift_package_generate-xcodeproj
;;
;;
(fetch)
(reset)
_swift_package_fetch
_swift_package_reset
;;
;;
(show-dependencies)
(init)
_swift_package_show-dependencies
_swift_package_init
;;
;;
esac
esac
;;
;;
esac
esac
}
}
_swift_package_edit() {
_swift_package_update() {
arguments=(
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
_arguments $arguments && return
}
}
_swift_package_clean() {
_swift_package_describe() {
arguments=(
arguments=(
"--type[json|text]: :{_values '' 'text[describe using text format]' 'json[describe using JSON format]'}"
)
)
_arguments $arguments && return
_arguments $arguments && return
}
}
_swift_package_init() {
_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_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_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_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_fetch() {
arguments=(
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]'}"
"--output[Path where the Xcode project should be generated]:Path where the Xcode project should be generated:_files"
"--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]"
"--legacy-scheme-generator[Use the legacy scheme generator]"
"--watch[Watch for changes to the Package manifest to regenerate the Xcode project]"
"--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 $arguments && return
}
}
_swift_package_fetch() {
_swift_package_reset() {
arguments=(
arguments=(
)
)
_arguments $arguments && return
_arguments $arguments && return
}
}
_swift_package_show-dependencies() {
_swift_package_init() {
arguments=(
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]'}"
"--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]'}"
"--enable-pubgrub-resolver[\[Experimental\] Enable the new Pubgrub dependency resolver]"
"--enable-parseable-module-interfaces[]"
"--skip-build[Skip building the test target]"
"--skip-build[Skip building the test target]"
"(--list-tests -l)"{--list-tests,-l}"[Lists test methods in specifier format]"
"(--list-tests -l)"{--list-tests,-l}"[Lists test methods in specifier format]"
"--generate-linuxmain[Generate LinuxMain.swift entries for the package]"
"--generate-linuxmain[Generate LinuxMain.swift entries for the package]"
"--parallel[Run the tests in parallel.]"
"--parallel[Run the tests in parallel.]"
"--num-workers[Number of tests to execute in parallel.]:Number of tests to execute in parallel.: "
"(--specifier -s)"{--specifier,-s}"[]: : "
"(--specifier -s)"{--specifier,-s}"[]: : "
"--xunit-output[]: :_files"
"--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>: "
"--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]"