#
bfc34065 |
| 14-Jun-2018 |
Hans Wennborg <hans@hanshq.net> |
[clang-format] Add SpaceBeforeCpp11BracedList option.
WebKit C++ style for object initialization is as follows:
Foo foo { bar };
Yet using clang-format -style=webkit changes this to:
Foo foo{
[clang-format] Add SpaceBeforeCpp11BracedList option.
WebKit C++ style for object initialization is as follows:
Foo foo { bar };
Yet using clang-format -style=webkit changes this to:
Foo foo{ bar };
As there is no existing combination of rules that will ensure a space before a braced list in this fashion, this patch adds a new SpaceBeforeCpp11BracedList rule.
Patch by Ross Kirsling!
Differential Revision: https://reviews.llvm.org/D46024
llvm-svn: 334692
show more ...
|
#
6bb103f9 |
| 11-Jun-2018 |
Francois Ferrand <thetypz@gmail.com> |
clang-format: Introduce BreakInheritanceList option
Summary: This option replaces the BreakBeforeInheritanceComma option with an enum, thus introducing a mode where the colon stays on the same line
clang-format: Introduce BreakInheritanceList option
Summary: This option replaces the BreakBeforeInheritanceComma option with an enum, thus introducing a mode where the colon stays on the same line as constructor declaration:
// When it fits on line: class A : public B, public C { ... };
// When it does not fit: class A : public B, public C { ... };
This matches the behavior of the `BreakConstructorInitializers` option, introduced in https://reviews.llvm.org/D32479.
Reviewers: djasper, klimek
Reviewed By: djasper
Subscribers: mzeren-vmw, cfe-commits
Differential Revision: https://reviews.llvm.org/D43015
llvm-svn: 334408
show more ...
|
#
44564ac7 |
| 04-Jun-2018 |
Eric Liu <ioeric@google.com> |
Reland "Move #include manipulation code to new lib/Tooling/Inclusions."
This reverts commit r333534 (i.e. reland r332720) after fixing module build.
Differential Revision: https://reviews.llvm.org/
Reland "Move #include manipulation code to new lib/Tooling/Inclusions."
This reverts commit r333534 (i.e. reland r332720) after fixing module build.
Differential Revision: https://reviews.llvm.org/D47068
llvm-svn: 333874
show more ...
|
#
cfd01f94 |
| 30-May-2018 |
Eric Liu <ioeric@google.com> |
Revert "Reland "Move #include manipulation code to new lib/Tooling/Inclusions.""
This reverts commit r333532. Revert for now to fix an internal bot issue.
llvm-svn: 333534
|
#
4f20e9de |
| 30-May-2018 |
Eric Liu <ioeric@google.com> |
Reland "Move #include manipulation code to new lib/Tooling/Inclusions."
This reverts commit r332751 (i.e. reland r332720) after fixing module build.
Differential Revision: https://reviews.llvm.org/
Reland "Move #include manipulation code to new lib/Tooling/Inclusions."
This reverts commit r332751 (i.e. reland r332720) after fixing module build.
Differential Revision: https://reviews.llvm.org/D47068
llvm-svn: 333532
show more ...
|
#
1edf4bc6 |
| 18-May-2018 |
Eric Liu <ioeric@google.com> |
Revert "Move #include manipulation code to new lib/Tooling/Inclusions."
This reverts commit r332720. This break build bot with modules. Need to investigate. Revert the change to unbreak bots.
llvm-
Revert "Move #include manipulation code to new lib/Tooling/Inclusions."
This reverts commit r332720. This break build bot with modules. Need to investigate. Revert the change to unbreak bots.
llvm-svn: 332751
show more ...
|
#
e0a3f5b1 |
| 18-May-2018 |
Eric Liu <ioeric@google.com> |
Move #include manipulation code to new lib/Tooling/Inclusions.
Summary: clangToolingCore is linked into almost everything (incl. clang), but not few tools need #include manipulation at this point. S
Move #include manipulation code to new lib/Tooling/Inclusions.
Summary: clangToolingCore is linked into almost everything (incl. clang), but not few tools need #include manipulation at this point. So pull this into a separate library in Tooling.
Reviewers: ilya-biryukov
Subscribers: klimek, mgorny, cfe-commits, thakis
Differential Revision: https://reviews.llvm.org/D47068
llvm-svn: 332720
show more ...
|
#
58e6fe5b |
| 16-May-2018 |
Francois Ferrand <thetypz@gmail.com> |
clang-format: Allow optimizer to break template declaration.
Summary: Introduce `PenaltyBreakTemplateDeclaration` to control the penalty, and change `AlwaysBreakTemplateDeclarations` to an enum with
clang-format: Allow optimizer to break template declaration.
Summary: Introduce `PenaltyBreakTemplateDeclaration` to control the penalty, and change `AlwaysBreakTemplateDeclarations` to an enum with 3 modes: * `No` for regular, penalty based, wrapping of template declaration * `MultiLine` for always wrapping before multi-line declarations (e.g. same as legacy behavior when `AlwaysBreakTemplateDeclarations=false`) * `Yes` for always wrapping (e.g. same as legacy behavior when `AlwaysBreakTemplateDeclarations=true`)
Reviewers: krasimir, djasper, klimek
Subscribers: cfe-commits
Differential Revision: https://reviews.llvm.org/D42684
llvm-svn: 332436
show more ...
|
#
3538b39e |
| 15-May-2018 |
Nicola Zaghen <nicola.zaghen@imgtec.com> |
[clang] Update uses of DEBUG macro to LLVM_DEBUG.
The DEBUG() macro is very generic so it might clash with other projects. The renaming was done as follows: - git grep -l 'DEBUG' | xargs sed -i 's/\
[clang] Update uses of DEBUG macro to LLVM_DEBUG.
The DEBUG() macro is very generic so it might clash with other projects. The renaming was done as follows: - git grep -l 'DEBUG' | xargs sed -i 's/\bDEBUG\s\?(/LLVM_DEBUG(/g' - git diff -U0 master | ../clang/tools/clang-format/clang-format-diff.py -i -p1 -style LLVM
Explicitly avoided changing the strings in the clang-format tests.
Differential Revision: https://reviews.llvm.org/D44975
llvm-svn: 332350
show more ...
|
#
7129e63b |
| 14-May-2018 |
Eric Liu <ioeric@google.com> |
[Tooling] Pull #include manipulation code from clangFormat into libToolingCore.
Summary: Also pull #include related style out of FormatStyle as tooling::IncludeStyle.
Reviewers: ilya-biryukov
Revi
[Tooling] Pull #include manipulation code from clangFormat into libToolingCore.
Summary: Also pull #include related style out of FormatStyle as tooling::IncludeStyle.
Reviewers: ilya-biryukov
Reviewed By: ilya-biryukov
Subscribers: klimek, mgorny, cfe-commits, djasper
Differential Revision: https://reviews.llvm.org/D46496
llvm-svn: 332287
show more ...
|
#
9d92c027 |
| 14-May-2018 |
Eric Liu <ioeric@google.com> |
[clang-format] Move #include related style to libToolingCore
Summary: This will be shared by include insertion/deletion library.
Reviewers: ilya-biryukov
Reviewed By: ilya-biryukov
Subscribers: m
[clang-format] Move #include related style to libToolingCore
Summary: This will be shared by include insertion/deletion library.
Reviewers: ilya-biryukov
Reviewed By: ilya-biryukov
Subscribers: mgorny, klimek, cfe-commits
Differential Revision: https://reviews.llvm.org/D46758
llvm-svn: 332284
show more ...
|
#
2e538089 |
| 09-May-2018 |
Eric Liu <ioeric@google.com> |
Add SourceManagerForFile helper which sets up SourceManager and dependencies for a single file with code snippet
Summary: This can be used to create a virtual environment (incl. VFS, source manager)
Add SourceManagerForFile helper which sets up SourceManager and dependencies for a single file with code snippet
Summary: This can be used to create a virtual environment (incl. VFS, source manager) for code snippets.
Reviewers: sammccall, klimek
Reviewed By: sammccall
Subscribers: klimek, mgorny, cfe-commits
Differential Revision: https://reviews.llvm.org/D46176
llvm-svn: 331923
show more ...
|
#
9fc8faf9 |
| 09-May-2018 |
Adrian Prantl <aprantl@apple.com> |
Remove \brief commands from doxygen comments.
This is similar to the LLVM change https://reviews.llvm.org/D46290.
We've been running doxygen with the autobrief option for a couple of years now. Thi
Remove \brief commands from doxygen comments.
This is similar to the LLVM change https://reviews.llvm.org/D46290.
We've been running doxygen with the autobrief option for a couple of years now. This makes the \brief markers into our comments redundant. Since they are a visual distraction and we don't want to encourage more \brief markers in new code either, this patch removes them all.
Patch produced by
for i in $(git grep -l '\@brief'); do perl -pi -e 's/\@brief //g' $i & done for i in $(git grep -l '\\brief'); do perl -pi -e 's/\\brief //g' $i & done
Differential Revision: https://reviews.llvm.org/D46320
llvm-svn: 331834
show more ...
|
#
bf4c41c7 |
| 04-May-2018 |
Eric Liu <ioeric@google.com> |
[clang-format] Refactor #include insertion/deletion functionality into a class.
Summary: The class will be moved into libToolingCore as followup.
The new behaviors in this patch: - New #include is
[clang-format] Refactor #include insertion/deletion functionality into a class.
Summary: The class will be moved into libToolingCore as followup.
The new behaviors in this patch: - New #include is inserted in the right position in a #include block to preserver sorted #includes. This is best effort - only works when the block is already sorted. - When inserting multiple #includes to the end of a file which doesn't end with a "\n" character, a "\n" will be prepended to each #include. This is a special and rare case that was previously handled. This is now relaxed to avoid complexity as it's rare in practice.
Reviewers: ilya-biryukov
Reviewed By: ilya-biryukov
Subscribers: klimek, cfe-commits, djasper
Differential Revision: https://reviews.llvm.org/D46180
llvm-svn: 331544
show more ...
|
#
5559cc3b |
| 25-Apr-2018 |
Krasimir Georgiev <krasimir@google.com> |
[clang-format] Start formatting cpp code in raw strings in google style
Summary: This adds some delimiters to detect cpp code in raw strings.
Reviewers: klimek
Reviewed By: klimek
Subscribers: cf
[clang-format] Start formatting cpp code in raw strings in google style
Summary: This adds some delimiters to detect cpp code in raw strings.
Reviewers: klimek
Reviewed By: klimek
Subscribers: cfe-commits
Differential Revision: https://reviews.llvm.org/D46062
llvm-svn: 330832
show more ...
|
#
0dddcf78 |
| 23-Apr-2018 |
Manuel Klimek <klimek@google.com> |
Format closing braces when reformatting the line containing the opening brace.
This required a couple of yaks to be shaved: 1. MatchingOpeningBlockLineIndex was misused to also store the closing
Format closing braces when reformatting the line containing the opening brace.
This required a couple of yaks to be shaved: 1. MatchingOpeningBlockLineIndex was misused to also store the closing index; instead, use a second variable, as this doesn't work correctly for "} else {". 2. We needed to change the API of AffectedRangeManager to not use iterators; we always passed in begin / end for the whole container before, so there was no mismatch in generality. 3. We need an extra check to discontinue formatting at the top level, as we now sometimes change the indent of the closing brace, but want to bail out immediately afterwards, for example: void f() { if (a) { } void g(); Previously: void f() { if (a) { } void g(); Now: void f() { if (a) { } void g();
Differential Revision: https://reviews.llvm.org/D45726
llvm-svn: 330573
show more ...
|
#
b1a7919e |
| 12-Apr-2018 |
Ben Hamilton <benhamilton@google.com> |
[clang-format] Improve ObjC guessing heuristic by supporting all @keywords
Summary: This diff improves the Objective-C guessing heuristic by replacing the hard-coded list of a subset of Objective-C
[clang-format] Improve ObjC guessing heuristic by supporting all @keywords
Summary: This diff improves the Objective-C guessing heuristic by replacing the hard-coded list of a subset of Objective-C @keywords with a general check which supports all @keywords.
I also added a few more Foundation keywords which were missing from the heuristic.
Test Plan: Unit tests updated. Ran tests with: % make -j16 FormatTests && ./tools/clang/unittests/Format/FormatTests
Reviewers: djasper, jolesiak
Reviewed By: djasper
Subscribers: klimek, cfe-commits
Differential Revision: https://reviews.llvm.org/D45521
llvm-svn: 329918
show more ...
|
#
ea7a27b8 |
| 27-Mar-2018 |
Ben Hamilton <benhamilton@google.com> |
[clang-format] Refine ObjC guesser to handle child lines of child lines
Summary: This fixes an issue brought up by djasper@ in his review of D44790. We handled top-level child lines, but if those ch
[clang-format] Refine ObjC guesser to handle child lines of child lines
Summary: This fixes an issue brought up by djasper@ in his review of D44790. We handled top-level child lines, but if those child lines themselves had child lines, we didn't handle them.
Rather than use recursion (which could blow out the stack), I use a DenseSet to hold the set of lines we haven't yet checked (since order doesn't matter), and update the set to add the children of each line as we check it.
Test Plan: New tests added. Confirmed tests failed before fix and passed after fix.
Reviewers: djasper
Reviewed By: djasper
Subscribers: klimek, cfe-commits
Differential Revision: https://reviews.llvm.org/D44831
llvm-svn: 328628
show more ...
|
#
6432afe5 |
| 22-Mar-2018 |
Ben Hamilton <benhamilton@google.com> |
[clang-format] Fix ObjC style guesser to also iterate over child lines
Summary: When I wrote `ObjCHeaderStyleGuesser`, I incorrectly assumed the correct way to iterate over all tokens in `AnnotatedL
[clang-format] Fix ObjC style guesser to also iterate over child lines
Summary: When I wrote `ObjCHeaderStyleGuesser`, I incorrectly assumed the correct way to iterate over all tokens in `AnnotatedLine` was to iterate over the linked list tokens starting with `AnnotatedLine::First`.
However, `AnnotatedLine` also contains a vector `AnnotedLine::Children` with child `AnnotedLine`s which have their own tokens which we need to iterate over.
Because I didn't iterate over the tokens in the children lines, the ObjC style guesser would fail on syntax like:
#define FOO ({ NSString *s = ... })
as the statement(s) inside { ... } are child lines.
This fixes the bug and adds a test. I confirmed the test failed before the fix, and passed after the fix.
Test Plan: New tests added. Ran tests with: % make -j12 FormatTests && ./tools/clang/unittests/Format/FormatTests
Reviewers: djasper, jolesiak, Wizard
Reviewed By: djasper
Subscribers: klimek, cfe-commits
Differential Revision: https://reviews.llvm.org/D44790
llvm-svn: 328220
show more ...
|
#
19c782d5 |
| 22-Mar-2018 |
Ben Hamilton <benhamilton@google.com> |
[clang-format] Add a few more Core Graphics identifiers to ObjC heuristic
Summary: We received reports of the Objective-C style guesser getting a false negative on header files like:
CGSize SizeOfT
[clang-format] Add a few more Core Graphics identifiers to ObjC heuristic
Summary: We received reports of the Objective-C style guesser getting a false negative on header files like:
CGSize SizeOfThing(MyThing thing);
This adds more Core Graphics identifiers to the Objective-C style guesser.
Test Plan: New tests added. Ran tests with: % make -j12 FormatTests && ./tools/clang/unittests/Format/FormatTests
Reviewers: jolesiak, djasper
Reviewed By: jolesiak, djasper
Subscribers: krasimir, klimek, cfe-commits
Differential Revision: https://reviews.llvm.org/D44632
llvm-svn: 328175
show more ...
|
#
f76861c2 |
| 20-Mar-2018 |
Benjamin Kramer <benny.kra@googlemail.com> |
[format] Eliminate global destructors.
llvm-svn: 328047
|
#
9c95dfe6 |
| 12-Mar-2018 |
Daniel Jasper <djasper@google.com> |
clang-format: Properly handle implicit string concatenation in text protos
Three issues to fix: - char_constants weren't properly treated as string literals - Prevening the break after "label: " doe
clang-format: Properly handle implicit string concatenation in text protos
Three issues to fix: - char_constants weren't properly treated as string literals - Prevening the break after "label: " does not make sense in concunction with AlwaysBreakBeforeMultilineStrings. It leads to situations where clang-format just cannot find a viable format (it must break and yet it must not break). - AlwaysBreakBeforeMultilineStrings should not be on for LK_TextProto in Google style.
llvm-svn: 327255
show more ...
|
#
2a9ea781 |
| 01-Mar-2018 |
Francois Ferrand <thetypz@gmail.com> |
[clang-format] Add SpaceBeforeColon option
Summary: When disabled, this option allows removing the space before colon, making it act more like the semi-colon. When enabled (default), the current beh
[clang-format] Add SpaceBeforeColon option
Summary: When disabled, this option allows removing the space before colon, making it act more like the semi-colon. When enabled (default), the current behavior is not affected.
This mostly affects C++11 loop, initializer list, inheritance list and container literals:
class Foo: Bar {} Foo::Foo(): a(a) {} for (auto i: myList) {} f({a: 1, b: 2, c: 3});
Reviewers: krasimir, djasper
Reviewed By: djasper
Subscribers: xvallspl, teemperor, karies, cfe-commits, klimek
Differential Revision: https://reviews.llvm.org/D32525
llvm-svn: 326426
show more ...
|
#
6e066350 |
| 27-Feb-2018 |
Ben Hamilton <benhamilton@google.com> |
[clang-format] Tidy up new API guessLanguage()
Summary: This fixes a few issues djasper@ brought up in his review of D43522.
Test Plan: make -j12 FormatTests && ./tools/clang/unittests/Format/For
[clang-format] Tidy up new API guessLanguage()
Summary: This fixes a few issues djasper@ brought up in his review of D43522.
Test Plan: make -j12 FormatTests && ./tools/clang/unittests/Format/FormatTests
Reviewers: djasper
Reviewed By: djasper
Subscribers: klimek, cfe-commits
Differential Revision: https://reviews.llvm.org/D43598
llvm-svn: 326205
show more ...
|
#
07e58365 |
| 21-Feb-2018 |
Ben Hamilton <benhamilton@google.com> |
[clang-format] Fix regression when getStyle() called with empty filename
Summary: D43522 caused an assertion failure when getStyle() was called with an empty filename:
P8065
This adds a test to re
[clang-format] Fix regression when getStyle() called with empty filename
Summary: D43522 caused an assertion failure when getStyle() was called with an empty filename:
P8065
This adds a test to reproduce the failure and fixes the issue by ensuring we never pass an empty filename to Environment::CreateVirtualEnvironment().
Test Plan: New test added. Ran test with: % make -j12 FormatTests && ./tools/clang/unittests/Format/FormatTests Before diff, test failed with P8065. Now, test passes.
Reviewers: vsapsai, jolesiak, krasimir
Reviewed By: vsapsai
Subscribers: klimek, cfe-commits
Differential Revision: https://reviews.llvm.org/D43590
llvm-svn: 325722
show more ...
|