fix(rust): fix `cargo` completion when sysroot contains spaces (#10571)

When generating completions for Cargo, if the Rust sysroot
(i.e. `rustc +${${(z)$(rustup default)}[1]} --print sysroot`) contains
spaces, Cargo completions will not work because the spaces are not
escaped, thus passing two arguments to the "source" command instead of
one. The spaces need to be escaped for this to work.
master
Joey Territo 4 years ago committed by GitHub
parent 71e6d5fde8
commit c6e7f8905f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 2
      plugins/rust/rust.plugin.zsh

@ -27,5 +27,5 @@ fi
rustup completions zsh >| "$ZSH_CACHE_DIR/completions/_rustup" &|
cat >| "$ZSH_CACHE_DIR/completions/_cargo" <<'EOF'
#compdef cargo
source $(rustc +${${(z)$(rustup default)}[1]} --print sysroot)/share/zsh/site-functions/_cargo
source "$(rustc +${${(z)$(rustup default)}[1]} --print sysroot)"/share/zsh/site-functions/_cargo
EOF

Loading…
Cancel
Save