clang-format 在有换行符时删除 if 条件中的缩进
clang-format removes indents in if condition when there is a line break
我有这个功能:
bool WS::receive(MB *const buffer) const {
updateLastPackage();
if ((!lastPackage_.empty()) &&
(lastPackage_.size() <= buffer->capacity()) &&
(lastUpdate_.getTime() <= settings_.refreshPeriod)) {
buffer->clear();
(*buffer) << lastPackage_;
return true;
}
return false;
}
在我的样式文件应用 clang-format 后:
bool WS::receive(MB *const buffer) const {
updateLastPackage();
if ((!lastPackage_.empty()) &&
(lastPackage_.size() <= buffer->capacity()) &&
(lastUpdate_.getTime() <= settings_.refreshPeriod)) {
buffer->clear();
(*buffer) << lastPackage_;
return true;
}
return false;
}
你可以看到当有换行符时,clang-format 删除了 if 条件中的缩进。那么,如何保持缩进不变呢?这也发生在模板上。
我的样式文件,基于LLVM:
https://pastebin.com/ZDwZfBud
感谢 Unicorn。
解决方案:
AlignOperands: false
ContinuationIndentWidth: 8
我有这个功能:
bool WS::receive(MB *const buffer) const {
updateLastPackage();
if ((!lastPackage_.empty()) &&
(lastPackage_.size() <= buffer->capacity()) &&
(lastUpdate_.getTime() <= settings_.refreshPeriod)) {
buffer->clear();
(*buffer) << lastPackage_;
return true;
}
return false;
}
在我的样式文件应用 clang-format 后:
bool WS::receive(MB *const buffer) const {
updateLastPackage();
if ((!lastPackage_.empty()) &&
(lastPackage_.size() <= buffer->capacity()) &&
(lastUpdate_.getTime() <= settings_.refreshPeriod)) {
buffer->clear();
(*buffer) << lastPackage_;
return true;
}
return false;
}
你可以看到当有换行符时,clang-format 删除了 if 条件中的缩进。那么,如何保持缩进不变呢?这也发生在模板上。
我的样式文件,基于LLVM: https://pastebin.com/ZDwZfBud
感谢 Unicorn。
解决方案:
AlignOperands: false
ContinuationIndentWidth: 8