﻿# Работа PVS\-Studio в JetBrains WebStorm и PhpStorm

Анализатор PVS\-Studio можно использовать при работе в средах разработки JetBrains WebStorm и PhpStorm\. Плагины PVS\-Studio для этих IDE предоставляют удобный графический интерфейс для запуска анализа JavaScript и TypeScript проектов и отдельных файлов, а также для работы с предупреждениями анализатора\.

## Установка плагина из официального репозитория JetBrains

Для установки плагина PVS\-Studio из официального репозитория JetBrains нужно открыть окно настроек с помощью команды **File** \> **Settings** \> **Plugins**, выбрать в окне вкладку **Marketplace**, и ввести в строке поиска **PVS\-Studio**\. В результатах поиска появится плагин PVS\-Studio\.

Далее нужно нажать кнопку **Install** напротив найденного плагина PVS\-Studio\. После того как установка плагина будет завершена, нужно нажать кнопку **Restart IDE**:

![WebStorm_ru/image1.png](https://import.viva64.com/docx/blog/WebStorm_ru/image1.png)

Перезапустив среду разработки, можно начать пользоваться плагином PVS\-Studio для проверки кода\.

## Установка плагина из репозитория PVS\-Studio

Помимо официального репозитория JetBrains, плагин PVS\-Studio также доступен из собственного репозитория PVS\-Studio\. Для установки плагина из репозитория PVS\-Studio сначала нужно добавить репозиторий в IDE\. Для этого нужно открыть окно установки плагинов с помощью команды меню **File \> Settings \> Plugins**\.

![WebStorm_ru/image2.png](https://import.viva64.com/docx/blog/WebStorm_ru/image2.png)

Далее, нажать на шестеренку в правом верхнем углу и в выпадающем списке выбрать **Manage Plugin Repositories**\.  

В открывшемся окне добавьте путь [http://files\.pvs\-studio\.com/java/beta/pvsstudio\-webstorm\-plugins/updatePlugins\.xml](http://files.pvs-studio.com/java/beta/pvsstudio-webstorm-plugins/updatePlugins.xml) и нажмите **OK**\.

Последний шаг установки аналогичен установке плагина из официального репозитория — нужно открыть вкладку **Marketplace**, где в поиск ввести **PVS\-Studio**\. После применения данного фильтра выбрать плагин **PVS\-Studio for JavaScript and TypeScript**, нажать **Install** и перезапустить среду разработки\.

## Установка анализатора PVS\-Studio

Для работы анализатора PVS\-Studio в средах JetBrains WebStorm и PhpStorm, помимо установки IDE\-плагина, требуется установить ядро анализатора и его зависимости\.

Если вы устанавливали плагин через программу установки PVS\-Studio для Windows, то все необходимые для работы компоненты уже должны быть установлены и можно пропустить этот шаг\.

Если же плагин ставился отдельно, скачайте и установите PVS\-Studio для необходимой платформы\. Дополнительно потребуется установить C\+\+ компоненты анализатора\.

## Ввод лицензии

Процесс ввода лицензии в WebStorm/PhpStorm подробно описан в [документации](https://pvs-studio.ru/ru/docs/manual/0046/#JetBrainsProducts)\.

## Настройки плагина

Панель настроек плагина состоит из нескольких вкладок\.

**Settings** — настройки ядра анализатора PVS\-Studio\. При наведении курсора мыши на название настройки появляется её описание\. 

![WebStorm_ru/image3.png](https://import.viva64.com/docx/blog/WebStorm_ru/image3.png)

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

![WebStorm_ru/image4.png](https://import.viva64.com/docx/blog/WebStorm_ru/image4.png)

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

![WebStorm_ru/image5.png](https://import.viva64.com/docx/blog/WebStorm_ru/image5.png)

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

![WebStorm_ru/image6.png](https://import.viva64.com/docx/blog/WebStorm_ru/image6.png)

## Проверка кода с помощью PVS\-Studio

Для анализа текущего проекта перейдите в **Tools \> PVS\-Studio \> Check Project**\.

![WebStorm_ru/image7.png](https://import.viva64.com/docx/blog/WebStorm_ru/image7.png)

## Работа с результатами анализа

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

![WebStorm_ru/image8.png](https://import.viva64.com/docx/blog/WebStorm_ru/image8.png)

Таблица состоит из семи столбцов \(слева направо\):

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

Дважды нажмите на строку в таблице, чтобы открыть файл на строке, где было выдано предупреждение анализатора: 

![WebStorm_ru/image9.png](https://import.viva64.com/docx/blog/WebStorm_ru/image9.png)

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

Над таблицей есть несколько фильтров по уровню достоверности предупреждений: **High**, **Medium**, **Low** и **Fails** \(ошибки анализатора\)\.

![WebStorm_ru/image10.png](https://import.viva64.com/docx/blog/WebStorm_ru/image10.png)

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

![WebStorm_ru/image11.png](https://import.viva64.com/docx/blog/WebStorm_ru/image11.png)

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

![WebStorm_ru/image12.png](https://import.viva64.com/docx/blog/WebStorm_ru/image12.png)

Чтобы открыть главное окно настроек плагина, также доступное через команду меню **Tools \> PVS\-Studio \> Settings**, нажмите на кнопку с шестерёнкой\. 

### Просмотр самых интересных предупреждений анализатора

Если вы только начали изучать инструмент статического анализа и хотите узнать, на что он способен, воспользуйтесь механизмом [Best Warnings](https://pvs-studio.ru/ru/docs/manual/6532/)\. Он покажет наиболее важные и достоверные предупреждения\. 

Чтобы их посмотреть, нажмите на кнопку **Best**:

![WebStorm_ru/image13.png](https://import.viva64.com/docx/blog/WebStorm_ru/image13.png)

### Работа с ложными срабатываниями

Бывают ситуации, когда предупреждение анализатора указывает на код, но программисту совершенно очевидно, что ошибки там нет\. Это [ложное срабатывание](https://pvs-studio.ru/ru/blog/terms/6461/) \(false positive\)\. 

В плагине PVS\-Studio можно пометить предупреждение анализатора как ложное срабатывание\. Такая пометка позволяет скрывать эти предупреждения при последующем анализе\. 

Для разметки ложных срабатываний выберите одно или несколько сообщений анализатора в таблице **PVS\-Studio**, нажмите правой кнопкой мыши на любой строке в таблице и в контекстном меню выберите пункт **Mark selected messages as False Alarms**:

![WebStorm_ru/image14.png](https://import.viva64.com/docx/blog/WebStorm_ru/image14.png)

Анализатор добавит к строке, на которую выдаётся предупреждение, комментарий специального вида: `//-Vxxx`, где `xxx` — номер диагностического правила PVS\-Studio\. Комментарий можно добавить в код вручную\.

Помеченные ранее ложные срабатывания можно показать в таблице окна PVS\-Studio с помощью настройки **Show False Alarms**\. Она доступна через команду меню **Tools \> PVS\-Studio \> Settings**:

![WebStorm_ru/image15.png](https://import.viva64.com/docx/blog/WebStorm_ru/image15.png)

С помощью команды контекстного меню **Remove False Alarm Marks From Selected Messages** можно удалить отметку ложного срабатывания с выбранных сообщений\.

Подробную информацию о подавлении предупреждений, выдаваемых анализатором PVS\-Studio, а также сведения о других способах подавления, можно найти в [документации](https://pvs-studio.ru/ru/docs/manual/0017/)\.

### Контекстное меню таблицы предупреждений и горячие клавиши

При нажатии правой кнопкой мыши на строке с сообщением анализатора в таблице окна PVS\-Studio, откроется контекстное меню, содержащее дополнительные команды для выбранных сообщений анализатора\. Комбинации горячих клавиш можно переопределить в настройках **File \> Settings \> Keymap**, в поле поиска введите **PVS\-Studio**:

![WebStorm_ru/image16.png](https://import.viva64.com/docx/blog/WebStorm_ru/image16.png)

* **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** открывает список с именами столбцов, которые можно скрыть или отобразить\.

![WebStorm_ru/image17.png](https://import.viva64.com/docx/blog/WebStorm_ru/image17.png)

### Сохранение и загрузка результатов анализа

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

![WebStorm_ru/image18.png](https://import.viva64.com/docx/blog/WebStorm_ru/image18.png)

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