Emacs: завершенные методы базового класса для Python
Можно ли сделать либо jedi.el
или же anaconda-mode
полные методы базового класса? Например, при создании подклассов html.parser.HTMLParser
Я ожидаю, чтобы завершить следующий код в точке (1)
(базовый класс имеет такие методы, как handle_data
или же handle_starttag
):
import html.parser
class MyParser(html.parser.HTMLParser):
def handle_ # (1)
1 ответ
Я провел некоторое исследование по этой проблеме и обнаружил, что она реализована в последней версии jedi (0.10.0). К сожалению, эта версия находится в стадии разработки и не доступна из pip. Тем не менее, многие редакторы используют 0.10.0: Atom, VsCode и даже jedi-vim от автора jedi.
Обновление версии джедая в режиме анаконды легко: https://github.com/nightuser/anaconda-mode. Фактическое изменение - только одна строка. Часть Python anaconda-mode должна быть переустановлена - просто удалите anaconda-mode
каталог. Расположение по умолчанию ~/.emacs.d/anaconda-mode
для Emacs и ~/.emacs.d/.cache/anaconda-mode
для Spacemacs.
upd: Похоже, что скоро выйдет 0.10.0: https://github.com/davidhalter/jedi/issues/740.
upd2: он был выпущен и знаю, что все работает из коробки. Просто удали anaconda-mode
каталог, и он автоматически установит последнюю версию.