cargo.plugin.zsh 656 B

1234567891011121314151617181920212223
  1. if (( $+commands[rustup] && $+commands[cargo] )); then
  2. # remove old generated completion file
  3. command rm -f "${0:A:h}/_cargo"
  4. # generate new completion file
  5. ver="$(cargo --version)"
  6. ver_file="$ZSH_CACHE_DIR/cargo_version"
  7. comp_file="$ZSH_CACHE_DIR/completions/_cargo"
  8. mkdir -p "${comp_file:h}"
  9. (( ${fpath[(Ie)${comp_file:h}]} )) || fpath=("${comp_file:h}" $fpath)
  10. if [[ ! -f "$comp_file" || ! -f "$ver_file" || "$ver" != "$(< "$ver_file")" ]]; then
  11. rustup completions zsh cargo >| "$comp_file"
  12. echo "$ver" >| "$ver_file"
  13. fi
  14. declare -A _comps
  15. autoload -Uz _cargo
  16. _comps[cargo]=_cargo
  17. unset ver ver_file comp_file
  18. fi