我正在使用cpplint来检查我的sourcode,再次查看Google样式指南。
Cpplint的帮助说:
cpplint.py supports per-directory configurations specified in CPPLINT.cfg
files. CPPLINT.cfg file can contain a number of key=value pairs.
Currently the following options are supported:
"exclude_files" allows to specify a regular expression to be matched against
a file name. If the expression matches, the file is skipped and not run
through liner.
Example file:
filter=-build/include_order,+build/include_alpha
exclude_files=.*\.cc
The above example disables build/include_order warning and enables
build/include_alpha as well as excludes all .cc from being
processed by linter, in the current directory (where the .cfg
file is located) and all sub-directories.
我如何使用cpplint:
我通过此命令使用
cpplint
来检查源文件夹中的所有文件:cpplint src/*.c
好吧,有一个特殊文件
foo.cc
不能检查。因此,我尝试创建一个CPPLIN.cfg
以使用exclude_files
属性。我的文件如下所示:set noparent
filter=-build/include_dir
exclude_files=foo.cc
但是,仍会检查
foo.cc
。我已经尝试做的是:
我尝试了
exclude_files=/.*\.cc/
。这应排除所有以* .cc结尾的文件。尽管如此,所有文件仍然被检查。我试图从文件中删除我的
filter
。这导致了比以前更多的错误。因此,现在我可以确定cpplint找到了我的CPPLINT.cfg
文件。题:
如何在cpplint中正确使用exclude_files正则表达式?
最佳答案
显然是该文档是错误的:exclude_files
仅排除与CPPLINT.cfg
相同目录中的文件,而不排除子目录中的文件。见https://github.com/google/styleguide/issues/220
因此解决方案是创建src/CPPLINT.cfg
并将exclude_files=.*\.cc
放入其中。