include the flags that could be doubled up like -Sii -Syy -Suu -Qii etc also include the long opts of all the commands Signed-off-by: Daniel Wallace <danielwallace@gtmanfred.com> --- contrib/zsh_completion.in | 95 +++++++++++++++++++++++------------------------ 1 file changed, 47 insertions(+), 48 deletions(-) diff --git a/contrib/zsh_completion.in b/contrib/zsh_completion.in index 16aee7b..aadf2c5 100644 --- a/contrib/zsh_completion.in +++ b/contrib/zsh_completion.in @@ -6,23 +6,23 @@ typeset -A opt_args # options for passing to _arguments: main pacman commands _pacman_opts_commands=( - '-D[Modify database]' - '-Q[Query the package database]' - '-R[Remove a package from the system]' - '-S[Synchronize packages]' - '-T[Check if dependencies are installed]' - '-U[Upgrade a package]' - '-V[Display version and exit]' - '-h[Display usage]' + {-D,--database}'[Modify database]' + {-Q,--query}'[Query the package database]' + {-R,--remove}'[Remove a package from the system]' + {-S,--sync}'[Synchronize packages]' + {-T,--deptest}'[Check if dependencies are installed]' + {-U,--upgrade}'[Upgrade a package]' + {-V,--version}'[Display version and exit]' + {-h,--help}'[Display usage]' ) # options for passing to _arguments: options common to all commands _pacman_opts_common=( - '-b[Alternate database location]:database_location:_files -/' + {-b,--dbpath}'[Alternate database location]:database_location:_files -/' '--color[colorize the output]:color options:(always never auto)' - '-h[Display syntax for the given operation]' - '-r[Set alternate installation root]:installation root:_files -/' - '-v[Be more verbose]' + {-h,--help}'[Display syntax for the given operation]' + {-r,--root}'[Set alternate installation root]:installation root:_files -/' + {-v,--verbose}'[Be more verbose]' '--cachedir[Alternate package cache location]:cache_location:_files -/' '--config[An alternate configuration file]:config file:_files' '--logfile[An alternate log file]:config file:_files' @@ -34,43 +34,43 @@ _pacman_opts_common=( # options for passing to _arguments: options for --upgrade commands _pacman_opts_pkgfile=( - '-d[Skip dependency checks]' + '*-d[Skip dependency checks]' + '*--nodeps[Skip dependency checks]' '--dbonly[Only remove database entry, do not remove files]' '--force[Overwrite conflicting files]' '--needed[Do not reinstall up to date packages]' - '--recursive[Reinstall all dependencies of target packages]' '*:package file:_files -g "*.pkg.tar*(.)"' ) # options for passing to _arguments: subactions for --query command _pacman_opts_query_actions=( '-Q' - '-g[View all members of a package group]:*:package groups:->query_group' - '-o[Query the package that owns a file]:file:_files' - '-p[Package file to query]:*:package file:->query_file' - '-s[Search package names and descriptions]:*:search text:->query_search' + {-g,--groups}'[View all members of a package group]:*:package groups:->query_group' + {-o,--owns}'[Query the package that owns a file]:file:_files' + {-p,--file}'[Package file to query]:*:package file:->query_file' + {-s,--search}'[Search package names and descriptions]:*:search text:->query_search' ) # options for passing to _arguments: options for --query and subcommands _pacman_opts_query_modifiers=( - '-c[List package changelog]' - '-d[List packages installed as dependencies]' - '-e[List packages explicitly installed]' - '*-i[View package information]' - '*-k[Check package files]' - '-l[List package contents]' - '-m[List installed packages not found in sync db(s)]' - '-n[List installed packages found in sync db(s)]' - '-t[List packages not required by any package]' - '-u[List packages that can be upgraded]' + {-c,--changelog}'[List package changelog]' + {-d,--deps}'[List packages installed as dependencies]' + {-e,--explicit}'[List packages explicitly installed]' + {\*-i,\*--info}'[View package information]' + {\*-k,\*--check}'[Check package files]' + {-l,--list}'[List package contents]' + {-m,--foreign}'[List installed packages not found in sync db(s)]' + {-n,--native}'[List installed packages found in sync db(s)]' + {-t,--unrequired}'[List packages not required by any package]' + {-u,--upgrades}'[List packages that can be upgraded]' ) # options for passing to _arguments: options for --remove command _pacman_opts_remove=( - '-c[Remove all dependent packages]' - '*-d[Skip dependency checks]' - '-n[Remove protected configuration files]' - '*-s[Remove dependencies not required by other packages]' + {-c,--cascade}'[Remove all dependent packages]' + {*-d,*--nodeps}'[Skip dependency checks]' + {-n,--nosave}'[Remove protected configuration files]' + {\*-s,\*--recursive}'[Remove dependencies not required by other packages]' '--dbonly[Only remove database entry, do not remove files]' '*:installed package:_pacman_completions_installed_packages' ) @@ -84,10 +84,9 @@ _pacman_opts_database=( # options for passing to _arguments: options for --sync command _pacman_opts_sync_actions=( '-S' - '-c[Remove old packages from cache]:*:clean:->sync_clean' - '-cc[Remove all packages from cache]:*:clean:->sync_clean' - '-g[View all members of a package group]:*:package groups:->sync_group' - '-s[Search package names and descriptions]:*:search text:->sync_search' + {\*-c,\*--clean}'[Remove old packages from cache]:\*:clean:->sync_clean' + {-g,--groups}'[View all members of a package group]:*:package groups:->sync_group' + {-s,--search}'[Search package names and descriptions]:*:search text:->sync_search' '--dbonly[Only remove database entry, do not remove files]' '--needed[Do not reinstall up to date packages]' '--recursive[Reinstall all dependencies of target packages]' @@ -95,17 +94,15 @@ _pacman_opts_sync_actions=( # options for passing to _arguments: options for --sync command _pacman_opts_sync_modifiers=( - '*-d[Skip dependency checks]' - '*-i[View package information]' - '-l[List all packages in a repository]' - '-p[Print download URIs for each package to be installed]' - '*-u[Upgrade all out-of-date packages]' - '-w[Download packages only]' - '*-y[Download fresh package databases]' - '*--ignore[Ignore a package upgrade]:package: - _pacman_completions_all_packages' - '*--ignoregroup[Ignore a group upgrade]:package group: - _pacman_completions_all_groups' + {\*-d,\*--nodeps}'[Skip dependency checks]' + {\*-i,\*--info}'[View package information]' + {-l,--list}'[List all packages in a repository]' + {-p,--print}'[Print download URIs for each package to be installed]' + {\*-u,\*--sysupgrade}'[Upgrade all out-of-date packages]' + {-w,--downloadonly}'[Download packages only]' + {\*-y,\*--refresh}'[Download fresh package databases]' + '*--ignore[Ignore a package upgrade]:package: _pacman_completions_all_packages' + '*--ignoregroup[Ignore a group upgrade]:package group:_pacman_completions_all_groups' '--asdeps[Install packages as non-explicitly installed]' '--asexplicit[Install packages as explicitly installed]' '--force[Overwrite conflicting files]' @@ -354,7 +351,9 @@ _pacman_zsh_comp() { _pacman_action_database ;; S*c*) # no completion - return 0 + _arguments -s \ + '-c' \ + "$_pacman_opts_common[@]" ;; S*l*) # repos _arguments -s : \ -- 1.8.1.5