Благодаря новому плагину PVS-Studio преимущества статического анализа теперь доступны и при работе с редактором Visual Studio Code. В этой статье мы разберём использование плагина от этапа установки до работы с результатами анализа. Присоединяйтесь!
PVS-Studio – это статический анализатор кода, предназначенный для проверки C, С++, С# и Java проектов. В декабре 2022 года командой PVS-Studio было выпущено два плагина: для Qt Creator и для Visual Studio Code. На данный момент оба плагина поддерживают основной функционал, необходимый для работы с результатами анализа. Анализировать проекты непосредственно из интерфейса плагинов пока нельзя, но мы планируем добавить эту возможность в будущих релизах. Сейчас же анализ можно выполнить в плагинах для Rider, Visual Studio или с помощью командной строки.
Но вернемся к главной теме этой статьи. Предлагаю познакомимся с плагином PVS-Studio для Visual Studio Code и узнать, как вы можете использовать его в своей работе.
Для начала установим анализатор PVS-Studio, чтобы позже проанализировать проект. Установочный файл анализатора вы можете скачать с официального сайта.
В процессе установки анализатора у вас не должно возникнуть трудностей. Тем не менее вы всегда можете воспользоваться инструкцией по установке PVS-Studio на Windows.
Примечание. На этапе установки 'Select Components' можно выбрать пункт 'Integration with Visual Studio Code'. В результате вместе с анализатором будет установлен и плагин к VS Code.
Процессы установки анализатора на операционных системах Linux и macOS детально описаны в следующих разделах документации:
Если плагин не был установлен вместе с анализатором, можно сделать это вручную. Чтобы установить плагин PVS-Studio, откройте Visual Studio Code и перейдите на вкладку 'Extensions', затем введите в поле поиска 'PVS-Studio' и кликните по кнопке 'Install':
Давайте опробуем плагин и анализатор, проверив какой-нибудь проект. В этой статье я буду демонстрировать работу анализатора на примере Open Source проекта.
Запуск анализа непосредственно из VS Code пока не поддерживается, однако эту возможность планируется добавить в будущих релизах. Сейчас же предлагаю воспользоваться командной строкой.
Для запуска анализа C#-приложения на операционной системе Linux я использовал команду следующего вида:
pvs-studio-dotnet -t Solution.sln -o PVS-Studio_Result.json -r
В этой команде применяются следующие параметры:
Примечание. Запуск анализа из командной строки может отличаться в зависимости от операционной системы и языка программирования анализируемого проекта. Вы можете обратиться к документации PVS-Studio для получения инструкции по запуску анализа конкретно для вашего случая.
Вернемся в VS Code и перейдем во вкладку 'PVS-Studio'. Здесь кликаем по кнопке 'Open report':
В появившемся диалоговом окне выбираем файл с отчетом. Напомню, что на данный момент плагин работает только с json-отчетами. Если вы работаете на Windows, ваш отчет мог сгенерироваться в формате 'plog'. В этом случае следует предварительно сконвертировать его в 'json' с помощью прилагаемой к анализатору утилите — 'PlogConverter'. Больше информации о работе с утилитой вы можете получить в разделе документации о просмотре и конвертации результатов анализа.
Интерфейс плагина можно условно разделить на пять областей:
С частью функционала мы познакомимся далее. Если же вы захотите получить больше информации о плагине, можете обратиться к документации.
Обратите внимание на область интерфейса под номером 2:
Кнопки этой области позволяют включить/отключить предупреждения с определенным уровнем. Уровень отражает "уверенность" анализатора в том, что предупреждение указывает на ошибку.
Каждой кнопке соответствует число – количество предупреждений данного уровня.
А сейчас почему бы нам не найти какую-нибудь ошибку в проекте, используя отчет анализатора?
Анализатор сообщает об использовании анонимной функции для отписки от события. Чтобы перейти к коду, дважды кликнем по строке предупреждения:
Действительно, здесь создается анонимная функция, которая используется для отписки от события CollectionChanged. Разработчик не учёл, что все анонимные функции являются уникальными объектами. Таким образом, данная анонимная функция никак не связана ни с одним обработчиком события, а значит и отписка от события выполнена не будет.
Уже сейчас плагин предоставляет основной функционал, необходимый для работы с отчетами анализатора PVS-Studio. Скоро он станет ещё удобнее благодаря возможности запускать анализ непосредственно из плагина. Эта возможность будет реализовываться поэтапно: сначала будет поддержан запуск анализа C и C++ проектов, а затем проектов на C#.
В этой статье мы познакомились с принципом работы анализатора кода вместе с новым плагином PVS-Studio для Visual Studio Code.
Если вы до сих пор не попробовали анализатор, напомню, что вы можете скачать его здесь.
На этом статья завершается, надеюсь она показалась интересной :)
Чистого кода и успешных проектов! До встречи в следующих статьях!