summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSven Wischnowsky <wischnow@users.sourceforge.net>2001-04-02 11:28:48 +0000
committerSven Wischnowsky <wischnow@users.sourceforge.net>2001-04-02 11:28:48 +0000
commit39ee4570ab92ca460c3e4f027669d856a3f922cd (patch)
tree1319dbc9e9f4b84599edf5f9d0fc468519bab24c
parent3ab76d9119e112b508a7f826a2e7840300864f68 (diff)
downloadzsh-39ee4570ab92ca460c3e4f027669d856a3f922cd.tar.gz
zsh-39ee4570ab92ca460c3e4f027669d856a3f922cd.zip
moved from Completion/Builtins/_hash
-rw-r--r--Completion/Zsh/Command/_hash38
1 files changed, 38 insertions, 0 deletions
diff --git a/Completion/Zsh/Command/_hash b/Completion/Zsh/Command/_hash
new file mode 100644
index 000000000..4b2a8a6ca
--- /dev/null
+++ b/Completion/Zsh/Command/_hash
@@ -0,0 +1,38 @@
+#compdef hash rehash
+
+local state line expl common_args curcontext="$curcontext"
+typeset -A opt_args
+
+common_args=( \
+ '-d[use named directory hash table]' \
+ '(-r -m -v)-f[rebuild hash table]' )
+
+case ${service} in
+ hash)
+ _arguments -C -s -S \
+ '(-f -m -v)-r[empty hash table]' \
+ '(-f -r)-m[treat arguments as patterns]' \
+ '(-f -r -m)-v[list entires as they are added]' \
+ '(-f -r -v)-L[list in the form of calls to hash]' \
+ "${common_args[@]}" \
+ '(-d -f -r -m -v -L)*:hash:->hashval' && return 0
+ ;;
+ rehash)
+ _arguments -C -s ${common_args[@]} && return 0
+ ;;
+esac
+
+if [[ $state = hashval ]]; then
+ if (( $+opt_args[-d] )); then
+ if compset -P 1 '*='; then
+ _wanted -C value files expl directories _path_files -/
+ else
+ _wanted -C name named-directories expl 'named directory' \
+ compadd -q -S '=' -k nameddirs
+ fi
+ elif compset -P 1 '*='; then
+ _wanted -C value values expl 'executable file' _files -g '*(-*)'
+ else
+ _wanted -C name commands expl command compadd -q -S '=' -k commands
+ fi
+fi