A feature request for the Doomsday Console was a UNIX-style double-tab search. When typing a word, hitting tab twice in quick succession would take the word currently under the caret and do a search of all available commands and list them for you. Definitely handy if you have a command or method name on the tip of your tongue.
The trouble, of course, is that the tab key in the console is currently seriously crowded. Shift-tab toggles the console, tabbing while typing autocompletes, tabbing while typing an argument adds a space. Adding double-tab, which by necessity means i have to wait for a few milliseconds (more like 150 for my slow fingers to keep up) before committing actual tab actions reduces all the other tab functionality to a nagging crawl. What seems like a short moment soon becomes unbearable; in keyboard terms, 150ms is an aeon.
So how to implement it effectively? On one end, i’m actually really big on the idea of putting as much on the tab key as possible, making it the natural go-to-guy for your fingers whenever you want something done that ISN’T a command call, but on the other, i’m only up for that until it gets confusing.
Kieran/dBlue suggested an AJAXian approach where typing a word and then waiting a second or two automatically performs a search for you. I call this the “uhhhh-search”. I like how simple it is, but the fact of the matter is that the list of hits grows HUGE as soon as the search term is short enough. The idea is that searching for “cannon” will return both “bigCannon” and “cannonBall”, so a search of “ad” will typically give you a list of at least a couple lines. To have the console cluttered with random searches is not an ideal solution.
The final solution i’ve settled on is to drop any doubles or combinations, and try to be contextual. If the word under the caret is known in its entirety to the dictionary, skip to the end of the line and append a space as normal. If it is unknown however, do a search for it. I’m not sure it’s the optimal solution, but it leaves a minimum of clutter, can be toggled off, and still follows well with the tab-for-everything idea.
Give it a spin, and tell me what you think!