我目前正在使用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)
答案 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格式的任何选项。
我知道这不是您期望的答案,但我希望它很方便。