Emacs:为Python完成基类方法

5

是否可以使jedi.elanaconda-mode完成基类方法? 例如,当子类化html.parser.HTMLParser时,我希望它能在点(1)处完成功能下列代码(基类具有像handle_datahandle_starttag这样的方法):

import html.parser
class MyParser(html.parser.HTMLParser):
    def handle_  # (1)

你可以考虑在 [emacs.se] 网站上提问。(这并不完全是离题,因为你询问的是编程模式而不是一般编辑,但这可能会扩大专家的可用池)。 - Toby Speight
1个回答

2
我已经对这个问题进行了一些研究,发现它在最新版本的Jedi(0.10.0)中得到了实现。不幸的是,这个版本目前处于开发状态,无法通过pip获得。然而,许多编辑器都使用了0.10.0:Atom、VsCode,甚至是Jedi的作者开发的jedi-vim。
在anaconda-mode中更新jedi版本很容易:https://github.com/nightuser/anaconda-mode。实际更改只需要一行代码。必须重新安装anaconda-mode的Python部分——只需删除anaconda-mode目录即可。Emacs的默认位置是~/.emacs.d/anaconda-mode,Spacemacs的默认位置是~/.emacs.d/.cache/anaconda-mode
更新:upd:看起来0.10.0很快就会发布:https://github.com/davidhalter/jedi/issues/740
更新2:upd2:它已经发布了,现在一切都可以直接使用。只需删除anaconda-mode目录,它就会自动安装最新版本。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接