#
f579ab30 |
| 26-Jun-2013 |
Nico Weber <nicolasweber@gmx.de> |
Fix a comment.
llvm-svn: 184905
|
#
9096fc0d |
| 26-Jun-2013 |
Nico Weber <nicolasweber@gmx.de> |
Run clang-format on lib/Format code after r184894. No other changes.
llvm-svn: 184896
|
#
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
|
#
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 ...
|
#
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 ...
|
#
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 ...
|
Revision tags: llvmorg-3.3.0 |
|
#
ffcc0107 |
| 05-Jun-2013 |
Alexander Kornienko <alexfh@google.com> |
UTF-8 support for clang-format.
Summary: Detect if the file is valid UTF-8, and if this is the case, count code points instead of just using number of bytes in all (hopefully) places, where number o
UTF-8 support for clang-format.
Summary: Detect if the file is valid UTF-8, and if this is the case, count code points instead of just using number of bytes in all (hopefully) places, where number of columns is needed. In particular, use the new FormatToken.CodePointCount instead of TokenLength where appropriate. Changed BreakableToken implementations to respect utf-8 character boundaries when in utf-8 mode.
Reviewers: klimek, djasper
Reviewed By: djasper
CC: cfe-commits, rsmith, gribozavr
Differential Revision: http://llvm-reviews.chandlerc.com/D918
llvm-svn: 183312
show more ...
|
Revision tags: llvmorg-3.3.0-rc3 |
|
#
1027c6e5 |
| 03-Jun-2013 |
Daniel Jasper <djasper@google.com> |
Let clang-format remove empty lines before "}".
These lines almost never aid readability.
Before: void f() { int i; // some variable
}
After: void f() { int i; // some variable }
llvm-svn:
Let clang-format remove empty lines before "}".
These lines almost never aid readability.
Before: void f() { int i; // some variable
}
After: void f() { int i; // some variable }
llvm-svn: 183112
show more ...
|
#
80503952 |
| 03-Jun-2013 |
Daniel Jasper <djasper@google.com> |
Improve detection preventing certain kind of formatting patterns.
An oversight in this detection made clang-format unable to format the following nicely: void aaaaaaaaaaaaaaaaaaa<aaaaaaaaaaaaaaaaaaa
Improve detection preventing certain kind of formatting patterns.
An oversight in this detection made clang-format unable to format the following nicely: void aaaaaaaaaaaaaaaaaaa<aaaaaaaaaaaaaaaaaaaaaaaaaaa, bbbbbbbbbbbbbbbbbbbbbbbbbb>( cccccccccccccccccccccccccccc);
llvm-svn: 183097
show more ...
|
#
68d888cf |
| 03-Jun-2013 |
Daniel Jasper <djasper@google.com> |
Fix line-breaking problem caused by comment.
Before, clang-format would not find a solution for formatting: if ((aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa || bbbbbbbbbbbbbbbbbb) && // aaaaaaaaaaaaaaaa
Fix line-breaking problem caused by comment.
Before, clang-format would not find a solution for formatting: if ((aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa || bbbbbbbbbbbbbbbbbb) && // aaaaaaaaaaaaaaaa cccccc) { }
llvm-svn: 183096
show more ...
|
#
a9eb2aaf |
| 31-May-2013 |
Daniel Jasper <djasper@google.com> |
Make formatting of empty blocks more consistent.
With this patch, the simplified rule is: If the block is part of a declaration (class, namespace, function, enum, ..), merge an empty block onto a si
Make formatting of empty blocks more consistent.
With this patch, the simplified rule is: If the block is part of a declaration (class, namespace, function, enum, ..), merge an empty block onto a single line. Otherwise (specifically for the compound statements of if, for, while, ...), keep the braces on two separate lines.
The reasons are: - Mostly the formatting of empty blocks does not matter much. - Empty compound statements are really rare and are usually just inserted while still working on the code. If they are on two lines, inserting code is easier. Also, overlooking the "{}" of an "if (...) {}" can be really bad. - Empty declarations are not uncommon, e.g. empty constructors. Putting them on one line saves vertical space at no loss of readability.
llvm-svn: 183008
show more ...
|
#
4c5c28bb |
| 29-May-2013 |
Manuel Klimek <klimek@google.com> |
Use a non-recursive implementation to reconstruct line breaks.
Now that the TokenAnnotator does not require stack space anymore, reconstructing the lines has become the limiting factor. This patch f
Use a non-recursive implementation to reconstruct line breaks.
Now that the TokenAnnotator does not require stack space anymore, reconstructing the lines has become the limiting factor. This patch fixes that problem, allowing large files with multiple megabytes of single unwrapped lines to be formatted.
llvm-svn: 182861
show more ...
|
#
6e6310ec |
| 29-May-2013 |
Manuel Klimek <klimek@google.com> |
The second step in the token refactoring.
Gets rid of AnnotatedToken, putting everything into FormatToken. FormatTokens are created once, and only referenced by pointer. This enables multiple futur
The second step in the token refactoring.
Gets rid of AnnotatedToken, putting everything into FormatToken. FormatTokens are created once, and only referenced by pointer. This enables multiple future features, like having tokens shared between multiple UnwrappedLines (while there's still work to do to fully enable that).
llvm-svn: 182859
show more ...
|
#
61e6bbf8 |
| 29-May-2013 |
Daniel Jasper <djasper@google.com> |
Add option to always break template declarations.
With option enabled (e.g. in Google-style): template <typename T> void f() {}
With option disabled: template <typename T> void f() {}
Enabling thi
Add option to always break template declarations.
With option enabled (e.g. in Google-style): template <typename T> void f() {}
With option disabled: template <typename T> void f() {}
Enabling this for Google-style and Chromium-style, not sure which other styles would prefer that.
llvm-svn: 182849
show more ...
|
#
591ab5a8 |
| 28-May-2013 |
Manuel Klimek <klimek@google.com> |
Make UnwrappedLines and AnnotatedToken contain pointers to FormatToken.
The FormatToken is now not copyable any more.
llvm-svn: 182772
|
#
15dfe7ac |
| 28-May-2013 |
Manuel Klimek <klimek@google.com> |
A first step towards giving format tokens pointer identity.
With this patch, we create all tokens in one go before parsing and pass an ArrayRef<FormatToken*> to the UnwrappedLineParser. The Unwrappe
A first step towards giving format tokens pointer identity.
With this patch, we create all tokens in one go before parsing and pass an ArrayRef<FormatToken*> to the UnwrappedLineParser. The UnwrappedLineParser is switched to use pointer-to-token internally.
The UnwrappedLineParser still copies the tokens into the UnwrappedLines. This will be fixed in an upcoming patch.
llvm-svn: 182768
show more ...
|
#
bca4bbe3 |
| 28-May-2013 |
Daniel Jasper <djasper@google.com> |
Initial support for designated initializers.
llvm-svn: 182767
|
#
9f82df29 |
| 28-May-2013 |
Daniel Jasper <djasper@google.com> |
Fix formatting of expressions containing ">>".
This gets turned into two ">" operators at the beginning in order to simplify template parameter handling. Thus, we need a special case to handle those
Fix formatting of expressions containing ">>".
This gets turned into two ">" operators at the beginning in order to simplify template parameter handling. Thus, we need a special case to handle those two binary operators correctly.
With this patch, clang-format can now correctly handle cases like: aaaaaa = aaaaaaa(aaaaaaa, // break aaaaaa) >> bbbbbb;
llvm-svn: 182754
show more ...
|
#
9043c74f |
| 27-May-2013 |
Manuel Klimek <klimek@google.com> |
Major refactoring of BreakableToken.
Unify handling of whitespace when breaking protruding tokens with other whitespace replacements.
As a side effect, the BreakableToken structure changed signific
Major refactoring of BreakableToken.
Unify handling of whitespace when breaking protruding tokens with other whitespace replacements.
As a side effect, the BreakableToken structure changed significantly: - have a common base class for single-line breakable tokens, as they are much more similar - revamp handling of multi-line comments; we now calculate the information about lines in multi-line comments similar to normal tokens, and always issue replacements
As a result, we were able to get rid of special casing of trailing whitespace deletion for comments in the whitespace manager and the BreakableToken and fixed bugs related to tab handling and escaped newlines.
llvm-svn: 182738
show more ...
|
#
7b27a10b |
| 27-May-2013 |
Daniel Jasper <djasper@google.com> |
Improve indentation of assignments.
Before: unsigned OriginalStartColumn = SourceMgr.getSpellingColumnNumber( Current.FormatTok.getStartOfNonWhitespace()) - 1;
Af
Improve indentation of assignments.
Before: unsigned OriginalStartColumn = SourceMgr.getSpellingColumnNumber( Current.FormatTok.getStartOfNonWhitespace()) - 1;
After: unsigned OriginalStartColumn = SourceMgr.getSpellingColumnNumber( Current.FormatTok.getStartOfNonWhitespace()) - 1;
llvm-svn: 182733
show more ...
|
#
32a796bc |
| 27-May-2013 |
Daniel Jasper <djasper@google.com> |
Fix hacky way of preventing a certain type of line break.
In general, we like to avoid line breaks like:
... SomeParameter, OtherParameter).DoSomething( ...
as they tend to make code really
Fix hacky way of preventing a certain type of line break.
In general, we like to avoid line breaks like:
... SomeParameter, OtherParameter).DoSomething( ...
as they tend to make code really hard to read (how would you even indent the next line?). Previously we have implemented this in a hacky way, which has now shown to lead to problems. This fixes a few weird looking formattings, such as:
Before: aaaaa( aaaaa(aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa, aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa) .aaaaa(aaaaa), aaaaaaaaaaaaaaaaaaaaa); After: aaaaa(aaaaa(aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa, aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa).aaaaa(aaaaa), aaaaaaaaaaaaaaaaaaaaa);
llvm-svn: 182731
show more ...
|
#
5bd0b9e5 |
| 23-May-2013 |
Daniel Jasper <djasper@google.com> |
Improve formatting of braced lists.
Before: vector<int> v{ -1}; After: vector<int> v{-1}; llvm-svn: 182597
|