about summary refs log tree commit diff
path: root/Completion/Core/_parameters
diff options
context:
space:
mode:
authorTanaka Akira <akr@users.sourceforge.net>1999-09-13 10:45:28 +0000
committerTanaka Akira <akr@users.sourceforge.net>1999-09-13 10:45:28 +0000
commita4ed24438b36698761634591bb2eb397260ca2c3 (patch)
tree785c3104e80ad80b01c670e76646d90c1ca6c5f1 /Completion/Core/_parameters
parent7eb928e2663197d52898b55cd2ccbe10c3222236 (diff)
downloadzsh-a4ed24438b36698761634591bb2eb397260ca2c3.tar.gz
zsh-a4ed24438b36698761634591bb2eb397260ca2c3.tar.xz
zsh-a4ed24438b36698761634591bb2eb397260ca2c3.zip
zsh-workers/7798
Diffstat (limited to 'Completion/Core/_parameters')
-rw-r--r--Completion/Core/_parameters144
1 files changed, 81 insertions, 63 deletions
diff --git a/Completion/Core/_parameters b/Completion/Core/_parameters
index 0fd6585a2..34a8c3e9b 100644
--- a/Completion/Core/_parameters
+++ b/Completion/Core/_parameters
@@ -2,76 +2,94 @@
 
 # This should be used to complete parameter names if you need some of the
 # extra options of compadd. It completes only non-local parameters.
+
+setopt localoptions extendedglob
+
+local pars expl
+
+_description expl parameter
+
+if zmodload -e parameter; then
+  pars=( ${(k)parameters[(R)^*local*]} )
+else
+  pars=( ${${${(f)"$(typeset +)"}:#*local *}##* } )
+fi
+
+compadd "$expl[@]" "$@" - $pars
+
+
+
+# The `-e' option does everything for parameter expansions of us. If
+# we wouldn't have it, we would use something like:
+
 # If the first argument is `-s' or `-b' auto_param_slash will be tested
 # and slashes will be added to parameters containing a directory. `-s' is
 # for parameter expansions without braces and `-b' is for expansions with
 # braces. A `-' as the first argument is ignored and in all cases all
 # other arguments will be given to `compadd'.
 
+# setopt localoptions extendedglob
 
-setopt localoptions extendedglob
+# local pars expl slash suf
 
-local pars expl slash suf
-
-if [[ "$1" = -s ]]; then
-  slash=normal
-  suf="$2"
-  shift 2
-elif [[ "$1" = -b ]]; then
-  slash=brace
-  suf="$2"
-  shift 2
-elif [[ "$1" = - ]]; then
-  shift
-fi
+# if [[ "$1" = -s ]]; then
+#   slash=normal
+#   suf="$2"
+#   shift 2
+# elif [[ "$1" = -b ]]; then
+#   slash=brace
+#   suf="$2"
+#   shift 2
+# elif [[ "$1" = - ]]; then
+#   shift
+# fi
 
-_description expl parameter
+# _description expl parameter
 
-if [[ -n "$slash" && -o autoparamslash ]]; then
-  local i dirs nodirs ret=1
-
-  dirs=()
-  nodirs=()
-
-  if zmodload -e parameter; then
-    setopt localoptions extendedglob
-    nodirs=( ${(k)parameters[(R)undefined]} )
-    pars=( ${(k)parameters[(R)^*(local|undefined)*]} )
-  else
-    nodirs=( ${${(M)${(f)"$(typeset +)"}:#undefined *}##* } )
-    pars=( ${${${(f)"$(typeset +)"}:#*(local|undefined) *}##* } )
-  fi
-
-  for i in $pars; do
-    if [[ -d "${(P)i}" ]]; then
-      dirs=( $dirs $i )
-    else
-      nodirs=( $nodirs $i )
-    fi
-  done
-
-  if [[ "$slash" = normal ]]; then
-    compadd -S "/${suf%% #}" -r ' [/:' "$expl[@]" "$@" - $dirs && ret=0
-    compadd -S "$suf" -r ' [:' "$expl[@]" "$@" - $nodirs && ret=0
-  elif [[ "$slash" = brace ]]; then
-    compadd -S "}/${suf%% #}" -r '-:?#%+=[/}' "$expl[@]" "$@" - $dirs && ret=0
-    compadd -S "}$suf" -r '-:?#%+=[/}' "$expl[@]" "$@" - $nodirs && ret=0
-  fi
-
-  return ret
-else
-  if zmodload -e parameter; then
-    setopt localoptions extendedglob
-    pars=( ${(k)parameters[(R)^*local*]} )
-  else
-    pars=( ${${${(f)"$(typeset +)"}:#*local *}##* } )
-  fi
-
-  if [[ "$slash" = normal ]]; then
-    compadd -S "$suf" -r ' [:' "$expl[@]" "$@" - $pars
-  elif [[ "$slash" = brace ]]; then
-    compadd -S "}$suf" -r '-:?#%+=[/}' "$expl[@]" "$@" - $pars
-  else
-    compadd "$expl[@]" "$@" - $pars
-  fi
-fi
+# if [[ -n "$slash" && -o autoparamslash ]]; then
+#   local i dirs nodirs ret=1
+
+#   dirs=()
+#   nodirs=()
+
+#   if zmodload -e parameter; then
+#     setopt localoptions extendedglob
+#     nodirs=( ${(k)parameters[(R)undefined]} )
+#     pars=( ${(k)parameters[(R)^*(local|undefined)*]} )
+#   else
+#     nodirs=( ${${(M)${(f)"$(typeset +)"}:#undefined *}##* } )
+#     pars=( ${${${(f)"$(typeset +)"}:#*(local|undefined) *}##* } )
+#   fi
+
+#   for i in $pars; do
+#     if [[ -d "${(P)i}" ]]; then
+#       dirs=( $dirs $i )
+#     else
+#       nodirs=( $nodirs $i )
+#     fi
+#   done
+
+#   if [[ "$slash" = normal ]]; then
+#     compadd -S "/${suf%% #}" -r ' [/:' "$expl[@]" "$@" - $dirs && ret=0
+#     compadd -S "$suf" -r ' [:' "$expl[@]" "$@" - $nodirs && ret=0
+#   elif [[ "$slash" = brace ]]; then
+#     compadd -S "}/${suf%% #}" -r '-:?#%+=[/}' "$expl[@]" "$@" - $dirs && ret=0
+#     compadd -S "}$suf" -r '-:?#%+=[/}' "$expl[@]" "$@" - $nodirs && ret=0
+#   fi
+
+#   return ret
+# else
+#   if zmodload -e parameter; then
+#     pars=( ${(k)parameters[(R)^*local*]} )
+#   else
+#     pars=( ${${${(f)"$(typeset +)"}:#*local *}##* } )
+#   fi
+
+#   if [[ "$slash" = normal ]]; then
+#     compadd -S "$suf" -r ' [:' "$expl[@]" "$@" - $pars
+#   elif [[ "$slash" = brace ]]; then
+#     compadd -S "}$suf" -r '-:?#%+=[/}' "$expl[@]" "$@" - $pars
+#   else
+#     compadd "$expl[@]" "$@" - $pars
+#   fi
+# fi