diff options
Diffstat (limited to 'plugins/fnm')
-rw-r--r-- | plugins/fnm/README.md | 9 | ||||
-rw-r--r-- | plugins/fnm/fnm.plugin.zsh | 23 |
2 files changed, 32 insertions, 0 deletions
diff --git a/plugins/fnm/README.md b/plugins/fnm/README.md new file mode 100644 index 000000000..00fab5cd4 --- /dev/null +++ b/plugins/fnm/README.md @@ -0,0 +1,9 @@ +# fnm plugin + +This plugin adds autocompletion for [fnm](https://github.com/Schniz/fnm) - a Node.js version manager. + +To use it, add `fnm` to the plugins array in your zshrc file: + +```zsh +plugins=(... fnm) +``` diff --git a/plugins/fnm/fnm.plugin.zsh b/plugins/fnm/fnm.plugin.zsh new file mode 100644 index 000000000..c161b27cd --- /dev/null +++ b/plugins/fnm/fnm.plugin.zsh @@ -0,0 +1,23 @@ +if (( $+commands[fnm] )); then + # remove old generated completion file + command rm -f "${0:A:h}/_fnm" + + ver="$(fnm --version)" + ver_file="$ZSH_CACHE_DIR/fnm_version" + comp_file="$ZSH_CACHE_DIR/completions/_fnm" + + mkdir -p "${comp_file:h}" + (( ${fpath[(Ie)${comp_file:h}]} )) || fpath=("${comp_file:h}" $fpath) + + if [[ ! -f "$comp_file" || ! -f "$ver_file" || "$ver" != "$(< "$ver_file")" ]]; then + fnm completions --shell=zsh >| "$comp_file" + echo "$ver" >| "$ver_file" + fi + + declare -A _comps + autoload -Uz _fnm + _comps[fnm]=_fnm + + unset ver ver_file comp_file +fi + |