Skip to content

Commit

Permalink
Add an --extensions flag to change valid file extensions.
Browse files Browse the repository at this point in the history
The valid cpplint extensions are .h, .cpp, .cc, .cuh and .cu. It is
common for .hpp to be a valid extension to check, the --extensions flag
allows the user to specify which extensions they think are valid.

Patch by Matt Clarkson <[email protected]>
  • Loading branch information
[email protected] committed Dec 16, 2013
1 parent 0075d14 commit 1968027
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 5 deletions.
27 changes: 22 additions & 5 deletions cpplint/cpplint.py
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,8 @@
suppresses errors of all categories on that line.
The files passed in will be linted; at least one file must be provided.
Linted extensions are .cc, .cpp, and .h. Other file types will be ignored.
Default linted extensions are .cc, .cpp, .cu, .cuh and .h. Change the
extensions with the --extensions flag.
Flags:
Expand Down Expand Up @@ -126,6 +127,12 @@
Examples:
--linelength=120
extensions=extension,extension,...
The allowed file extensions that cpplint will check
Examples:
--extensions=hpp,cpp
"""

# We categorize each error message we print. Here are the categories.
Expand Down Expand Up @@ -440,6 +447,10 @@
# This is set by --linelength flag.
_line_length = 80

# The allowed extensions for file names
# This is set by --extensions flag.
_valid_extensions = set(['cc', 'h', 'cpp', 'cu', 'cuh'])

def ParseNolintSuppressions(filename, raw_line, linenum, error):
"""Updates the global list of error-suppressions.
Expand Down Expand Up @@ -4612,10 +4623,9 @@ def ProcessFile(filename, vlevel, extra_check_functions=[]):

# When reading from stdin, the extension is unknown, so no cpplint tests
# should rely on the extension.
valid_extensions = ['cc', 'h', 'cpp', 'cu', 'cuh']
if filename != '-' and file_extension not in valid_extensions:
if filename != '-' and file_extension not in _valid_extensions:
sys.stderr.write('Ignoring %s; not a valid file name '
'(.cc, .h, .cpp, .cu, .cuh)\n' % filename)
'(%s)\n' % (filename, ', '.join(_valid_extensions)))
else:
ProcessFileData(filename, file_extension, lines, Error,
extra_check_functions)
Expand Down Expand Up @@ -4667,7 +4677,8 @@ def ParseArguments(args):
'counting=',
'filter=',
'root=',
'linelength='])
'linelength=',
'extensions='])
except getopt.GetoptError:
PrintUsage('Invalid arguments.')

Expand Down Expand Up @@ -4702,6 +4713,12 @@ def ParseArguments(args):
_line_length = int(val)
except ValueError:
PrintUsage('Line length must be digits.')
elif opt == '--extensions':
global _valid_extensions
try:
_valid_extensions = set(val.split(','))
except ValueError:
PrintUsage('Extensions must be comma seperated list.')

if not filenames:
PrintUsage('No files were specified.')
Expand Down
6 changes: 6 additions & 0 deletions cpplint/cpplint_unittest.py
Original file line number Diff line number Diff line change
Expand Up @@ -2623,6 +2623,7 @@ def testParseArguments(self):
old_verbose_level = cpplint._cpplint_state.verbose_level
old_filters = cpplint._cpplint_state.filters
old_line_length = cpplint._line_length
old_valid_extensions = cpplint._valid_extensions
try:
# Don't print usage during the tests, or filter categories
cpplint._USAGE = ''
Expand Down Expand Up @@ -2675,13 +2676,18 @@ def testParseArguments(self):
self.assertEqual(['foo.h'],
cpplint.ParseArguments(['--linelength=120', 'foo.h']))
self.assertEqual(120, cpplint._line_length)

self.assertEqual(['foo.h'],
cpplint.ParseArguments(['--extensions=hpp,cpp,cpp', 'foo.h']))
self.assertEqual(set(['hpp', 'cpp']), cpplint._valid_extensions)
finally:
cpplint._USAGE = old_usage
cpplint._ERROR_CATEGORIES = old_error_categories
cpplint._cpplint_state.output_format = old_output_format
cpplint._cpplint_state.verbose_level = old_verbose_level
cpplint._cpplint_state.filters = old_filters
cpplint._line_length = old_line_length
cpplint._valid_extensions = old_valid_extensions

def testLineLength(self):
old_line_length = cpplint._line_length
Expand Down

0 comments on commit 1968027

Please sign in to comment.