|
@@ -1,40 +1,21 @@
|
|
|
-#compdef tmuxinator mux
|
|
|
-#autoload
|
|
|
+_tmuxinator() {
|
|
|
+ local commands projects
|
|
|
+ commands=(${(f)"$(tmuxinator commands zsh)"})
|
|
|
+ projects=(${(f)"$(tmuxinator completions start)"})
|
|
|
|
|
|
-local curcontext="$curcontext" state line ret=1
|
|
|
-local -a _configs
|
|
|
-
|
|
|
-_arguments -C \
|
|
|
- '1: :->cmds' \
|
|
|
- '2:: :->args' && ret=0
|
|
|
-
|
|
|
-_configs=(${$(echo ~/.tmuxinator/*.yml):r:t})
|
|
|
-
|
|
|
-case $state in
|
|
|
- cmds)
|
|
|
- _values "tmuxinator command" \
|
|
|
- "new[create a new project file and open it in your editor]" \
|
|
|
- "start[start a tmux session using project's tmuxinator config]" \
|
|
|
- "open[create a new project file and open it in your editor]" \
|
|
|
- "copy[copy source_project project file to a new project called new_project]" \
|
|
|
- "delete[deletes the project called project_name]" \
|
|
|
- "debug[output the shell commands generated by a projet]" \
|
|
|
- "implode[deletes all existing projects!]" \
|
|
|
- "list[list all existing projects]" \
|
|
|
- "doctor[look for problems in your configuration]" \
|
|
|
- "help[shows this help document]" \
|
|
|
- "version[shows tmuxinator version number]" \
|
|
|
- $_configs
|
|
|
- ret=0
|
|
|
- ;;
|
|
|
- args)
|
|
|
- case $line[1] in
|
|
|
- start|open|copy|delete|debug)
|
|
|
- [[ -n "$_configs" ]] && _values 'configs' $_configs
|
|
|
- ret=0
|
|
|
- ;;
|
|
|
+ if (( CURRENT == 2 )); then
|
|
|
+ _describe -t commands "tmuxinator subcommands" commands
|
|
|
+ _describe -t projects "tmuxinator projects" projects
|
|
|
+ elif (( CURRENT == 3)); then
|
|
|
+ case $words[2] in
|
|
|
+ copy|debug|delete|open|start)
|
|
|
+ _arguments '*:projects:($projects)'
|
|
|
+ ;;
|
|
|
esac
|
|
|
- ;;
|
|
|
-esac
|
|
|
+ fi
|
|
|
+
|
|
|
+ return
|
|
|
+}
|
|
|
|
|
|
-return ret
|
|
|
+compdef _tmuxinator tmuxinator mux
|
|
|
+alias mux="tmuxinator"
|