diff options
| author | Daniel Jasper <djasper@google.com> | 2014-04-09 10:01:49 +0000 |
|---|---|---|
| committer | Daniel Jasper <djasper@google.com> | 2014-04-09 10:01:49 +0000 |
| commit | b48d3afcd53e16712f55836a81f08a1d65953540 (patch) | |
| tree | 3e7bdd2184d687554440a698e4f17cb82b646c1f | |
| parent | b282f1fec5ec87bdf8c3265061c77dd4c6fac78c (diff) | |
| download | bcm5719-llvm-b48d3afcd53e16712f55836a81f08a1d65953540.tar.gz bcm5719-llvm-b48d3afcd53e16712f55836a81f08a1d65953540.zip | |
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
| -rw-r--r-- | clang/lib/Format/TokenAnnotator.cpp | 6 | ||||
| -rw-r--r-- | clang/unittests/Format/FormatTest.cpp | 6 |
2 files changed, 8 insertions, 4 deletions
diff --git a/clang/lib/Format/TokenAnnotator.cpp b/clang/lib/Format/TokenAnnotator.cpp index 03921b04b1e..cd05a6807e6 100644 --- a/clang/lib/Format/TokenAnnotator.cpp +++ b/clang/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/clang/unittests/Format/FormatTest.cpp b/clang/unittests/Format/FormatTest.cpp index 5adc0d5725b..e3da016663c 100644 --- a/clang/unittests/Format/FormatTest.cpp +++ b/clang/unittests/Format/FormatTest.cpp @@ -3270,9 +3270,15 @@ TEST_F(FormatTest, BreaksFunctionDeclarationsWithTrailingTokens) { " 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); |

