123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- #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 "$@"
|