From 8127e5838c24a7fbfaac5b9a02609e033cb3c5e2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Cornell=C3=A0?= Date: Sun, 21 Jul 2024 10:16:30 +0200 Subject: [PATCH] fix(kubectl): fix kubectl completion for `kj`, `kjx` and `ky` aliases (#12566) --- plugins/kubectl/kubectl.plugin.zsh | 28 ++++++++++++++++++++-------- 1 file 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