CLion постоянно анализирует ваш код на предмет возможных ошибок. Подозрительные фрагменты кода подсвечиваются в редакторе. Кликайте на желтые и красные отметки в правом поле редактора, чтобы перейти к обнаруженным проблемам. Навигация от одной ошибки к другой также возможна по нажатию F2/Shift+F2. Индикатор состояния в верхней части поля указывает на общий статус файла.
CLion находит ошибки компиляции, выявляет неэффективный код и даже производит анализ потока данных в вашей программе для поиска недостижимого/неиспользуемого кода, а также проблем в структуре кода.
CLion предоставляет более 40 инспекций для обнаружения проблем в коде на C и C++, а также немало проверок для других языков.
Чтобы исправить ошибку, поместите курсор на подсвеченную область, нажмите Alt+Enter и выберите один из предложенных вариантов быстрых исправлений. Также можно открыть контекстное меню, кликнув на значок лампочки рядом со строкой.
Вы можете попросить CLion исправить похожие проблемы по всему проекту. А если вы считаете, что какая-то проверка неактуальна, ее можно проигнорировать в конкретной области.
Для каждой инспекций кода есть подробное описание. Вы можете настроить уровень серьезности для каждой инспекции (опечатка, предупреждение, ошибка), а в некоторых случаях даже изменить ее параметры в соответствии с вашими требованиями.
C помощью пункта меню Code | Inspect Code
вы можете одновременно запустить несколько проверок (или даже все сразу).
Если вам нужно устранить конкретную проблему по всей кодовой базе, используйте опцию запуска инспекции по имени (Ctrl + Alt + Shift + I) и выберите необходимую область действия. Откроется отдельное окно с результатами проверки, в котором вы можете перегруппировать ошибки и применить быстрые исправления для всех проблем одновременно, если это возможно.
CLion предоставляет интеграцию с инструментом для анализа кода Clang-Tidy. Проверки из Clang-Tidy выглядят так же, как и проверки встроенного анализатора кода, и по нажатию Alt+Enter для них доступны автоматические исправления.
Перейдите в меню Settings/Preferences | Editor | Inspections | C/C++ | General | Clang-Tidy, чтобы настроить список включенных/выключенных проверок. В текстовом поле используется формат командной строки Clang-Tidy. Описание конфигурации по умолчанию находится здесь. Вместо настроек IDE можно использовать конфигурационные файлы .clang-tidy.
Вы можете включить проверки C++ Core Guidelines или Clang Static Analyzer, попробовать проверки Modernize или добавить свои собственные — они автоматически появятся в редакторе CLion (для добавления пользовательских проверок нужно заменить бинарник Clang-Tidy в меню Settings/Preferences | Languages & Frameworks | C/C++).
В CLion есть несколько инспекций, реализованных на основе движка Clangd:
Для проверки на наличие неиспользуемых заголовочных файлов предлагаются 3 стратегии обнаружения: консервативная, агрессивная и стратегия по умолчанию (Detect not directly used), наиболее близкая к принципу Include What You Use.
С помощью анализа потоков данных CLion отслеживает потоки данных в коде и выявляет потенциальные проблемы. Помимо локального анализа, производимого в рамках одной функции, CLion выполняет глобальный анализ, который принимает в качестве единицы анализа целую единицу трансляции программы. Глобальный анализ потоков данных не только расширяет существующие проверки, но и предоставляет несколько совершенно новых.
CLion проверяет ваш код на соответствие стандартам MISRA C 2012 и MISRA C++ 2008. Полный список поддерживаемых проверок есть на странице CLion в Confluence.