我正在使用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放入其中。

08-16 17:27