Flexible Choosers

The flexible chooser builds a tree structure, in which at each
level it divides the available choices into a suitable number of
bundles, and lets you choose which bundle. When you get down to few
enough choices to pick an individual one, you can then do so.

If doing this from the pedals, you are presented with a small
number of choices for quick navigation in not too many pedal
strokes. If doing it from a voice command, you are given more choices,
as it is possible to jump to any one of them in a single action.

When in each level of the tree, it works like a pedal menu -- you navigate up and down it
using forward and backward pedals as in Versor, and select one
you want using the menu/select pedal.

If you are using the voice option, you can also say a word or words
occurring in one of the choices, then press space or the menu pedal,
to filter the available choices to those matching that word. (You can
also do this by typing the words you want.) When the list is narrowed
down to one ``choice'' (i.e. no choice at all!) that is taken as
selected; this way, choices can be made without having to speak
punctuation characters.

At any stage, you can also select [Back] and
[Top] options, which are appended to the range of choices
at each level of the tree.

The code

The code for this is in the file flexi-choose.el. Loading the file will add
the appropriate things to your menus. The main entry point, should
you want to use flexi-choose in your own programs, is called
choose-in-steps.