C++ 如何获取clang格式以对齐链式方法调用

C++ 如何获取clang格式以对齐链式方法调用,c++,clang-format,C++,Clang Format,我加入了一个现有的项目,我是第一个使用clang格式的团队成员。除了几个恼人的差异外,现有的样式基本上是匹配的。这里有一个(另一个是): clang format坚持如下格式: folly::dynamic makeRequest(const string &token_response) { // using longer variable names to highlight using up the whole line lenght return folly:

我加入了一个现有的项目,我是第一个使用clang格式的团队成员。除了几个恼人的差异外,现有的样式基本上是匹配的。这里有一个(另一个是):

clang format坚持如下格式:

  folly::dynamic makeRequest(const string &token_response) {
    // using longer variable names to highlight using up the whole line lenght
    return folly::dynamic::object()("log_type", "FOO")(
        "src_id", somethingId)("dst_id", whateverId)("success",
                                                     sucess);
  }

在前一种风格中,只要我们每行调用一个方法,我就不太了解延续行是如何缩进的。这可能吗?

不是最好的解决方案,但您可以通过在每行后面加“/”来强制换行:

return folly::dynamic::object() //
  ("log_type", "FOO") //
  ("src_id", "42") //
  ("dst_id", "666") //
  ("success", true);

我自己使用的另一种方法是关闭特定代码块的
clangformat

// clang-format off
return folly::dynamic::object()
    ("log_type", "FOO")
    ("src_id", "42")
    ("dst_id", "666")
    ("success", true)
    ;
// clang-format on
如果您在链式方法参数中有更复杂的逻辑(因为您希望格式化该逻辑),那么这可能不是最佳选择,但是如果您只有这样一个元组,那么它可能比添加空注释更干净

这两种方法都绕过了clang格式,但这种方法更为简洁(imo),并向未来的开发人员更清楚地表明了您的意图

// clang-format off
return folly::dynamic::object()
    ("log_type", "FOO")
    ("src_id", "42")
    ("dst_id", "666")
    ("success", true)
    ;
// clang-format on