8127e5838c24a7fbfaac5b9a02609e033cb3c5e2
- Author
- Marc Cornellà <marc@mcornella.com>
- Committer
- GitHub <noreply@github.com>
- Date
Message
fix(kubectl): fix kubectl completion for `kj`, `kjx` and `ky` aliases (#12566)
Diff
1diff --git a/plugins/kubectl/kubectl.plugin.zsh b/plugins/kubectl/kubectl.plugin.zsh
2index a96e409c61db3dd1a4e9b11ee011cd7a9cce89e6..ad78fedeb9f1c413a49265aec7449e86454f6ff5 100644
3--- a/plugins/kubectl/kubectl.plugin.zsh
4+++ b/plugins/kubectl/kubectl.plugin.zsh
5@@ -180,11 +180,23 @@ alias kej='kubectl edit job'
6 alias kdj='kubectl describe job'
7 alias kdelj='kubectl delete job'
8
9-function kj() { kubectl "$@" -o json | jq; }
10-function kjx() { kubectl "$@" -o json | fx; }
11-function ky() { kubectl "$@" -o yaml | yh; }
12-if (( ${+functions[compdef]} )); then
13- compdef _kubectl kj
14- compdef _kubectl kjx
15- compdef _kubectl ky
16-fi
17+# Utility print functions (json / yaml)
18+function _build_kubectl_out_alias {
19+ setopt localoptions norcexpandparam
20+
21+ # alias function
22+ eval "function $1 { $2 }"
23+
24+ # completion function
25+ eval "function _$1 {
26+ words=(kubectl \"\${words[@]:1}\")
27+ _kubectl
28+ }"
29+
30+ compdef _$1 $1
31+}
32+
33+_build_kubectl_out_alias "kj" 'kubectl "$@" -o json | jq'
34+_build_kubectl_out_alias "kjx" 'kubectl "$@" -o json | fx'
35+_build_kubectl_out_alias "ky" 'kubectl "$@" -o yaml | yh'
36+unfunction _build_kubectl_out_alias