Hi Mike, sounds like a great idea. How about contributing the suggested modifications?
Maybe somebody else is interested, in case Mike can't do it? Detlev On Friday 06 May 2016, 12:07:44 Mike C. Fletcher wrote: > Hi Detlev (and everyone else), > > There's a feature I keep seeing in Atom and other IDEs that is *really* > helpful for jumping around in larger (10,000+ file) projects. It's a > quick-file-search-and-open dialog. Basically it's the functionality in > File | Search File, but modelled as a speed-optimized keyboard-centric > searching/winnowing process. > > That is, you pop up the dialog with a key-sequence and start typing > (fragments from) the name of the file, so, for instance, if I wanted to > find "subproject/subproject/moo/models.py" I would type something like this: > > ctrl-alt-f > moo models subp > <down> (to select the second match) > <enter> > > The search results would update as I typed "moo" to have all files with > the substring "moo" in their paths (with those that have moo as a full > path component sorted first, hopefully), then when I start typing > "models" would further restrict the set to those items that contain both > moo and models, and when I start typing subp(roject) the search set gets > down to 1-2 entries and I just select the entry with the arrows and hit > enter (again, without leaving the search box or using the mouse). > > When results are displayed, the first item is always selected, and > hitting <enter> opens it, while up/down arrows select other entries > (again, without needing to switch focus from the search box). > > The changes from current File Search suggested are: > > * don't require file extension filtering > o particularly when you have a *lot* of no-file-extension files > that restriction isn't all that useful > o if the file-extension widget is empty, ignore it > * do simple sub-string matching on the set of file-paths known to the > project > o do *not* require a full-name match on the terms, but *rank* > those result higher > + allow e.g. "subproject/moo" to find everything that has that > sequence of characters in its path > o this should likely be done on in-memory structures only, *not* > on the file system > * treat space-delimited fragments as AND'd search terms > o again, ease of typing being the rationale here, not something > involved > * allow hitting <up> and <down> to change the selected item from the > search box > * allow hitting <enter> in the search box to open the > currently-selected file > > Nice enhancements: > > * sort results based on relevance ranking (optional) so e.g. having a > full path-unit == to a search term sorts before having it as a > sub-string of a path unit > * if there are no matches (or less than a threshold, such as a full > screen of results), use fuzzy-matching (soundex, ledit distance, > etc) to try to find other possible matches (always sorted below > absolute matches) > * as you type, do autocomplete on the path fragments we know, so "sub" > would autocomplete to the longest common fragment that starts with > "sub" (a-la bash or similar shell) > > With that done, we could also do the following: > > * on an import statement, launching file-search could pre-populate > with the import name (and with "from" imports, the upper level > module, with . translated to /) > * on other fragments of code, launching file-search could pre-populate > with the current token > > Anyway, this is just a suggestion, and feel free to say no. > > Thanks for all the great work on Eric, > Mike-- *Detlev Offenbach* [email protected]
_______________________________________________ Eric mailing list [email protected] https://www.riverbankcomputing.com/mailman/listinfo/eric
