diff --git a/plugins/glab/README.md b/plugins/glab/README.md new file mode 100644 index 000000000..01723f7c5 --- /dev/null +++ b/plugins/glab/README.md @@ -0,0 +1,18 @@ +# GitLab CLI plugin + +This plugin adds completion for the [GitLab CLI](https://docs.gitlab.com/cli/). + +To use it, add `glab` to the plugins array in your zshrc file: + +```zsh +plugins=(... glab) +``` + +This plugin does not add any aliases. + +## Cache + +This plugin caches the completion script at `$ZSH_CACHE_DIR/completions/_glab`. + +The cache is regenerated in the background whenever the plugin is loaded, which +usually happens when you start a new Zsh session. diff --git a/plugins/glab/glab.plugin.zsh b/plugins/glab/glab.plugin.zsh new file mode 100644 index 000000000..04ab9a27b --- /dev/null +++ b/plugins/glab/glab.plugin.zsh @@ -0,0 +1,18 @@ +# Autocompletion for the GitLab CLI (glab). +if (( ! $+commands[glab] )); then + return +fi + +# If the completion file doesn't exist yet, we need to autoload it and +# bind it to `glab`. Otherwise, compinit will have already done that. +if [[ ! -f "$ZSH_CACHE_DIR/completions/_glab" ]]; then + typeset -g -A _comps + autoload -Uz _glab + _comps[glab]=_glab +fi + +zmodload -F zsh/files b:zf_mv +() { + local TMPPREFIX="$ZSH_CACHE_DIR/completions/_glab" + zf_mv -f -- =( glab completion -s zsh ) "$TMPPREFIX" +} &|