Add mix-fast plugin (similar to rake-fast)
Signed-off-by: Mikhail S. Pobolovets <styx.mp@gmail.com>
This commit is contained in:
parent
4cc0a2638c
commit
a7e79824f8
28
plugins/mix-fast/README.md
Normal file
28
plugins/mix-fast/README.md
Normal file
@ -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/)
|
29
plugins/mix-fast/mix-fast.plugin.zsh
Normal file
29
plugins/mix-fast/mix-fast.plugin.zsh
Normal file
@ -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
Block a user