]> arthur.barton.de Git - ax-zsh.git/blobdiff - core/40_axzsh/functions/_axzsh
Fix core plugin numbering
[ax-zsh.git] / core / 40_axzsh / functions / _axzsh
diff --git a/core/40_axzsh/functions/_axzsh b/core/40_axzsh/functions/_axzsh
new file mode 100644 (file)
index 0000000..960a76b
--- /dev/null
@@ -0,0 +1,51 @@
+#compdef axzshctl
+
+_axzshctl() {
+       _arguments \
+               '1: :((
+                       enable\:"Enable AX-ZSH."
+                       disable\:"Disable AX-ZSH."
+                       enable-plugin\:"Enable plugin(s)."
+                       disable-plugin\:"Disable plugin(s)."
+                       list-enabled\:"List enabled plugin(s)."
+                       reset-plugins\:"Reset active plugins to the default set."
+                       enable-default-plugins\:"Enable all default plugins."
+                       check-plugins\:"Check \"useful\" plugins."
+                       set-theme\:"Set active theme."
+                       upgrade\:"Upgrade AX-ZSH installation (requires Git)."
+                       update-caches\:"Force rebuild of all cache files."
+               ))' \
+               '*: :->args'
+#
+       case "$state" in
+         'args')
+               case "$words[2]" in
+                 "enable-plugin")
+                       compadd "$@" -- \
+                               "$AXZSH"/plugins/*(/:t) \
+                               "$AXZSH"/custom_plugins/*(N/:t) \
+                               "$AXZSH"/repos/*(/:t:s/#/\\/)
+                       for r in "$AXZSH"/repos/@*(N/); do
+                               b=(echo $r(:t))
+                               compadd "$@" -- \
+                                       $(echo $r/plugins/*(N:t) | sed -E "s/(^| )/ $b\//g")
+                       done
+                       ;;
+                 "disable-plugin")
+                       compadd "$@" -- \
+                               "$AXZSH"/active_plugins/*(:t:s/#/\\/)
+                       ;;
+                 "set-theme")
+                       compadd "$@" -- "-" \
+                               "$AXZSH"/themes/*.axzshtheme(:r:t) \
+                               "$AXZSH"/custom_themes/*.axzshtheme(N:r:t) \
+                               "$AXZSH"/custom_themes/*.zsh-theme(N:r:t) \
+                               "$AXZSH"/repos/*/*.axzshtheme(N:r:t) \
+                               "$AXZSH"/repos/*/*.zsh-theme(N:r:t)
+                       ;;
+               esac
+               ;;
+       esac
+}
+
+_axzshctl "$@"