bingo-light 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,169 @@
1
+ #compdef bingo-light
2
+ # Zsh completion for bingo-light
3
+ # Place in a directory listed in $fpath, or source directly.
4
+ #
5
+ # Usage:
6
+ # source bingo-light.zsh
7
+ # # or
8
+ # cp bingo-light.zsh /usr/local/share/zsh/site-functions/_bingo-light
9
+
10
+ _bingo-light() {
11
+ local -a toplevel_commands=(
12
+ 'init:Initialize a new bingo-light project'
13
+ 'patch:Manage patches'
14
+ 'setup:Configure MCP for AI tools (interactive)'
15
+ 'sync:Synchronize changes with upstream'
16
+ 'status:Show current status'
17
+ 'doctor:Diagnose and fix common problems'
18
+ 'auto-sync:Enable or configure automatic synchronization'
19
+ 'log:Show change log'
20
+ 'undo:Undo the last operation'
21
+ 'diff:Show differences between states'
22
+ 'version:Print version information'
23
+ 'help:Show help for a command'
24
+ 'conflict-analyze:Analyze conflicts during rebase'
25
+ 'conflict-resolve:Resolve a conflict file and continue'
26
+ 'config:Get/set/list configuration'
27
+ 'history:Show sync history with hash mappings'
28
+ 'test:Run configured test suite'
29
+ 'workspace:Manage multiple forks'
30
+ 'smart-sync:Smart sync with circuit breaker and partial state'
31
+ 'session:Manage session memory'
32
+ )
33
+
34
+ local -a toplevel_aliases=(
35
+ 'p:Alias for patch'
36
+ 's:Alias for sync'
37
+ 'st:Alias for status'
38
+ 'd:Alias for diff'
39
+ 'ws:Alias for workspace'
40
+ )
41
+
42
+ local -a patch_subcommands=(
43
+ 'new:Create a new patch'
44
+ 'list:List all patches'
45
+ 'show:Show details of a patch'
46
+ 'edit:Edit an existing patch'
47
+ 'drop:Remove a patch'
48
+ 'export:Export patches to files'
49
+ 'import:Import patches from files'
50
+ 'reorder:Reorder the patch stack'
51
+ 'squash:Squash two patches into one'
52
+ 'meta:Get/set patch metadata'
53
+ )
54
+
55
+ local -a patch_aliases=(
56
+ 'ls:Alias for list'
57
+ 'add:Alias for new'
58
+ 'create:Alias for new'
59
+ 'rm:Alias for drop'
60
+ 'remove:Alias for drop'
61
+ )
62
+
63
+ local -a sync_flags=(
64
+ '(-f --force)'{-f,--force}'[Force sync, overwriting conflicts]'
65
+ '(-n --dry-run)'{-n,--dry-run}'[Show what would be done without making changes]'
66
+ '(-t --test)'{-t,--test}'[Run test suite after sync]'
67
+ '(- *)'{-h,--help}'[Show help]'
68
+ )
69
+
70
+ local -a patch_list_flags=(
71
+ '(-v --verbose)'{-v,--verbose}'[Show detailed patch information]'
72
+ '(- *)'{-h,--help}'[Show help]'
73
+ )
74
+
75
+ local -a global_flags=(
76
+ '(- *)'{-h,--help}'[Show help]'
77
+ '(- *)--version[Show version]'
78
+ '--json[Output structured JSON]'
79
+ '(-y --yes)'{-y,--yes}'[Non-interactive mode, auto-confirm prompts]'
80
+ )
81
+
82
+ local -a help_flag=(
83
+ '(- *)'{-h,--help}'[Show help]'
84
+ )
85
+
86
+ # Determine which command we are completing for.
87
+ local curcontext="$curcontext" state line
88
+ typeset -A opt_args
89
+
90
+ _arguments -C \
91
+ '(- *)'{-h,--help}'[Show help]' \
92
+ '(- *)--version[Show version]' \
93
+ '--json[Output structured JSON]' \
94
+ '(-y --yes)'{-y,--yes}'[Non-interactive mode, auto-confirm prompts]' \
95
+ '1:command:->command' \
96
+ '*::arg:->args' && return
97
+
98
+ case $state in
99
+ command)
100
+ _describe -t commands 'bingo-light command' toplevel_commands
101
+ _describe -t aliases 'short alias' toplevel_aliases
102
+ ;;
103
+ args)
104
+ local cmd="${line[1]}"
105
+ case $cmd in
106
+ patch|p)
107
+ _arguments -C \
108
+ '(- *)'{-h,--help}'[Show help]' \
109
+ '1:subcommand:->patch_subcmd' \
110
+ '*::arg:->patch_args' && return
111
+
112
+ case $state in
113
+ patch_subcmd)
114
+ _describe -t subcommands 'patch subcommand' patch_subcommands
115
+ _describe -t aliases 'short alias' patch_aliases
116
+ ;;
117
+ patch_args)
118
+ local subcmd="${line[1]}"
119
+ case $subcmd in
120
+ list|ls)
121
+ _arguments $patch_list_flags
122
+ ;;
123
+ new|add|create|show|edit|drop|rm|remove|export|import|reorder|squash|meta)
124
+ _arguments $help_flag
125
+ ;;
126
+ esac
127
+ ;;
128
+ esac
129
+ ;;
130
+ sync|s)
131
+ _arguments $sync_flags
132
+ ;;
133
+ status|st)
134
+ _arguments $help_flag
135
+ ;;
136
+ diff|d)
137
+ _arguments $help_flag
138
+ ;;
139
+ workspace|ws)
140
+ local -a ws_subcommands=(
141
+ 'init:Initialize workspace'
142
+ 'add:Add a repo to workspace'
143
+ 'remove:Remove a repo from workspace'
144
+ 'list:List workspace repos'
145
+ 'sync:Sync all workspace repos'
146
+ 'status:Show workspace status'
147
+ )
148
+ _arguments -C \
149
+ '(- *)'{-h,--help}'[Show help]' \
150
+ '1:subcommand:->ws_subcmd' && return
151
+
152
+ case $state in
153
+ ws_subcmd)
154
+ _describe -t subcommands 'workspace subcommand' ws_subcommands
155
+ ;;
156
+ esac
157
+ ;;
158
+ init|setup|doctor|auto-sync|log|undo|version|conflict-analyze|conflict-resolve|config|history|test|smart-sync|session)
159
+ _arguments $help_flag
160
+ ;;
161
+ help)
162
+ _describe -t commands 'command' toplevel_commands
163
+ ;;
164
+ esac
165
+ ;;
166
+ esac
167
+ }
168
+
169
+ _bingo-light "$@"