Skip to content

Commit

Permalink
Added autocompletion support for Elixir mix command
Browse files Browse the repository at this point in the history
  • Loading branch information
jwarwick committed Jul 20, 2013
1 parent 2cc4801 commit 4b8e109
Showing 1 changed file with 63 additions and 0 deletions.
63 changes: 63 additions & 0 deletions plugins/mix/_mix
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
#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

0 comments on commit 4b8e109

Please sign in to comment.