forked from ohmyzsh/ohmyzsh
-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Added autocompletion support for Elixir mix command
- Loading branch information
Showing
1 changed file
with
63 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 | ||
|