From: Daniel Jasper Date: Wed, 9 Apr 2014 10:01:49 +0000 (+0000) Subject: clang-format: Keep more trailing annotations on the same line. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=4d9a6735c124dc1812288bc2eec82cc00048d5b0;p=clang 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. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@205845 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Format/TokenAnnotator.cpp b/lib/Format/TokenAnnotator.cpp index 03921b04b1..cd05a6807e 100644 --- a/lib/Format/TokenAnnotator.cpp +++ b/lib/Format/TokenAnnotator.cpp @@ -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 ';'. diff --git a/unittests/Format/FormatTest.cpp b/unittests/Format/FormatTest.cpp index 5adc0d5725..e3da016663 100644 --- a/unittests/Format/FormatTest.cpp +++ b/unittests/Format/FormatTest.cpp @@ -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);