Работа PVS-Studio в JetBrains WebStorm и PhpStorm
- Установка плагина с диска
- Установка анализатора PVS-Studio
- Ввод лицензии
- Настройки плагина
- Проверка кода с помощью PVS-Studio
- Работа с результатами анализа
Анализатор PVS-Studio можно использовать при работе в средах разработки JetBrains WebStorm и PhpStorm. Плагины PVS-Studio для этих IDE предоставляют удобный графический интерфейс для запуска анализа JavaScript и TypeScript проектов и отдельных файлов, а также для работы с предупреждениями анализатора.
Во время программы раннего доступа (EAP) плагин доступен для скачивания только с нашего сайта.
Установка плагина с диска
Для установки плагина PVS-Studio из заранее скачанного установочного архива откройте окно настроек с помощью команды File > Settings > Plugins, нажмите на шестерёнку и выберите Install Plugin from Disk.

После выбора архива с плагином в разделе Installed появится элемент PVS-Studio for JavaScript and TypeScript.

Для применения изменений нажмите кнопку Restart IDE. После перезапуска среды разработки плагин PVS-Studio будет готов к работе.
Установка анализатора PVS-Studio
Для работы анализатора PVS-Studio в средах JetBrains WebStorm и PhpStorm, помимо установки IDE-плагина, требуется установить ядро анализатора и его зависимости.
Если вы устанавливали плагин через программу установки PVS-Studio для Windows, то все необходимые для работы компоненты уже должны быть установлены и можно пропустить этот шаг.
Если же плагин ставился отдельно, скачайте и установите PVS-Studio для необходимой платформы. Дополнительно потребуется установить C++ компоненты анализатора.
Ввод лицензии
Процесс ввода лицензии в WebStorm/PhpStorm подробно описан в документации.
Настройки плагина
Панель настроек плагина состоит из нескольких вкладок.
Settings — настройки ядра анализатора PVS-Studio. При наведении курсора мыши на название настройки появляется её описание.

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

Analysis Paths — содержит маски для имён файлов и путей, которые будут дополнительно включены или исключены из анализа.

Registration — содержит информацию о действующей лицензии.

Проверка кода с помощью PVS-Studio
Для анализа текущего проекта перейдите в Tools > PVS-Studio > Check Project.

Работа с результатами анализа
Во время анализа результаты работы выводятся в таблицу окна PVS-Studio. Сообщения в таблице можно сортировать по любому из них. Для изменения порядка сортировки необходимо кликнуть на заголовок столбца.

Таблица состоит из семи столбцов (слева направо):
- Favorite — помечает предупреждение и позволяет быстро его найти.
- Code и CWE — открывают в браузере страницу с подробным описанием предупреждения или потенциальной уязвимости.
- SAST — отображает соответствие предупреждения согласно различным стандартам защищённости или безопасности, например SEI CERT, MISRA, AUTOSAR, и т. д.
- Message — содержит краткое описание предупреждения.
- Position — содержит список файлов, связанных с сообщением.
- False Alarms —отображает сообщения, помеченные как ложные срабатывания. Подробнее про работу с ложными срабатываниями будет написано в соответствующем подразделе.
Дважды нажмите на строку в таблице, чтобы открыть файл на строке, где было выдано предупреждение анализатора:

Над таблицей есть кнопки-стрелки, позволяющие переключаться между предыдущим (Alt + [) или следующим (Alt + ]) сообщением анализатора, и открывать в редакторе кода файл, на который это предупреждение выдано.
Над таблицей есть несколько фильтров по уровню достоверности предупреждений: High, Medium, Low и Fails (ошибки анализатора).

Нажмите на лупу, чтобы открыть дополнительную панель с полями ввода для столбцов Code, CWE, SAST, Message и Position. Вводите в них текст, чтобы отфильтровать сообщения из таблицы по выбранному полю или нескольким полям.

Чтобы открыть дополнительную панель настроек, нажмите на кнопку в левом верхнем углу:

