ropemacs在多个名称绑定中遇到的一个相当naff的限制
我得到了一些令人失望的结果,在我对同一对象使用多个名称绑定的地方,我使用了ropemacs查看了定义结果 考虑到我下面的精心设计和风格上受到挑战的示例代码,有人知道为什么rope不会呈现完成或转到定义结果吗 项目代码示例: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
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引擎是否足够聪明来处理这个问题