Clang-Tidy is a popular clang-based tool for static code analysis. CLion shows Clang-Tidy checks the same way as it shows its own built-in code inspections, and quick-fixes for them are available via the -button or Alt+Enter:
General Clang-Tidy settings
Clang-Tidy checks are enabled by default and you can see them as warnings (or messages of other severity level) in the editor. Here you can find details of the Clang-Tidy default configuration in CLion. Note that not all the checks are enabled by default.
You can change the Clang-Tidy configuration in, :
To enable/disable particular checks, use the Clang-Tidy command line format which specifies a comma-separated list of positive and negative globs. Positive globs add subsets of checks, and negative (prefixed with
"-") globs remove them.
For example, the following command line will disable all default checks
-* and enable all
clang-analyzer-* checks except for the
Options for particular checks
Some Clang-Tidy checks have options, either additional or substantial for a check (like those for readability-identifier-naming).
To configure options for particular checks, use the Configure Clang-Tidy checks and options popup.
For example, you can force the
modernize-use-nullptr check to replace any NULL-like macros with
Tuning checks from the editor
Besides the Inspections Settings dialog, certain configurations are accessible from the editor: you can disable a single check, group of checks, or entirely suppress the Clang-Tidy inspection. These actions respectively update the Clang-Tidy command line.
From here you can also suppress a Clang-Tidy inspection for a particular line. In this case, CLion will add a comment
// NOLINT at the end of the specified line.
To use .clang-tidy configuration files instead of CLion settings, clear the Use IDE settings checkbox in the Inspections Settings dialog.
With .clang-tidy files, you can set per-directory configurations: for each source file, Clang-Tidy will attempt to read configuration from a .clang-tidy file located in the closest parent directory.
.clang-tidy files are in YAML format. For the syntax example, let's enable all of the Clang-Tidy checks and provide the additional option to
Custom Clang-Tidy executable
You can work with your own Clang-Tidy executable instead of the bundled one (for example, in order to create your custom checks and use them in CLion).
Provide the path to your custom Clang-Tidy binary in Specify Clang-Tidy executable in the Inspections Settings dialog):(or click