#
58611718 |
| 04-Jul-2013 |
Alexander Kornienko <alexfh@google.com> |
Added AlwaysBreakBeforeMultilineStrings option.
Summary: Always breaking before multiline strings can help format complex expressions containing multiline strings more consistently, and avoid consum
Added AlwaysBreakBeforeMultilineStrings option.
Summary: Always breaking before multiline strings can help format complex expressions containing multiline strings more consistently, and avoid consuming too much horizontal space.
Reviewers: djasper
Reviewed By: djasper
CC: cfe-commits, klimek
Differential Revision: http://llvm-reviews.chandlerc.com/D1097
llvm-svn: 185622
show more ...
|
#
7ae41cdd |
| 03-Jul-2013 |
Daniel Jasper <djasper@google.com> |
Don't insert confusing line breaks in comparisons.
In general, clang-format breaks after an operator if the LHS spans multiple lines. Otherwise, this can lead to confusing effects and effectively hi
Don't insert confusing line breaks in comparisons.
In general, clang-format breaks after an operator if the LHS spans multiple lines. Otherwise, this can lead to confusing effects and effectively hide the operator precendence, e.g. in
if (aaaaaaaaaaaaaa == bbbbbbbbbbbbbb && c) { ...
This patch removes this rule for comparisons, if the LHS is not a binary expression itself as many users were wondering why clang-format inserts an unnecessary linebreak.
Before: if (aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa( aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa) > 5) { ...
After: if (aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa( aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa) > 5) { ...
In the long run, we might: - Want to do this for other binary expressions as well. - Do this only if the RHS is short or even only if it is a literal.
llvm-svn: 185530
show more ...
|
#
dba1c558 |
| 02-Jul-2013 |
Daniel Jasper <djasper@google.com> |
Fix formatting of long declarations with const type.
Before (exceeding the column limit): LoooooooooooooooooooooooooooooooooooooooongType const LoooooooooooooooooooooooooooooooooooooooongVariable;
Fix formatting of long declarations with const type.
Before (exceeding the column limit): LoooooooooooooooooooooooooooooooooooooooongType const LoooooooooooooooooooooooooooooooooooooooongVariable;
After: LoooooooooooooooooooooooooooooooooooooooongType const LoooooooooooooooooooooooooooooooooooooooongVariable;
llvm-svn: 185418
show more ...
|
#
ca7bd720 |
| 01-Jul-2013 |
Daniel Jasper <djasper@google.com> |
Fix incorrect token counting introduced by r185319.
This lead to weird formatting. Before: DoSomethingWithVector({ {} /* No data */ }, { { 1, 2 } }); After: DoSomethingWithVector({ {} /* No data *
Fix incorrect token counting introduced by r185319.
This lead to weird formatting. Before: DoSomethingWithVector({ {} /* No data */ }, { { 1, 2 } }); After: DoSomethingWithVector({ {} /* No data */ }, { { 1, 2 } });
llvm-svn: 185346
show more ...
|
#
aa620e18 |
| 01-Jul-2013 |
Alexander Kornienko <alexfh@google.com> |
Avoid column limit violation in block comments in certain cases.
Summary: Add penalty when an excessively long line in a block comment can not be broken on a leading whitespace. Lack of this additio
Avoid column limit violation in block comments in certain cases.
Summary: Add penalty when an excessively long line in a block comment can not be broken on a leading whitespace. Lack of this addition can lead to severe column width violations when they can be easily avoided.
Reviewers: djasper
Reviewed By: djasper
CC: cfe-commits, klimek
Differential Revision: http://llvm-reviews.chandlerc.com/D1071
llvm-svn: 185337
show more ...
|
#
251b3c9e |
| 01-Jul-2013 |
Daniel Jasper <djasper@google.com> |
Don't align "} // namespace" comments.
This is not all bad, but people are often surprised by it.
Before: namespace { int SomeVariable = 0; // comment } // namespace
After: nam
Don't align "} // namespace" comments.
This is not all bad, but people are often surprised by it.
Before: namespace { int SomeVariable = 0; // comment } // namespace
After: namespace { int SomeVariable = 0; // comment } // namespace
llvm-svn: 185327
show more ...
|
#
bafa6b71 |
| 01-Jul-2013 |
Daniel Jasper <djasper@google.com> |
Don't add an extra space before ellipsis after pointers.
Before (for styles where the pointer binds to the type): template <class... Ts> void Foo(Ts... ts) {} template <class... Ts> void Foo(Ts* ...
Don't add an extra space before ellipsis after pointers.
Before (for styles where the pointer binds to the type): template <class... Ts> void Foo(Ts... ts) {} template <class... Ts> void Foo(Ts* ... ts) {} After: template <class... Ts> void Foo(Ts... ts) {} template <class... Ts> void Foo(Ts*... ts) {}
llvm-svn: 185321
show more ...
|
#
022612db |
| 01-Jul-2013 |
Daniel Jasper <djasper@google.com> |
Keep space between pointer and block comment.
Before: void f(int */* unused */) {} After: void f(int * /* unused */) {}
The previous version seems to be valid C++ code but confuses many syntax hig
Keep space between pointer and block comment.
Before: void f(int */* unused */) {} After: void f(int * /* unused */) {}
The previous version seems to be valid C++ code but confuses many syntax highlighters.
llvm-svn: 185320
show more ...
|
#
7f5d53e5 |
| 01-Jul-2013 |
Daniel Jasper <djasper@google.com> |
Fix braced-list detection in lieu of trailing comments.
Before: DoSomethingWithVector({ } /* No data */); After: DoSomethingWithVector({} /* No data */);
llvm-svn: 185319
|
#
1e80887d |
| 28-Jun-2013 |
Alexander Kornienko <alexfh@google.com> |
Use lexing mode based on FormatStyle.Standard.
Summary: Some valid pre-C++11 constructs change meaning when lexed in C++11 mode, e.g. #define x(_a) printf("foo"_a); (example from http://llvm.org/bug
Use lexing mode based on FormatStyle.Standard.
Summary: Some valid pre-C++11 constructs change meaning when lexed in C++11 mode, e.g. #define x(_a) printf("foo"_a); (example from http://llvm.org/bugs/show_bug.cgi?id=16342). "foo"_a is treated as a user-defined string literal when parsed in C++11 mode. In order to deal with this correctly, we need to set lexing mode according to which standard the code conforms to. We already have a configuration value for this (FormatStyle.Standard), which seems to be appropriate to use in this case as well.
Reviewers: klimek
CC: cfe-commits, gribozavr
Differential Revision: http://llvm-reviews.chandlerc.com/D1028
llvm-svn: 185149
show more ...
|
#
8084cffd |
| 26-Jun-2013 |
Nico Weber <nicolasweber@gmx.de> |
Formatter: Don't put a space after parameter-naming block comments.
Before: f(a, b, /*doFoo=*/ false); Now: f(a, b, /*doFoo=*/false);
This style is a lot more common: $ ack -H '=\*\/\w' lib | wc -l
Formatter: Don't put a space after parameter-naming block comments.
Before: f(a, b, /*doFoo=*/ false); Now: f(a, b, /*doFoo=*/false);
This style is a lot more common: $ ack -H '=\*\/\w' lib | wc -l 1281 $ ack -H '=\*\/ \w' lib | wc -l 70
llvm-svn: 184894
show more ...
|
#
ec9e4107 |
| 25-Jun-2013 |
Nico Weber <nicolasweber@gmx.de> |
Formatter/ObjC: Correctly format casts in objc message send expressions.
llvm-svn: 184804
|
#
e8d78249 |
| 25-Jun-2013 |
Nico Weber <nicolasweber@gmx.de> |
Formatter/Objc: Add a test that checks that @import is formatted correctly.
llvm-svn: 184796
|
#
34a87e85 |
| 22-Jun-2013 |
Alexander Kornienko <alexfh@google.com> |
Fixed typo.
llvm-svn: 184625
|
#
836c2868 |
| 21-Jun-2013 |
Manuel Klimek <klimek@google.com> |
Add an option to not indent declarations when breaking after the type.
Make that option the default for LLVM style.
llvm-svn: 184563
|
#
b93062e2 |
| 20-Jun-2013 |
Alexander Kornienko <alexfh@google.com> |
Use the same set of whitespace characters for all operations in BreakableToken.
Summary: Fixes a problem where \t,\v or \f could lead to a crash when placed as a first character in a line comment. T
Use the same set of whitespace characters for all operations in BreakableToken.
Summary: Fixes a problem where \t,\v or \f could lead to a crash when placed as a first character in a line comment. The cause is that rtrim and ltrim handle these characters, but our code didn't, so some invariants could be broken.
Reviewers: klimek
Reviewed By: klimek
CC: cfe-commits
Differential Revision: http://llvm-reviews.chandlerc.com/D1013
llvm-svn: 184425
show more ...
|
#
a3555e24 |
| 19-Jun-2013 |
Alexander Kornienko <alexfh@google.com> |
Fixed long-standing issue with incorrect length calculation of multi-line comments.
Summary: A trailing block comment having multiple lines would cause extremely high penalties if the summary length
Fixed long-standing issue with incorrect length calculation of multi-line comments.
Summary: A trailing block comment having multiple lines would cause extremely high penalties if the summary length of its lines is more than the column limit. Fixed by always considering only the last line of a multi-line block comment. Removed a long-standing FIXME from relevant tests and added a motivating test modelled after problem cases from real code.
Reviewers: klimek
Reviewed By: klimek
CC: cfe-commits
Differential Revision: http://llvm-reviews.chandlerc.com/D1010
llvm-svn: 184340
show more ...
|
#
72852074 |
| 19-Jun-2013 |
Alexander Kornienko <alexfh@google.com> |
Split long strings on word boundaries.
Summary: Split strings at word boundaries, when there are no spaces and slashes.
Reviewers: klimek
CC: cfe-commits
Differential Revision: http://llvm-review
Split long strings on word boundaries.
Summary: Split strings at word boundaries, when there are no spaces and slashes.
Reviewers: klimek
CC: cfe-commits
Differential Revision: http://llvm-reviews.chandlerc.com/D1003
llvm-svn: 184304
show more ...
|
#
afaa8f55 |
| 17-Jun-2013 |
Alexander Kornienko <alexfh@google.com> |
Fix a problem in ExpressionParser leading to trailing comments affecting indentation of an expression after a line break.
Summary: E.g. the second line in
return aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
Fix a problem in ExpressionParser leading to trailing comments affecting indentation of an expression after a line break.
Summary: E.g. the second line in
return aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + b; //
is indented 4 characters more than in
return aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + b;
Reviewers: klimek
Reviewed By: klimek
CC: cfe-commits
Differential Revision: http://llvm-reviews.chandlerc.com/D984
llvm-svn: 184078
show more ...
|
#
4d26b6ef |
| 17-Jun-2013 |
Alexander Kornienko <alexfh@google.com> |
Fixes incorrect indentation of line comments after break and re-alignment.
Summary: Selectively propagate the information about token kind in WhitespaceManager::replaceWhitespaceInToken.For correct
Fixes incorrect indentation of line comments after break and re-alignment.
Summary: Selectively propagate the information about token kind in WhitespaceManager::replaceWhitespaceInToken.For correct alignment of new segments of line comments in order to align them correctly. Don't set BreakBeforeParameter in breakProtrudingToken for line comments, as it introduces a break after the _next_ parameter. Added tests for related functions.
Reviewers: klimek
Reviewed By: klimek
CC: cfe-commits
Differential Revision: http://llvm-reviews.chandlerc.com/D980
llvm-svn: 184076
show more ...
|
#
be633908 |
| 14-Jun-2013 |
Alexander Kornienko <alexfh@google.com> |
Don't remove backslashes from block comments.
Summary: Don't remove backslashes from block comments. Previously this /* \ \ \ \ \ \ */ would be turned to this: /* */ which spoils some kinds of AS
Don't remove backslashes from block comments.
Summary: Don't remove backslashes from block comments. Previously this /* \ \ \ \ \ \ */ would be turned to this: /* */ which spoils some kinds of ASCII-art, people use in their comments. The behavior was related to handling escaped newlines in block comments inside preprocessor directives. This patch makes handling it in a more civilized way.
Reviewers: klimek
Reviewed By: klimek
CC: cfe-commits
Differential Revision: http://llvm-reviews.chandlerc.com/D979
llvm-svn: 183978
show more ...
|
#
f370ad90 |
| 12-Jun-2013 |
Alexander Kornienko <alexfh@google.com> |
Preserve newlines before block comments in static initializers.
Summary: Basically, don't special-case line comments in this regard. And fixed an incorrect test, that relied on the wrong behavior.
Preserve newlines before block comments in static initializers.
Summary: Basically, don't special-case line comments in this regard. And fixed an incorrect test, that relied on the wrong behavior.
Reviewers: klimek
Reviewed By: klimek
CC: cfe-commits
Differential Revision: http://llvm-reviews.chandlerc.com/D962
llvm-svn: 183851
show more ...
|
#
555efc36 |
| 11-Jun-2013 |
Alexander Kornienko <alexfh@google.com> |
Insert a space at the start of a line comment in case it starts with an alphanumeric character.
Summary: "//Test" becomes "// Test". This change is aimed to improve code readability and conformance
Insert a space at the start of a line comment in case it starts with an alphanumeric character.
Summary: "//Test" becomes "// Test". This change is aimed to improve code readability and conformance to certain coding styles. If a comment starts with a non-alphanumeric character, the space isn't added, e.g. "//-*-c++-*-" stays unchanged.
Reviewers: klimek
Reviewed By: klimek
CC: cfe-commits
Differential Revision: http://llvm-reviews.chandlerc.com/D949
llvm-svn: 183750
show more ...
|
#
ee4ca9ba |
| 07-Jun-2013 |
Alexander Kornienko <alexfh@google.com> |
Improved handling of escaped newlines at the token start.
Summary: Remove them from the TokenText as well.
Reviewers: klimek
Reviewed By: klimek
CC: cfe-commits
Differential Revision: http://llv
Improved handling of escaped newlines at the token start.
Summary: Remove them from the TokenText as well.
Reviewers: klimek
Reviewed By: klimek
CC: cfe-commits
Differential Revision: http://llvm-reviews.chandlerc.com/D935
llvm-svn: 183536
show more ...
|
#
dd7ece53 |
| 07-Jun-2013 |
Alexander Kornienko <alexfh@google.com> |
Fixed calculation of penalty when breaking tokens.
Summary: Introduced two new style parameters: PenaltyBreakComment and PenaltyBreakString. Add penalty for each character of a breakable token beyon
Fixed calculation of penalty when breaking tokens.
Summary: Introduced two new style parameters: PenaltyBreakComment and PenaltyBreakString. Add penalty for each character of a breakable token beyond the column limit (this relates mainly to comments, as they are broken only on whitespace). Tuned PenaltyBreakComment to prefer comment breaking over breaking inside most binary expressions. Fixed a bug that prevented *, & and && from being considered TT_BinaryOperator in the presense of adjacent comments.
Reviewers: klimek, djasper
Reviewed By: klimek
CC: cfe-commits
Differential Revision: http://llvm-reviews.chandlerc.com/D933
llvm-svn: 183530
show more ...
|