forked from OSchip/llvm-project
clang-format: Keep more trailing annotations on the same line.
More precisely keep all short annotations (<10 characters) on the same line if possible. Previously, clang-format would only prefer to do so for "const", "override" and "final". However, it seems to be generally preferable, especially because some codebases have to wrap those in macros for backwards compatibility. Before: void someLongFunction(int someLongParameter) OVERRIDE {} After: void someLongFunction( int someLongParameter) OVERRIDE {} This fixes llvm.org/PR19363. llvm-svn: 205845
This commit is contained in:
parent
b282f1fec5
commit
b48d3afcd5
|
@ -1279,11 +1279,9 @@ unsigned TokenAnnotator::splitPenalty(const AnnotatedLine &Line,
|
|||
// annotations (i.e. "const", "final" and "override") on the same line.
|
||||
// Use a slightly higher penalty after ")" so that annotations like
|
||||
// "const override" are kept together.
|
||||
bool is_standard_annotation = Right.is(tok::kw_const) ||
|
||||
Right.TokenText == "override" ||
|
||||
Right.TokenText == "final";
|
||||
bool is_short_annotation = Right.TokenText.size() < 10;
|
||||
return (Left.is(tok::r_paren) ? 100 : 120) +
|
||||
(is_standard_annotation ? 50 : 0);
|
||||
(is_short_annotation ? 50 : 0);
|
||||
}
|
||||
|
||||
// In for-loops, prefer breaking at ',' and ';'.
|
||||
|
|
|
@ -3269,9 +3269,15 @@ TEST_F(FormatTest, BreaksFunctionDeclarationsWithTrailingTokens) {
|
|||
verifyFormat("void someLongFunction(\n"
|
||||
" int someLongParameter) override {}",
|
||||
Style);
|
||||
verifyFormat("void someLongFunction(\n"
|
||||
" int someLongParameter) OVERRIDE {}",
|
||||
Style);
|
||||
verifyFormat("void someLongFunction(\n"
|
||||
" int someLongParameter) final {}",
|
||||
Style);
|
||||
verifyFormat("void someLongFunction(\n"
|
||||
" int someLongParameter) FINAL {}",
|
||||
Style);
|
||||
verifyFormat("void someLongFunction(\n"
|
||||
" int parameter) const override {}",
|
||||
Style);
|
||||
|
|
Loading…
Reference in New Issue