Jacques Pienaar
1560e692b3
clang-format: Space and triple angle braces.
...
Committing patch http://reviews.llvm.org/D6800 .
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@229783 91177308-0d34-0410-b5e6-96231b3b80d8
2015-02-18 23:48:37 +00:00
Daniel Jasper
49fb82769a
clang-format: Don't force a break after "endl" if everything fits on one line.
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@229486 91177308-0d34-0410-b5e6-96231b3b80d8
2015-02-17 10:05:15 +00:00
Daniel Jasper
cb626e21ee
clang-format: Fix crasher.
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@229485 91177308-0d34-0410-b5e6-96231b3b80d8
2015-02-17 09:58:03 +00:00
Aaron Ballman
c800a1d7aa
Reverting a switch from LLVM_DELETED_FUNCTION to = delete; this test should not have changed.
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@229394 91177308-0d34-0410-b5e6-96231b3b80d8
2015-02-16 14:14:01 +00:00
Aaron Ballman
f5f2a0e503
Removing LLVM_DELETED_FUNCTION, as MSVC 2012 was the last reason for requiring the macro. NFC; Clang edition.
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@229339 91177308-0d34-0410-b5e6-96231b3b80d8
2015-02-15 22:54:08 +00:00
Daniel Jasper
41397d283c
clang-format: Correctly mark preprocessor lines in child blocks.
...
This prevents contracting:
auto lambda = []() {
int a = 2
#if A
+ 2
#endif
;
};
into:
auto lambda = []() { int a = 2
#if A + 2
#endif ; };
Which is obviously BAD.
This fixes llvm.org/PR22496.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@228522 91177308-0d34-0410-b5e6-96231b3b80d8
2015-02-08 09:34:49 +00:00
Nico Weber
e2dff4cebe
clang-format: Format Objective-C try blocks like all the other try blocks.
...
Before:
@try {
// ...
}
@finally {
// ...
}
Now:
@try {
// ...
} @finally {
// ...
}
This is consistent with how we format C++ try blocks and SEH try blocks.
clang-format not doing this before was an implementation oversight.
This is dependent on BraceBreakingStyle. The snippet above is with the
Attach style. Style Stroustrip for example still results in the "Before:"
snippet, which makes sense since other blocks (try, else) break after '}' too.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@228483 91177308-0d34-0410-b5e6-96231b3b80d8
2015-02-07 01:57:32 +00:00
Daniel Jasper
801cbfd795
clang-format: Fix assert triggering on carriage returns.
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@228288 91177308-0d34-0410-b5e6-96231b3b80d8
2015-02-05 11:05:31 +00:00
Nico Weber
d52fa386bb
clang-format: Add support for SEH __try / __except / __finally blocks.
...
This lets clang-format format
__try {
} __except(0) {
}
and
__try {
} __finally {
}
correctly. __try and __finally are keywords if `LangOpts.MicrosoftExt` is set,
so this turns this on. This also enables a few other keywords, but it
shouldn't overly perturb regular clang-format operation. __except is a
context-sensitive keyword, so `AdditionalKeywords` needs to be passed around to
a few more places.
Fixes PR22321.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@228148 91177308-0d34-0410-b5e6-96231b3b80d8
2015-02-04 15:26:27 +00:00
Daniel Jasper
2a27967cd6
clang-format: Fix crasher caused by not properly setting dry-run.
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@227427 91177308-0d34-0410-b5e6-96231b3b80d8
2015-01-29 10:47:14 +00:00
Daniel Jasper
dbd59c516c
clang-format: Fix another crasher caused by incomplete macro code.
...
We did't properly mark all of an AnnotatedLine's children as finalized
and thus would reformat the same tokens in different branches of #if/#else
sequences leading to invalid replacements.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@226930 91177308-0d34-0410-b5e6-96231b3b80d8
2015-01-23 19:37:25 +00:00
Daniel Jasper
b4d13271a9
clang-format: Fix incorrect classification of "*".
...
Before:
*a = b *c;
After:
*a = b * c;
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@226923 91177308-0d34-0410-b5e6-96231b3b80d8
2015-01-23 19:04:49 +00:00
Daniel Jasper
3738afc377
clang-format: Fix crasher when splitting incomplete escape sequences.
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@226698 91177308-0d34-0410-b5e6-96231b3b80d8
2015-01-21 19:50:35 +00:00
Daniel Jasper
a569ace3d1
clang-format: Fix crasher caused by incorrect resetting of token info.
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@226685 91177308-0d34-0410-b5e6-96231b3b80d8
2015-01-21 18:35:47 +00:00
Daniel Jasper
392682050a
clang-format: Fix bad memory access.
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@226680 91177308-0d34-0410-b5e6-96231b3b80d8
2015-01-21 18:04:02 +00:00
Daniel Jasper
0c2a7168c4
clang-format: Fix use-heap-after-free bug.
...
Discovered by the awesome test case and ASAN.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@226678 91177308-0d34-0410-b5e6-96231b3b80d8
2015-01-21 17:35:29 +00:00
Daniel Jasper
be285ccf09
clang-format: Fix AlwaysBreakBeforeMultilineStrings with ColumnLimit=0
...
Before:
const char *x =
"hello llvm";
After:
const char *x = "hello llvm";
This fixes llvm.org/PR22245.
Patch by Bill Meltsner, thank you!
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@226564 91177308-0d34-0410-b5e6-96231b3b80d8
2015-01-20 12:59:20 +00:00
Daniel Jasper
25b834d9ed
clang-format: Fix crasher on weird comments.
...
Crashing input:
/\
/ comment
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@226454 91177308-0d34-0410-b5e6-96231b3b80d8
2015-01-19 11:49:32 +00:00
Daniel Jasper
f02caed59b
clang-format: Fix crasher on incomplete condition compilation.
...
Previously crashing input:
void f(
#if A
);
#else
#endif
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@226451 91177308-0d34-0410-b5e6-96231b3b80d8
2015-01-19 10:52:16 +00:00
Daniel Jasper
733b278f48
clang-format: Fix crash on invalid code.
...
Input "a<," made clang-format crash.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@226450 91177308-0d34-0410-b5e6-96231b3b80d8
2015-01-19 10:51:42 +00:00
Daniel Jasper
9b623a9ba9
clang-format: Fix clang-format crash on invalid code.
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@226449 91177308-0d34-0410-b5e6-96231b3b80d8
2015-01-19 10:51:23 +00:00
Daniel Jasper
8904ba2a0c
clang-format: Fix assertion when trying to build a nullptr StringRef.
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@226448 91177308-0d34-0410-b5e6-96231b3b80d8
2015-01-19 10:51:05 +00:00
Daniel Jasper
7a1e6b7b2d
clang-format: Fix endless loop on incomplete try-catch-block.
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@226447 91177308-0d34-0410-b5e6-96231b3b80d8
2015-01-19 10:50:51 +00:00
Daniel Jasper
9f083fd73e
clang-format: Remove assert that isn't helpful.
...
This assert would trigger on:
#d , = }
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@226446 91177308-0d34-0410-b5e6-96231b3b80d8
2015-01-19 10:50:08 +00:00
Alexander Kornienko
b9409329e3
Fix assertion in BreakableBlockComment ( http://llvm.org/PR21916 ).
...
Reviewers: djasper
Reviewed By: djasper
Subscribers: klimek, cfe-commits
Differential Revision: http://reviews.llvm.org/D6894
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@225628 91177308-0d34-0410-b5e6-96231b3b80d8
2015-01-12 13:11:12 +00:00
Daniel Jasper
f081f81b53
clang-format: Improve format of lambdas in ctor initializers.
...
Before:
Constructor()
: Constructor([] { // comment
int i;
}) {}
After:
Constructor()
: Constructor([] { // comment
int i;
}) {}
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@225625 91177308-0d34-0410-b5e6-96231b3b80d8
2015-01-12 10:23:24 +00:00
Daniel Jasper
cd4fa17791
clang-format: Fix formatting of inline asm.
...
Specifically, adjust the leading "__asm {" and trailing "}" while still
leaving the assembly inside it alone.
This fixes llvm.org/PR22190.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@225623 91177308-0d34-0410-b5e6-96231b3b80d8
2015-01-12 10:14:56 +00:00
Daniel Jasper
df28f7b8dd
clang-format: Force line break between "endl" and "<<".
...
This makes piped output easier to read in many instances.
Before:
llvm::errs() << aaaa << std::endl << bbbb << std::endl;
After:
llvm::errs() << aaaa << std::endl
<< bbbb << std::endl;
Also fix a few instance of "don't use else after return" as per the
coding standards.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@225444 91177308-0d34-0410-b5e6-96231b3b80d8
2015-01-08 13:56:57 +00:00
Daniel Jasper
f64def2baa
clang-format: Improve template parameter detection.
...
Before:
struct A < std::enable_if<sizeof(T2) <sizeof(int32)>::type>;
After:
struct A<std::enable_if<sizeof(T2) < sizeof(int32)>::type>;
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@225435 91177308-0d34-0410-b5e6-96231b3b80d8
2015-01-08 08:48:21 +00:00
Daniel Jasper
143cd925d8
clang-format: Understand single-line comments at the end of blocks.
...
This prevents clang-format from moving/aligning the comment in the
snippet:
void f() {
int i; // some comment
// some unrelated comment
}
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@225352 91177308-0d34-0410-b5e6-96231b3b80d8
2015-01-07 14:00:11 +00:00
Daniel Jasper
5f3321a2c1
clang-format: Fix unary operator detection.
...
Before:
** outparam = 1;
After:
**outparam = 1;
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@225349 91177308-0d34-0410-b5e6-96231b3b80d8
2015-01-07 12:19:53 +00:00
Daniel Jasper
7c795c9375
clang-format: Fix incorrect detection of ObjC "in" keyword.
...
Before:
for (auto v : in [1]) { ..
After:
for (auto v : in[1]) { ..
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@224513 91177308-0d34-0410-b5e6-96231b3b80d8
2014-12-18 12:11:01 +00:00
Alexander Kornienko
3200b33d5c
Don't break single-line raw string literals.
...
Reviewers: djasper
Reviewed By: djasper
Subscribers: klimek, cfe-commits
Differential Revision: http://reviews.llvm.org/D6636
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@224223 91177308-0d34-0410-b5e6-96231b3b80d8
2014-12-14 20:47:11 +00:00
Daniel Jasper
5ec4a06c79
clang-format: Revamp nested block formatting.
...
This fixed llvm.org/PR21804 and hopefully a few other strange cases.
Before:
if (blah_blah(whatever, whatever, [] {
doo_dah();
doo_dah();
})) {
}
}
After:
if (blah_blah(whatever, whatever, [] {
doo_dah();
doo_dah();
})) {
}
}
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@224112 91177308-0d34-0410-b5e6-96231b3b80d8
2014-12-12 09:40:58 +00:00
Nico Weber
f983d12f23
clang-format: Add a test for PR19603 which seems fixed (maybe by r221338?).
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@223850 91177308-0d34-0410-b5e6-96231b3b80d8
2014-12-09 23:22:35 +00:00
Daniel Jasper
66e56fc2fd
clang-format: Support commas in lambda return types.
...
Before:
auto next_pair = [](A * a) -> pair<A*, A*>{};
After:
auto next_pair = [](A* a) -> pair<A*, A*>{};
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@223652 91177308-0d34-0410-b5e6-96231b3b80d8
2014-12-08 13:22:37 +00:00
Daniel Jasper
b0dfccf692
clang-format: Don't merge lines with comments.
...
Before:
int f() { // comment return 42; }
After:
int f() { // comment
return 42;
}
This fixes llvm.org/PR21769.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@223609 91177308-0d34-0410-b5e6-96231b3b80d8
2014-12-07 16:44:49 +00:00
Daniel Jasper
f1a4b00f02
clang-format: Support NS_OPTIONS, CF_ENUM and CF_OPTIONS.
...
This fixes llvm.org/PR21756.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@223458 91177308-0d34-0410-b5e6-96231b3b80d8
2014-12-05 10:42:21 +00:00
Daniel Jasper
ff996645bf
clang-format: More restrictively classify import declarations.
...
Before:
import::SomeFunction(aaaaaaaaaaaaaaaaaaaaaaaaaaa, aaaaaaaaaaaaaaaaaaaaaaaaaaaaa);
After:
import::SomeFunction(aaaaaaaaaaaaaaaaaaaaaaaaaaa,
aaaaaaaaaaaaaaaaaaaaaaaaaaaaa);
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@223345 91177308-0d34-0410-b5e6-96231b3b80d8
2014-12-04 08:57:27 +00:00
Daniel Jasper
8c2a47d9e5
clang-format: Fix fake parentheses placement with comments.
...
Before:
return (a > b
// comment1
// comment2
|| c);
After:
return (a > b
// comment1
// comment2
|| c);
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@223234 91177308-0d34-0410-b5e6-96231b3b80d8
2014-12-03 14:02:59 +00:00
Daniel Jasper
f6babddc87
clang-format: Add option to suppress operator alignment.
...
With alignment:
int aaaaaa = aa
+ bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
* cccccccccccccccccccccccccccccccc;
Without alignment:
int aaaaaa = aa
+ bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
* cccccccccccccccccccccccccccccccc;
This fixes llvm.org/PR21666.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@223117 91177308-0d34-0410-b5e6-96231b3b80d8
2014-12-02 13:24:51 +00:00
Daniel Jasper
85fd1028d5
clang-format: precedence-based indentation when breaking before operators.
...
Before:
bool value = aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
== aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
* bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
+ bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
&& aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
* aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
> ccccccccccccccccccccccccccccccccccccccccc;
After:
bool value = aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
== aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
* bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
+ bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
&& aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
* aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
> ccccccccccccccccccccccccccccccccccccccccc;
Not particularly pretty, but can probably help to uncover bugs. And if this
bugs somebody, parentheses can help.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@223111 91177308-0d34-0410-b5e6-96231b3b80d8
2014-12-02 09:46:56 +00:00
Daniel Jasper
6cb96e4663
clang-format: Add SFS_Empty to only empty functions on a single line.
...
Activated for and tested by Google's Java style.
This fixes llvm.org/PR21667.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@222819 91177308-0d34-0410-b5e6-96231b3b80d8
2014-11-26 10:43:58 +00:00
Daniel Jasper
fb768e1bda
clang-format: Make short case labels work with #ifs
...
Before:
switch (a) {
#if FOO
case 0: return 0; #endif
}
After:
switch (a) {
#if FOO
case 0: return 0;
#endif
}
This fixed llvm.org/PR21544.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@222642 91177308-0d34-0410-b5e6-96231b3b80d8
2014-11-23 21:45:03 +00:00
Daniel Jasper
c26dc84ec1
clang-format: Improve ObjC blocks with return type.
...
Before:
Block b = ^int * (A * a, B * b) {}
After:
Block b = ^int *(A *a, B *b) {}
This fixed llvm.org/PR21619.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@222639 91177308-0d34-0410-b5e6-96231b3b80d8
2014-11-23 19:15:35 +00:00
Daniel Jasper
b643cf9daa
clang-format: Understand more lambda return types.
...
Before:
auto a = [&b, c ](D * d) -> D * {}
After:
auto a = [&b, c](D* d) -> D* {}
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@222534 91177308-0d34-0410-b5e6-96231b3b80d8
2014-11-21 14:08:38 +00:00
Daniel Jasper
8228889b01
clang-format: Use nested block special case for all languages.
...
Previously this was only used for JavaScript.
Before:
functionCall({
int i;
int j;
},
aaaa, bbbb, cccc);
After:
functionCall({
int i;
int j;
}, aaaa, bbbb, cccc);
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@222531 91177308-0d34-0410-b5e6-96231b3b80d8
2014-11-21 13:38:53 +00:00
Daniel Jasper
407d05f300
clang-format: Handle comments in short case labels.
...
With AllowShortCaseLabelsOnASingleLine set to true:
This gets now left unchanged:
case 1:
// comment
return;
Whereas before it was changed into:
case 1: // comment return;
This fixes llvm.org/PR21630.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@222529 91177308-0d34-0410-b5e6-96231b3b80d8
2014-11-21 12:36:25 +00:00
Daniel Jasper
39ce853225
clang-format: Add option to disable alignment after opening brackets
...
Before:
SomeFunction(parameter,
parameter);
After:
SomeFunction(parameter,
parameter);
Patch by Harry Terkelsen, thank you!
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@222284 91177308-0d34-0410-b5e6-96231b3b80d8
2014-11-18 23:55:27 +00:00
Daniel Jasper
31a3bde4cb
clang-format: Fix more incorrect pointer detection.
...
Before:
Constructor() : a(a), b(c, d *e) {}
After:
Constructor() : a(a), b(c, d * e) {}
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@222158 91177308-0d34-0410-b5e6-96231b3b80d8
2014-11-17 18:42:22 +00:00
Daniel Jasper
c9c4ae5add
clang-format: Fix regression introduced in r221609.
...
Before:
void f() { f(a, c *d); }
After:
void f() { f(a, c * d); }
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@222128 91177308-0d34-0410-b5e6-96231b3b80d8
2014-11-17 13:55:04 +00:00
Daniel Jasper
c7ad4a250b
clang-format: Correctly detect multiplication in ctor initializer.
...
Before:
Constructor() : a(a), area(width *height) {}
After:
Constructor() : a(a), area(width * height) {}
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@222010 91177308-0d34-0410-b5e6-96231b3b80d8
2014-11-14 17:26:49 +00:00
Daniel Jasper
277674854c
clang-format: Improve function parameter packing.
...
Before:
void SomeLoooooooooooongFunction(
std::unique_ptr<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa>
aaaaaaaaaaaaaaaaaaaaaaaaaa, int bbbbbbbbbbbbb);
After:
void SomeLoooooooooooongFunction(
std::unique_ptr<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa>
aaaaaaaaaaaaaaaaaaaaaaaaaa,
int bbbbbbbbbbbbb);
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@221989 91177308-0d34-0410-b5e6-96231b3b80d8
2014-11-14 13:14:45 +00:00
Daniel Jasper
0364e8eb31
clang-format: Support assignments as conditional operands.
...
Before:
return a != b
// comment
? a
: a = a != b
// comment
? a =
b : a;
After:
return a != b
// comment
? a
: a = a != b
// comment
? a = b
: a;
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@221987 91177308-0d34-0410-b5e6-96231b3b80d8
2014-11-14 13:03:40 +00:00
Daniel Jasper
712b8b0eea
clang-format: Improve indentation of comments in expressions.
...
Before:
int i = (a)
// comment
+ b;
return aaaa == bbbb
// comment
? aaaa
: bbbb;
After:
int i = (a)
// comment
+ b;
return aaaa == bbbb
// comment
? aaaa
: bbbb;
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@221985 91177308-0d34-0410-b5e6-96231b3b80d8
2014-11-14 12:31:14 +00:00
Nico Weber
8be48bc867
clang-format: Format extern "C" blocks like namespace blocks.
...
namespace blocks act as if KeepEmptyLinesAtTheStartOfBlocks is always true,
and aren't collapsed to a single line even if they would fit. Do the same
for extern "C" blocks.
Before,
extern "C" {
void ExternCFunction();
}
was collapsed into `extern "C" { void ExternCFunction(); }`. Now it stays like
it was.
Fixes http://crbug.com/432640 and part of PR21419.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@221897 91177308-0d34-0410-b5e6-96231b3b80d8
2014-11-13 16:25:37 +00:00
Daniel Jasper
411d4e186c
clang-format: Improve handling of comments in binary expressions.
...
Before:
b = a &&
// Comment
b.c &&
d;
After:
b = a &&
// Comment
b.c && d;
This fixes llvm.org/PR21535.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@221727 91177308-0d34-0410-b5e6-96231b3b80d8
2014-11-11 23:04:51 +00:00
Daniel Jasper
aebf04a1ce
clang-format: Preserve trailing-comma logic even with comments.
...
Before:
vector<int> SomeVector = {// aaa
1, 2,
};
After:
vector<int> SomeVector = {
// aaa
1, 2,
};
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@221699 91177308-0d34-0410-b5e6-96231b3b80d8
2014-11-11 19:34:57 +00:00
Daniel Jasper
2b03c6434c
clang-format: Fix pointer formatting.
...
Before:
void f(Bar* a = nullptr, Bar * b);
After:
void f(Bar* a = nullptr, Bar* b);
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@221609 91177308-0d34-0410-b5e6-96231b3b80d8
2014-11-10 16:57:30 +00:00
Daniel Jasper
1f8f132eb3
Revert "clang-format: [js] Updates to Google's JavaScript style."
...
This reverts commit eefd2eaad43c5c2b17953ae7ed1e72b28e696f7b.
Apparently, this change was a bit premature.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@221365 91177308-0d34-0410-b5e6-96231b3b80d8
2014-11-05 17:22:31 +00:00
Daniel Jasper
562463e7a0
clang-format: Add test to prevent regression in r221125.
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@221339 91177308-0d34-0410-b5e6-96231b3b80d8
2014-11-05 10:55:36 +00:00
Daniel Jasper
dc293d3fd1
clang-format: Improve free-standing macro detection.
...
Before:
SOME_WEIRD_LOG_MACRO
<< "Something long enough to cause a line break";
After:
SOME_WEIRD_LOG_MACRO
<< "Something long enough to cause a line break";
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@221338 91177308-0d34-0410-b5e6-96231b3b80d8
2014-11-05 10:48:04 +00:00
Daniel Jasper
932a371313
clang-format: Fix false positive in lambda detection.
...
Before:
delete [] a -> b;
After:
delete[] a->b;
This fixes part of llvm.org/PR21419.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@221114 91177308-0d34-0410-b5e6-96231b3b80d8
2014-11-02 22:46:42 +00:00
Daniel Jasper
316eb7c1fb
clang-format: [js] Updates to Google's JavaScript style.
...
The style guide is changing..
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@220977 91177308-0d34-0410-b5e6-96231b3b80d8
2014-10-31 17:50:40 +00:00
Daniel Jasper
1a02d78fce
clang-format: Format line if invoked on the trailing newline.
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@220883 91177308-0d34-0410-b5e6-96231b3b80d8
2014-10-29 23:40:50 +00:00
Daniel Jasper
48f193c024
clang-format: Improve && detection as binary operator.
...
Before:
template <class T,
class = typename ::std::enable_if<
::std::is_array<T>{}&& ::std::is_array<T>{}>::type>
void F();
After:
template <class T,
class = typename ::std::enable_if<
::std::is_array<T>{} && ::std::is_array<T>{}>::type>
void F();
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@220813 91177308-0d34-0410-b5e6-96231b3b80d8
2014-10-28 18:28:22 +00:00
Daniel Jasper
1f0ce1fa95
clang-format: Fix test.
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@220807 91177308-0d34-0410-b5e6-96231b3b80d8
2014-10-28 18:18:02 +00:00
Daniel Jasper
8365e2857e
clang-format: Improve && detection as binary operators.
...
Before:
template <class T, class = typename std::enable_if<std::is_integral<
T>::value &&(sizeof(T) > 1 || sizeof(T) < 8)>::type>
void F();
After:
template <class T, class = typename std::enable_if<
std::is_integral<T>::value &&
(sizeof(T) > 1 || sizeof(T) < 8)>::type>
void F();
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@220805 91177308-0d34-0410-b5e6-96231b3b80d8
2014-10-28 18:11:52 +00:00
Daniel Jasper
ab0cf0608f
clang-format: Improve function declaration detection.
...
Before:
ReturnType MACRO
FunctionName() {}
After:
ReturnType MACRO
FunctionName() {}
This fixes llvm.org/PR21404.
I wonder what the motivation for that if-condition was. But as no test
breaks, ...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@220801 91177308-0d34-0410-b5e6-96231b3b80d8
2014-10-28 17:06:04 +00:00
Daniel Jasper
347e3d7dd0
clang-format: [ObjC] Add separate flag to control indentation in blocks
...
Apparently, people are very much divided on what the "correct"
indentation is. So, best to give them a choice.
The new flag is called ObjCBlockIndentWidth and the default is now set
to the same value as IndentWidth for the pre-defined styles.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@220784 91177308-0d34-0410-b5e6-96231b3b80d8
2014-10-28 16:53:38 +00:00
Daniel Jasper
7cb454ac1a
clang-format: Don't break after very short return types.
...
Before:
void
SomeFunction(int parameter);
After:
void SomeFunction(
int parameter);
(Unless AlwaysBreakAfterDefinitionReturnType after type is set).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@220686 91177308-0d34-0410-b5e6-96231b3b80d8
2014-10-27 17:13:59 +00:00
Daniel Jasper
f52b29d996
clang-format: Fix bad merging of lines in nested blocks.
...
Before:
SomeFunction([]() {
#define A a
return 43; });
After:
SomeFunction([]() {
#define A a
return 43;
});
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@220684 91177308-0d34-0410-b5e6-96231b3b80d8
2014-10-27 16:31:46 +00:00
Daniel Jasper
b5c2b7f411
clang-format: Fix incorrect space after "<".
...
Before:
bool a = 2 <::SomeFunction();
After:
bool a = 2 < ::SomeFunction();
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@220505 91177308-0d34-0410-b5e6-96231b3b80d8
2014-10-23 20:22:22 +00:00
Daniel Jasper
b132921635
clang-format: Use AllowShortBlocksOnASingleLine for ObjC blocks, too.
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@220375 91177308-0d34-0410-b5e6-96231b3b80d8
2014-10-22 09:12:44 +00:00
Daniel Jasper
0d6a4cb335
clang-format: Fix broken test.
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@220374 91177308-0d34-0410-b5e6-96231b3b80d8
2014-10-22 09:01:12 +00:00
Daniel Jasper
a71ab95a8e
clang-format: Fix incorrect trailing return arrow detection.
...
Before:
auto doSomething(Aaaaaa* aaaaaa) -> decltype(aaaaaa -> f()) {}
After:
auto doSomething(Aaaaaa* aaaaaa) -> decltype(aaaaaa->f()) {}
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@220373 91177308-0d34-0410-b5e6-96231b3b80d8
2014-10-22 08:42:58 +00:00
Daniel Jasper
504432e552
clang-format: [ObjC] Fix spacing in block variable parameters.
...
Before:
{ void (^block)(Object * x); }
After:
{ void (^block)(Object *x); }
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@220270 91177308-0d34-0410-b5e6-96231b3b80d8
2014-10-21 07:57:50 +00:00
Daniel Jasper
53cc08b6b3
clang-format: Fix space in direct destructor calls.
...
Before:
void F(int& i) { i. ~int(); }
After:
void F(int& i) { i.~int(); }
Also, some cleanups.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@220269 91177308-0d34-0410-b5e6-96231b3b80d8
2014-10-21 07:51:54 +00:00
Daniel Jasper
7664f3ab9a
clang-format: Fix overloaded operator edge case.
...
Before:
template <class F>
void Call(F f) {
f.template operator() <int>();
}
After:
template <class F>
void Call(F f) {
f.template operator()<int>();
}
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@220202 91177308-0d34-0410-b5e6-96231b3b80d8
2014-10-20 13:56:30 +00:00
Daniel Jasper
7489d0ad3c
clang-format: [ObjC] Fix using selector names as macro arguments.
...
Before:
[self aaaaa:MACRO(a, b :, c :)];
After:
[self aaaaa:MACRO(a, b:, c:)];
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@220197 91177308-0d34-0410-b5e6-96231b3b80d8
2014-10-20 12:01:45 +00:00
Daniel Jasper
6933b7d570
clang-format: Fix indentation of struct definitions with array init.
...
Before:
struct {
int x;
int y;
} points[] = {
{1, 2}, {2, 3},
};
After:
struct {
int x;
int y;
} points[] = {
{1, 2}, {2, 3},
};
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@220195 91177308-0d34-0410-b5e6-96231b3b80d8
2014-10-20 11:12:51 +00:00
Daniel Jasper
365506d4da
clang-format: Prefer breaking before trailing return arrows.
...
Before:
auto SomeFunction(
A aaaaaaaaaaaaaaaaaaaaa) const -> decltype(f(aaaaaaaaaaaaaaaaaaaaa)) {}
After:
auto SomeFunction(A aaaaaaaaaaaaaaaaaaaaa) const
-> decltype(f(aaaaaaaaaaaaaaaaaaaaa)) {}
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@220043 91177308-0d34-0410-b5e6-96231b3b80d8
2014-10-17 14:37:40 +00:00
Daniel Jasper
eec240b1ce
clang-format: Fix behavior with comments before conditional expressions
...
Before:
SomeFunction(aaaaaaaaaaaaaaaaa,
// comment.
ccccccccccccccccc ? aaaaaaaaaaaaaaaaaaaa
: bbbbbbbbbbbbbbbbbbbb);
After:
SomeFunction(aaaaaaaaaaaaaaaaa,
// comment.
ccccccccccccccccc ? aaaaaaaaaaaaaaaaaaaa : bbbbbbbbbbbbbbbbbbbb);
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@219921 91177308-0d34-0410-b5e6-96231b3b80d8
2014-10-16 09:10:11 +00:00
Daniel Jasper
3dfb31cb7b
clang-format: [ObjC] Fix method expression detection.
...
Before:
return (a)[foo bar : baz];
After:
return (a)[foo bar:baz];
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@219919 91177308-0d34-0410-b5e6-96231b3b80d8
2014-10-16 08:38:51 +00:00
Daniel Jasper
3fa42e8f26
clang-format: [ObjC] Wrap ObjC method declarations before annotations.
...
Before:
- (instancetype)initXxxxxxxxxxxxxxxxxxxxxxxxx:(id<x>)x
y:(id<yyyyyyyyyyyyyyyyyyyy>)
y NS_DESIGNATED_INITIALIZER;
After:
- (instancetype)initXxxxxxxxxxxxxxxxxxxxxxxxx:(id<x>)x
y:(id<yyyyyyyyyyyyyyyyyyyy>)y
NS_DESIGNATED_INITIALIZER;
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@219564 91177308-0d34-0410-b5e6-96231b3b80d8
2014-10-11 08:24:56 +00:00
Daniel Jasper
01d1a20869
clang-format: Add option to control call argument bin-packing separately
...
This is desirable for the Chromium style guide:
http://www.chromium.org/developers/coding-style
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@219400 91177308-0d34-0410-b5e6-96231b3b80d8
2014-10-09 09:52:05 +00:00
Daniel Jasper
80d8966101
clang-format: Fix bug with comments between non-trival parameters.
...
Before:
SomeFunction(a, a,
// comment
b + x);
After:
SomeFunction(a, a,
// comment
b + x);
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@219209 91177308-0d34-0410-b5e6-96231b3b80d8
2014-10-07 14:45:34 +00:00
Daniel Jasper
788b8364be
clang-format: If in doubt, assume '+' is a binary operator.
...
Before:
#define LENGTH(x, y) (x) - (y)+1
After:
#define LENGTH(x, y) (x) - (y) + 1
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@219119 91177308-0d34-0410-b5e6-96231b3b80d8
2014-10-06 13:16:43 +00:00
Daniel Jasper
d53cbcf389
clang-format: Fix GCC warning about implicit bool pointer conversion.
...
Introduced in r217880.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@218597 91177308-0d34-0410-b5e6-96231b3b80d8
2014-09-29 08:07:46 +00:00
Nico Weber
f4daa21793
clang-format: Don't let -style=Chromium imply c++03 template formatting.
...
Chromium's now using some c++11 language features, so it's now fine that
clang-format produces vector<vector<int>>.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@218392 91177308-0d34-0410-b5e6-96231b3b80d8
2014-09-24 17:17:32 +00:00
Daniel Jasper
2cc82f4c7e
clang-format: Prevent column layout if elements aren't uniform enough.
...
This patch only considers the difference between the length of the
shortest and longest element, but we might want to look at other
features (token count, etc.) in future.
Before:
std::vector<MyValues> aaaaaaaaaaaaaaaaaaa{
aaaaaaa, aaaaaaaaaa,
aaaaa, aaaaaaaaaaaaaaa,
aaa, aaaaaaaaaa,
a, aaaaaaaaaaaaaaaaaaaaa,
aaaaaaaaaaaa, aaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaa,
aaaaaaa, a};
After:
std::vector<MyValues> aaaaaaaaaaaaaaaaaaa{
aaaaaaa, aaaaaaaaaa, aaaaa, aaaaaaaaaaaaaaa, aaa, aaaaaaaaaa, a,
aaaaaaaaaaaaaaaaaaaaa, aaaaaaaaaaaa,
aaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaa, aaaaaaa, a};
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@218111 91177308-0d34-0410-b5e6-96231b3b80d8
2014-09-19 08:28:43 +00:00
Daniel Jasper
9aba614f0e
clang-format: Undo r216377.
...
It has proven to not be a food idea in many case.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@218107 91177308-0d34-0410-b5e6-96231b3b80d8
2014-09-19 08:01:25 +00:00
Daniel Jasper
ac1430893a
clang-format: Allow unbroken ::: in inline assembly.
...
Before:
asm volatile("nop" :: : "memory");
After:
asm volatile("nop" ::: "memory");
Patch by Eugene Toder. Thank you.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@217883 91177308-0d34-0410-b5e6-96231b3b80d8
2014-09-16 16:36:57 +00:00
Daniel Jasper
bd4e666e31
clang-format: Restructure and add missing tests.
...
Patch by Jean-Philippe Dufraigne, Thank you!
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@217880 91177308-0d34-0410-b5e6-96231b3b80d8
2014-09-16 16:22:30 +00:00
Daniel Jasper
742a11d583
clang-format: Add option to break before non-assignment operators.
...
This will allow:
int aaaaaaaaaaaaaa =
bbbbbbbbbbbbbb
+ ccccccccccccccc;
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@217757 91177308-0d34-0410-b5e6-96231b3b80d8
2014-09-15 11:11:00 +00:00
Daniel Jasper
18920bfdd0
clang-format: Improve line breaks at function calls.
...
Before:
EXPECT_CALL(SomeObject, SomeFunction(Parameter)).Times(2).WillRepeatedly(
Return(SomeValue));
After:
EXPECT_CALL(SomeObject, SomeFunction(Parameter))
.Times(2)
.WillRepeatedly(Return(SomeValue));
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@217687 91177308-0d34-0410-b5e6-96231b3b80d8
2014-09-12 16:35:28 +00:00
Roman Kashitsyn
ad7408609a
Fix bug 20892 - clang-format does not handle C-style comments
...
Summary:
http://llvm.org/bugs/show_bug.cgi?id=20892
Add support of C-style formatting enabling/disabling directives. Now the following two styles are supported:
// clang-format on
/* clang-format on */
The flexibility in comments (support of extra spaces and/or slashes, etc.) is deliberately avoided to simplify search in large code bases.
Reviewers: djasper
Reviewed By: djasper
Subscribers: cfe-commits, curdeius, klimek
Differential Revision: http://reviews.llvm.org/D5309
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@217588 91177308-0d34-0410-b5e6-96231b3b80d8
2014-09-11 14:47:20 +00:00
Daniel Jasper
c661f601f8
clang-format: Add option to allow short case labels on a single line.
...
On a single line:
switch (a) {
case 1: x = 1; return;
case 2: x = 2; return;
default: break;
}
Not on a single line:
switch (a) {
case 1:
x = 1;
return;
case 2:
x = 2;
return;
default:
break;
}
This partly addresses llvm.org/PR16535. In the long run, we probably want to
lay these out in columns.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@217501 91177308-0d34-0410-b5e6-96231b3b80d8
2014-09-10 13:11:45 +00:00
Daniel Jasper
58906676e5
clang-format: Add an option 'SpaceAfterCStyleCast'.
...
This permits to add a space after closing parenthesis of a C-style cast.
Defaults to false to preserve old behavior.
Fixes llvm.org/PR19982.
Before:
(int)i;
After:
(int) i;
Patch by Marek Kurdej.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@217022 91177308-0d34-0410-b5e6-96231b3b80d8
2014-09-03 07:37:29 +00:00
Daniel Jasper
968597c300
clang-format: Fix unary operator detection in corner case.
...
Before:
decltype(* ::std::declval<const T &>()) void F();
After:
decltype(*::std::declval<const T &>()) void F();
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@216724 91177308-0d34-0410-b5e6-96231b3b80d8
2014-08-29 12:54:38 +00:00
Daniel Jasper
702b97059f
clang-format: Fix regression in formatting of braced initializers.
...
Before:
Node n{1, Node{1000}, //
2};
After:
Node n{1, Node{1000}, //
2};
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@216540 91177308-0d34-0410-b5e6-96231b3b80d8
2014-08-27 11:53:26 +00:00
Daniel Jasper
3c002deeb1
clang-format: Don't butcher __asm blocks.
...
Instead completely cop out of formatting them for now.
This fixes llvm.org/PR20618.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@216501 91177308-0d34-0410-b5e6-96231b3b80d8
2014-08-26 23:15:12 +00:00
Daniel Jasper
4b30eb649f
clang-format: New option SpacesInSquareBrackets.
...
Before:
int a[5];
a[3] += 42;
After:
int a[ 5 ];
a[ 3 ] += 42;
Fixes LLVM bug #17887 (http://llvm.org/bugs/show_bug.cgi?id=17887 ).
Patch by Marek Kurdej, thank you!
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@216449 91177308-0d34-0410-b5e6-96231b3b80d8
2014-08-26 11:41:14 +00:00
Daniel Jasper
655e70bcb6
clang-format: Improve handling of block comments in braced lists.
...
Before:
std::vector<int> v = {
1, 0 /* comment */
};
After:
std::vector<int> v = {1, 0 /* comment */};
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@216445 91177308-0d34-0410-b5e6-96231b3b80d8
2014-08-26 09:37:52 +00:00
Daniel Jasper
89692ccf3d
clang-format: Understand sequenced casts.
...
This fixed llvm.org/PR20712.
Before:
int i = (int)(int) -2;
After:
int i = (int)(int)-2;
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@216378 91177308-0d34-0410-b5e6-96231b3b80d8
2014-08-25 09:36:07 +00:00
Daniel Jasper
9ec9028d00
clang-format: Improve formatting of nested builder-type calls.
...
Before:
f(FirstToken->WhitespaceRange.getBegin().getLocWithOffset(
First->LastNewlineOffset));
After:
f(FirstToken->WhitespaceRange.getBegin()
.getLocWithOffset(First->LastNewlineOffset));
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@216377 91177308-0d34-0410-b5e6-96231b3b80d8
2014-08-25 08:48:17 +00:00
Daniel Jasper
aa2040597b
clang-format: Prefer breaking after return type over template param
...
Before:
typename aaaaaaaaaa<aaaaaa>::aaaaaaaaaaa aaaaaaaaaa<
aaaaaa>::aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa(bool *aaaaaaaaaaaaaaaaaa,
bool *aa) {}
After:
typename aaaaaaaaaa<aaaaaa>::aaaaaaaaaaa
aaaaaaaaaa<aaaaaa>::aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa(
bool *aaaaaaaaaaaaaaaaaa, bool *aa) {}
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@215693 91177308-0d34-0410-b5e6-96231b3b80d8
2014-08-15 05:00:39 +00:00
Alexander Kornienko
13f22e6bfa
Split a large unit-test, so that it doesn't exceed stack frame size in certain test environments
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@215639 91177308-0d34-0410-b5e6-96231b3b80d8
2014-08-14 13:07:35 +00:00
Daniel Jasper
078a00c52d
clang-format: Fix AlwaysBreakAfterDefinitionReturnType in Stroutrup style
...
Before:
template <class T>
T *f(T &c) // Problem here: no line break before f
{
return NULL;
}
After:
template <class T>
T *
f(T &c)
{
return NULL;
}
Patch by Marek Kurdej, thank you!
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@215633 91177308-0d34-0410-b5e6-96231b3b80d8
2014-08-14 11:36:03 +00:00
Daniel Jasper
4230ae8f1a
clang-format: Support chained dereferenced assignments.
...
Before:
x = * a(x) = *a(y);
After:
x = *a(x) = *a(y);
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@215632 91177308-0d34-0410-b5e6-96231b3b80d8
2014-08-14 10:53:19 +00:00
Daniel Jasper
0982555139
clang-format: Support breaking arguments of function type typedefs.
...
Before:
typedef size_t (*aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa)(
const aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa *aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa);
After:
typedef size_t (*aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa)(
const aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa *
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa);
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@215631 91177308-0d34-0410-b5e6-96231b3b80d8
2014-08-14 10:52:56 +00:00
Manuel Klimek
7c643eb7a3
Fix crasher bug in clang-format.
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@215549 91177308-0d34-0410-b5e6-96231b3b80d8
2014-08-13 14:00:41 +00:00
Daniel Jasper
fef3e209a6
clang-format: Format long lists in columns if without bin-packing.
...
After (even with BinPacking = false):
const Aaaaaa aaaaa = {
aaaaa, bbbbb, ccccc, ddddd, eeeee, ffffff, ggggg, hhhhhh,
iiiiii, jjjjjj, kkkkkk, aaaaa, bbbbb, ccccc, ddddd, eeeee,
ffffff, ggggg, hhhhhh, iiiiii, jjjjjj, kkkkkk,
};
Before:
<each element on its own line>
This fixes http://llvm.org/PR20623 .
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@215529 91177308-0d34-0410-b5e6-96231b3b80d8
2014-08-13 08:46:21 +00:00
Daniel Jasper
3ed303aa18
clang-format: Understand #defines defining system includes.
...
Before:
#define MY_IMPORT < a / b >
After:
#define MY_IMPORT <a/b>
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@215527 91177308-0d34-0410-b5e6-96231b3b80d8
2014-08-13 08:29:18 +00:00
Daniel Jasper
cd177b1a57
clang-format: Avoid bad line break.
...
Before:
int
aaaaaaaaaaaaaaaaaaaaaaaaaaaaa(const
typename aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaa);
After:
int aaaaaaaaaaaaaaaaaaaaaaaaaaaaa(
const typename aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaa);
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@215442 91177308-0d34-0410-b5e6-96231b3b80d8
2014-08-12 13:22:26 +00:00
Roman Kashitsyn
80e26f2ce1
Fixes bug 20587 - Add K&R break before braces style
...
Summary:
http://llvm.org/bugs/show_bug.cgi?id=20587
Added K&R style. It could be enabled by the following option:
```
BreakBeforeBraces: KernighanRitchie
```
This style is like `Attach`, but break *only* before function
declarations.
As I can see, no additional logic required to support this style, any
style different from other styles automagically satisfies K&R.
Reviewers: djasper
Reviewed By: djasper
Subscribers: cfe-commits, klimek
Differential Revision: http://reviews.llvm.org/D4837
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@215354 91177308-0d34-0410-b5e6-96231b3b80d8
2014-08-11 12:18:01 +00:00
Daniel Jasper
4ff1e1c912
clang-format: Prefer not to put lambdas on a single line.
...
Before:
string abc =
SomeFunction(aaaaaaaaaaaaa, aaaaa,
[]() { SomeOtherFunctioooooooooooooooooooooooooon(); });
After:
string abc = SomeFunction(aaaaaaaaaaaaa, aaaaa, []() {
SomeOtherFunctioooooooooooooooooooooooooon();
});
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@215197 91177308-0d34-0410-b5e6-96231b3b80d8
2014-08-08 12:00:13 +00:00
Daniel Jasper
c5c29e83a7
clang-format: Correct SBPO_Always-behavior after function-like keywords
...
Before:
auto f (int x) -> decltype(x) { return sizeof(x); }
int g () noexcept(someCall ());
static_assert(sizeof(char) == 1, "Your compiler is broken");
After:
auto f (int x) -> decltype (x) { return sizeof (x); }
int g () noexcept (someCall ());
static_assert (sizeof (char) == 1, "Your compiler is broken");
This fixes llvm.org/PR20559.
Patch by Roman Kashitsyn, thank you!
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@214969 91177308-0d34-0410-b5e6-96231b3b80d8
2014-08-06 14:15:41 +00:00
Daniel Jasper
71e0694b6a
clang-format: Add special comments to disable formatting.
...
With this patch:
int ThisWillBeFormatted;
// clang-format off
int ThisWontBeFormatted;
// clang-format on
int Formatted;
This is for regions where a significantly nicer code layout can be found
knowing the content of the code.
This fixes llvm.org/PR20463.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@214966 91177308-0d34-0410-b5e6-96231b3b80d8
2014-08-06 13:40:26 +00:00
Daniel Jasper
5b7401235e
clang-format: Fix indentation in multi-line placement new.
...
Before:
auto aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa =
new (aaaaaaaaaaaaaaaaaaaaaaaaaa(aaaaaaaaaaaaaaaaaaaaaaa))
typename aaaaaaaaaaaaaaaaaaaaaaaa();
After:
auto aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa =
new (aaaaaaaaaaaaaaaaaaaaaaaaaa(aaaaaaaaaaaaaaaaaaaaaaa))
typename aaaaaaaaaaaaaaaaaaaaaaaa();
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@214964 91177308-0d34-0410-b5e6-96231b3b80d8
2014-08-06 13:14:58 +00:00
Chad Rosier
2dec7c785a
[PR19983] SBPO_Always not covering all the cases.
...
Patch by "Roman Kashitsyn" <romankashicin@gmail.com>.
Phabricator revision: http://reviews.llvm.org/D4788
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@214904 91177308-0d34-0410-b5e6-96231b3b80d8
2014-08-05 17:58:54 +00:00
Daniel Jasper
6bb72d4d13
clang-format: Add option to always break after a function's return type.
...
This is required for GNU coding style, among others.
Also update the configuration documentation.
Modified from an original patch by Jarkko Hietaniemi, thank you!
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@214858 91177308-0d34-0410-b5e6-96231b3b80d8
2014-08-05 12:16:31 +00:00
Daniel Jasper
7947557c1a
clang-format: Break before 'else' in Stroustrup style.
...
Seems to be the desired thing to do according to:
http://www.stroustrup.com/Programming/PPP-style-rev3.pdf
Patch by Jarkko Hietaniemi, thank you!
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@214857 91177308-0d34-0410-b5e6-96231b3b80d8
2014-08-05 12:06:20 +00:00
Daniel Jasper
54e272c281
clang-format: Understand parameter pack initialization.
...
Before:
Constructor(A... a) : a_(X<A> { std::forward<A>(a) }...) {}
After:
Constructor(A... a) : a_(X<A>{std::forward<A>(a)}...) {}
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@214720 91177308-0d34-0410-b5e6-96231b3b80d8
2014-08-04 14:51:02 +00:00
Daniel Jasper
e7f5aaceb0
clang-format: Add a space in ObjC protocols.
...
Before:
@interface Foo (HackStuff)<MyProtocol>
After:
@interface Foo (HackStuff) <MyProtocol>
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@214508 91177308-0d34-0410-b5e6-96231b3b80d8
2014-08-01 13:03:05 +00:00
Manuel Klimek
785d3d6a03
Fix parsing of classes where the class name is an absolute nested name specifier.
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@214393 91177308-0d34-0410-b5e6-96231b3b80d8
2014-07-31 07:19:30 +00:00
Daniel Jasper
dd94b5956e
clang-format: Understand 'typename' in placement new.
...
Before:
new (aaaaaaaaaaaaaaaaaaaaaaaaaa(
aaaaaaaaaaaaaaaaaaaaaaa)) typename aaaaaaaaaaaaaaaaaaaaaaaa();
After:
new (aaaaaaaaaaaaaaaaaaaaaaaaaa(aaaaaaaaaaaaaaaaaaaaaaa))
typename aaaaaaaaaaaaaaaaaaaaaaaa();
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@214300 91177308-0d34-0410-b5e6-96231b3b80d8
2014-07-30 12:14:10 +00:00
Daniel Jasper
7a5b206891
clang-format: Improve operator and template recognition.
...
Before:
static_assert(is_convertible < A &&, B > ::value, "AAA");
After:
static_assert(is_convertible<A &&, B>::value, "AAA");
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@214075 91177308-0d34-0410-b5e6-96231b3b80d8
2014-07-28 13:19:58 +00:00
Daniel Jasper
ad9a858965
clang-format: Improve pointer/reference detection.
...
Before (with left pointer alignment):
void f(int i = 0, SomeType* *temps = NULL);
After:
void f(int i = 0, SomeType** temps = NULL);
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@214071 91177308-0d34-0410-b5e6-96231b3b80d8
2014-07-28 12:24:21 +00:00
Daniel Jasper
a0e9d76622
clang-format: Fix unary operator recognition.
...
Before:
int x = ~ * p;
After:
int x = ~*p;
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@214070 91177308-0d34-0410-b5e6-96231b3b80d8
2014-07-28 12:08:16 +00:00
Daniel Jasper
b1a732ef65
clang-format: Fix formatting of lock annotations in lambda definitions.
...
Before:
SomeFunction([](int i)LOCKS_EXCLUDED(a) {});
After:
SomeFunction([](int i) LOCKS_EXCLUDED(a) {});
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@214069 91177308-0d34-0410-b5e6-96231b3b80d8
2014-07-28 12:08:06 +00:00
Daniel Jasper
381ccddc29
clang-format: Fix parsing of conditional expressions.
...
Before:
aaaaaa = aaaaaaaaaaaa ? aaaaaaaaaa ? aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
: aaaaaaaaaaaaaaaaaaaaaa
: aaaaaaaaaaaaaaaaaaaaaaaaaaaa;
After:
aaaaaa = aaaaaaaaaaaa
? aaaaaaaaaa ? aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
: aaaaaaaaaaaaaaaaaaaaaa
: aaaaaaaaaaaaaaaaaaaaaaaaaaaa;
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@213258 91177308-0d34-0410-b5e6-96231b3b80d8
2014-07-17 12:22:04 +00:00
Daniel Jasper
0398cdfb55
clang-format: Improve heuristic around avoiding bad line breaks.
...
Now, this can be properly formatted:
static_cast<A< //
B> *>( //
);
Before, clang-format could end up, not formatting the code at all.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@213055 91177308-0d34-0410-b5e6-96231b3b80d8
2014-07-15 09:00:34 +00:00
Daniel Jasper
2188f45c6a
clang-format: Improve cast detection (fix false positive).
...
Before:
fn(a)(b)+1;
After:
fn(a)(b) + 1;
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@212935 91177308-0d34-0410-b5e6-96231b3b80d8
2014-07-14 12:38:38 +00:00
Daniel Jasper
fa308e31e8
clang-format: Fix behavior around pointer-to-member invocations.
...
Before:
(aaaaaaaaaa->*
bbbbbbb)(aaaaaaaaaaaaaaaaaaaaaaaaaaa(aaaaaaaaaaaaaaaaaaaaaaaaaaa));
After:
(aaaaaaaaaa->*bbbbbbb)(
aaaaaaaaaaaaaaaaaaaaaaaaaaa(aaaaaaaaaaaaaaaaaaaaaaaaaaa));
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@212617 91177308-0d34-0410-b5e6-96231b3b80d8
2014-07-09 13:07:57 +00:00
Daniel Jasper
bdfb538087
clang-format: Add new option to indent wrapped function declarations.
...
Though not completely identical, make former
IndentFunctionDeclarationAfterType change this flag for backwards
compatibility (it is somewhat close in meaning and better the err'ing on
an unknown config flag).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@212597 91177308-0d34-0410-b5e6-96231b3b80d8
2014-07-09 08:42:42 +00:00
Daniel Jasper
93dad34ad6
clang-format: Revamp function declaration/definition indentation.
...
Key changes:
- Correctly (well ...) distinguish function declarations and variable
declarations with ()-initialization.
- Don't indent when breaking function declarations/definitions after the
return type.
- Indent variable declarations and typedefs when breaking after the
type.
This fixes llvm.org/PR17999.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@212591 91177308-0d34-0410-b5e6-96231b3b80d8
2014-07-09 07:50:33 +00:00
Daniel Jasper
626829e5cf
clang-format: Support member function reference qualifiers.
...
Before:
string // break
operator()() &
{}
After:
string // break
operator()() & {}
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@212041 91177308-0d34-0410-b5e6-96231b3b80d8
2014-06-30 13:54:27 +00:00
Daniel Jasper
b1a7280eb3
clang-format: Improve expression heuristics.
...
Upon encountering a binary operator inside parentheses, assume that the
parentheses contain an expression.
Before:
MACRO('0' <= c&& c <= '9');
After:
MACRO('0' <= c && c <= '9');
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@212040 91177308-0d34-0410-b5e6-96231b3b80d8
2014-06-30 13:44:47 +00:00
Daniel Jasper
b3120c13de
clang-format: Understand that breaking before lambdas is fine.
...
Before:
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa([](
const aaaaaaaaaa &a) { return a; });
After:
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa(
[](const aaaaaaaaaa &a) { return a; });
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@211575 91177308-0d34-0410-b5e6-96231b3b80d8
2014-06-24 09:15:49 +00:00
Daniel Jasper
300efe8648
clang-format: Fix corner case in pointer/reference detection.
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@211487 91177308-0d34-0410-b5e6-96231b3b80d8
2014-06-23 07:36:18 +00:00
Daniel Jasper
b511fe9818
clang-format: Introduce style with spaces on both sides of */&.
...
Patch by Janusz Sobczak (slightly extended).
This fixes llvm.org/19929.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@211098 91177308-0d34-0410-b5e6-96231b3b80d8
2014-06-17 12:40:34 +00:00
Rafael Espindola
3d9d8de878
Fix msvc unittest build.
...
Looks like msvc has an asymmetrical operator ==.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@210768 91177308-0d34-0410-b5e6-96231b3b80d8
2014-06-12 11:35:17 +00:00
Rafael Espindola
7096fc133c
Give clang-format its own error category.
...
The posix errno values are probably to the best thing to use for
describing parse errors.
This should also fix the mingw build.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@210739 91177308-0d34-0410-b5e6-96231b3b80d8
2014-06-12 02:50:04 +00:00
Rafael Espindola
534f692b4d
Use std::error_code instead of llvm::error_code.
...
This is an update for a llvm api change.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@210688 91177308-0d34-0410-b5e6-96231b3b80d8
2014-06-11 19:05:55 +00:00
Daniel Jasper
c9ec1c267c
clang-format: Fix pointer/reference detection after decltype.
...
Before:
[](const decltype(*a) & value) {}
After:
[](const decltype(*a)& value) {}
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@210643 91177308-0d34-0410-b5e6-96231b3b80d8
2014-06-11 07:35:16 +00:00
Daniel Jasper
3724cafa4b
clang-format: Increase penalty for wrapping array subscript expressions
...
Before:
aaaaaaaaaaa aaaaaaaaaaaaaaa = aaaaaaaaaaaaaaaaaaaaaaaaaa->aaaaaaaaa[0].aaaaaaa
[0].aaaaaaaaaaaaaaaaaaaaaa();
After:
aaaaaaaaaaa aaaaaaaaaaaaaaa = aaaaaaaaaaaaaaaaaaaaaaaaaa->aaaaaaaaa[0]
.aaaaaaa[0]
.aaaaaaaaaaaaaaaaaaaaaa();
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@210529 91177308-0d34-0410-b5e6-96231b3b80d8
2014-06-10 13:27:57 +00:00
Daniel Jasper
ff8776e013
clang-format: Fix enum formatting with specific comment.
...
Before:
enum Fruit { //
APPLE,
PEAR };
After:
enum Fruit { //
APPLE,
PEAR
};
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@210522 91177308-0d34-0410-b5e6-96231b3b80d8
2014-06-10 10:42:26 +00:00
Daniel Jasper
a84adb5368
clang-format: Support variadic lambda captures.
...
Before:
return [ i, args... ]{};
After:
return [i, args...] {};
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@210514 91177308-0d34-0410-b5e6-96231b3b80d8
2014-06-10 06:39:03 +00:00
Daniel Jasper
c5e47d7fb3
clang-format: Handle multiline strings inside ternary expressions.
...
With AlwaysSplitBeforeMultilineStrings, clang-format would not find any
valid solution.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@210513 91177308-0d34-0410-b5e6-96231b3b80d8
2014-06-10 06:27:23 +00:00
Daniel Jasper
77258921c2
clang-format: Leave empty lines within UnwrappedLines.
...
These are commonly used to structure things like enums or long braced
lists. There doesn't seem to be a good reason to have the behavior in
such structures be different from the behavior between statements.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@210183 91177308-0d34-0410-b5e6-96231b3b80d8
2014-06-04 12:40:57 +00:00
Daniel Jasper
804ec3446d
clang-format: Fix special case of binary operator detection.
...
There is a pattern where evaluation order is used as control flow.
This patch special-cases a commonly occuring version of this pattern.
Before:
Aaaaa *aaa = nullptr;
// ...
aaa &&aaa->f();
After:
Aaaaa *aaa = nullptr;
// ...
aaa && aaa->f();
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@210017 91177308-0d34-0410-b5e6-96231b3b80d8
2014-06-02 11:54:20 +00:00
Daniel Jasper
278a968bf0
clang-format: No space between ")" and braced init list.
...
Before:
auto j = decltype(i) {};
After:
auto j = decltype(i){};
This fixes llvm.org/PR19892.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@210013 91177308-0d34-0410-b5e6-96231b3b80d8
2014-06-02 10:57:55 +00:00
Daniel Jasper
801fc6d544
clang-format: Fix Allman brace breaking of enums.
...
Before:
enum Side
{ LEFT,
RIGHT };
After:
enum Side
{
LEFT,
RIGHT
};
This fixes llvm.org/PR19911.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@210011 91177308-0d34-0410-b5e6-96231b3b80d8
2014-06-02 10:17:32 +00:00
Daniel Jasper
5c7f7663b2
clang-format: Fix trailing const (etc.) with Allman brace style.
...
Before:
void someLongFunction(int someLongParameter)
const
{
}
After:
void someLongFunction(
int someLongParameter) const
{
}
This fixes llvm.org/PR19912.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@210010 91177308-0d34-0410-b5e6-96231b3b80d8
2014-06-02 09:52:08 +00:00
Rafael Espindola
a7025137ce
There is no std::errc:success, remove the llvm one.
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@209959 91177308-0d34-0410-b5e6-96231b3b80d8
2014-05-31 03:20:52 +00:00
Daniel Jasper
b9b31663bc
clang-format: Don't break before a case's colon.
...
Before (with just the right line length:
switch (a) {
case some_namespace::some_constant
:
return;
}
After:
switch (a) {
case some_namespace::
some_constant:
return;
}
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@209725 91177308-0d34-0410-b5e6-96231b3b80d8
2014-05-28 10:09:11 +00:00
Daniel Jasper
d519dc975c
clang-format: Format array and dict literals similar to blocks.
...
Especially, reduce the amount of indentation if it doesn't increase
readability.
Before:
NSMutableDictionary* dictionary = [NSMutableDictionary
dictionaryWithDictionary:@{
aaaaaaaaaaaaaaaaaaaaa : aaaaaaaaaaaaa,
bbbbbbbbbbbbbbbbbb : bbbbb,
cccccccccccccccc : ccccccccccccccc
}];
After:
NSMutableDictionary* dictionary =
[NSMutableDictionary dictionaryWithDictionary:@{
aaaaaaaaaaaaaaaaaaaaa : aaaaaaaaaaaaa,
bbbbbbbbbbbbbbbbbb : bbbbb,
cccccccccccccccc : ccccccccccccccc
}];
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@209720 91177308-0d34-0410-b5e6-96231b3b80d8
2014-05-28 09:11:53 +00:00
Daniel Jasper
87b3c14288
clang-format: Keep '{' of dict literals on the same line in Allman style
...
Before:
void f()
{
[object
someMethod:@
{ @"a" : @"b" }];
}
After:
void f()
{
[object someMethod:@{ @"a" : @"b" }];
}
This fixes llvm.org/PR19854.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@209615 91177308-0d34-0410-b5e6-96231b3b80d8
2014-05-26 07:24:34 +00:00
Daniel Jasper
b362f6258e
clang-format: Don't use Allman brace breaking for ObjC blocks.
...
It just seems wrong. This fixes llvm.org/PR19736.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@209440 91177308-0d34-0410-b5e6-96231b3b80d8
2014-05-22 13:53:55 +00:00
Daniel Jasper
370a3848f4
clang-format: Fix corner case in AllowShortBlocksOnASingleLine.
...
Before:
template <int> struct A4 { A4() { }
};
After:
template <int i> struct A4 {
A4() {}
};
This fixes llvm.org/PR19813 (at least the part that isn't working as
intended).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@209438 91177308-0d34-0410-b5e6-96231b3b80d8
2014-05-22 13:25:26 +00:00
Daniel Jasper
82317587cd
clang-format: Fix braced list detection.
...
Before:
static_assert(std::is_integral<int> {} + 0, "");
int a = std::is_integral<int> {}
+ 0;
After:
static_assert(std::is_integral<int>{} + 0, "");
int a = std::is_integral<int>{} + 0;
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@209431 91177308-0d34-0410-b5e6-96231b3b80d8
2014-05-22 12:46:38 +00:00
Daniel Jasper
75ca7975d7
clang-format: Fix incorrect braced init identification.
...
Before:
int foo(int i) {
return fo1 {}
(i);
}
int foo(int i) {
return fo1 {}
(i);
}
After:
int foo(int i) { return fo1{}(i); }
int foo(int i) { return fo1{}(i); }
This fixes llvm.org/PR19812.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@209428 91177308-0d34-0410-b5e6-96231b3b80d8
2014-05-22 12:11:13 +00:00
Daniel Jasper
643549ba93
clang-format: Correctly identify multiplications in braces init lists.
...
Before:
int i{a *b};
After:
int i{a * b};
Also fix unrelated issue where braced init lists were counted as blocks
and prevented single-line functions.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@209412 91177308-0d34-0410-b5e6-96231b3b80d8
2014-05-22 09:00:33 +00:00
Daniel Jasper
5da13c6a4f
clang-format: Correctly calculate line lenghts for nest blocks.
...
If simple (one-statement) blocks can be inlined, the length needs to be
calculated correctly.
Before (in JavaScript but this also affects lambdas, etc.):
var x = {
valueOf: function() { return 1; }
};
After:
var x = {valueOf: function() { return 1; }};
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@209410 91177308-0d34-0410-b5e6-96231b3b80d8
2014-05-22 08:36:53 +00:00
Daniel Jasper
ba2156840c
clang-format: Fix incorrect macro call detection.
...
In:
struct A {
A()
noexcept(....) {}
};
'A()' is not a macro call.
This fixes llvm.org/PR19814.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@209294 91177308-0d34-0410-b5e6-96231b3b80d8
2014-05-21 13:08:17 +00:00
Daniel Jasper
2e43cf487d
clang-format: Don't force line breaks in ObjC calls with ColumnLimit 0.
...
Before:
[self.x a:b c:d];
Got reformatted toi (with ColumnLimit set to 0):
[self.x a:b
c:d];
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@209114 91177308-0d34-0410-b5e6-96231b3b80d8
2014-05-19 08:06:34 +00:00
Daniel Jasper
65e68675f1
clang-format: Add option to allow short blocks on a single line.
...
With AllowShortBlocksOnASingleLine, clang-format allows:
if (a) { return; }
Based on patch by Gonzalo BG, thank you!
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@208765 91177308-0d34-0410-b5e6-96231b3b80d8
2014-05-14 09:33:35 +00:00
Daniel Jasper
9e7b06fe75
clang-format: Don't break in the middle of ">>".
...
Before:
zzzzzzzzzz = bbbbbbbbbbbbbbbbb >
> aaaaaaaaaaaaaaaa(aaaaaaaaaaaaaaaaaaaaaaaaaa);
After:
zzzzzzzzzz
= bbbbbbbbbbbbbbbbb
>> aaaaaaaaaaaaaaaa(aaaaaaaaaaaaaaaaaaaaaaaaaa);
This fixes llvm.org/PR19731.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@208672 91177308-0d34-0410-b5e6-96231b3b80d8
2014-05-13 08:01:47 +00:00
Daniel Jasper
70b10474b6
clang-format: Initial support for try-catch.
...
Most of this patch was created by Alexander Rojas in
http://reviews.llvm.org/D2555
Thank you!
Synced and addressed review comments.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@208302 91177308-0d34-0410-b5e6-96231b3b80d8
2014-05-08 11:58:24 +00:00
Daniel Jasper
26368c6ccd
clang-format: Fix binary operator detection before lambdas.
...
Before:
bool foo = true&& [] { return false; }();
After:
bool foo = true && [] { return false; }();
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@208288 91177308-0d34-0410-b5e6-96231b3b80d8
2014-05-08 08:50:10 +00:00
Nikola Smiljanic
974c54917b
Enable alternative tokens by default for clang-format.
...
Patch by Bobby Moretti.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@208269 91177308-0d34-0410-b5e6-96231b3b80d8
2014-05-08 00:05:13 +00:00
Daniel Jasper
e486bd0da6
clang-format: Fix corner cases for comments in if conditions.
...
Before:
if ( // a
x + 3) { ..
After:
if ( // a
x + 3) { ..
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@208175 91177308-0d34-0410-b5e6-96231b3b80d8
2014-05-07 09:23:05 +00:00
Daniel Jasper
65f588f5a9
clang-format: Fix bad space before braced initializer.
...
Before:
new int {1};
After:
new int{1};
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@208168 91177308-0d34-0410-b5e6-96231b3b80d8
2014-05-07 07:59:03 +00:00
Dinesh Dwivedi
7cd95fe254
Fixed one issue with casting
...
Before:
(void) SimplifyICmpOperands(Cond, LHS, RHS);
After:
(void)SimplifyICmpOperands(Cond, LHS, RHS);
Differential Revision: http://reviews.llvm.org/D3615
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@208080 91177308-0d34-0410-b5e6-96231b3b80d8
2014-05-06 11:46:49 +00:00
Daniel Jasper
2afa00ce86
clang-format: Understand functions with decltype return type.
...
Before:
decltype(long_name_forcing_break)
f() {}
After:
decltype(long_name_forcing_break)
f() {}
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@207965 91177308-0d34-0410-b5e6-96231b3b80d8
2014-05-05 13:48:09 +00:00
Dinesh Dwivedi
f58cd1f968
Added some heuristics to identify c style casting
...
Before:
void f() { my_int a = (my_int) * b; }
void f() { return P ? (my_int) * P : (my_int)0; }
After:
void f() { my_int a = (my_int)*b; }
void f() { return P ? (my_int)*P : (my_int)0; }
Differential Revision: http://reviews.llvm.org/D3576
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@207964 91177308-0d34-0410-b5e6-96231b3b80d8
2014-05-05 13:14:35 +00:00
Daniel Jasper
77c0aa126d
clang-format: Improve understanding of decltype.
...
Before:
SomeFunction([](decltype(x), A * a) {});
After:
SomeFunction([](decltype(x), A *a) {});
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@207961 91177308-0d34-0410-b5e6-96231b3b80d8
2014-05-05 12:36:29 +00:00
Dinesh Dwivedi
4114947c77
Fix bug in clang-format while merging short function
...
Before:
#ifdef _DEBUG
int foo( int i = 0 )
#else
int foo( int i = 5 )
#endif { return i; }
After:
#ifdef _DEBUG
int foo( int i = 0 )
#else
int foo( int i = 5 )
#endif
{
return i;
}
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@207958 91177308-0d34-0410-b5e6-96231b3b80d8
2014-05-05 11:36:35 +00:00
Daniel Jasper
df4eadab62
clang-format: Fix import statements with ColumnLimit: 0
...
These used to interact badly with AlwaysBreakBeforeMultilineStrings.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@207955 91177308-0d34-0410-b5e6-96231b3b80d8
2014-05-05 08:08:07 +00:00
Dinesh Dwivedi
e46eeede06
Fixes issue with Allman BreakBeforeBraces for Objective C @interface
...
Before:
@interface BSApplicationController () {
@private
id _extraIvar;
}
@end
After:
@interface BSApplicationController ()
{
@private
id _extraIvar;
}
@end
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@207849 91177308-0d34-0410-b5e6-96231b3b80d8
2014-05-02 17:01:46 +00:00
Daniel Jasper
c9f13e1e30
clang-format: Allow single-line function in WebKit style.
...
Before:
void f() {
return; }
After:
void f() { return; }
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@207527 91177308-0d34-0410-b5e6-96231b3b80d8
2014-04-29 14:05:20 +00:00
Daniel Jasper
9a7de2412c
clang-format: Improve binary operator detection.
...
Before:
*(int *)(p &~3UL) = 0;
After:
*(int *)(p & ~3UL) = 0;
This fixes llvm.org/PR19464.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@207405 91177308-0d34-0410-b5e6-96231b3b80d8
2014-04-28 09:19:28 +00:00
Daniel Jasper
c944d2a475
clang-format: Fixes spaces in case statements.
...
This fixes llvm.org/PR19482.
Before:
switch (a) {
case(B) :
return;
}
After:
switch (a) {
case (B):
return;
}
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@207402 91177308-0d34-0410-b5e6-96231b3b80d8
2014-04-28 07:48:36 +00:00
Daniel Jasper
4145db1ccb
clang-format: Don't wrap after @interface.
...
This fixes llvm.org/PR19450.
Before:
@interface
BookmarkHomeHandsetViewController ()<BookmarkAllCollectionViewDelegate,
BookmarkFolderCollectionViewDelegate,
BookmarkMenuViewControllerDelegate,
BookmarkSearchViewControllerDelegate> {
}
After:
@interface aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ()<
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa> {
}
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@207400 91177308-0d34-0410-b5e6-96231b3b80d8
2014-04-28 07:34:48 +00:00
Daniel Jasper
394dfe8401
clang-format: Fix bug when aligning trailing /**/-comments in macros.
...
Previously this could lead to a column limit violation with the
required escaped newlines.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@207351 91177308-0d34-0410-b5e6-96231b3b80d8
2014-04-27 10:03:19 +00:00
Chandler Carruth
2e5043a88c
[Modules] Fix potential ODR violations by sinking the DEBUG_TYPE
...
definition below all of the header #include lines, clang edition.
If you want more details about this, you can see some of the commits to
Debug.h in LLVM recently. This is just the clang section of a cleanup
I've done for all uses of DEBUG_TYPE in LLVM.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206849 91177308-0d34-0410-b5e6-96231b3b80d8
2014-04-22 03:17:02 +00:00
Alexander Kornienko
7350259076
Fix alignment of trailing block comments.
...
Summary:
This patch ensures that the lines of the block comments retain relative
column offsets. In order to do this WhitespaceManager::Changes representing
continuation of block comments keep a pointer on the change representing the
whitespace change before the block comment, and a relative column offset to this
change, so that the correct column can be reconstructed at the end of alignment
process.
Fixes http://llvm.org/PR19325
Reviewers: djasper
Reviewed By: djasper
CC: cfe-commits, klimek
Differential Revision: http://reviews.llvm.org/D3408
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206472 91177308-0d34-0410-b5e6-96231b3b80d8
2014-04-17 16:12:46 +00:00
Daniel Jasper
343f33f4e7
clang-format: Respect BinPackParameters in Cpp11BracedListStyle.
...
With BinPackParameters=false and Cpp11BracedListStyle=true (i.e. mostly
for Chromium):
Before:
const Aaaaaa aaaaa = {aaaaa, bbbbb, ccccc, ddddd, eeeee, ffffff,
ggggg, hhhhhh, iiiiii, jjjjjj, kkkkkk};
After:
const Aaaaaa aaaaa = {aaaaa,
bbbbb,
ccccc,
ddddd,
eeeee,
ffffff,
ggggg,
hhhhhh,
iiiiii,
jjjjjj,
kkkkkk};
This fixes llvm.org/PR19359. I am not sure we'll want this in all cases
in the long run, but I'll guess we'll get feedback on that.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206458 91177308-0d34-0410-b5e6-96231b3b80d8
2014-04-17 11:32:02 +00:00
Daniel Jasper
b0a2764aa1
clang-format: Add special case to reduce indentaiton in streams.
...
This is similar to how we treat assignments and seems to be generally
desirable.
Before:
llvm::errs() << aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa(
aaaaaaaaaaaaaaaaaaaaaaaaaaaa,
aaaaaaaaaaaaaaaaaaaaaaaaaaaa);
After:
llvm::errs() << aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa(
aaaaaaaaaaaaaaaaaaaaaaaaaaaa, aaaaaaaaaaaaaaaaaaaaaaaaaaaa);
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206384 91177308-0d34-0410-b5e6-96231b3b80d8
2014-04-16 12:26:54 +00:00
Alexander Kornienko
47caeab34c
Fix assertion when breaking string literals with tab characters.
...
Summary: Fixes http://llvm.org/PR19368
Reviewers: djasper, klimek
Reviewed By: klimek
CC: cfe-commits, klimek
Differential Revision: http://reviews.llvm.org/D3379
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206295 91177308-0d34-0410-b5e6-96231b3b80d8
2014-04-15 14:52:43 +00:00
Daniel Jasper
443b931d06
clang-format: Basic support for C++1y.
...
Before:
int bi{1 '000' 000};
After:
int bi{1'000'000};
This fixes llvm.org/PR19342.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206263 91177308-0d34-0410-b5e6-96231b3b80d8
2014-04-15 08:49:21 +00:00
Daniel Jasper
1814a5400a
clang-format: Fix regression caused by r206165.
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206173 91177308-0d34-0410-b5e6-96231b3b80d8
2014-04-14 13:15:29 +00:00
Daniel Jasper
fde5c28edd
clang-format: Fix incorrect &&-detection in macros.
...
Before:
#define A(a, b) (a &&b)
After:
#define A(a, b) (a && b)
This fixes llvm.org/PR19343.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206165 91177308-0d34-0410-b5e6-96231b3b80d8
2014-04-14 12:50:02 +00:00
Daniel Jasper
8d29f537f5
clang-format: Improve array literal formatting fix in r206161.
...
Instead of choosing based on the number of elements, simply respect the
user's choice of where to wrap array literals.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206162 91177308-0d34-0410-b5e6-96231b3b80d8
2014-04-14 12:11:07 +00:00
Daniel Jasper
7701d04385
clang-format: With ColumnLimit=0, keep short array literals on a line.
...
Before:
NSArray* a = [[NSArray alloc] initWithArray:@[
@"a"
]
copyItems:YES];
After:
NSArray* a = [[NSArray alloc] initWithArray:@[ @"a" ]
copyItems:YES];
This fixed llvm.org/PR19080.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206161 91177308-0d34-0410-b5e6-96231b3b80d8
2014-04-14 12:05:05 +00:00
Daniel Jasper
1e171ff6b2
clang-format: Don't allow hanging indentation for operators on new lines
...
Before:
if (aaaaaaaa && bbbbbbbbbbbbbbb // need to wrap
== cccccccccccccc) ...
After:
if (aaaaaaaa
&& bbbbbbbbbbbbbbb // need to wrap
== cccccccccccccc) ...
The same rule has already be implemented for BreakBeforeBinaryOperators
set to false in r205527.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206159 91177308-0d34-0410-b5e6-96231b3b80d8
2014-04-14 11:08:45 +00:00
Manuel Klimek
f6e698b429
Format code around VCS conflict markers.
...
Now correctly formats:
{
int a;
void f() {
callme(some(parameter1,
<<<<<<< text by the vcs
parameter2),
||||||| text by the vcs
parameter2),
parameter3,
======= text by the vcs
parameter2, parameter3),
>>>>>>> text by the vcs
otherparameter);
}
}
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206157 91177308-0d34-0410-b5e6-96231b3b80d8
2014-04-14 09:14:11 +00:00
Daniel Jasper
5975b27fc5
clang-format: Improve formatting of annotated variables.
...
Before:
bool aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa GUARDED_BY(
aaaaaaaaaaaa) = aaaaaaaa::aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa;
After:
bool aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa GUARDED_BY(aaaaaaaaaaaa) =
aaaaaaaa::aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa;
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206155 91177308-0d34-0410-b5e6-96231b3b80d8
2014-04-14 08:15:20 +00:00
Daniel Jasper
0716e08cec
clang-format: Treat a trailing comment like a trailing comma in braced lists.
...
Before:
static StructInitInfo module = {MODULE_BUILTIN, /* type */
"streams" /* name */
};
After:
static StructInitInfo module = {
MODULE_BUILTIN, /* type */
"streams" /* name */
};
This fixes llvm.org/PR19378.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@205851 91177308-0d34-0410-b5e6-96231b3b80d8
2014-04-09 13:18:49 +00:00