Bug 488485

Summary: [navigation] Quick Outline: show effective members only
Product: [Eclipse Project] JDT Reporter: Carsten Reckord <reckord>
Component: TextAssignee: JDT-Text-Inbox <jdt-text-inbox>
Status: ASSIGNED --- QA Contact:
Severity: enhancement    
Priority: P3 CC: daniel_megert, stephan.herrmann
Version: 4.5.1   
Target Milestone: ---   
Hardware: All   
OS: All   
Whiteboard:

Description Carsten Reckord CLA 2016-02-25 12:15:23 EST
Quick Outline (Ctrl+O) should have a mode to show effective members. It currently shows the members declared in the current class initially with an option to show all inherited members.

However, most of the time, I want to see the effective members for the class. So "declared members" is too little and "all inherited members" is too much and really confusing to find anything in. 

For a simple example, do a Ctrl+O+O on ArrayList, and you'll get five entries for "iterator()". What I'm usually only interested in is the list of all effective members, i.e. if the class itself declares or overrides "iterator()" then that's what I'm interested in. If "iterator()" is inherited from the parent class, then I want to see that. I rarely have a need to see all further overrides down to Object...

Alternatively, instead of filtering out overrides further down the class hierarchy, they could also be shown as children of the effective method - initially collapsed in the tree.
Comment 1 Stephan Herrmann CLA 2016-02-25 13:02:08 EST
I fully agree. 

Anyone interested in different versions of "iterator()" should simply navigate to the "effective" version and then use Ctrl+T.

One *might* think of cycling through 3 modes instead of 2 by consecutive presses of Ctrl+O, but IMHO that's overkill. At most a workspace preference should toggle between "all inherited" and "effective", unless we agree that "effective" is actually a good replacement and "all inherited" can be dropped entirely.

Am I missing a motivation behind the current design?
Comment 2 Carsten Reckord CLA 2016-02-25 13:15:32 EST
I agree. Three modes seems overkill and I'd much prefer to have the "all inherited" mode replaced.
Comment 3 Dani Megert CLA 2016-02-29 05:47:37 EST
The easiest is to contribute a filter that filters the non-effective members.