#compdef mix #autoload # Elixir mix zsh completion local -a _1st_arguments _1st_arguments=( 'archive:List all archives' 'archive.build:Archive this project into a .ez file' 'archive.install:Install an archive locally' 'archive.uninstall:Uninstall archives' 'clean:Delete generated application files' 'cmd:Executes the given command' 'compile:Compile source files' 'compile.protocols:Consolidates all protocols in all paths' 'deps:List dependencies and their status' "deps.clean:Remove the given dependencies' files" 'deps.compile:Compile dependencies' 'deps.get:Get all out of date dependencies' 'deps.unlock:Unlock the given dependencies' 'deps.update:Update the given dependencies' 'do:Executes the tasks separated by comma' 'escript.build:Builds an escript for the project' 'help:Print help information for tasks' 'hex.config:Read or update hex config' 'hex.info:Print hex information' 'hex.key:Hex API key tasks' 'hex.owner:Hex package ownership tasks' 'hex.publish:Publish a new package version' 'hex.search:Search for package names' 'hex.user:Hex user tasks' 'loadconfig:Loads and persists the given configuration' 'local:List local tasks' 'local.hex:Install hex locally' 'local.rebar:Install rebar locally' 'new:Create 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 archive.build archive.install archive.uninstall clean cmd compile compile.protocols deps deps.clean deps.compile deps.get deps.unlock deps.update do escript.build help hex.config hex.info hex.key hex.owner hex.publish hex.search hex.user loadconfig local local.hex local.rebar 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