requestGoogle-ish Suggestive Search on CLASS/feature

in

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.

0
Your rating: None

Comments

With a good design, implementation is trivial.

Dear Larry Rix,

Ive taken your article as "a database of my classes built into my IDE"

IMHO, I believe this feature would be counter productive.

All too often in this industry, we focus on the solution domain, instead of the problem domain. I feel being able to browse other peoples solutions and, i presume, insert into my own solution would encourage this bad practice.

Auto-complete is a convenience, we already (/should) know the name of the class we require, and the feature we wish to call. It is to help with typo blunders and faster typing.

The majority of your time will most likely be spent in analysis or design anyway.

Having said that, there is still external libraries. A central website with which libraries can be found and explored would be very useful, but i do not believe is suitable for as you type support.

Mike Brown

Syndicate content