summaryrefslogtreecommitdiff
path: root/plugins/mix/_mix
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/mix/_mix')
-rw-r--r--plugins/mix/_mix63
1 files changed, 63 insertions, 0 deletions
diff --git a/plugins/mix/_mix b/plugins/mix/_mix
new file mode 100644
index 000000000..602f5ffa0
--- /dev/null
+++ b/plugins/mix/_mix
@@ -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
+