Легкий инструмент для рефакторинга Python

Я был очень доволен покупкой Sublime Text 3 для разработки, и, либо изначально, либо через расширения, это программное обеспечение покрывало почти все мои потребности.

Однако единственное, чего я хотел, — это способ проведения рефакторинга, например, с помощью PyRope или лучше. Расширение PyRope для ST3 уже существует , но на самом деле оно не использует механизм рефакторинга. В версии ST2 эта поддержка есть, но она совсем не надежна и часто дает сбой без четкого сообщения об ошибке.

Что я ищу:

  • Я не хочу учиться vimили emacsпросто рефакторить код — если плагин не настолько прост, что вы можете объяснить, как его использовать, в тексте вашего ответа. Извиняюсь.
  • Я не хочу настраивать рабочие области, файлы проектов и тому подобное только для рефакторинга кода. Инструмент должен работать с существующей файловой структурой.
  • Бонусные баллы за приход с .debпакетами.
  • Больше бонусных баллов за присутствие в репозиториях Ubuntu (по крайней мере , у Trusty )
  • Все бонусные баллы, если это на самом деле плагин ST3.

Нецели:

  • Ему не обязательно использовать PyRope, но он должен иметь как минимум «функцию извлечения».
  • Это даже не обязательно должен быть текстовый редактор. Даже такой программы будет достаточно:

    py-refactor extract-function myNewFunction \
                --from mycode.py:42:60 \
                --dry-run
    
Я мог бы легко объяснить, как использовать VimRope или Bicycle Repairman в своем ответе, чего я не мог сделать, так это объяснить, как использовать Vim, в своем ответе.
@Oxinabox Вот что я спросил. :)
Итак, вы согласны с ответом, что это плагин Vim?
@Oxinabox Пока ответ достаточно подробный, да ... Я знаю основы vim (достаточно, чтобы настроить сеть и репозитории системы, а затем установить nano: P), но я никогда раньше не имел дело с плагином .

Ответы (1)

Примечание . Я соучредитель Wingware, создателя Wing IDE для Python.

Вы можете попробовать Wing IDE , в которой есть операции рефакторинга для переименования, перемещения, извлечения кода в функцию или метод и введения переменных. Это целая IDE, но она запускается быстро, ее очень легко настраивать (например, вы можете скрыть то, что вам не интересно) и она автоматически перезагружает код с диска, чтобы вы могли использовать ее вместе с другим редактором.

Вам нужно убедиться, что Wing (и я думаю, что любой инструмент рефакторинга) знает, что такое путь Python, если ваш код не находится в одном каталоге. В противном случае он не может точно знать, к какому модулю относится импорт, и, таким образом, может пропустить использование символа, который вы изменяете. Это может быть неуместно в вашей исходной базе, но все же стоит знать об этом.

Чтобы удовлетворить ваши другие требования: Wing имеет различные особенности клавиатуры и не требует, чтобы вы знали emacs или vim. Он поставляется в формате .deb (и в других формах), но его нет в репозитории Ubuntu, и ваш механизм рефакторинга недоступен в виде плагина ST3 (извините!).

Это «Рекомендации по программному обеспечению». Вы рекомендуете это из личного опыта или просто сообщаете, что вы считаете правдой по этому поводу?
@IraBaxter Он в команде разработчиков
@Fractalist: Хорошо. Теперь, по крайней мере, его опыт и связь с ним ясны.
Спасибо, что разъяснили это. Извините, это был мой первый пост здесь, и я сделал это не с того аккаунта.