Благодаря новому плагину 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 и плагин для VS Code
Для начала установим анализатор PVS‑Studio, чтобы позже проанализировать проект. Установочный файл анализатора вы можете скачать с официального сайта.
Установка анализатора на Windows
В процессе установки анализатора у вас не должно возникнуть трудностей. Тем не менее вы всегда можете воспользоваться инструкцией по установке PVS‑Studio на Windows.
Примечание. На этапе установки 'Select Components' можно выбрать пункт 'Integration with Visual Studio Code'. В результате вместе с анализатором будет установлен и плагин к VS Code.
Установка анализатора на Linux и macOS
Процессы установки анализатора на операционных системах Linux и macOS детально описаны в следующих разделах документации:
Установка плагина к VS Code
Если плагин не был установлен вместе с анализатором, можно сделать это вручную. Чтобы установить плагин 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
В этой команде применяются следующие параметры:
‑t [project/sln] — обязательный параметр, путь до файла проекта или решения;
‑o [outputPath] — путь, по которому будет сгенерирован отчет с результатами анализа. Поддерживаются два формата отчета: 'plog' и 'json'. Формат отчета определяется по заданному расширению файла. В зависимости от версии анализатора и используемой ОС формат по умолчанию может отличаться. Важно отметить, что на данный момент плагин поддерживает работу только с отчетами формата json, поэтому лучше задавать этот параметр явно;
‑r — включает режим подробного логирования в терминале для отслеживания хода выполнения анализа.
Примечание. Запуск анализа из командной строки может отличаться в зависимости от операционной системы и языка программирования анализируемого проекта. Вы можете обратиться к документации PVS‑Studio для получения инструкции по запуску анализа конкретно для вашего случая.
Работа с результатами анализа
Вернемся в VS Code и перейдем во вкладку 'PVS‑Studio'. Здесь кликаем по кнопке 'Open report':
В появившемся диалоговом окне выбираем файл с отчетом. Напомню, что на данный момент плагин работает только с json‑отчетами. Если вы работаете на Windows, ваш отчет мог сгенерироваться в формате 'plog'. В этом случае следует предварительно сконвертировать его в 'json' с помощью прилагаемой к анализатору утилите — 'PlogConverter'. Больше информации о работе с утилитой вы можете получить в разделе документации о просмотре и конвертации результатов анализа.
Интерфейс плагина можно условно разделить на пять областей:
Фильтры по кодам предупреждений, сообщениям и названиям файла.
Фильтры по уровням предупреждений.
Фильтры по группам диагностик.
Функции сохранения и загрузки отчета, а также настройки плагина.
Список предупреждений, представленный в виде таблицы.
С частью функционала мы познакомимся далее. Если же вы захотите получить больше информации о плагине, можете обратиться к документации.
Обратите внимание на область интерфейса под номером 2:
Кнопки этой области позволяют включить/отключить предупреждения с определенным уровнем. Уровень отражает «уверенность» анализатора в том, что предупреждение указывает на ошибку.
Каждой кнопке соответствует число — количество предупреждений данного уровня.
А сейчас почему бы нам не найти какую‑нибудь ошибку в проекте, используя отчет анализатора?
Анализатор сообщает об использовании анонимной функции для отписки от события. Чтобы перейти к коду, дважды кликнем по строке предупреждения:
Действительно, здесь создается анонимная функция, которая используется для отписки от события CollectionChanged. Разработчик не учёл, что все анонимные функции являются уникальными объектами. Таким образом, данная анонимная функция никак не связана ни с одним обработчиком события, а значит и отписка от события выполнена не будет.
Планы развития плагина для VS Code
Уже сейчас плагин предоставляет основной функционал, необходимый для работы с отчетами анализатора PVS‑Studio. Скоро он станет ещё удобнее благодаря возможности запускать анализ непосредственно из плагина. Эта возможность будет реализовываться поэтапно: сначала будет поддержан запуск анализа C и C++ проектов, а затем проектов на C#.
Заключение
В этой статье мы познакомились с принципом работы анализатора кода вместе с новым плагином PVS‑Studio для Visual Studio Code.
Если вы до сих пор не попробовали анализатор, напомню, что вы можете скачать его здесь.
На этом статья завершается, надеюсь она показалась интересной :)
Чистого кода и успешных проектов! До встречи в следующих статьях!