Author Topic: Request for Enhancement on Smart Open  (Read 5963 times)

MichaelHLutz

  • Community Member
  • Posts: 40
  • Hero Points: 2
Request for Enhancement on Smart Open
« on: June 02, 2011, 01:58:16 PM »
VS team,

I love smart open!

Request: any chance of combining Symbol Search with Smart Open wildcard search logic?  This would be very helpful.  So another input box would appear below the input box "File Name:".  The new input box could be called "Filter Symbol:".  Then if the user enters a File Name: with no Symbol: the logic is as-is.  If Symbol: is entered the full reference tag searching logic is applied specifically to the files matching on File Name: (the logic would be hierarchical).  Then I can apply this AND logic which would make Smart Open even more powerful.  If the user enters a Symbol: w/out a File Name: nothing is returned.  If a symbol is entered that doesn't match a symbol exactly in tag database then text matching search logic would be used as per tag reference searching: but again only on those files that match on File Name: logic first to avoid bad performance.

I would love if you could add this!  Thanks for considering it!
Mike
« Last Edit: June 03, 2011, 01:43:06 PM by MichaelHLutz »

lambertia

  • Senior Community Member
  • Posts: 382
  • Hero Points: 14
  • I have nothing sufficiently witty to say.
Re: Request for Enhancement on Smart Open
« Reply #1 on: June 07, 2011, 07:42:35 AM »
That sounds good.

BUT!

A while ago I asked for smart-open type matching to apply to the clipboard lists.

See http://community.slickedit.com/index.php?topic=4897.0

So wait your turn ;)

Cheers!
--
Greg.

MichaelHLutz

  • Community Member
  • Posts: 40
  • Hero Points: 2
Re: Request for Enhancement on Smart Open
« Reply #2 on: June 07, 2011, 05:11:53 PM »
not sure why these couldn't be worked on in parallel .... ;-)

I work on a fairly large C++ code base and am frequently searching for things.  Being able to combine symbol search with wildard file matching would be of very high utility.

chrisant

  • Senior Community Member
  • Posts: 1410
  • Hero Points: 131
Re: Request for Enhancement on Smart Open
« Reply #3 on: June 07, 2011, 05:48:24 PM »
I work in projects where this could be helpful, but even I had to think for a few minutes to get how this could work.  So here is a sample scenario (of my interpretation of the request) to help SlickTeam grok it:

Another way to look at this is not just a Smart Open feature request, but also a Symbol Search filtering request.

I work in projects that have anywhere from thousands to hundreds of thousands of source files.  The larger the project gets, the more likely there will be symbol reuse across different subsets of the project.  And some method names are inherently prone to having many copies (e.g. AddRef, Release, Find, etc).  And often the majority of matching symbols are from esoteric subsets of library sources.  If only I could somehow give a hint that I'm only interested in seeing symbols from a particular folder or project or wildcard, then instead of getting a matches list so large it's been truncated and doesn't contain the symbol instance I care about, I could get a more relevantly scoped list.

E.g. when I want to look up AddRef in the Symbol Search window, it finds so many matches that it truncates the list.
If I know I'm only interested in files under the Gromwidget subproject in the Ubersoftware project, I could type "gromw" in a path filtering box, and the list could magically shrink to the 9 relevant symbols.

Taking it further (and maybe easier to implement, too)

What would be really automagical would be if SE could somehow infer my intent and list matches more relevantly to begin with, without requiring any additional manual filtering.

To that end, maybe the sort order could be enhanced.  Instead of listing all matching symbols in alphabetical order, what about listing them in order of scope:  Local, Project, Workspace, Compiler?  The list could have a header for each scope section, and then list the matching symbols beneath the header in alphabetical order, followed by the next scope header, and so on.

Perhaps smart scoping could also be used for Ctrl+Space auto completion.  Too often I'm trying to type a local variable name or a member with implicit "this" scope, and SE seems to favor the first alphabetical match, which is usually some esoteric symbol somewhere in a library I never use from some header in the compiler tag file.

I realize I'm probably oversimplifying and there are dodgey details to work out, but it would be great if SlickTeam can think a bit about how to enhance the intelligence behind which symbols are favored in auto completion situations.  I suspect that scope could be a useful differentiator, but maybe are other differentiators that could be good instead/additionally.

(All with the usual caveats about having options so it can be configurable and not wanting to change the defaults and unexpectedly alter behavior for users accustomed to certain behaviors, etc).
« Last Edit: June 07, 2011, 05:51:00 PM by chrisant »

Phil Barila

  • Senior Community Member
  • Posts: 745
  • Hero Points: 61
Re: Request for Enhancement on Smart Open
« Reply #4 on: June 07, 2011, 06:11:19 PM »
I hate "me too" posts, but ... Me too.  Nicely described, @chrisant!

lambertia

  • Senior Community Member
  • Posts: 382
  • Hero Points: 14
  • I have nothing sufficiently witty to say.
Re: Request for Enhancement on Smart Open
« Reply #5 on: June 07, 2011, 11:42:40 PM »
not sure why these couldn't be worked on in parallel .... ;-)

I work on a fairly large C++ code base and am frequently searching for things.  Being able to combine symbol search with wildard file matching would be of very high utility.

Parallel works for me!

Dennis

  • Senior Community Member
  • Posts: 3965
  • Hero Points: 517
Re: Request for Enhancement on Smart Open
« Reply #6 on: June 08, 2011, 04:53:19 PM »
This isn't exactly what you folks are describing, but the Find Symbol tool window does already have an "Look in" option to search for a symbol within the current project, that is, <Current Project>.  I could add an option for "<Current Directory>" pretty easily if that would be a helpful, albeit partial, solution.