AllowShortFunctionsOnASingleLine和AlwaysBreakAfterReturnType是否兼容?

时间:2018-03-14 18:36:31

标签: c++ formatting clang-format

我想要使用具有特殊编码风格的Clang格式的存储库。它打破了返回类型,但它也将短函数定义放在一行:

bool
isConditionMet() const { return _isConditionMet; }

当功能不短时:

bool
MyClass::isConditionMet() const {
    bool first = computeA();
    return first && computeB();
}

我试图尽可能地使 .clang-format 文件匹配,但我无法使其发挥作用。这是一个最小的例子(我删除了所有不相关的设置):

---
Language:        Cpp
AllowShortFunctionsOnASingleLine: All
AlwaysBreakAfterReturnType: All
...

在此上运行时:

class Test
{
public:
  void doNothing() {}

  int giveMe() { return 42; }

  int compute()
  {
    int i = 0;
    i += 42;
    return i;
  }
};

我明白了:

class Test {
public:
  void
  doNothing() {}

  int
  giveMe() {
    return 42;
  }

  int
  compute() {
    int i = 0;
    i += 42;
    return i;
  }
};

而不是我的预期:

class Test {
public:
  void
  doNothing() {}

  int
  giveMe() { return 42; }

  int
  compute() {
    int i = 0;
    i += 42;
    return i;
  }
};

两个设置AllowShortFunctionsOnASingleLineAlwaysBreakAfterReturnType似乎相互冲突。 Clang Format是否允许我想要的格式化风格?

版本:

$ clang-format-5.0 --version
clang-format version 5.0.0-3~16.04.1 (tags/RELEASE_500/final)

0 个答案:

没有答案