Как заставить clang-формат не объединять многострочные вызовы в одну строку?

Например, этот фрагмент кода:

{
FooBar processor;

processor
.process(obj1)
.process(someString)
.process(anotherParameter);
}

всегда переводится на это:

{
FooBar processor;

processor.process(obj1).process(someString).process(anotherParameter);
}

Таким образом, он становится менее читаемым и не дружественным с точки зрения VCS, если мне нужно изменить цепочку в середине.

Есть ли способ предотвратить такое clang-format поведение?

2

Решение

В текущей версии (clang-format 3.8) единственные хорошие способы сделать это, о которых я знаю, это:

{
FooBar processor;

processor //
.process(obj1) //
.process(someString) //
.process(anotherParameter);
}

а также

{
FooBar processor;

// clang-format off
processor
.process(obj1)
.process(someString)
.process(anotherParameter);
// clang-format on
}
3

Другие решения