В этом посте я хочу рассказать про довольно интересную фичу 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
— он меняет формат вывода на более простой для парсинга и понимаемый многими приложениями.
Автор: system29a