C++ 如何获取clang格式以对齐链式方法调用
我加入了一个现有的项目,我是第一个使用clang格式的团队成员。除了几个恼人的差异外,现有的样式基本上是匹配的。这里有一个(另一个是): clang format坚持如下格式: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:
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