ropemacs在多个名称绑定中遇到的一个相当naff的限制

ropemacs在多个名称绑定中遇到的一个相当naff的限制,emacs,alias,code-completion,ropemacs,Emacs,Alias,Code Completion,Ropemacs,我得到了一些令人失望的结果,在我对同一对象使用多个名称绑定的地方,我使用了ropemacs查看了定义结果 考虑到我下面的精心设计和风格上受到挑战的示例代码,有人知道为什么rope不会呈现完成或转到定义结果吗 项目代码示例: from Package import BigObjectWithLotsOfMethods class GLOBAL: variable = None big = BigObjectWithLotsOfMethods() GLOBAL.variable = bi

我得到了一些令人失望的结果,在我对同一对象使用多个名称绑定的地方,我使用了ropemacs查看了定义结果

考虑到我下面的精心设计和风格上受到挑战的示例代码,有人知道为什么rope不会呈现完成或转到定义结果吗

项目代码示例:

from Package import BigObjectWithLotsOfMethods

class GLOBAL:
    variable = None

big = BigObjectWithLotsOfMethods()
GLOBAL.variable = big
Emacs行为问题:

from Package import BigObjectWithLotsOfMethods

class GLOBAL:
    variable = None

big = BigObjectWithLotsOfMethods()
GLOBAL.variable = big
当我进入时:

big. 
GLOBAL.variable.
然后键入M-/,我会得到一个候选方法名列表,正如预期的那样。绳子万岁

但另一方面,当我进入时:

big. 
GLOBAL.variable.
例如,然后在Emacs迷你缓冲区中键入M-/I获取以下内容:

Completions for GLOBAL.variable.: [No Match]
Cannot find the definition! 
此外,请想象一下
fire()
是一种方法,它是一种
BigObjectWithLotsOfMethods
的方法,然后在代码
GLOBAL.variable上键入C-cg。fire()
并不像预期的那样将我带到
fire()
的定义,而是在Emacs微缓冲区中输出以下内容:

Completions for GLOBAL.variable.: [No Match]
Cannot find the definition! 
由于
GLOBAL.variable
仅代表绑定到
BigObjectWithLotsOfMethods
实例的另一个名称,所以我很惊讶rope没有做一些智能的事情,比如根据它所知道的
big
推断定义

问题:

为什么在存在多个名称绑定的情况下,对代码内省的支持水平如此之低,而在rope下却不起作用?例如,我的rope项目配置中是否缺少一些基本的东西来解决这个问题


感谢您的帮助

人们可能会认为,由于引入了一种间接层次,绳子不再是智能的

注意,我已经有一段时间没有玩绳子了,因为我发现它不仅对我有帮助,反而对我有很大的阻碍。而且有点慢。主要使用
M-/
和pyflakes/flymake的组合来代替emacs。(
M-/
的一个缺点是必须在第一次键入方法)。当然,如果绳子开始发出更多的响声,花费更少的钱,我可能会忍不住重新审视它

我想知道py-dev,pycharm引擎是否足够聪明来处理这个问题