如何忽略clang-format 3.9的文件或目录

时间:2018-06-01 16:53:54

标签: clang travis-ci ignore clang-format

我目前正在使用travis ci检查补丁,因为它们进入github并且我试图弄清楚是否还有clang-format 3.9(因为travis ci目前只支持ubuntu 14.04最新)忽略整个目录或扫描更改时的文件。

我的.travis.yml文件:

language: c++
sudo: required
dist: trusty
install:
- sudo apt-get update
- sudo apt-get install clang-format-3.9 python3
- ./travisci/check_patch.py

我的travisci / check_patch.py​​文件:

#!/usr/bin/env python3

from subprocess import Popen, PIPE, STDOUT

# Run clang to check if code changes cause a diff output and return 1 if so.
cmd = "git show origin/master..@ | clang-format-diff-3.9 -p 1 -style=file"
diff = Popen(cmd, stdout=PIPE, shell=True).communicate()[0]
if diff:
    print("Code formatting is not according to style guidelines. Read https://github.com/intel/IA-Hardware-Composer/wiki/Contributions#coding_style")
    exit(1)

exit(0)

2 个答案:

答案 0 :(得分:2)

单个,但是目录,是

here所述,您可以在文件夹中放置一个新的.clang-format文件,该文件包含不需要格式化的文件。

示例:我有一个项目,其中包含仅标头的库,例如cppzmq,并且我只希望对 my 源文件进行格式化,以在更新库时使差异较小。所以我创建了一个布局,例如:

project/
├ include/
│ ├ 3rdparty/
│ │ ├ .clang-format   (1)
│ │ └ zmq.hpp
│ └ my_app.hpp
├ src/
│ └ my_app.cpp
└ .clang-format       (2)

第一 .clang-format所在的位置:

{
    "DisableFormat": true,
    "SortIncludes": false
}

({DisableFormat似乎没有禁用包含排序,因此必须明确给出。)

second .clang-format保存了您通常的clang格式配置。

确保将全局/项目级的clang格式的style设置设置为 File

答案 1 :(得分:1)

在这里检查我的答案:https://stackoverflow.com/a/51793637/2751261。基本上,我使用查找脚本来选择与我的条件有关的文件和文件夹,然后对每个文件和文件夹应用clang格式。这是因为到目前为止,我还没有找到clang格式的任何选项。

我知道这不是您期望的答案,但我希望它很方便。