mirror of
https://github.com/dcarrillo/prezto.git
synced 2024-12-22 11:38:00 +00:00
node: Optimize completions for loading lazily on demand
Move `grunt` and `gulp` to separate completion definitions wrapping `grunt --completion=zsh` and `gulp --completion=zsh` respectively. Since the completions are loaded lazily on demand, they avoid the performance overhead during Zsh initialization. Additionally, remove `npm` completion since it is already bundled with Zsh for quite a while.
This commit is contained in:
parent
f84075b8d4
commit
9f37fc9841
@ -3,6 +3,9 @@
|
||||
Provides utility functions for [Node.js][1], loads the Node Version Manager, and
|
||||
enables [_npm_][2] completion.
|
||||
|
||||
This module must be loaded _before_ the _`completion`_ module so that the
|
||||
provided completion definitions are loaded.
|
||||
|
||||
## nodenv
|
||||
|
||||
[_nodenv_][5] does one thing well - it is concerned solely with switching
|
||||
|
15
modules/node/functions/_grunt
Normal file
15
modules/node/functions/_grunt
Normal file
@ -0,0 +1,15 @@
|
||||
#compdef grunt
|
||||
#autoload
|
||||
|
||||
#
|
||||
# Grunt completion, delegating to grunt to do all the completion work.
|
||||
#
|
||||
# Authors:
|
||||
# Indrajit Raychaudhuri <irc@indrajit.com>
|
||||
#
|
||||
|
||||
if (( $+commands[grunt] )); then
|
||||
eval "$(grunt --completion=zsh)"
|
||||
|
||||
_grunt_completion "$@"
|
||||
fi
|
15
modules/node/functions/_gulp
Normal file
15
modules/node/functions/_gulp
Normal file
@ -0,0 +1,15 @@
|
||||
#compdef gulp
|
||||
#autoload
|
||||
|
||||
#
|
||||
# Gulp completion, delegating to gulp to do all the completion work.
|
||||
#
|
||||
# Authors:
|
||||
# Indrajit Raychaudhuri <irc@indrajit.com>
|
||||
#
|
||||
|
||||
if (( $+commands[gulp] )); then
|
||||
eval "$(gulp --completion=zsh)"
|
||||
|
||||
_gulp_completion "$@"
|
||||
fi
|
@ -5,6 +5,7 @@
|
||||
# Authors:
|
||||
# Sorin Ionescu <sorin.ionescu@gmail.com>
|
||||
# Zeh Rizzatti <zehrizzatti@gmail.com>
|
||||
# Indrajit Raychaudhuri <irc@indrajit.com>
|
||||
#
|
||||
|
||||
# Possible lookup locations.
|
||||
@ -36,30 +37,3 @@ elif (( $+commands[brew] )) \
|
||||
elif (( ! $+commands[node] )); then
|
||||
return 1
|
||||
fi
|
||||
|
||||
# Load NPM and known helper completions.
|
||||
typeset -A _compl_commands=(
|
||||
npm 'npm completion'
|
||||
grunt 'grunt --completion=zsh'
|
||||
gulp 'gulp --completion=zsh'
|
||||
)
|
||||
|
||||
for _compl_command in "${(k)_compl_commands[@]}"; do
|
||||
if (( $+commands[$_compl_command] )); then
|
||||
cache_file="${XDG_CACHE_HOME:-$HOME/.cache}/prezto/${_compl_command}-cache.zsh"
|
||||
|
||||
# Completion commands are slow; cache their output if old or missing.
|
||||
if [[ "$commands[$_compl_command]" -nt "$cache_file" \
|
||||
|| "${ZDOTDIR:-$HOME}/.zpreztorc" -nt "$cache_file" \
|
||||
|| ! -s "$cache_file" ]]; then
|
||||
mkdir -p "$cache_file:h"
|
||||
command ${=_compl_commands[$_compl_command]} >! "$cache_file" 2> /dev/null
|
||||
fi
|
||||
|
||||
source "$cache_file"
|
||||
|
||||
unset cache_file
|
||||
fi
|
||||
done
|
||||
|
||||
unset _compl_command{s,}
|
||||
|
Loading…
Reference in New Issue
Block a user