This mimics the approach taken with the bash completion scripts and
simply calls pacman -Sl to generate our list of unique repositories.
This fixes cases where custom repos are defined in pacman.d/config
snippets.
---
scripts/completion/zsh_completion.in | 7 ++-----
1 file changed, 2 insertions(+), 5 deletions(-)
diff --git a/scripts/completion/zsh_completion.in
b/scripts/completion/zsh_completion.in
index f74fa297..d7435f6d 100644
--- a/scripts/completion/zsh_completion.in
+++ b/scripts/completion/zsh_completion.in
@@ -316,8 +316,7 @@ _pacman_completions_all_packages() {
typeset -U packages
${seq} _wanted packages expl "packages" compadd ${sep[@]} -
"${(@)packages}"
-
repositories=(${(o)${${${(M)${(f)"$(<@sysconfdir@/pacman.conf)"}:#\[*}/\[/}/\]/}:#options})
- typeset -U repositories
+ repositories=(${(u)${${(f)"$(pacman -Sl)"}%% *}})
_wanted repo_packages expl "repository/package" compadd -S "/"
$repositories
fi
}
@@ -348,9 +347,7 @@ _pacman_all_packages() {
# provides completions for repository names
_pacman_completions_repositories() {
local -a cmd repositories
-
repositories=(${(o)${${${(M)${(f)"$(<@sysconfdir@/pacman.conf)"}:#\[*}/\[/}/\]/}:#options})
- # Uniq the array
- typeset -U repositories
+ repositories=(${(u)${${(f)"$(pacman -Sl)"}%% *}})
compadd "$@" -a repositories
}
--
2.11.0