diff --git a/.config/zsh/lib/completion.zsh b/.config/zsh/lib/completion.zsh index 164d5e2..af25e2f 100644 --- a/.config/zsh/lib/completion.zsh +++ b/.config/zsh/lib/completion.zsh @@ -83,6 +83,7 @@ __z_comp_external() { return 3 fi fi + zcompile -zUR "$f" || return 4 autoload -Uz "_$c" return 0 @@ -110,8 +111,9 @@ z-comp-invalidate() { [ -n "$1" ] || return 1 f="${ZSHU[d_cache]}/completion/_$1" + rm -f "$f.zwc" [ -f "$f" ] || return 2 - rm -f "$f" || return 3 + rm -f "$f" } ## reload or new session are required to regenerate completions diff --git a/.config/zsh/lib/selfservice.zsh b/.config/zsh/lib/selfservice.zsh index ed54cf2..fb189e3 100644 --- a/.config/zsh/lib/selfservice.zsh +++ b/.config/zsh/lib/selfservice.zsh @@ -14,7 +14,13 @@ dotfiles-git() { ( z-zwc-gen() { local i for i ( "${ZSHU[d_conf]}"/**/*.zsh(N.r) ) ; do - zcompile -U "$i" + zcompile -UR "$i" + done + for i ( "${ZSHU[d_cache]}/completion"/*(N.r) ) ; do + case "$i" in + *.zwc ) continue ;; + esac + zcompile -zUR "$i" done }