diff options
| author | Marc Cornellà <marc@mcornella.com> | 2024-07-21 10:16:30 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-07-21 10:16:30 +0200 |
| commit | 8127e5838c24a7fbfaac5b9a02609e033cb3c5e2 (patch) | |
| tree | 315a4c62a1224d6de27b19a233e61256eb7f65ec /plugins | |
| parent | b1e3a82bb5a2545b495c667f8bf838c3e6033ce4 (diff) | |
| download | zsh-8127e5838c24a7fbfaac5b9a02609e033cb3c5e2.tar.gz zsh-8127e5838c24a7fbfaac5b9a02609e033cb3c5e2.tar.bz2 zsh-8127e5838c24a7fbfaac5b9a02609e033cb3c5e2.zip | |
fix(kubectl): fix kubectl completion for `kj`, `kjx` and `ky` aliases (#12566)
Diffstat (limited to 'plugins')
| -rw-r--r-- | plugins/kubectl/kubectl.plugin.zsh | 28 |
1 files changed, 20 insertions, 8 deletions
diff --git a/plugins/kubectl/kubectl.plugin.zsh b/plugins/kubectl/kubectl.plugin.zsh index a96e409c6..ad78fedeb 100644 --- a/plugins/kubectl/kubectl.plugin.zsh +++ b/plugins/kubectl/kubectl.plugin.zsh @@ -180,11 +180,23 @@ alias kej='kubectl edit job' alias kdj='kubectl describe job' alias kdelj='kubectl delete job' -function kj() { kubectl "$@" -o json | jq; } -function kjx() { kubectl "$@" -o json | fx; } -function ky() { kubectl "$@" -o yaml | yh; } -if (( ${+functions[compdef]} )); then - compdef _kubectl kj - compdef _kubectl kjx - compdef _kubectl ky -fi +# Utility print functions (json / yaml) +function _build_kubectl_out_alias { + setopt localoptions norcexpandparam + + # alias function + eval "function $1 { $2 }" + + # completion function + eval "function _$1 { + words=(kubectl \"\${words[@]:1}\") + _kubectl + }" + + compdef _$1 $1 +} + +_build_kubectl_out_alias "kj" 'kubectl "$@" -o json | jq' +_build_kubectl_out_alias "kjx" 'kubectl "$@" -o json | fx' +_build_kubectl_out_alias "ky" 'kubectl "$@" -o yaml | yh' +unfunction _build_kubectl_out_alias |
