JulianEberius / SublimeRope

ST2 only, use SublimePythonIDE with ST3: Adds Python completions and some IDE-like functions to Sublime Text 2, through the use of the Rope library
GNU General Public License v2.0
250 stars 26 forks source link

"Go to Definition" does not work consistently, provides no feedback when it doesn't work #73

Closed glyph closed 11 years ago

glyph commented 11 years ago

If I have a module like

from some_package.some_module import SomeClass

SomeClass()

and I position my cursor on the invocation of SomeClass(), it often doesn't work. However, if I spell it like this instead:

from some_package.some_module import SomeClass

SomeClass ()

(note the space) then it works fairly reliably.

SublimeRope never tells me what the deal is with the distinction, either; a failed "go to definition" doesn't even show an error message.

I could swear that some recent updates of SublimeRope made this worse, but pinning this down has been exceedingly difficult; it seems to start working and stop working almost at random.

glyph commented 11 years ago

This may be a duplicate of #70 - when I disable linting, "go to definition" works much more reliably. (oddly).

DamnWidget commented 11 years ago

When you disable linter capabilities of SublimeRope or SublimeLinter?

glyph commented 11 years ago

Sorry, let me be clearer: When I disable the SublimeLinter plugin. How do I disable it in SublimeRope?

DamnWidget commented 11 years ago

Set pyflakes_linting to false in sublimerope settings

glyph commented 11 years ago

That does not appear to make a difference.

In fact, even "disable linting" doesn't seem to do much in SublimeLinter, on further inspection. It is very sensitive to some per-process state that goes away when the editor restarts, so it's somewhat finicky to diagnose.

The way to get things working again is either to roll back to 1.6.12 or to disable the SublimeLinter plugin entirely. I am pretty comfortable saying this is a duplicate of #70 now, so I'll close it.

I think that SublimeLinter is monkey-patching something, maybe in the 'ast' module, that is interfering with the way that rope does its parsing.