summaryrefslogtreecommitdiff
path: root/plugins/tmuxinator/_tmuxinator
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/tmuxinator/_tmuxinator')
-rw-r--r--plugins/tmuxinator/_tmuxinator55
1 files changed, 18 insertions, 37 deletions
diff --git a/plugins/tmuxinator/_tmuxinator b/plugins/tmuxinator/_tmuxinator
index 551267ed2..37032f8d8 100644
--- a/plugins/tmuxinator/_tmuxinator
+++ b/plugins/tmuxinator/_tmuxinator
@@ -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"