Commit dc69c3b
committed
interactive: substring filter for the board picker
When BOARD is not set on the command line, the interactive board picker
shows all 400+ boards alphabetically with no built-in way to narrow the
list down. Finding a known board by typing only its first letter (the
default dialog behaviour) is impractical when several share a prefix.
Prepend a sentinel `[set filter]` entry at the top of the menu that
opens a dialog --inputbox; the substring is matched case-insensitively
against both the board name and its short description. Once a filter is
active, a second sentinel `[clear filter]` appears alongside, and the
first sentinel shows the current filter and match count.
Implementation notes:
- A separate dialog button (e.g. --help-button) was tried first but it
doesn't fit in an 80x24 terminal alongside the existing OK / Show
CSC.. / Cancel triplet -- dialog returns 255 ("screen too small")
before the user can react. A sentinel menu entry has no such
constraint and keeps the existing button layout intact.
- Filter state survives the existing CSC/WIP/EOS toggle and re-filtering
on a fresh full list, so toggling expert mode does not lose the
substring.
- Filtering iterates the cached arr_all_board_options in pure bash
(no subshells), so it stays cheap regardless of how many times the
user re-opens the inputbox.
Assisted-by: Claude:claude-opus-4.71 parent fbd165b commit dc69c3b
1 file changed
Lines changed: 50 additions & 2 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
135 | 135 | | |
136 | 136 | | |
137 | 137 | | |
| 138 | + | |
| 139 | + | |
| 140 | + | |
138 | 141 | | |
139 | 142 | | |
140 | 143 | | |
| |||
151 | 154 | | |
152 | 155 | | |
153 | 156 | | |
| 157 | + | |
| 158 | + | |
| 159 | + | |
| 160 | + | |
| 161 | + | |
| 162 | + | |
| 163 | + | |
| 164 | + | |
| 165 | + | |
| 166 | + | |
| 167 | + | |
| 168 | + | |
| 169 | + | |
| 170 | + | |
| 171 | + | |
| 172 | + | |
| 173 | + | |
| 174 | + | |
| 175 | + | |
| 176 | + | |
| 177 | + | |
| 178 | + | |
| 179 | + | |
| 180 | + | |
| 181 | + | |
| 182 | + | |
| 183 | + | |
| 184 | + | |
| 185 | + | |
| 186 | + | |
| 187 | + | |
| 188 | + | |
| 189 | + | |
| 190 | + | |
| 191 | + | |
154 | 192 | | |
155 | 193 | | |
156 | 194 | | |
| |||
166 | 204 | | |
167 | 205 | | |
168 | 206 | | |
169 | | - | |
170 | | - | |
| 207 | + | |
171 | 208 | | |
| 209 | + | |
172 | 210 | | |
173 | 211 | | |
174 | 212 | | |
| |||
188 | 226 | | |
189 | 227 | | |
190 | 228 | | |
| 229 | + | |
| 230 | + | |
| 231 | + | |
| 232 | + | |
| 233 | + | |
| 234 | + | |
| 235 | + | |
| 236 | + | |
| 237 | + | |
| 238 | + | |
191 | 239 | | |
192 | 240 | | |
193 | 241 | | |
| |||
0 commit comments