Przeglądaj źródła

Fix zsh completions

Signed-off-by: Jguer <me@jguer.space>
Jguer 7 lat temu
rodzic
commit
686509efe3
1 zmienionych plików z 299 dodań i 322 usunięć
  1. 299 322
      completions/zsh

+ 299 - 322
completions/zsh

@@ -184,403 +184,380 @@ _pacman_opts_sync_modifiers=(
 
 # handles --help subcommand
 _pacman_action_help() {
-_arguments -s : "$_pacman_opts_commands[@]"
+  _arguments -s : \
+    "$_pacman_opts_commands[@]"
 }
 
 # handles cases where no subcommand has yet been given
 _pacman_action_none() {
-_arguments -s : "$_pacman_opts_commands[@]"
+  _arguments -s : \
+    "$_pacman_opts_commands[@]"
 }
 
 # handles --query subcommand
 _pacman_action_query() {
-local context state line
-typeset -A opt_args
-
-case $state in
-query_file)
-_arguments -s : "$_pacman_opts_common[@]" "$_pacman_opts_query_modifiers[@]" '*:package file:_files -g "*.pkg.tar*~*.sig(.,@)"'
-
-
-
-query_group)
-_arguments -s : "$_pacman_opts_common[@]" "$_pacman_opts_query_modifiers[@]" '*:groups:_pacman_completions_installed_groups'
-
-
-
-query_owner)
-_arguments -s : "$_pacman_opts_common[@]" "$_pacman_opts_query_modifiers[@]" '*:file:_files'
-
-
-
-query_search)
-_arguments -s : "$_pacman_opts_common[@]" "$_pacman_opts_query_modifiers[@]" '*:search text: '
-
-
-
-*)
-_arguments -s : "$_pacman_opts_common[@]" "$_pacman_opts_query_actions[@]" "$_pacman_opts_query_modifiers[@]" '*:package:_pacman_completions_installed_packages'
-
-
-
-esac
+  local context state line
+  typeset -A opt_args
+
+  case $state in
+    query_file)
+      _arguments -s : \
+        "$_pacman_opts_common[@]" \
+        "$_pacman_opts_query_modifiers[@]" \
+        '*:package file:_files -g "*.pkg.tar*~*.sig(.,@)"'
+      ;;
+    query_group)
+      _arguments -s : \
+        "$_pacman_opts_common[@]" \
+        "$_pacman_opts_query_modifiers[@]" \
+        '*:groups:_pacman_completions_installed_groups'
+      ;;
+    query_owner)
+      _arguments -s : \
+        "$_pacman_opts_common[@]" \
+        "$_pacman_opts_query_modifiers[@]" \
+        '*:file:_files'
+      ;;
+    query_search)
+      _arguments -s : \
+        "$_pacman_opts_common[@]" \
+        "$_pacman_opts_query_modifiers[@]" \
+        '*:search text: '
+      ;;
+    *)
+      _arguments -s : \
+        "$_pacman_opts_common[@]" \
+        "$_pacman_opts_query_actions[@]" \
+        "$_pacman_opts_query_modifiers[@]" \
+        '*:package:_pacman_completions_installed_packages'
+      ;;
+  esac
 }
 
 # handles --remove subcommand
 _pacman_action_remove() {
-_arguments -s : '(--remove -R)'{-R,--remove} "$_pacman_opts_common[@]" "$_pacman_opts_remove[@]"
+  _arguments -s : \
+    '(--remove -R)'{-R,--remove} \
+    "$_pacman_opts_common[@]" \
+    "$_pacman_opts_remove[@]"
 }
 
 # handles --database subcommand
 _pacman_action_database() {
-_arguments -s : '(--database -D)'{-D,--database} "$_pacman_opts_common[@]" "$_pacman_opts_database[@]"
+  _arguments -s : \
+    '(--database -D)'{-D,--database} \
+    "$_pacman_opts_common[@]" \
+    "$_pacman_opts_database[@]"
 }
 
 # handles --files subcommand
 _pacman_action_files() {
-_arguments -s : '(--files -F)'{-F,--files} "$_pacman_opts_common[@]" "$_pacman_opts_files[@]"
+  _arguments -s : \
+    '(--files -F)'{-F,--files} \
+    "$_pacman_opts_common[@]" \
+    "$_pacman_opts_files[@]"
 }
 
 _pacman_action_deptest () {
-_arguments -s : '(--deptest)-T' "$_pacman_opts_common[@]" ":packages:_pacman_all_packages"
+  _arguments -s : \
+    '(--deptest)-T' \
+    "$_pacman_opts_common[@]" \
+    ":packages:_pacman_all_packages"
 }
 
 
 # handles --sync subcommand
 _pacman_action_sync() {
-local context state line
-typeset -A opt_args
-if (( $+words[(r)--clean] ))
-    then
+  local context state line
+  typeset -A opt_args
+  if (( $+words[(r)--clean] )); then
     state=sync_clean
-    elif (( $+words[(r)--groups] ))
-    then
+  elif (( $+words[(r)--groups] )); then
     state=sync_group
-    elif (( $+words[(r)--search] ))
-    then
+  elif (( $+words[(r)--search] )); then
     state=sync_search
-    fi
-
-case $state in
-sync_clean)
-_arguments -s : {\*-c,\*--clean}'[Remove old packages from cache]' "$_pacman_opts_common[@]" "$_pacman_opts_sync_modifiers[@]"
-
-
-
-sync_group)
-_arguments -s : "$_pacman_opts_common[@]" "$_pacman_opts_sync_modifiers[@]" '(-g --group)'{-g,--groups} '*:package group:_pacman_completions_all_groups'
-
-
-
-sync_search)
-_arguments -s : "$_pacman_opts_common[@]" "$_pacman_opts_sync_modifiers[@]" '*:search text: '
-
-
-
-*)
-_arguments -s : "$_pacman_opts_common[@]" "$_pacman_opts_sync_actions[@]" "$_pacman_opts_sync_modifiers[@]" '*:package:_pacman_completions_all_packages'
-
-
-
-esac
+  fi
+
+  case $state in
+    sync_clean)
+      _arguments -s : \
+        {\*-c,\*--clean}'[Remove old packages from cache]' \
+        "$_pacman_opts_common[@]" \
+        "$_pacman_opts_sync_modifiers[@]"
+        ;;
+    sync_group)
+      _arguments -s : \
+        "$_pacman_opts_common[@]" \
+        "$_pacman_opts_sync_modifiers[@]" \
+        '(-g --group)'{-g,--groups} \
+        '*:package group:_pacman_completions_all_groups'
+      ;;
+    sync_search)
+      _arguments -s : \
+        "$_pacman_opts_common[@]" \
+        "$_pacman_opts_sync_modifiers[@]" \
+        '*:search text: '
+      ;;
+    *)
+      _arguments -s : \
+        "$_pacman_opts_common[@]" \
+        "$_pacman_opts_sync_actions[@]" \
+        "$_pacman_opts_sync_modifiers[@]" \
+        '*:package:_pacman_completions_all_packages'
+      ;;
+  esac
 }
 
 # handles --upgrade subcommand
 _pacman_action_upgrade() {
-_arguments -s : '(-U --upgrade)'{-U,--upgrade} "$_pacman_opts_common[@]" "$_pacman_opts_pkgfile[@]"
+  _arguments -s : \
+    '(-U --upgrade)'{-U,--upgrade} \
+    "$_pacman_opts_common[@]" \
+    "$_pacman_opts_pkgfile[@]"
 }
 
 # handles --version subcommand
 _pacman_action_version() {
-# no further arguments
-return 0
+  # no further arguments
+  return 0
 }
 
 # provides completions for package groups
 _pacman_completions_all_groups() {
-local -a cmd groups
-_pacman_get_command
-groups=( $(_call_program groups $cmd[@] -Sg) )
-typeset -U groups
+  local -a cmd groups
+  _pacman_get_command
+  groups=( $(_call_program groups $cmd[@] -Sg) )
+  typeset -U groups
 
-if [[ ${words[CURRENT-1]} == '--ignoregroup' ]]
-    then
+  if [[ ${words[CURRENT-1]} == '--ignoregroup' ]]; then
     _sequence compadd -S ',' "$@" -a groups
-else
+  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 seq sep cmd packages repositories packages_long
-
-    if [[ ${words[CURRENT-1]} == '--ignore' ]]
-        then
-        seq='_sequence'
-        sep=(-S ',')
-    else
-        seq=
-        sep=()
-        fi
-
-        if compset -P1 '*/*'
-            then
-            packages=( $(_call_program packages yay -Pc ${words[CURRENT]%/*}) )
-            typeset -U packages
-            ${seq} _wanted repo_packages expl "repository/package" compadd ${sep[@]} ${(@)packages}
-        else
-            packages=( $(_call_program packages yay -Pc ) )
-            typeset -U packages
-            ${seq} _wanted packages expl "packages" compadd ${sep[@]} - "${(@)packages}"
-
-            repositories=(${(o)${${${(M)${(f)"$(</etc/pacman.conf)"}:#\[*}/\[/}/\]/}:#options})
-            typeset -U repositories
-            _wanted repo_packages expl "repository/package" compadd -S "/" $repositories
-            fi
-            }
-
-            # provides completions for package groups
-            _pacman_completions_installed_groups() {
-            local -a cmd groups
-            _pacman_get_command
-            groups=(${(o)${(f)"$(_call_program groups $cmd[@] -Qg)"}% *})
-            typeset -U groups
-            compadd "$@" -a groups
-            }
-
-            # provides completions for installed packages
-            _pacman_completions_installed_packages() {
-            local -a cmd packages packages_long
-            packages_long=(/var/lib/pacman/local/*(/))
-            packages=( ${${packages_long#/var/lib/pacman/local/}%-*-*} )
-            compadd "$@" -a packages
-            }
-
-            _pacman_all_packages() {
-            _alternative : 'localpkgs:local packages:_pacman_completions_installed_packages' 'repopkgs:repository packages:_pacman_completions_all_packages'
-            }
-
-            # provides completions for repository names
-            _pacman_completions_repositories() {
-            local -a cmd repositories
-            repositories=(${(o)${${${(M)${(f)"$(</etc/pacman.conf)"}:#\[*}/\[/}/\]/}:#options})
-            # Uniq the array
-            typeset -U repositories
-            compadd "$@" -a repositories
-            }
-
-            # builds command for invoking pacman in a _call_program command - extracts
-            # relevant options already specified (config file, etc)
-            # $cmd must be declared by calling function
-            _pacman_get_command() {
-            # this is mostly nicked from _perforce
-            cmd=( "pacman" "2>/dev/null")
-            integer i
-            for (( i = 2; i < CURRENT - 1; i++ ))
-; do
-if [[ ${words[i]} = "--config" |
-| ${words[i]} = "--root" ]]
-then
-cmd+=( ${words[i,i+1]} )
-fi
-done
+  fi
 }
 
-# main dispatcher
-_pacman_zsh_comp() {
-local -a args cmds
-
-local tmp
-args=( ${${${(M)words:#-*}#-}:#-*} )
-for tmp in $words
-    do
-    cmds+=("${${_pacman_opts_commands[(r)*$tmp\[*]%%\[*}#*\)}")
-    done
-case $args in #$words[2] in
-h*)
-if (( ${(c)#args} <= 1 && ${(w)#cmds} <= 1 ))
-    then
-    _pacman_action_help
-else
-    _message "no more arguments"
-    fi
+# provides completions for packages available from repositories
+# these can be specified as either 'package' or 'repository/package'
+_pacman_completions_all_packages() {
+  local -a seq sep cmd packages repositories packages_long
+
+  if [[ ${words[CURRENT-1]} == '--ignore' ]]; then
+    seq='_sequence'
+    sep=(-S ',')
+  else
+    seq=
+    sep=()
+  fi
+
+  if compset -P1 '*/*'; then
+    packages=( $(_call_program packages yay -Pc ${words[CURRENT]%/*}) )
+    typeset -U packages
+    ${seq} _wanted repo_packages expl "repository/package" compadd ${sep[@]} ${(@)packages}
+  else
+    packages=( $(_call_program packages yay -Pc ) )
+    typeset -U packages
+    ${seq} _wanted packages expl "packages" compadd ${sep[@]} - "${(@)packages}"
+
+    repositories=(${(o)${${${(M)${(f)"$(</etc/pacman.conf)"}:#\[*}/\[/}/\]/}:#options})
+    typeset -U repositories
+    _wanted repo_packages expl "repository/package" compadd -S "/" $repositories
+  fi
+}
 
+# provides completions for package groups
+_pacman_completions_installed_groups() {
+  local -a cmd groups
+  _pacman_get_command
+  groups=(${(o)${(f)"$(_call_program groups $cmd[@] -Qg)"}% *})
+  typeset -U groups
+  compadd "$@" -a groups
+}
 
+# provides completions for installed packages
+_pacman_completions_installed_packages() {
+  local -a cmd packages packages_long
+  packages=( ${${packages_long#/var/lib/pacman/local/}%-*-*} )
+  packages_long=(/var/lib/pacman/local/*(/))
+  compadd "$@" -a packages
+}
 
-    *h*)
-    _message "no more arguments"
+_pacman_all_packages() {
+  _alternative : \
+    'localpkgs:local packages:_pacman_completions_installed_packages' \
+    'repopkgs:repository packages:_pacman_completions_all_packages'
+}
 
+# provides completions for repository names
+_pacman_completions_repositories() {
+  local -a cmd repositories
+  repositories=(${(o)${${${(M)${(f)"$(</etc/pacman.conf)"}:#\[*}/\[/}/\]/}:#options})
+  # Uniq the array
+  typeset -U repositories
+  compadd "$@" -a repositories
+}
 
+# builds command for invoking pacman in a _call_program command - extracts
+# relevant options already specified (config file, etc)
+# $cmd must be declared by calling function
+_pacman_get_command() {
+  # this is mostly nicked from _perforce
+  cmd=( "pacman" "2>/dev/null")
+  integer i
+  for (( i = 2; i < CURRENT - 1; i++ )); do
+    if [[ ${words[i]} = "--config" || ${words[i]} = "--root" ]]; then
+      cmd+=( ${words[i,i+1]} )
+    fi
+  done
+}
 
+# main dispatcher
+_pacman_zsh_comp() {
+  local -a args cmds;
+  local tmp
+  args=( ${${${(M)words:#-*}#-}:#-*} )
+  for tmp in $words; do
+    cmds+=("${${_pacman_opts_commands[(r)*$tmp\[*]%%\[*}#*\)}")
+  done
+  case $args in #$words[2] in
+    h*)
+      if (( ${(c)#args} <= 1 && ${(w)#cmds} <= 1 )); then
+        _pacman_action_help
+      else
+        _message "no more arguments"
+      fi
+      ;;
+    *h*)
+      _message "no more arguments"
+      ;;
     D*)
-    _pacman_action_database
-
-
-
+      _pacman_action_database
+      ;;
     F*)
-    _pacman_action_files
-
-
-
+      _pacman_action_files
+      ;;
     Q*g*) # ipkg groups
-    _arguments -s : "$_pacman_opts_common[@]" "$_pacman_opts_query_modifiers[@]" '*:groups:_pacman_completions_installed_groups'
-
-
-
+      _arguments -s : \
+        "$_pacman_opts_common[@]" \
+        "$_pacman_opts_query_modifiers[@]" \
+        '*:groups:_pacman_completions_installed_groups'
+      ;;
     Q*o*) # file
-    _arguments -s : "$_pacman_opts_common[@]" "$_pacman_opts_query_modifiers[@]" '*:package file:_files'
-
-
-
+      _arguments -s : \
+        "$_pacman_opts_common[@]" \
+        "$_pacman_opts_query_modifiers[@]" \
+        '*:package file:_files'
+      ;;
     Q*p*) # file *.pkg.tar*
-    _arguments -s : "$_pacman_opts_common[@]" "$_pacman_opts_query_modifiers[@]" '*:package file:_files -g "*.pkg.tar*~*.sig(.,@)"'
-
-
-
+      _arguments -s : \
+        "$_pacman_opts_common[@]" \
+        "$_pacman_opts_query_modifiers[@]" \
+        '*:package file:_files -g "*.pkg.tar*~*.sig(.,@)"'
+      ;;
     T*)
-    _pacman_action_deptest
-
-
-
+      _pacman_action_deptest
+      ;;
     Q*)
-    _pacman_action_query
-
-
-
+      _pacman_action_query
+      ;;
     P*)
-    _arguments -s : "$_pacman_opts_print_modifiers[@]"
-
-
-
+       _arguments -s : \
+        "$_pacman_opts_print_modifiers[@]"
+      ;;
     R*)
-    _pacman_action_remove
-
-
-
+      _pacman_action_remove
+      ;;
     S*c*) # no completion
-    _arguments -s : '(-c --clean)'{\*-c,\*--clean}'[Remove all files from the cache]' "$_pacman_opts_common[@]"
-
-
-
+      _arguments -s : \
+        '(-c --clean)'{\*-c,\*--clean}'[Remove all files from the cache]' \
+        "$_pacman_opts_common[@]"
+      ;;
     S*l*) # repos
-    _arguments -s : "$_pacman_opts_common[@]" "$_pacman_opts_sync_modifiers[@]" '*:package repo:_pacman_completions_repositories'
-
-
+      _arguments -s : \
+        "$_pacman_opts_common[@]" \
+        "$_pacman_opts_sync_modifiers[@]" \
+        '*:package repo:_pacman_completions_repositories' \
+      ;;
     S*g*) # pkg groups
-    _arguments -s : "$_pacman_opts_common[@]" "$_pacman_opts_sync_modifiers[@]" '*:package group:_pacman_completions_all_groups'
-
-
-
+      _arguments -s : \
+        "$_pacman_opts_common[@]" \
+        "$_pacman_opts_sync_modifiers[@]" \
+        '*:package group:_pacman_completions_all_groups'
+      ;;
     S*s*)
-    _arguments -s : "$_pacman_opts_common[@]" "$_pacman_opts_sync_modifiers[@]" '*:search text: '
-
-
-
+      _arguments -s : \
+        "$_pacman_opts_common[@]" \
+        "$_pacman_opts_sync_modifiers[@]" \
+        '*:search text: '
+        ;;
     S*)
-    _pacman_action_sync
-
-
-
+      _pacman_action_sync
+      ;;
     T*)
-    _arguments -s : '-T' "$_pacman_opts_common[@]" ":packages:_pacman_all_packages"
-
-
-
+       _arguments -s : \
+        '-T' \
+        "$_pacman_opts_common[@]" \
+        ":packages:_pacman_all_packages"
+      ;;
     U*)
-    _pacman_action_upgrade
-
-
-
+      _pacman_action_upgrade
+      ;;
     V*)
-    _pacman_action_version
-
-
-
+      _pacman_action_version
+      ;;
     Y*)
-    _arguments -s : "$_pacman_opts_yay_modifiers[@]"
-
-
-
+      _arguments -s : \
+        "$_pacman_opts_yay_modifiers[@]"
+      ;;
     *)
 
-case ${(M)words:#--*} in
-*--help*)
-if (( ${(w)#cmds} == 1 ))
-    then
-    _pacman_action_help
-else
-    return 0
-
-    fi
-
-
-
-    *--sync*)
-    _pacman_action_sync
-
-
-
-    *--query*)
-    _pacman_action_query
-
-
-
-    *--remove*)
-    _pacman_action_remove
-
-
-
-    *--deptest*)
-    _pacman_action_deptest
-
-
-
-    *--database*)
-    _pacman_action_database
-
-
-
-    *--files*)
-    _pacman_action_files
-
-
-
-    *--version*)
-    _pacman_action_version
-
-
-
-    *--upgrade*)
-    _pacman_action_upgrade
-
-
-
+      case ${(M)words:#--*} in
+        *--help*)
+          if (( ${(w)#cmds} == 1 )); then
+            _pacman_action_help
+          else
+            return 0;
+          fi
+          ;;
+        *--sync*)
+          _pacman_action_sync
+          ;;
+        *--query*)
+          _pacman_action_query
+          ;;
+        *--remove*)
+          _pacman_action_remove
+          ;;
+        *--deptest*)
+          _pacman_action_deptest
+          ;;
+        *--database*)
+          _pacman_action_database
+          ;;
+        *--files*)
+          _pacman_action_files
+          ;;
+        *--version*)
+          _pacman_action_version
+          ;;
+        *--upgrade*)
+          _pacman_action_upgrade
+          ;;
+        *)
+          _pacman_action_none
+          ;;
+      esac
+      ;;
+  esac
+}
+_pacman_comp() {
+  case "$service" in
+    yay)
+      _pacman_zsh_comp "$@"
+      ;;
     *)
-    _pacman_action_none
-
-
-
-    esac
-
-
-
-    esac
-    }
-    _pacman_comp() {
-case "$service" in
-yay)
-_pacman_zsh_comp "$@"
-
-
-
-*)
-_message "Error"
-
-
-
-esac
+      _message "Error"
+      ;;
+  esac
 }
 
 _pacman_comp "$@"