summaryrefslogtreecommitdiff
path: root/plugins/wd/_wd.sh
diff options
context:
space:
mode:
authorMarkus Færevaag <mf@bitblueprint.com>2013-11-26 00:46:13 +0100
committerMarkus Færevaag <mf@bitblueprint.com>2013-11-26 00:46:13 +0100
commitb4ffe5cf0a9e0a076fc1c52f6a46eefe05ad5627 (patch)
treeeb9100bc62238b24019aae30a8711c4cf979a799 /plugins/wd/_wd.sh
parent240b25daaaee81ccdb9e6e2016667a60f5241f83 (diff)
downloadzsh-b4ffe5cf0a9e0a076fc1c52f6a46eefe05ad5627.tar.gz
zsh-b4ffe5cf0a9e0a076fc1c52f6a46eefe05ad5627.tar.bz2
zsh-b4ffe5cf0a9e0a076fc1c52f6a46eefe05ad5627.zip
wd.plugin: Added checks, readme and completion
Diffstat (limited to 'plugins/wd/_wd.sh')
-rw-r--r--plugins/wd/_wd.sh48
1 files changed, 48 insertions, 0 deletions
diff --git a/plugins/wd/_wd.sh b/plugins/wd/_wd.sh
new file mode 100644
index 000000000..950564435
--- /dev/null
+++ b/plugins/wd/_wd.sh
@@ -0,0 +1,48 @@
+#compdef wd.sh
+
+zstyle ":completion:*:descriptions" format "%B%d%b"
+
+CONFIG=$HOME/.warprc
+
+local -a main_commands
+main_commands=(
+ add:'Adds the current working directory to your warp points'
+ #add'\!':'Overwrites existing warp point' # TODO: Fix
+ rm:'Removes the given warp point'
+ ls:'Outputs all stored warp points'
+ show:'Outputs warp points to current directory'
+)
+
+local -a points
+while read line
+do
+ points+=$(awk "{ gsub(/\/Users\/$USER|\/home\/$USER/,\"~\"); print }" <<< $line)
+done < $CONFIG
+
+_wd()
+{
+ # init variables
+ local curcontext="$curcontext" state line
+ typeset -A opt_args
+
+ # init state
+ _arguments \
+ '1: :->command' \
+ '2: :->argument'
+
+ case $state in
+ command)
+ compadd "$@" add rm ls show
+ _describe -t warp-points 'Warp points:' points && ret=0
+ ;;
+ argument)
+ case $words[2] in
+ rm|add!)
+ _describe -t warp-points 'warp points' points && ret=0
+ ;;
+ *)
+ esac
+ esac
+}
+
+_wd "$@"