Signed-off-by: Mikhail S. Pobolovets <styx.mp@gmail.com>master
parent
4cc0a2638c
commit
a7e79824f8
2 changed files with 57 additions and 0 deletions
@ -0,0 +1,28 @@ |
||||
# mix-fast |
||||
|
||||
Fast mix autocompletion plugin. |
||||
|
||||
This script caches the output for later usage and significantly speeds it up. |
||||
It generates a .mix_tasks cache file for current project. Currently if you want |
||||
to update cache you should remove .mix_tasks file |
||||
|
||||
Inspired by and based on rake-fast zsh plugin. |
||||
|
||||
This is entirely based on [this pull request by Ullrich Schäfer](https://github.com/robb/.dotfiles/pull/10/), which is inspired by [this Ruby on Rails trick from 2006](http://weblog.rubyonrails.org/2006/3/9/fast-mix-task-completion-for-zsh/). |
||||
|
||||
|
||||
## Installation |
||||
|
||||
Just add the plugin to your `.zshrc`: |
||||
|
||||
```bash |
||||
plugins=(foo bar mix-fast) |
||||
``` |
||||
|
||||
You might consider adding `.mix_tasks` to your [global .gitignore](https://help.github.com/articles/ignoring-files#global-gitignore) |
||||
|
||||
## Usage |
||||
|
||||
`mix`, then press tab |
||||
|
||||
Currently maintained by [styx](https://github.com/styx/) |
||||
@ -0,0 +1,29 @@ |
||||
_mix_refresh () { |
||||
if [ -f .mix_tasks ]; then |
||||
rm .mix_tasks |
||||
fi |
||||
echo "Generating .mix_tasks..." > /dev/stderr |
||||
_mix_generate |
||||
cat .mix_tasks |
||||
} |
||||
|
||||
_mix_does_task_list_need_generating () { |
||||
[ ! -f .mix_tasks ]; |
||||
} |
||||
|
||||
_mix_generate () { |
||||
mix --help | grep -v 'iex -S' | tail -n +2 | cut -d " " -f 2 > .mix_tasks |
||||
} |
||||
|
||||
_mix () { |
||||
if [ -f mix.exs ]; then |
||||
if _mix_does_task_list_need_generating; then |
||||
echo "\nGenerating .mix_tasks..." > /dev/stderr |
||||
_mix_generate |
||||
fi |
||||
compadd `cat .mix_tasks` |
||||
fi |
||||
} |
||||
|
||||
compdef _mix mix |
||||
alias mix_refresh='_mix_refresh' |
||||
Loading…
Reference in new issue