Pull to refresh

Подключение сторонних инструментов в IntelliJ IDEA на примере pylint

Website development *Python *Programming *
В этом посте я хочу рассказать про довольно интересную фичу IntelliJ IDEA — подключение сторонних утилит, а также продемонстрировать её на довольно типичном примере: я подключу pylint — анализатор кода для python проектов.

External Tools


В IDEA есть интересная возможность использовать сторонние утилиты из интерфейса самой IDE. Добавлять таким образом можно всё что угодно — скрипты, анализаторы кода, средства рендеринга ресурсов и подсчета статистики. И IDEA предоставляет несколько крутых решений, обеспечивающих комфорт использования утилит, которые вы подключите.

Ну что, попробуем подключить какой-нибудь тул?

pylint


pylint — статический анализатор кода для python. Его функциональность частично пересекается со встроенным анализатором кода в IDEA, но это не отменяет его полезность во многих случаях. pylint проверяет соответствие кода стандартам PEP8 и анализирует код на потенциальные ошибки.

Обычно pylint используют либо через консоль, либо через плагины, но вот для IDEA плагина нет.



Если посмотреть на вывод программы, можно заметить, что каждое замечание относится к конкретной строчке кода и хотелось бы иметь удобную навигацию по файлам и строчкам. Именно этого мы будем добиваться подключением этого тула к IDEA.

Подключаем pylint к IDEA


Добавить новый сторонний инструмент можно в настройках Settings -> External Tools





Как вы наверняка заметили, всё, что надо для того, чтобы программа работала из интерфейса IDEA, нужно всего ничего — указать имя, путь к программе, аргументы и рабочую директорию. Самое интересное здесь — макро-переменные, мощный инструмент взаимодействия программы, юзера и IDE. Взгляните:



Можно передать всё, что угодно: от путей директорий, файлов и проектов до выделенных фрагментов, номеров строчек и полученного из диалогового окошка текста.

В нашем случае нам понадобился только абсолютный путь до файла (почему абсолютный, поясню чуть ниже).

Наконец, мы перейдём к тому, что мы изначально желали — адресации по замечаниям pylint. Перейдем в секцию Output Filters:



Именно здесь настраивается то, что нам нужно — по регулярному выражению IDEA находит ссылки на строчки в файле.

Всё, можно пользоваться, вызвать наш тул можно из меню tools:



Посмотрим на результат запуска:



It works! Таким образом можно внедрять много других полезных штук.

Осталось только сказать про парочку нюансов:

  • На данный момент в IDEA есть баг, из-за которого этот самый pylint падает на файлах, где есть символы в UTF-8. Вы можете посмотреть/проголосовать за тикет
  • Парсер путей файлов почему-то понимает только абсолютные пути, пути относительно проекта парсить не получается. Именно поэтому pylint настроен довольно странно — рабочая папка / нужна для того, чтобы в выводе были абсолютные пути файлов.
  • pylint запускается с особенным ключем --output-format=parseable — он меняет формат вывода на более простой для парсинга и понимаемый многими приложениями.
Tags: intellij ideapythonexternal toolsсторонние инструментыideideapylint
Hubs: Website development Python Programming
Total votes 28: ↑25 and ↓3 +22
Comments 6
Comments Comments 6

Popular right now