Add an --extensions flag to change valid file extensions.
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 <mattyclarkson@gmail.com>
diff --git a/cpplint/cpplint.py b/cpplint/cpplint.py
index b5493b6..76d0735 100755
--- a/cpplint/cpplint.py
+++ b/cpplint/cpplint.py
@@ -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:
@@ -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.
@@ -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.
@@ -4612,10 +4623,9 @@
# 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)
@@ -4667,7 +4677,8 @@
'counting=',
'filter=',
'root=',
- 'linelength='])
+ 'linelength=',
+ 'extensions='])
except getopt.GetoptError:
PrintUsage('Invalid arguments.')
@@ -4702,6 +4713,12 @@
_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.')