I am getting some disappointing completion and go-to-definition results with ropemacs in places where I use multiple name-bindings to the same object.
Considering my contrived and stylistically challenged example code below, does anyone know why rope would not be presenting completions or go-to-definition results?
Project code sample:
from Package import BigObjectWithLotsOfMethods
class GLOBAL:
variable = None
big = BigObjectWithLotsOfMethods()
GLOBAL.variable = big
Emacs behaviour in question:
When I enter:
big.
then type M-/, I get a list of candidate method names as expected. Hurray for rope!
Yet on the other hand when I enter:
GLOBAL.variable.
for example, and then type M-/ I get the following in the Emacs minibuffer:
Completions for GLOBAL.variable.: [No Match]
Furthermore, please imagine fire()
was a method of BigObjectWithLotsOfMethods
then typing C-c g on the code GLOBAL.variable.fire()
does not take me to the definition of fire()
as expected but rather just outputs the following in the Emacs minibuffer:
Cannot find the definition!
Since GLOBAL.variable
represents simply another name binding to the BigObjectWithLotsOfMethods
instance I am surprised that rope is not doing something intelligent like inferring the definition from what it knows about big
.
The question:
Why is such an apparently trivial level of support for code introspection in the presence of multiple name binding not working under rope? Am I missing something fundamental in my rope project configuration that addresses this for example?
Any help gratefully received.