On Sep 23, 2013, at 8:06 AM, Chris Friesen <cbf...@mail.usask.ca> wrote:

> 
> Hi all,
> 
> I'm looking for a python IDE (for Linux) that can look at code like this:
> 
> class ConductorManager(manager.Manager):
>    def compute_recover(self, context, instance):
>        self.compute_api.stop(context, instance, do_cast=False)
> 
> where I could highlight the "stop" and ask it to go to the definition. (Where 
> the definition is in a different file.)
> 
> I'm running into issues where my current IDE (I'm playing with Komodo) can't 
> seem to locate the definition, I suspect because it's too ambiguous.
> 
> The fact that python is dynamically typed seems to mean that there could 
> potentially be multiple answers, any class with a stop() method with the 
> right signature could presumably be plausible, right?  So rather than give 
> up, I'd like to have my IDE suggest all possible answers.

Hi Chris,

Not sure if this reproduces what you want or not. I use PyCharm (free for free 
stuff, and very affordable/worthwhile otherwise) on Linux (as well as 
OSX/Windows). I made a new project, added two files:

provider.py:

class Provider(object):
    def stop(self):
        pass

usage.py:

class Conglomerate(object):
    def doSomething(self):
        self.provision.stop()

I then highlight 'stop', hit Ctrl-B (menu option go to>>declarations) and it 
brings up all the stop() definitions it could find, the Provider one on the 
top, click it and I jump there. Ctrl-Alt-B (menu option for 
goto>>implementation(s)) does nothing… UNLESS… I add this method to 
Conglomerate:

    def __init__(self):
        super.__init__()
        self.provision = Provider()

Then go to implementations takes me right there to the other file.

HTH
-- 
https://mail.python.org/mailman/listinfo/python-list

Reply via email to