Чтобы открыть главное окно настроек плагина, также доступное через команду меню Tools > PVS-Studio > Settings, нажмите на кнопку с шестерёнкой.
Просмотр самых интересных предупреждений анализатора
Если вы только начали изучать инструмент статического анализа и хотите узнать, на что он способен, воспользуйтесь механизмом Best Warnings. Он покажет наиболее важные и достоверные предупреждения.
Чтобы их посмотреть, нажмите на кнопку Best:
Работа с ложными срабатываниями
Бывают ситуации, когда предупреждение анализатора указывает на код, но программисту совершенно очевидно, что ошибки там нет. Это ложное срабатывание (false positive).
В плагине PVS-Studio можно пометить предупреждение анализатора как ложное срабатывание. Такая пометка позволяет скрывать эти предупреждения при последующем анализе.
Для разметки ложных срабатываний выберите одно или несколько сообщений анализатора в таблице PVS-Studio, нажмите правой кнопкой мыши на любой строке в таблице и в контекстном меню выберите пункт Mark selected messages as False Alarms:

Анализатор добавит к строке, на которую выдаётся предупреждение, комментарий специального вида: //-Vxxx, где xxx — номер диагностического правила PVS-Studio. Комментарий можно добавить в код вручную.
Помеченные ранее ложные срабатывания можно показать в таблице окна PVS-Studio с помощью настройки Show False Alarms. Она доступна через команду меню Tools > PVS-Studio > Settings:

С помощью команды контекстного меню Remove False Alarm Marks From Selected Messages можно удалить отметку ложного срабатывания с выбранных сообщений.
Подробную информацию о подавлении предупреждений, выдаваемых анализатором PVS-Studio, а также сведения о других способах подавления, можно найти в документации.
Контекстное меню таблицы предупреждений и горячие клавиши
При нажатии правой кнопкой мыши на строке с сообщением анализатора в таблице окна PVS-Studio, откроется контекстное меню, содержащее дополнительные команды для выбранных сообщений анализатора. Комбинации горячих клавиш можно переопределить в настройках File > Settings > Keymap, в поле поиска введите PVS-Studio:

- Copy Selected Messages To Clipboard (
Ctrl + C) — копирует все выбранные в окне с результатами анализа плагина PVS-Studio предупреждения в буфер обмена. - Mark Selected Messages As Important (
Alt + Y,Alt + Y) — позволяет пометить звёздочкой предупреждение, чтобы в дальнейшем легко его найти при сортировке по столбцу Favorite. - Mark Selected Messages As False Alarms (
Alt + Y,Alt + A) — позволяет разметить сообщение анализатора как ложное срабатывание, добавив в код, на который выдано предупреждение, комментарий специального вида. Более подробно про работу с ложными срабатываниями рассказано в соответствующем подразделе. - Remove False Alarm Marks From Selected Messages (
Alt + Y,Alt + R) — убирает с размеченных предупреждений анализатора пометку ложного срабатывания. - Hide All
<номер диагностики>Errors (Alt + Y,Alt + H) — позволяет скрыть все срабатывания с этим номером. - Exclude From Analysis — позволяет добавить путь или часть пути к файлу, в котором найдено предупреждение анализатора, в список исключённых из анализа директорий. Все файлы, пути до которых попадут под данный фильтр, будут исключены из анализа.
Подменю Show Columns открывает список с именами столбцов, которые можно скрыть или отобразить.

Сохранение и загрузка результатов анализа
Для сохранения или загрузки результатов работы анализатора воспользуйтесь командами главного меню, доступными через Tools > PVS-Studio:

- Open Report — открывает
.json-файл отчёта и загружает его содержимое в таблицу окна PVS-Studio. - Save Report — сохраняет все предупреждения из таблицы (даже отфильтрованные) в
.json-файл отчёта. Если текущий результат анализа еще ни разу не сохранялся, то будет предложено задать имя и место для сохранения отчета. - Save Report As — сохраняет все предупреждения из таблицы (даже отфильтрованные) в
.json-файл отчёта, всегда предлагая выбрать место сохранения отчёта на диске.