| Fri, 04/06/2012 - 13:57 by Larry Rix | Thu, 04/12/2012 - 17:25 by Larry Rix | ||
|---|---|---|---|
| Changes to Body | |||
| - | Discovery in Eiffel is already really simple. An additional help would be a search tool that operates like Google, but on Eiffel classes and features.
| + | Discovery in Eiffel is already very simple. An additional help would be a search tool that operates like Google, but on Eiffel classes and features.
|
Now: When I type in a partial class name (e.g. CLASS_* or *CLASS* or *CLASS), I get a drop-down list of class names meeting this criteria.
| Now: When I type in a partial class name (e.g. CLASS_* or *CLASS* or *CLASS), I get a drop-down list of class names meeting this criteria.
| ||
etc etc etc etc etc etc
| etc etc etc etc etc etc
| ||
| - | The list would contain like "Top 50" (or less) classes shown.
| + | The list result might contain "Top 50" (or less) classes shown.
|
Additionally, we ought to be able to type in either A) Keywords (see keywords tag in the example above) or B) Descriptive text (see descriptions in the example above) and still get a list like the one above, except based on words found in the descriptions and keywords.
| Additionally, we ought to be able to type in either A) Keywords (see keywords tag in the example above) or B) Descriptive text (see descriptions in the example above) and still get a list like the one above, except based on words found in the descriptions and keywords.
| ||
Google-ish Suggestive Search on CLASS/feature
Discovery in Eiffel is already very simple. An additional help would be a search tool that operates like Google, but on Eiffel classes and features.
Now: When I type in a partial class name (e.g. CLASS_* or *CLASS* or *CLASS), I get a drop-down list of class names meeting this criteria.
New: When I type in a partial class name (e.g. same as above), I instead get a new type of editor page that is not a class, but a Google-like site or link list, except what is being listed are Eiffel classes (where class names in BLUE are pick-and-droppable) with the top few lines of their class notes shown (if any). Thus, it might look like this after searching for EV_*
EV_ABSTRACT_PICK_AND_DROPABLE
"Abstract interface for all pick and dropable classes.
Descendants include: widgets, items and figures."
keywords: "pick and drop, figure, widget, item"
deferred
creators: none
EV_ACCELERATOR "A keyboard accelerator defines `actions' to be performed when a `key' is pressed. See `{EV_TITLED_WINDOW}.accelerators'"
keywords: "accelerator, keyboard, key, shortcut, hotkey"
etc etc etc etc etc etc
The list result might contain "Top 50" (or less) classes shown.
Additionally, we ought to be able to type in either A) Keywords (see keywords tag in the example above) or B) Descriptive text (see descriptions in the example above) and still get a list like the one above, except based on words found in the descriptions and keywords.
Also, we ought to be able to do the same thing with feature names, feature comments (like keywords and descriptions).
We might also want to get specific like Google does. In Google, if you want to limit your search to a particular site (e.g. we want to limit to www.eiffel.com), we type in our search as: "something being looked for site:eiffel.com). We could do searches for classes based on locals by typing: "local: *tax_rate*", which would return any class with a local containing the text "tax_rate". We could extend this to being able to search for other types of locals as well, such as attachment locals or anything associated with an Eiffel keyword.
Moreover, Eiffel ought to be storing some form of indexing database of our projects on an "as-I-type" basis, to facilitate the indexing needed for these searches to make it as fast as Google. I cannot believe that Google can do with billions of search items very quickly and that we cannot do the same in the relatively small universe of either my local Eiffel project code or even the Eiffel library code.
Bringing this form of class and feature discovery to the table within EiffelStudio, I think would be quite helpful.