Add autocompletion plugin for rustup subcommands
This commit is contained in:
parent
c24dfa1ab4
commit
f8a3c1946e
128
plugins/rustup/_rustup
Normal file
128
plugins/rustup/_rustup
Normal file
@ -0,0 +1,128 @@
|
|||||||
|
#compdef rustup
|
||||||
|
#autoload
|
||||||
|
|
||||||
|
# Rustup zsh autocompletion
|
||||||
|
|
||||||
|
local -a _commands
|
||||||
|
_commands=(
|
||||||
|
'show: Show the active and installed toolchains'
|
||||||
|
'update:[NAME] Update Rust toolchains'
|
||||||
|
'default:<toolchain> Set the default toolchain'
|
||||||
|
'toolchain:[FLAGS] [toolchain] Modify or query the installed toolchains'
|
||||||
|
'target:[SUBCOMMAND] Modify a toolchains supported targets'
|
||||||
|
'override:[SUBCOMMAND] Modify directory toolchain overrides'
|
||||||
|
'run:<toolchain> <command> Run a command with an environment configured for a given toolchain'
|
||||||
|
'which:Display which binary will be run for a given command'
|
||||||
|
'doc:Open the documentation for the current toolchain'
|
||||||
|
'man:View the man page for a given command'
|
||||||
|
'self:[SUBCOMMAND] Modify the rustup installation'
|
||||||
|
'set:Alter rustup settings'
|
||||||
|
'help:Prints a detailed description of the options for this command'
|
||||||
|
)
|
||||||
|
|
||||||
|
subcommands() {
|
||||||
|
local curcontext="$curcontext" state line
|
||||||
|
typeset -A opt_args
|
||||||
|
|
||||||
|
_arguments -C \
|
||||||
|
':command:->command' \
|
||||||
|
'*::options:->options'
|
||||||
|
|
||||||
|
case $state in
|
||||||
|
(command)
|
||||||
|
_describe -t commands "gem subcommand" $1
|
||||||
|
return
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
local -a _target_subcommands
|
||||||
|
_target_subcommands=(
|
||||||
|
'list:List installed and available targets'
|
||||||
|
'add:Add a target to a Rust toolchain'
|
||||||
|
'remove:Remove a target from a Rust toolchain'
|
||||||
|
'help:Prints a detailed description of the options for this subcommand'
|
||||||
|
)
|
||||||
|
_target() { subcommands _target_subcommands }
|
||||||
|
|
||||||
|
local -a _override_subcommands
|
||||||
|
_override_subcommands=(
|
||||||
|
'list:List directory toolchain overrides'
|
||||||
|
'set:Set the override toolchain for a directory'
|
||||||
|
'unset:Remove the override toolchain for a directory'
|
||||||
|
'help:Prints a detailed description of the options for this subcommand'
|
||||||
|
)
|
||||||
|
_override() { subcommands _override_subcommands }
|
||||||
|
|
||||||
|
local -a _self_subcommands
|
||||||
|
_self_subcommands=(
|
||||||
|
'update: Download and install updates to rustup'
|
||||||
|
'uninstall: Uninstall rustup.'
|
||||||
|
'upgrade-data: Upgrade the internal data format.'
|
||||||
|
'help: Prints a detailed description of the options for this subcommand'
|
||||||
|
)
|
||||||
|
_self() { subcommands _self_subcommands }
|
||||||
|
|
||||||
|
local -a _set_subcommands
|
||||||
|
_set_subcommands=(
|
||||||
|
'default-host: The triple used to identify toolchains when not specified'
|
||||||
|
'help: Prints a detailed description of the options for this subcommand'
|
||||||
|
)
|
||||||
|
_set() { subcommands _set_subcommands }
|
||||||
|
|
||||||
|
local -a _toolchain_subcommands
|
||||||
|
_toolchain_subcommands=(
|
||||||
|
'list:List installed toolchains'
|
||||||
|
'install:Install or update a given toolchain'
|
||||||
|
'uninstall:Uninstall a toolchain'
|
||||||
|
'link:Create a custom toolchain by symlinking to a directory'
|
||||||
|
'help:Prints a detailed description of the options for this subcommand'
|
||||||
|
)
|
||||||
|
_toolchain() { subcommands _toolchain_subcommands }
|
||||||
|
|
||||||
|
|
||||||
|
local -a _doc_subcommands
|
||||||
|
_doc_subcommands=(
|
||||||
|
'--book:The Rust Programming Language book'
|
||||||
|
'--help:Prints help information'
|
||||||
|
'--std:Standard library API documentation'
|
||||||
|
)
|
||||||
|
_doc() { subcommands _doc_subcommands }
|
||||||
|
|
||||||
|
|
||||||
|
local curcontext="$curcontext" state line
|
||||||
|
typeset -A opt_args
|
||||||
|
|
||||||
|
_arguments -C \
|
||||||
|
':command:->command' \
|
||||||
|
'*::options:->options'
|
||||||
|
|
||||||
|
case $state in
|
||||||
|
(command)
|
||||||
|
_describe -t commands "gem subcommand" _commands
|
||||||
|
return
|
||||||
|
;;
|
||||||
|
|
||||||
|
(options)
|
||||||
|
case $line[1] in
|
||||||
|
(target)
|
||||||
|
_arguments ":feature:_target"
|
||||||
|
;;
|
||||||
|
(override)
|
||||||
|
_arguments ':feature:_override'
|
||||||
|
;;
|
||||||
|
(self)
|
||||||
|
_arguments ':feature:_self'
|
||||||
|
;;
|
||||||
|
(set)
|
||||||
|
_arguments ':feature:_set'
|
||||||
|
;;
|
||||||
|
(toolchain)
|
||||||
|
_arguments ':feature:_toolchain'
|
||||||
|
;;
|
||||||
|
(doc)
|
||||||
|
_arguments ':feature:_doc'
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
esac
|
Loading…
Reference in New Issue
Block a user