mirror of
https://github.com/ohmyzsh/ohmyzsh.git
synced 2024-11-29 01:00:08 +00:00
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
2 changed files with 57 additions and 0 deletions
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 a new issue