From 00d0735704d8e1070a51bbd1334db32d2e822fe6 Mon Sep 17 00:00:00 2001 From: kronion Date: Wed, 19 Jan 2022 09:49:24 -0600 Subject: [PATCH] feat(poetry): add plugin to provide completion for Poetry (#10595) --- plugins/poetry/README.md | 9 +++++++++ plugins/poetry/poetry.plugin.zsh | 16 ++++++++++++++++ 2 files changed, 25 insertions(+) create mode 100644 plugins/poetry/README.md create mode 100644 plugins/poetry/poetry.plugin.zsh diff --git a/plugins/poetry/README.md b/plugins/poetry/README.md new file mode 100644 index 000000000..51780cbed --- /dev/null +++ b/plugins/poetry/README.md @@ -0,0 +1,9 @@ +# Poetry Plugin + +This plugin automatically installs [Poetry](https://python-poetry.org/)'s completions for you, and keeps them up to date as your Poetry version changes. + +To use it, add `poetry` to the plugins array in your zshrc file: + +```zsh +plugins=(... poetry) +``` diff --git a/plugins/poetry/poetry.plugin.zsh b/plugins/poetry/poetry.plugin.zsh new file mode 100644 index 000000000..e872e9fd6 --- /dev/null +++ b/plugins/poetry/poetry.plugin.zsh @@ -0,0 +1,16 @@ +# Return immediately if poetry is not found +if (( ! $+commands[poetry] )); then + return +fi + +# If the completion file doesn't exist yet, we need to autoload it and +# bind it to `poetry`. Otherwise, compinit will have already done that. +if [[ ! -f "$ZSH_CACHE_DIR/completions/_poetry" ]]; then + typeset -g -A _comps + autoload -Uz _poetry + _comps[gh]=_poetry +fi + +poetry completions zsh >| "$ZSH_CACHE_DIR/completions/_poetry" &| + +unset comp_file