Как игнорировать файлы или каталоги в формате clang 3.9 - PullRequest
0 голосов
/ 01 июня 2018

В настоящее время я использую travis ci для проверки исправлений, когда они поступают в github, и пытаюсь выяснить, существует ли какой-либо вариант для clang-формата 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 голосов
/ 30 июля 2019

Отдельные файлы отсутствуют , но каталоги , да .

Как сказано здесь , вы можете поместить новый .clang-format -файлвнутри папки, содержащей файлы, которые не нужно форматировать.

Пример: у меня есть проект, который включает библиотеку только для заголовков, такую ​​как cppzmq, и я хочу только my исходные файлы, которые будут отформатированы, чтобы сохранить разницу в размерах при обновлении библиотеки.Поэтому я создаю макет, такой как:

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

Где first .clang-format содержит:

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

(DisableFormat, похоже, не отключает include-сортировка, поэтому она должна быть задана явно.)

секунда .clang-format содержит вашу обычную конфигурацию в формате clang.

Убедитесь, что ваш глобальный / проектstyle -уровневый формат clang-формата установлен на File.

0 голосов
/ 10 августа 2018

Проверьте мой ответ здесь: https://stackoverflow.com/a/51793637/2751261. В основном я использую скрипт поиска для выбора файлов и папок, соответствующих моим критериям, а затем применяю формат clang к каждому из них.Это потому, что до сих пор я никогда не находил никакой опции в формате clang для этого.

Я знаю, что это не тот ответ, который вы ожидаете, но я надеюсь, что это удобно.

...