Bug 378699 - [navigation] Improve filtering in Quick Outline and Quick Hierarchy
Summary: [navigation] Improve filtering in Quick Outline and Quick Hierarchy
Status: ASSIGNED
Alias: None
Product: JDT
Classification: Eclipse Project
Component: Text (show other bugs)
Version: 3.8   Edit
Hardware: All All
: P3 enhancement (vote)
Target Milestone: ---   Edit
Assignee: JDT-Text-Inbox CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2012-05-07 12:14 EDT by Deepak Azad CLA
Modified: 2014-11-04 02:54 EST (History)
6 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Deepak Azad CLA 2012-05-07 12:14:21 EDT
We now support camel case in Quick Outline and Quick Hierarchy but I think the filtering can still be improved significantly. Having to type everything from the beginning or type wildcards like * is both annoying and quite frankly needless.

We should implement something like Subwords completion from Code Recommenders - http://blog.deepakazad.com/2012/05/subwords-completion.html

We can implement the same filtering mechanism at other places as well like Open Type and Open Resource. But we can start with Quick Outline and Quick Hierarchy...

Implementation details
From bug 376674 comment 3
> > I thought the matching was only a regex of the the form 'e*x*p*r*e*s*s*i*o*n',
> > is there more to it ?
> 
> Yes, a bit more. In a nutshell, it counts how many pairs of 'ex' 'xp' 'pr' 're'
> ... it finds in the completion string and ranks it according to the number of
> pairs found.
> 
> The regex is a "minimal requirements" filter that eliminates those completions
> that do not contain at least all letters in the order specified by the token
> (as you described above).

Also from bug 377333 comment 2
> if some characters in a word are matched but not the first one we
> should discard the proposal.
Comment 1 Lars Vogel CLA 2012-05-13 05:05:55 EDT
I think the Subwords completion engine should be migrated to JDT and replace the "standard" JDT completion engine, as it is much more powerful.