]> arthur.barton.de Git - ax-zsh.git/blob - core/50_axzsh/functions/_axzsh
960a76b9d59333c88def4467608316f18a5b79a1
[ax-zsh.git] / core / 50_axzsh / functions / _axzsh
1 #compdef axzshctl
2
3 _axzshctl() {
4         _arguments \
5                 '1: :((
6                         enable\:"Enable AX-ZSH."
7                         disable\:"Disable AX-ZSH."
8                         enable-plugin\:"Enable plugin(s)."
9                         disable-plugin\:"Disable plugin(s)."
10                         list-enabled\:"List enabled plugin(s)."
11                         reset-plugins\:"Reset active plugins to the default set."
12                         enable-default-plugins\:"Enable all default plugins."
13                         check-plugins\:"Check \"useful\" plugins."
14                         set-theme\:"Set active theme."
15                         upgrade\:"Upgrade AX-ZSH installation (requires Git)."
16                         update-caches\:"Force rebuild of all cache files."
17                 ))' \
18                 '*: :->args'
19 #
20         case "$state" in
21           'args')
22                 case "$words[2]" in
23                   "enable-plugin")
24                         compadd "$@" -- \
25                                 "$AXZSH"/plugins/*(/:t) \
26                                 "$AXZSH"/custom_plugins/*(N/:t) \
27                                 "$AXZSH"/repos/*(/:t:s/#/\\/)
28                         for r in "$AXZSH"/repos/@*(N/); do
29                                 b=(echo $r(:t))
30                                 compadd "$@" -- \
31                                         $(echo $r/plugins/*(N:t) | sed -E "s/(^| )/ $b\//g")
32                         done
33                         ;;
34                   "disable-plugin")
35                         compadd "$@" -- \
36                                 "$AXZSH"/active_plugins/*(:t:s/#/\\/)
37                         ;;
38                   "set-theme")
39                         compadd "$@" -- "-" \
40                                 "$AXZSH"/themes/*.axzshtheme(:r:t) \
41                                 "$AXZSH"/custom_themes/*.axzshtheme(N:r:t) \
42                                 "$AXZSH"/custom_themes/*.zsh-theme(N:r:t) \
43                                 "$AXZSH"/repos/*/*.axzshtheme(N:r:t) \
44                                 "$AXZSH"/repos/*/*.zsh-theme(N:r:t)
45                         ;;
46                 esac
47                 ;;
48         esac
49 }
50
51 _axzshctl "$@"