Это плагин анализа кода C/C ++ для VSCODE, который показывает отчеты об ошибках, обнаруженные с помощью статического анализатора Clang и Clang Tidy Analyzers, используя Codechecker в качестве бэкэнда.

PATH .compile_commands.json .F9 / Shift-F9 по умолчанию) 


Codechecker работает, читая сгенерированную базу данных компиляции, часто называемую compile_commands.json , и выполняя конкретные анализы на основе этого.
CMake обладает встроенной поддержкой для создания базы данных компиляции. Установите переменную среды CMAKE_EXPORT_COMPILE_COMMANDS=ON , и база данных компиляции должна находиться в вашей папке сборки. Если вы используете расширение CMake Tools для VS -кода, вы можете добавить этот флаг в настройки расширения в рамках Cmake > Build Environment .
make и другие системы сборки не имеют встроенной поддержки для генерации базы данных компиляции, но Codechecker может генерировать одну на основе команды сборки. Чтобы сгенерировать один, вы можете использовать командный CodeChecker log -b "[full build command]" -o .codechecker/compile_commands.json .
Для автоматизации процесса расширение предоставляет способы автоматического запуска команды CodeChecker log . Во -первых, в настройках расширения установите CodeChecker > Executor > Log build command , а затем используйте либо задачу кода VS, либо команду Code Code Code VS CodeChecker: Run CodeChecker Log для выполнения анализа. Вы также можете запустить CodeChecker: Preview CodeChecker log in terminal чтобы иметь более мелкозернистый контроль над параметрами, передаваемыми Codechecker.
Расширение использует версию Codechecker 6.18.2 или более поздней версии. Если ваш путь установки отличается, или кодекер не находится в переменной среды PATH , путь к нему может быть установлен вручную под Preferences > Settings > Extensions > CodeChecker > Executable path .
Расширение может запустить анализ кодекереров в вашем проекте, либо при сохранении файла, либо при использовании одной из команд CodeChecker: Analyze . Вы можете остановить анализ, нажав кнопку «Отмена» на уведомлении Codechecker - частичные результаты сохраняются автоматически.
Анализ полностью настраивается, и полученная командная строка Codechecker может быть предварительно просмотрено с помощью команды CodeChecker: Show full command line (для поддерживаемых аргументов, запустить CodeChecker analyze --help ). Настройки для текущего рабочего пространства могут быть установлены на вкладке Workspace в настройках. Автоматический анализ по сохранению также может быть настроен.
Подробную информацию о параметрах конфигурации можно найти в настройках.
Расширение предоставляет следующие команды:
| Командование | Описание |
|---|---|
CodeChecker: Analyze current file | Анализирует в настоящее время открытый исходный файл с использованием Codechecker. Можно также вызвать, нажав на кнопку Re-analyze current file на боковой панели Codechecker.Полезно, когда Run On Save выключается в настройках плагина. |
CodeChecker: Analyze selected files... | Анализирует файлы, выбранные пользователем, используя Codechecker. Принимает несколько файлов в качестве ввода. |
CodeChecker: Analyze entire project | Анализирует весь проект с использованием Codechecker. Можно также вызвать, нажав на кнопку Re-analyze entire project на боковой панели Codechecker.Предупреждение: Полный анализ может занять минуты или даже часы на более крупных проектах. |
CodeChecker: Stop running CodeChecker instance | Останавливает в настоящее время запущенный анализ. Частичные результаты сохраняются и обновлены. |
CodeChecker: Run CodeChecker log | Обновляет базу данных компиляции путем создания текущего проекта. Вариант с пользовательской командой сборки, определенной пользователем, также доступен. |
CodeChecker: Preview CodeChecker log in terminal | Текущая команда журнала Codechecker вставлена в новое окно терминала, где его можно отредактировать перед запуском. |
CodeChecker: Show database setup dialog | Показывает диалоговое окно для выбора пути к существующей базе данных компиляции или для создания новой. |
CodeChecker: Next reproduction step ,CodeChecker: Previous reproduction step | Перемещается между отображаемым шагом пути репродукции. Вы также можете перейти непосредственно к шагу отчета через боковую панель Codechecker. По умолчанию ключевые связки: Ctrl-F7 , Ctrl-Shift-F7 соответственно. |
CodeChecker: Show full CodeChecker analyze command line | Показывает полную командную строку CodeChecker, используемая для анализа файлов. Полезно, если вы хотите просмотреть параметры анализатора перед запуском, или если вы хотите запустить анализ вручную. |
CodeChecker: Show Output | Ориентируется на выходы Codechecker в редакторе. Журналы плагина, а также выходные данные предыдущих прогонов Codechecker отображаются здесь. |
CodeChecker: Reload metadata | Перезагрузить файл metadata.json 's Metadata.json. Можно также вызвать, нажав на кнопку Reload CodeChecker metadata на боковой панели CodeChecker. |
Команды анализа также доступны в форме задачи:
| Задача | Эквивалентная команда |
|---|---|
{ type: "CodeChecker", taskType: "currentFile" } | CodeChecker: Analyze current file |
{ type: "CodeChecker", taskType: "selectedFiles", selectedFiles: [] } | CodeChecker: Analyze selected files...Выбранные файлы перечислены в массиве selectedFiles , используя полные пути. |
{ type: "CodeChecker", taskType: "project" } | CodeChecker: Analyze entire project |
{ type: "CodeChecker log" } | CodeChecker: Run CodeChecker log |
{ type: "CodeChecker log", customBuildCommand: "..." } | CodeChecker: Run CodeChecker log with custom build command |
Поскольку пути, связанные с Codechecker, сильно различаются между системами, предоставляются следующие настройки, доступные через меню настроек:
| Имя | Описание |
|---|---|
| Codechecker> Бэкэнд> Выходная папка (по умолчанию: ${workspaceFolder}/.codechecker ) | Выходная папка, где хранятся файлы анализа кодеккеров. |
| Codechecker> Бэкэнд> Путь базы данных компиляции (по умолчанию: (пусто) ) | Путь к пользовательской базе данных компиляции, в случае пользовательской системы сборки. Диалог настройки базы данных устанавливает путь только для текущего рабочего пространства. Оставьте пустой, чтобы использовать базу данных в выводах Codechecker, или для использования автоматической обработки Codechecker для многооверных рабочих пространств. |
| Codechecker> Редактор> Пользовательские тяжести ошибок (По умолчанию: null ) | Управляйте, как в редакторе отображается ошибка, в зависимости от ее серьезности. Ошибки могут отображаться как «ошибка», «предупреждение», «информация» или «подсказка». По умолчанию все, кроме тяжести «стиля», отображается как ошибка. Настройка как массив, такой как { "UNSPECIFIED": "Warning", "LOW": "Warning" } |
| Codechecker> Редактор> Показать диалог базы данных (по умолчанию: on ) | Управляют диалогом при открытии рабочей области без базы данных компиляции. |
| Codechecker> Редактор> Включить Codelens (по умолчанию: on ) | Включите Codelens для отображения пути воспроизведения в редакторе. |
| Codechecker> Исполнитель> включить уведомления (по умолчанию: on ) | Включить уведомления, связанные с кодекерером. |
| Codechecker> Исполнитель> Исполняемый путь (По умолчанию: CodeChecker ) | Путь к исполняемому файлу Codechecker. Может быть исполняемым в переменной PATH пути или абсолютным путем к одному. |
| Codechecker> Исполнитель> Тайм -аут анализа (По умолчанию: 60 ) | Тайм -аут (в секундах) для каждого отдельного анализа, проводимого командой Codechecker Analys, установила для 0 для отключения тайм -аута. |
| Codechecker> Исполнитель> Количество потоков (по умолчанию: (пусто) ) | Количество потоков Codechecker - оставьте пустым, чтобы использовать все потоки. |
| Codechecker> Исполнитель> Аргументы (по умолчанию: (пусто) ) | Дополнительные аргументы для CodeChecker analyze . Например, если вы хотите использовать файл конфигурации для Codechecker Pass '-config <config.json>'. Для подтвержденных аргументов запустите CodeChecker analyze --help .ПРИМЕЧАНИЕ. Полученная командная строка может быть предварительно просмотрено командной командной строкой Command CodeChecker: Show full CodeChecker analyze command line . |
| Codechecker> Исполнитель> Команда строительства журнала (По умолчанию: make ) | Команда сборки по умолчанию используется при запуске CodeChecker log через команды или задачи. |
| Codechecker> Исполнитель> журнал аргументы (по умолчанию: (пусто) ) | Дополнительные аргументы в CodeChecker log .Примечание. Полученная командная строка может быть предварительно просмотрено с помощью команды CodeChecker: Preview CodeChecker log in terminal . |
| Codechecker> Исполнитель> запустить на сохранении (по умолчанию: on ) | Управляет автоматическим запуском Codechecker при сохранении файла. |
Примечание . Если вы уже установили это расширение с рынка, сначала удалите его, чтобы предотвратить конфликты с вашей собственной сборкой.
Это расширение использует node.js (v12+) и пряжу (v2+). Рекомендованные против расширения кода - это Eslint и TypeScript+WebPack Matcher Matcher
Чтобы построить и запустить расширение, сделайте следующее:
yarn install --immutable устанавливать зависимостиcode . ) Чтобы запустить тесты, выберите тесты на расширение в качестве конфигурации активной отладки или запустите yarn run test .
Расширение выпускается по лицензии Apache 2.0, той же лицензии, что и Codechecker.