Preserve ConfigurationsΒΆ
OCLint can load configuration files (/etc/oclint
, ~/.oclint
and .oclint
) and populates arguments from there.
There are three levels of configurations files-
- System Configuration File
- is saved into
$(/path/to/bin/oclint)/../etc/oclint
, whenoclint
main binary is installed into/bin/oclint
for the most common case, then this is the regular/etc/oclint
file. The configurations saved into this file change the behaviors of OCLint throughout the entire system. - User Configuration File
- is preserved to
~/.oclint
, which is under the home directory of the current user. User preferences can be saved into this file, and only scope the current user. Configurations in this file can override the existing ones in the system configuration file. - Project Configuration File
- is usually placed at the root folder of the project, where
oclint
is usually invoked from. This file is scanned and configurations are only for the current project. Configurations in this file can override the ones in user configuration file, and in sequence, override the ones in system configuration file.
Arguments passing to the command line invocation would override the ones in the configuration file.
The acceptable configuration file is written in YAML format, with the following available options:
Option | Type | Mapping Command Option |
---|---|---|
rules | List of strings | -rule |
disable-rules | List of strings | -disable-rule |
rule-paths | List of strings | -R |
rule-configurations | List of associative arrays | -rc |
output | String | -o |
report-type | String | -report-type |
max-priority-1 | Integer | -max-priority-1 |
max-priority-2 | Integer | -max-priority-2 |
max-priority-3 | Integer | -max-priority-3 |
enable-global-analysis | Boolean | -enable-global-analysis |
enable-clang-static-analyzer | Boolean | -enable-clang-static-analyzer |
An example of a .oclint
file might looks like this:
disable-rules:
- LongLine
rulePaths:
- /etc/rules
rule-configurations:
- key: CYCLOMATIC_COMPLEXITY
value: 15
- key: NPATH_COMPLEXITY
value: 300
output: oclint.xml
report-type: xml
max-priority-1: 20
max-priority-2: 40
max-priority-3: 60
enable-clang-static-analyzer: false
See also
- OCLint manual
- Manual for OCLint main binary
- Customizing Thresholds
- Documentation of changing the thresholds in order to modify the behavior of the tool
- Rule Selection
- Documentation of picking up the right rules for analysis
- Reporter Selection
- Documentation of selecting the reporters for output