#compdef mix #autoload # Elixir mix zsh completion local -a _1st_arguments _1st_arguments=( 'archive:Archive this project into a .ez file' 'clean:Clean generated application files' 'compile:Compile source files' 'deps:List dependencies and their status' "deps.clean:Remove dependencies' files" 'deps.compile:Compile dependencies' 'deps.get:Get all out of date dependencies' 'deps.unlock:Unlock the given dependencies' 'deps.update:Update dependencies' 'do:Executes the commands separated by comma' 'escriptize:Generates an escript for the project' 'help:Print help information for tasks' 'local:List local tasks' 'local.install:Install a task or an archive locally' 'local.rebar:Install rebar locally' 'local.uninstall:Uninstall local tasks or archives' 'new:Creates a new Elixir project' 'run:Run the given file or expression' "test:Run a project's tests" '--help:Describe available tasks' '--version:Prints the Elixir version information' ) __task_list () { local expl declare -a tasks tasks=(archive clean compile deps deps.clean deps.compile deps.get deps.unlock deps.update do escriptize help local local.install local.rebar local.uninstall new run test) _wanted tasks expl 'help' compadd $tasks } local expl local curcontext="$curcontext" state line typeset -A opt_args _arguments -C \ ':command:->command' \ '*::options:->options' case $state in (command) _describe -t commands "mix subcommand" _1st_arguments return ;; (options) case $line[1] in (help) _arguments ':feature:__task_list' esac ;; esac