Validates CPP files with Google's cpplint
This module has been built for usage with Node scripts, to run from the command line, and to be used as a Grunt task.
All methods of using this module allow for four specific configuration options:
- reporter The reporter to use ( spec | json | plain-text ); defaults to spec.
- counting The counting-type ( total | toplevel | detailed ); defaults
to total. The total number of errors found is always printed. If toplevel
is provided, then the count of errors in each of the top-level categories like
build
andwhitespace
will also be printed. If detailed is provided, then a count is provided for each category likebuild/class
. - verbose The verbosity level; defaults to 1. A number 0-5 to restrict errors to certain verbosity levels.
- filters Enable/disable filtering for specific errors.
A list of files is also expected.
Using the spec
reporter, disabling whitespace/braces errors and linting file1.
bin/cpplint --reporter spec --filter whitespace-braces file1
Setting verbosity to 3
and the counting-type to detailed
while linting file1 and file2.
bin/cpplint --verbose 3 --counting detailed file2 file3
Using the plain-text
reporter, ignoring build/deprecated errors and linting file1.
bin/cpplint --filter build-deprecated --reporter plain-text
Using the spec
reporter
var cpplint = require('lib/index.js');
var reporter = require('lib/reporters').spec;
var options = {
files: [
'/path/to/some/files.cc'
]
};
cpplint(options, reporter);
Using a custom reporter, disabling whitespace/braces and enabling whitespace/include_alpha
var cpplint = require('lib/index');
var options = {
files: [
'/path/to/some/files.cc'
],
filters: {
'whitespace': {
'braces': false,
'include_alpha': true
}
}
};
cpplint(options, function (err, report) {
// your reporting logic
});
grunt.loadNpmTasks('node-cpplint');
grunt.initConfig({
cpplint: {
files: [
'src/**/*.cc',
'src/**/*.cpp'
],
reporter: 'spec',
verbosity: 1
},
filters: {
'whitespace': {
'braces': false,
'include_alpha': true
}
}
});
Future plans (in no perticular order):
- better test coverage
- xunit-xml reporter
In lieu of a formal styleguide, take care to maintain the existing coding
style. Add unit tests (using vows) for
any new or changed functionality. Lint and test your code using grunt jslint
and verify that all unit tests are passing with grunt vows
.
- added support for ignoring certain errors (filters)
- added simple grunt task
- first public version
- provides a few simple options for validating CPP files