d9ad99531f74df8b0d6622feeab5e253528b43d0

Author
Žiga Šebenik <sebenik@users.noreply.github.com>
Committer
GitHub <noreply@github.com>
Date

Message

feat(plugins): add fnm plugin (#9864)

Co-authored-by: Ziga Sebenik <ziga.sebenik@oryxgaming.com>

Diff

 1diff --git a/plugins/fnm/.gitignore b/plugins/fnm/.gitignore
 2new file mode 100644
 3index 0000000000000000000000000000000000000000..0b2bc9ab701422af31912f511926e82f9379fdba
 4--- /dev/null
 5+++ b/plugins/fnm/.gitignore
 6@@ -0,0 +1,2 @@
 7+_fnm
 8+
 9diff --git a/plugins/fnm/README.md b/plugins/fnm/README.md
10new file mode 100644
11index 0000000000000000000000000000000000000000..00fab5cd4b07461ccce20fb5c02cc58c4c90cea8
12--- /dev/null
13+++ b/plugins/fnm/README.md
14@@ -0,0 +1,9 @@
15+# fnm plugin
16+
17+This plugin adds autocompletion for [fnm](https://github.com/Schniz/fnm) - a Node.js version manager.
18+
19+To use it, add `fnm` to the plugins array in your zshrc file:
20+
21+```zsh
22+plugins=(... fnm)
23+```
24diff --git a/plugins/fnm/fnm.plugin.zsh b/plugins/fnm/fnm.plugin.zsh
25new file mode 100644
26index 0000000000000000000000000000000000000000..5ce558dcb4a0ff01e80d3c2bb9ce12c082dbf790
27--- /dev/null
28+++ b/plugins/fnm/fnm.plugin.zsh
29@@ -0,0 +1,12 @@
30+# COMPLETION FUNCTION
31+if (( $+commands[fnm] )); then
32+  if [[ ! -f $ZSH_CACHE_DIR/fnm_version ]] \
33+    || [[ "$(fnm --version)" != "$(< "$ZSH_CACHE_DIR/fnm_version")" ]] \
34+    || [[ ! -f $ZSH/plugins/fnm/_fnm ]]; then
35+      fnm completions --shell=zsh > $ZSH/plugins/fnm/_fnm
36+      fnm --version > $ZSH_CACHE_DIR/fnm_version
37+  fi
38+  autoload -Uz _fnm
39+  _comps[fnm]=_fnm
40+fi
41+