summaryrefslogtreecommitdiff
path: root/plugins/deno
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/deno')
-rw-r--r--plugins/deno/.gitignore1
-rw-r--r--plugins/deno/deno.plugin.zsh22
2 files changed, 17 insertions, 6 deletions
diff --git a/plugins/deno/.gitignore b/plugins/deno/.gitignore
deleted file mode 100644
index cba5b03e8..000000000
--- a/plugins/deno/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-_deno
diff --git a/plugins/deno/deno.plugin.zsh b/plugins/deno/deno.plugin.zsh
index a37b3bec4..34adddc37 100644
--- a/plugins/deno/deno.plugin.zsh
+++ b/plugins/deno/deno.plugin.zsh
@@ -12,12 +12,24 @@ alias dup='deno upgrade'
# COMPLETION FUNCTION
if (( $+commands[deno] )); then
- if [[ ! -f $ZSH_CACHE_DIR/deno_version ]] \
- || [[ "$(deno --version)" != "$(< "$ZSH_CACHE_DIR/deno_version")" ]] \
- || [[ ! -f $ZSH/plugins/deno/_deno ]]; then
- deno completions zsh > $ZSH/plugins/deno/_deno
- deno --version > $ZSH_CACHE_DIR/deno_version
+ # remove old generated completion file
+ command rm -f "${0:A:h}/_deno"
+
+ ver="$(deno --version)"
+ ver_file="$ZSH_CACHE_DIR/deno_version"
+ comp_file="$ZSH_CACHE_DIR/completions/_deno"
+
+ 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
+ deno completions zsh >| "$comp_file"
+ echo "$ver" >| "$ver_file"
fi
+
+ declare -A _comps
autoload -Uz _deno
_comps[deno]=_deno
+
+ unset ver ver_file comp_file
fi