Review Request: Only show language context menu extensions if the menu is invoked in a context relevant to that language

Milian Wolff mail at milianw.de
Sun Mar 11 14:10:32 UTC 2012


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://git.reviewboard.kde.org/r/104212/#review11286
-----------------------------------------------------------


Sounds good, but this makes it just the more urgent to refactor our refactoring actions :)

We also have the "code" menu e.g. which will contain actions that are not relevant to php/python, like the class browser e.g.

So I'd really like to see some work on that, probably best would be some kind of refactor-controller where one can register actions that are then queried for validity. The class browser should also be extensible somehow.

What do you think? Somehow I have the feeling that this patch here is just a workaround...


shell/plugincontroller.cpp
<http://git.reviewboard.kde.org/r/104212/#comment9037>

    Is this safe without locking the duchain? I somehow doubt that. So:
    
    if ( ... ) {
      DUChainReadLocker lock;
      if (c->declaration()) {
        url = c->declaration.data()->url().toUrl();
      }
    }


- Milian Wolff


On March 9, 2012, 11:22 p.m., Sven Brauch wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> http://git.reviewboard.kde.org/r/104212/
> -----------------------------------------------------------
> 
> (Updated March 9, 2012, 11:22 p.m.)
> 
> 
> Review request for KDevelop and Milian Wolff.
> 
> 
> Description
> -------
> 
> I tried to implement proper rename support for python, and during that task I noticed this behaviour: any loaded language plugin will add its context menu extensions to any context menu. The c++ plugin adds its rename dialog to php and python files. This patch fixes that behaviour by retrieving the URL of the file the action was invoked on, and then checks that the plugin -- if it is a language plugin -- fits that language.
> 
> 
> Diffs
> -----
> 
>   shell/plugincontroller.cpp 23408a6 
> 
> Diff: http://git.reviewboard.kde.org/r/104212/diff/
> 
> 
> Testing
> -------
> 
> The "rename" action no longer shows up in python, but seems to work as before in c++.
> 
> 
> Thanks,
> 
> Sven Brauch
> 
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kdevelop-devel/attachments/20120311/dbef57dc/attachment.html>


More information about the KDevelop-devel mailing list