summaryrefslogtreecommitdiff
path: root/plugins/fnm
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/fnm')
-rw-r--r--plugins/fnm/README.md9
-rw-r--r--plugins/fnm/fnm.plugin.zsh23
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
+