feat(volta): add volta plugin (#10441)
For Volta JavaScript toolchain https://github.com/volta-cli/voltamaster
parent
44c6a71243
commit
08d086a09c
2 changed files with 309 additions and 0 deletions
@ -0,0 +1,11 @@ |
|||||||
|
# Volta |
||||||
|
|
||||||
|
This plugin provides completion for [Volta](https://volta.sh/). |
||||||
|
|
||||||
|
To use it add volta to the plugins array in your zshrc file. |
||||||
|
|
||||||
|
```bash |
||||||
|
plugins=(... volta) |
||||||
|
``` |
||||||
|
|
||||||
|
This plugin installs no aliases. |
||||||
@ -0,0 +1,298 @@ |
|||||||
|
#compdef volta |
||||||
|
|
||||||
|
autoload -U is-at-least |
||||||
|
|
||||||
|
_volta() { |
||||||
|
typeset -A opt_args |
||||||
|
typeset -a _arguments_options |
||||||
|
local ret=1 |
||||||
|
|
||||||
|
if is-at-least 5.2; then |
||||||
|
_arguments_options=(-s -S -C) |
||||||
|
else |
||||||
|
_arguments_options=(-s -C) |
||||||
|
fi |
||||||
|
|
||||||
|
local context curcontext="$curcontext" state line |
||||||
|
_arguments "${_arguments_options[@]}" \ |
||||||
|
'--verbose[Enables verbose diagnostics]' \ |
||||||
|
'(--verbose)--quiet[Prevents unnecessary output]' \ |
||||||
|
'-v[Prints the current version of Volta]' \ |
||||||
|
'--version[Prints the current version of Volta]' \ |
||||||
|
'-h[Prints help information]' \ |
||||||
|
'--help[Prints help information]' \ |
||||||
|
":: :_volta_commands" \ |
||||||
|
"*::: :->Volta" \ |
||||||
|
&& ret=0 |
||||||
|
case $state in |
||||||
|
(Volta) |
||||||
|
words=($line[1] "${words[@]}") |
||||||
|
(( CURRENT += 1 )) |
||||||
|
curcontext="${curcontext%:*:*}:volta-command-$line[1]:" |
||||||
|
case $line[1] in |
||||||
|
(fetch) |
||||||
|
_arguments "${_arguments_options[@]}" \ |
||||||
|
'-h[Prints help information]' \ |
||||||
|
'--help[Prints help information]' \ |
||||||
|
'-V[Prints version information]' \ |
||||||
|
'--version[Prints version information]' \ |
||||||
|
'--verbose[Enables verbose diagnostics]' \ |
||||||
|
'(--verbose)--quiet[Prevents unnecessary output]' \ |
||||||
|
':tool[@version] -- Tools to fetch, like `node`, `yarn@latest` or `your-package@^14.4.3`.:_files' \ |
||||||
|
&& ret=0 |
||||||
|
;; |
||||||
|
(install) |
||||||
|
_arguments "${_arguments_options[@]}" \ |
||||||
|
'-h[Prints help information]' \ |
||||||
|
'--help[Prints help information]' \ |
||||||
|
'-V[Prints version information]' \ |
||||||
|
'--version[Prints version information]' \ |
||||||
|
'--verbose[Enables verbose diagnostics]' \ |
||||||
|
'(--verbose)--quiet[Prevents unnecessary output]' \ |
||||||
|
':tool[@version] -- Tools to install, like `node`, `yarn@latest` or `your-package@^14.4.3`.:_files' \ |
||||||
|
&& ret=0 |
||||||
|
;; |
||||||
|
(uninstall) |
||||||
|
_arguments "${_arguments_options[@]}" \ |
||||||
|
'-h[Prints help information]' \ |
||||||
|
'--help[Prints help information]' \ |
||||||
|
'-V[Prints version information]' \ |
||||||
|
'--version[Prints version information]' \ |
||||||
|
'--verbose[Enables verbose diagnostics]' \ |
||||||
|
'(--verbose)--quiet[Prevents unnecessary output]' \ |
||||||
|
':tool -- The tool to uninstall, e.g. `node`, `npm`, `yarn`, or <package>:_files' \ |
||||||
|
&& ret=0 |
||||||
|
;; |
||||||
|
(pin) |
||||||
|
_arguments "${_arguments_options[@]}" \ |
||||||
|
'-h[Prints help information]' \ |
||||||
|
'--help[Prints help information]' \ |
||||||
|
'-V[Prints version information]' \ |
||||||
|
'--version[Prints version information]' \ |
||||||
|
'--verbose[Enables verbose diagnostics]' \ |
||||||
|
'(--verbose)--quiet[Prevents unnecessary output]' \ |
||||||
|
':tool[@version] -- Tools to pin, like `node@lts` or `yarn@^1.14`.:_files' \ |
||||||
|
&& ret=0 |
||||||
|
;; |
||||||
|
(ls) |
||||||
|
_arguments "${_arguments_options[@]}" \ |
||||||
|
'--format=[Specify the output format]: :(human plain)' \ |
||||||
|
'(-d --default)-c[Show the currently-active tool(s)]' \ |
||||||
|
'(-d --default)--current[Show the currently-active tool(s)]' \ |
||||||
|
'(-c --current)-d[Show your default tool(s).]' \ |
||||||
|
'(-c --current)--default[Show your default tool(s).]' \ |
||||||
|
'-h[Prints help information]' \ |
||||||
|
'--help[Prints help information]' \ |
||||||
|
'-V[Prints version information]' \ |
||||||
|
'--version[Prints version information]' \ |
||||||
|
'--verbose[Enables verbose diagnostics]' \ |
||||||
|
'(--verbose)--quiet[Prevents unnecessary output]' \ |
||||||
|
'::tool -- The tool to lookup - `all`, `node`, `yarn`, or the name of a package or binary.:_files' \ |
||||||
|
&& ret=0 |
||||||
|
;; |
||||||
|
(list) |
||||||
|
_arguments "${_arguments_options[@]}" \ |
||||||
|
'--format=[Specify the output format]: :(human plain)' \ |
||||||
|
'(-d --default)-c[Show the currently-active tool(s)]' \ |
||||||
|
'(-d --default)--current[Show the currently-active tool(s)]' \ |
||||||
|
'(-c --current)-d[Show your default tool(s).]' \ |
||||||
|
'(-c --current)--default[Show your default tool(s).]' \ |
||||||
|
'-h[Prints help information]' \ |
||||||
|
'--help[Prints help information]' \ |
||||||
|
'-V[Prints version information]' \ |
||||||
|
'--version[Prints version information]' \ |
||||||
|
'--verbose[Enables verbose diagnostics]' \ |
||||||
|
'(--verbose)--quiet[Prevents unnecessary output]' \ |
||||||
|
'::tool -- The tool to lookup - `all`, `node`, `yarn`, or the name of a package or binary.:_files' \ |
||||||
|
&& ret=0 |
||||||
|
;; |
||||||
|
(completions) |
||||||
|
_arguments "${_arguments_options[@]}" \ |
||||||
|
'-o+[File to write generated completions to]' \ |
||||||
|
'--output=[File to write generated completions to]' \ |
||||||
|
'-f[Write over an existing file, if any.]' \ |
||||||
|
'--force[Write over an existing file, if any.]' \ |
||||||
|
'-h[Prints help information]' \ |
||||||
|
'--help[Prints help information]' \ |
||||||
|
'-V[Prints version information]' \ |
||||||
|
'--version[Prints version information]' \ |
||||||
|
'--verbose[Enables verbose diagnostics]' \ |
||||||
|
'(--verbose)--quiet[Prevents unnecessary output]' \ |
||||||
|
':shell -- Shell to generate completions for:(zsh bash fish powershell elvish)' \ |
||||||
|
&& ret=0 |
||||||
|
;; |
||||||
|
(which) |
||||||
|
_arguments "${_arguments_options[@]}" \ |
||||||
|
'-h[Prints help information]' \ |
||||||
|
'--help[Prints help information]' \ |
||||||
|
'-V[Prints version information]' \ |
||||||
|
'--version[Prints version information]' \ |
||||||
|
'--verbose[Enables verbose diagnostics]' \ |
||||||
|
'(--verbose)--quiet[Prevents unnecessary output]' \ |
||||||
|
':binary -- The binary to find, e.g. `node` or `npm`:_files' \ |
||||||
|
&& ret=0 |
||||||
|
;; |
||||||
|
(use) |
||||||
|
_arguments "${_arguments_options[@]}" \ |
||||||
|
'-h[Prints help information]' \ |
||||||
|
'--help[Prints help information]' \ |
||||||
|
'-V[Prints version information]' \ |
||||||
|
'--version[Prints version information]' \ |
||||||
|
'--verbose[Enables verbose diagnostics]' \ |
||||||
|
'(--verbose)--quiet[Prevents unnecessary output]' \ |
||||||
|
'::anything:_files' \ |
||||||
|
&& ret=0 |
||||||
|
;; |
||||||
|
(setup) |
||||||
|
_arguments "${_arguments_options[@]}" \ |
||||||
|
'-h[Prints help information]' \ |
||||||
|
'--help[Prints help information]' \ |
||||||
|
'-V[Prints version information]' \ |
||||||
|
'--version[Prints version information]' \ |
||||||
|
'--verbose[Enables verbose diagnostics]' \ |
||||||
|
'(--verbose)--quiet[Prevents unnecessary output]' \ |
||||||
|
&& ret=0 |
||||||
|
;; |
||||||
|
(run) |
||||||
|
_arguments "${_arguments_options[@]}" \ |
||||||
|
'--node=[Set the custom Node version]' \ |
||||||
|
'(--bundled-npm)--npm=[Set the custom npm version]' \ |
||||||
|
'(--no-yarn)--yarn=[Set the custom Yarn version]' \ |
||||||
|
'*--env=[Set an environment variable (can be used multiple times)]' \ |
||||||
|
'(--npm)--bundled-npm[Forces npm to be the version bundled with Node]' \ |
||||||
|
'(--yarn)--no-yarn[Disables Yarn]' \ |
||||||
|
'-h[Prints help information]' \ |
||||||
|
'--help[Prints help information]' \ |
||||||
|
'-V[Prints version information]' \ |
||||||
|
'--version[Prints version information]' \ |
||||||
|
'--verbose[Enables verbose diagnostics]' \ |
||||||
|
'(--verbose)--quiet[Prevents unnecessary output]' \ |
||||||
|
':command -- The command to run:_files' \ |
||||||
|
'::args -- Arguments to pass to the command:_files' \ |
||||||
|
&& ret=0 |
||||||
|
;; |
||||||
|
(help) |
||||||
|
_arguments "${_arguments_options[@]}" \ |
||||||
|
'-h[Prints help information]' \ |
||||||
|
'--help[Prints help information]' \ |
||||||
|
'-V[Prints version information]' \ |
||||||
|
'--version[Prints version information]' \ |
||||||
|
'--verbose[Enables verbose diagnostics]' \ |
||||||
|
'(--verbose)--quiet[Prevents unnecessary output]' \ |
||||||
|
&& ret=0 |
||||||
|
;; |
||||||
|
esac |
||||||
|
;; |
||||||
|
esac |
||||||
|
} |
||||||
|
|
||||||
|
(( $+functions[_volta_commands] )) || |
||||||
|
_volta_commands() { |
||||||
|
local commands; commands=( |
||||||
|
"fetch:Fetches a tool to the local machine" \ |
||||||
|
"install:Installs a tool in your toolchain" \ |
||||||
|
"uninstall:Uninstalls a tool from your toolchain" \ |
||||||
|
"pin:Pins your project's runtime or package manager" \ |
||||||
|
"list:Displays the current toolchain" \ |
||||||
|
"completions:Generates Volta completions" \ |
||||||
|
"which:Locates the actual binary that will be called by Volta" \ |
||||||
|
"use:" \ |
||||||
|
"setup:Enables Volta for the current user / shell" \ |
||||||
|
"run:Run a command with custom Node, npm, and/or Yarn versions" \ |
||||||
|
"help:Prints this message or the help of the given subcommand(s)" \ |
||||||
|
) |
||||||
|
_describe -t commands 'volta commands' commands "$@" |
||||||
|
} |
||||||
|
(( $+functions[_volta__completions_commands] )) || |
||||||
|
_volta__completions_commands() { |
||||||
|
local commands; commands=( |
||||||
|
|
||||||
|
) |
||||||
|
_describe -t commands 'volta completions commands' commands "$@" |
||||||
|
} |
||||||
|
(( $+functions[_volta__fetch_commands] )) || |
||||||
|
_volta__fetch_commands() { |
||||||
|
local commands; commands=( |
||||||
|
|
||||||
|
) |
||||||
|
_describe -t commands 'volta fetch commands' commands "$@" |
||||||
|
} |
||||||
|
(( $+functions[_volta__help_commands] )) || |
||||||
|
_volta__help_commands() { |
||||||
|
local commands; commands=( |
||||||
|
|
||||||
|
) |
||||||
|
_describe -t commands 'volta help commands' commands "$@" |
||||||
|
} |
||||||
|
(( $+functions[_volta__install_commands] )) || |
||||||
|
_volta__install_commands() { |
||||||
|
local commands; commands=( |
||||||
|
|
||||||
|
) |
||||||
|
_describe -t commands 'volta install commands' commands "$@" |
||||||
|
} |
||||||
|
(( $+functions[_volta__list_commands] )) || |
||||||
|
_volta__list_commands() { |
||||||
|
local commands; commands=( |
||||||
|
|
||||||
|
) |
||||||
|
_describe -t commands 'volta list commands' commands "$@" |
||||||
|
} |
||||||
|
(( $+functions[_ls_commands] )) || |
||||||
|
_ls_commands() { |
||||||
|
local commands; commands=( |
||||||
|
|
||||||
|
) |
||||||
|
_describe -t commands 'ls commands' commands "$@" |
||||||
|
} |
||||||
|
(( $+functions[_volta__ls_commands] )) || |
||||||
|
_volta__ls_commands() { |
||||||
|
local commands; commands=( |
||||||
|
|
||||||
|
) |
||||||
|
_describe -t commands 'volta ls commands' commands "$@" |
||||||
|
} |
||||||
|
(( $+functions[_volta__pin_commands] )) || |
||||||
|
_volta__pin_commands() { |
||||||
|
local commands; commands=( |
||||||
|
|
||||||
|
) |
||||||
|
_describe -t commands 'volta pin commands' commands "$@" |
||||||
|
} |
||||||
|
(( $+functions[_volta__run_commands] )) || |
||||||
|
_volta__run_commands() { |
||||||
|
local commands; commands=( |
||||||
|
|
||||||
|
) |
||||||
|
_describe -t commands 'volta run commands' commands "$@" |
||||||
|
} |
||||||
|
(( $+functions[_volta__setup_commands] )) || |
||||||
|
_volta__setup_commands() { |
||||||
|
local commands; commands=( |
||||||
|
|
||||||
|
) |
||||||
|
_describe -t commands 'volta setup commands' commands "$@" |
||||||
|
} |
||||||
|
(( $+functions[_volta__uninstall_commands] )) || |
||||||
|
_volta__uninstall_commands() { |
||||||
|
local commands; commands=( |
||||||
|
|
||||||
|
) |
||||||
|
_describe -t commands 'volta uninstall commands' commands "$@" |
||||||
|
} |
||||||
|
(( $+functions[_volta__use_commands] )) || |
||||||
|
_volta__use_commands() { |
||||||
|
local commands; commands=( |
||||||
|
|
||||||
|
) |
||||||
|
_describe -t commands 'volta use commands' commands "$@" |
||||||
|
} |
||||||
|
(( $+functions[_volta__which_commands] )) || |
||||||
|
_volta__which_commands() { |
||||||
|
local commands; commands=( |
||||||
|
|
||||||
|
) |
||||||
|
_describe -t commands 'volta which commands' commands "$@" |
||||||
|
} |
||||||
|
|
||||||
|
_volta "$@" |
||||||
Loading…
Reference in new issue