Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
O
oh-my-zsh
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
JIRA
JIRA
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
github
oh-my-zsh
Commits
df4508ad
Unverified
Commit
df4508ad
authored
Dec 28, 2021
by
Carlo Sala
Committed by
GitHub
Dec 28, 2021
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat(volta): add dynamic completion generation (#10515)
parent
543d6c0d
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
19 additions
and
298 deletions
+19
-298
_volta
plugins/volta/_volta
+0
-298
volta.plugin.zsh
plugins/volta/volta.plugin.zsh
+19
-0
No files found.
plugins/volta/_volta
deleted
100644 → 0
View file @
543d6c0d
#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 "$@"
\ No newline at end of file
plugins/volta/volta.plugin.zsh
0 → 100644
View file @
df4508ad
# COMPLETION FUNCTION
if
((
!
$+
commands[volta]
))
;
then
return
fi
# TODO: 2021-12-28: remove this bit of code as it exists in oh-my-zsh.sh
# Add completions folder in $ZSH_CACHE_DIR
command mkdir
-p
"
$ZSH_CACHE_DIR
/completions"
((
${
fpath
[(Ie)
"
$ZSH_CACHE_DIR
/completions"
]
}
))
||
fpath
=(
"
$ZSH_CACHE_DIR
/completions"
$fpath
)
# If the completion file doesn't exist yet, we need to autoload it and
# bind it to `deno`. Otherwise, compinit will have already done that.
if
[[
!
-f
"
$ZSH_CACHE_DIR
/completions/_volta"
]]
;
then
declare
-A
_comps
autoload
-Uz
_volta
_comps[volta]
=
_volta
fi
volta completions zsh
>
|
"
$ZSH_CACHE_DIR
/completions/_volta"
&|
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment