Awesome
zsh autocompletion plugin for lets
Lets is a cli tool for developers that is a better alternative to make - https://github.com/lets-cli/lets
Install as plugin
oh-my-zsh
Just clone plugin to oh-my-zsh plugins directory
cd ~/.oh-my-zsh/custom/plugins/
git clone https://github.com/lets-cli/lets-zsh-plugin.git lets
Open ~/.zshrc
and add lets
to plugins
plugins=(lets)
zinit
Add to your ~/.zshrc
zinit load lets-cli/lets-zsh-plugin
Manual completions setup
You can set up completions manually (no plugins).
Usually to make completion works you have to make sure that:
- A file with completions exists
- A path to directory with a file with completions is in
$fpath
env.
lets
can generate completions script for you
lets completion -s zsh
This will print completion script, and you have to save it somewhere, for example:
lets completion -s zsh ~/.my-completions/_lets
Now, add ~/.my-completions/_lets
to fpath
fpath=(~/.my-completions $fpath)
And just to be sure that everything will work as expected fine, rebuild zcompdump
:
rm -f ~/.zcompdump; compinit
Do not forget to add autoload call to the end of file (it actually can be after plugins section, but its better to add it to the end of
~/.zshrc
)
autoload -U compinit && compinit
Restart terminal
exec $SHELL -l
Manual configuration for zinit
Since zinit
adds ~/.local/share/zinit/completions
to fpath
, you just need to put completions to that directory:
lets completion -s zsh > ~/.local/share/zinit/completions/_lets
Manual configuration for oh-my-zsh
For oh-my-zsh
these are usually one of the following directories in fpath
:
- ~/.oh-my-zsh/completions
- ~/.zsh/completions
lets completion -s zsh > ~/.oh-my-zsh/completions/_lets.zsh
Source completions on shell load
You can just add source <(lets completion -s zsh)
to your ~/.zshrc
file, save it and reload shell. Completions should work.
If completions does not work, try to put source <(lets completion -s zsh)
after line with autoload -U compinit && compinit
, like this:
autoload -U compinit && compinit
source <(lets completion -s zsh)
Configution
For zsh there is --verbose
flag which generate completions with descriptions, like this:
lets <tab>
... generated completions
build -- Build my app
run -- Run my app
test -- Test my app
lets completion -s zsh --verbose