r208176 - clang-format: Be slightly more aggressive on single-line functions.
Daniel Jasper
djasper at google.com
Wed May 7 02:48:30 PDT 2014
Author: djasper
Date: Wed May 7 04:48:30 2014
New Revision: 208176
URL: http://llvm.org/viewvc/llvm-project?rev=208176&view=rev
Log:
clang-format: Be slightly more aggressive on single-line functions.
So that JS functions can also be merged into a single line.
Before:
var func = function() {
return 1;
};
After:
var func = function() { return 1; };
Modified:
cfe/trunk/lib/Format/Format.cpp
cfe/trunk/unittests/Format/FormatTestJS.cpp
Modified: cfe/trunk/lib/Format/Format.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Format/Format.cpp?rev=208176&r1=208175&r2=208176&view=diff
==============================================================================
--- cfe/trunk/lib/Format/Format.cpp (original)
+++ cfe/trunk/lib/Format/Format.cpp Wed May 7 04:48:30 2014
@@ -654,6 +654,10 @@ private:
Tok->CanBreakBefore = true;
return 1;
} else if (Limit != 0 && Line.First->isNot(tok::kw_namespace)) {
+ // We don't merge short records.
+ if (Line.First->isOneOf(tok::kw_class, tok::kw_union, tok::kw_struct))
+ return 0;
+
// Check that we still have three lines and they fit into the limit.
if (I + 2 == E || I[2]->Type == LT_Invalid)
return 0;
@@ -672,9 +676,9 @@ private:
Tok = Tok->Next;
} while (Tok != NULL);
- // Last, check that the third line contains a single closing brace.
+ // Last, check that the third line starts with a closing brace.
Tok = I[2]->First;
- if (Tok->getNextNonComment() != NULL || Tok->isNot(tok::r_brace))
+ if (Tok->isNot(tok::r_brace))
return 0;
return 2;
Modified: cfe/trunk/unittests/Format/FormatTestJS.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/unittests/Format/FormatTestJS.cpp?rev=208176&r1=208175&r2=208176&view=diff
==============================================================================
--- cfe/trunk/unittests/Format/FormatTestJS.cpp (original)
+++ cfe/trunk/unittests/Format/FormatTestJS.cpp Wed May 7 04:48:30 2014
@@ -98,6 +98,11 @@ TEST_F(FormatTestJS, GoogScopes) {
"}); // goog.scope");
}
+TEST_F(FormatTestJS, Closures) {
+ verifyFormat("doFoo(function() { return 1; });");
+ verifyFormat("var func = function() { return 1; };");
+}
+
TEST_F(FormatTestJS, ReturnStatements) {
verifyFormat("function() { return [hello, world]; }");
}
More information about the cfe-commits
mailing list