Browse Source

feat(plugins): add `gh` plugin for GitHub CLI (#9557)

kalle (jag) 3 years ago
parent
commit
70ab2928a5
3 changed files with 37 additions and 0 deletions
  1. 1 0
      plugins/gh/.gitignore
  2. 23 0
      plugins/gh/README.md
  3. 13 0
      plugins/gh/gh.plugin.zsh

+ 1 - 0
plugins/gh/.gitignore

@@ -0,0 +1 @@
+_gh

+ 23 - 0
plugins/gh/README.md

@@ -0,0 +1,23 @@
+# GitHub CLI plugin
+
+This plugin adds completion for the [GitHub CLI](https://cli.github.com/).
+
+To use it, add `gh` to the plugins array in your zshrc file:
+
+```zsh
+plugins=(... gh)
+```
+
+This plugin does not add any aliases.
+
+## Cache
+
+This plugin caches the completion script and is automatically updated when the
+plugin is loaded, which is usually when you start up a new terminal emulator.
+
+The cache is stored at:
+
+- `$ZSH/plugins/gh/_gh` completions script
+
+- `$ZSH_CACHE_DIR/gh_version` version of GitHub CLI, used to invalidate
+  the cache.

+ 13 - 0
plugins/gh/gh.plugin.zsh

@@ -0,0 +1,13 @@
+# Autocompletion for the GitHub CLI (gh).
+
+if (( $+commands[gh] )); then
+  if [[ ! -r "$ZSH_CACHE_DIR/gh_version" \
+    || "$(gh --version)" != "$(< "$ZSH_CACHE_DIR/gh_version")"
+    || ! -f "$ZSH/plugins/gh/_gh" ]]; then
+    gh completion --shell zsh > $ZSH/plugins/gh/_gh
+    gh --version > $ZSH_CACHE_DIR/gh_version
+  fi
+  autoload -Uz _gh
+  _comps[gh]=_gh
+fi
+