Bug 378428

Summary: usability issues with the symbol viewer plugin
Product: [Applications] kdevelop Reporter: Jan Pavlicek <jan.pavlicek>
Component: UI: generalAssignee: kdevelop-bugs-null
Status: REPORTED ---    
Severity: wishlist CC: alexander, mail
Priority: NOR Keywords: junior-jobs
Version First Reported In: 5.1.0   
Target Milestone: ---   
Platform: unspecified   
OS: Unspecified   
Latest Commit: Version Fixed/Implemented In:
Sentry Crash Report:
Attachments: Visual comparsion of Kate's Symbol list vs KDevelop outline in PHP project

Description Jan Pavlicek 2017-04-04 09:41:10 UTC
When I was using Kate for my PHP developement, I made heavy use of the Symbol list panel on the right. I have switched to KDevelop some time ago and I love it, but I really miss the symbol list panel. The outline can be something of a replacement, but for me it is not usable, since 1) names are displayed lowercase - very hard to read for camelcase and 2) you have to click multiple times in order to traverse namespaces to get to the actual class members. 

In short, please bring the Symbol list from Kate to KDevelop ;-)

Thank you!
Comment 1 Kevin Funk 2017-04-04 09:42:03 UTC
Screenshot please so we know what we're talking about :)
Comment 2 Jan Pavlicek 2017-04-04 09:50:49 UTC
Created attachment 104864 [details]
Visual comparsion of Kate's Symbol list vs KDevelop outline in PHP project

Added screenshot comparison of both panels
Comment 3 Sven Brauch 2017-04-04 12:06:19 UTC
I don't think we should do that. Instead, let's fix our symbol list so that it is better usable. Our symbol list has a better data source (actual parser vs. some pattern matching) and we shouldn't have the same feature twice.
Comment 4 Jan Pavlicek 2017-04-04 12:51:43 UTC
@Steven Brauch - well, that would of course be even better :-) rhe ability to display the current class (if there is only one class in a file, which is the case for almost all modern PHP application and defined in PSR standards) as a base level without the need to traverse namespaces and the ability to display method and property names with their original case would be great.

Thank you very much for your attention to this!
Comment 5 Kevin Funk 2017-04-04 12:58:19 UTC
+1.

Options to improve the situation: 
- Expand all nodes by default? I think that's feasible and useful.
  I don't think it will ever end up in a performance bottle-neck.
- Fix kdev-php so it doesn't lowercase all the symbols (why does it do that?!)
Comment 6 Sven Brauch 2017-04-04 15:08:19 UTC
To write down the lowercase problem here (discussed in IRC), the symbols are all stored in lowercase in the DUChain, because PHP is case-insensitive, and I don't think you can reasonably build a case-insensitive version of IndexedString. Difficult issue, actually. :/
Comment 7 Milian Wolff 2017-04-05 14:53:59 UTC
we also store the non-lowercased version in special PHP classes, we just need a way to use those in place of the non-lowercased versions by introducing a new virtual in Declaration that gets overloaded.

This is actually a long-standing bug which also affects quickopen and the outline afaik.