[pacman-dev] [PATCH 2/2] zsh_completion: Handle --ignore/--ignoregroup correctly

Mohammad Alsaleh ce.mohammad.alsaleh at gmail.com
Thu Oct 22 22:38:50 UTC 2015


 Completion now works as expected with a comma-separated sequence.

Signed-off-by: Mohammad Alsaleh <CE.Mohammad.AlSaleh at gmail.com>
---
 contrib/zsh_completion.in | 21 +++++++++++++++++----
 1 file changed, 17 insertions(+), 4 deletions(-)

diff --git a/contrib/zsh_completion.in b/contrib/zsh_completion.in
index 69485f5..0db26b2 100644
--- a/contrib/zsh_completion.in
+++ b/contrib/zsh_completion.in
@@ -252,23 +252,36 @@ _pacman_completions_all_groups() {
 	_pacman_get_command
 	groups=( $(_call_program groups $cmd[@] -Sg) )
 	typeset -U groups
-	compadd "$@" -a groups
+
+	if [[ ${words[CURRENT-1]} == '--ignoregroup' ]]; then
+		_sequence compadd -S ',' "$@" -a groups
+	else
+		compadd "$@" -a groups
+	fi
 }
 
 # provides completions for packages available from repositories
 # these can be specified as either 'package' or 'repository/package'
 _pacman_completions_all_packages() {
-	local -a cmd packages repositories packages_long
+	local -a seq sep cmd packages repositories packages_long
 	_pacman_get_command
 
+	if [[ ${words[CURRENT-1]} == '--ignore' ]]; then
+		seq='_sequence'
+		sep=(-S ',')
+	else
+		seq=
+		sep=()
+	fi
+
 	if compset -P1 '*/*'; then
 		packages=( $(_call_program packages $cmd[@] -Sql ${words[CURRENT]%/*}) )
 		typeset -U packages
-		_wanted repo_packages expl "repository/package" compadd ${(@)packages}
+		${seq} _wanted repo_packages expl "repository/package" compadd ${sep[@]} ${(@)packages}
 	else
 		packages=( $(_call_program packages $cmd[@] -Sql) )
 		typeset -U packages
-		_wanted packages expl "packages" compadd - "${(@)packages}"
+		${seq} _wanted packages expl "packages" compadd ${sep[@]} - "${(@)packages}"
 
 		repositories=(${(o)${${${(M)${(f)"$(<@sysconfdir@/pacman.conf)"}:#\[*}/\[/}/\]/}:#options})
 		typeset -U repositories
-- 
2.6.1


More information about the pacman-dev mailing list