|
Revision tags: llvmorg-20.1.0, llvmorg-20.1.0-rc3, llvmorg-20.1.0-rc2, llvmorg-20.1.0-rc1, llvmorg-21-init, llvmorg-19.1.7, llvmorg-19.1.6, llvmorg-19.1.5, llvmorg-19.1.4, llvmorg-19.1.3, llvmorg-19.1.2, llvmorg-19.1.1, llvmorg-19.1.0, llvmorg-19.1.0-rc4, llvmorg-19.1.0-rc3, llvmorg-19.1.0-rc2, llvmorg-19.1.0-rc1, llvmorg-20-init, llvmorg-18.1.8, llvmorg-18.1.7, llvmorg-18.1.6, llvmorg-18.1.5, llvmorg-18.1.4, llvmorg-18.1.3, llvmorg-18.1.2, llvmorg-18.1.1, llvmorg-18.1.0, llvmorg-18.1.0-rc4, llvmorg-18.1.0-rc3, llvmorg-18.1.0-rc2, llvmorg-18.1.0-rc1, llvmorg-19-init, llvmorg-17.0.6, llvmorg-17.0.5, llvmorg-17.0.4, llvmorg-17.0.3, llvmorg-17.0.2, llvmorg-17.0.1, llvmorg-17.0.0, llvmorg-17.0.0-rc4, llvmorg-17.0.0-rc3, llvmorg-17.0.0-rc2, llvmorg-17.0.0-rc1, llvmorg-18-init, llvmorg-16.0.6, llvmorg-16.0.5, llvmorg-16.0.4, llvmorg-16.0.3, llvmorg-16.0.2, llvmorg-16.0.1, llvmorg-16.0.0, llvmorg-16.0.0-rc4, llvmorg-16.0.0-rc3, llvmorg-16.0.0-rc2, llvmorg-16.0.0-rc1, llvmorg-17-init, llvmorg-15.0.7, llvmorg-15.0.6, llvmorg-15.0.5, llvmorg-15.0.4, llvmorg-15.0.3, llvmorg-15.0.2, llvmorg-15.0.1, llvmorg-15.0.0, llvmorg-15.0.0-rc3, llvmorg-15.0.0-rc2, llvmorg-15.0.0-rc1, llvmorg-16-init, llvmorg-14.0.6, llvmorg-14.0.5, llvmorg-14.0.4, llvmorg-14.0.3, llvmorg-14.0.2, llvmorg-14.0.1, llvmorg-14.0.0, llvmorg-14.0.0-rc4, llvmorg-14.0.0-rc3, llvmorg-14.0.0-rc2, llvmorg-14.0.0-rc1, llvmorg-15-init, llvmorg-13.0.1, llvmorg-13.0.1-rc3, llvmorg-13.0.1-rc2, llvmorg-13.0.1-rc1 |
|
| #
57e00810 |
| 20-Oct-2021 |
mydeveloperday <[email protected]> |
[clang-format] [PR52015] clang-format should put __attribute__((foo)) on its own line before @interface / @implementation / @protocol
https://bugs.llvm.org/show_bug.cgi?id=52015
A newline should be
[clang-format] [PR52015] clang-format should put __attribute__((foo)) on its own line before @interface / @implementation / @protocol
https://bugs.llvm.org/show_bug.cgi?id=52015
A newline should be place between attribute and @ for objectivec
Reviewed By: benhamilton, HazardyKnusperkeks
Differential Revision: https://reviews.llvm.org/D111975
show more ...
|
|
Revision tags: llvmorg-13.0.0, llvmorg-13.0.0-rc4, llvmorg-13.0.0-rc3, llvmorg-13.0.0-rc2, llvmorg-13.0.0-rc1, llvmorg-14-init, llvmorg-12.0.1, llvmorg-12.0.1-rc4, llvmorg-12.0.1-rc3, llvmorg-12.0.1-rc2, llvmorg-12.0.1-rc1 |
|
| #
4dd54613 |
| 14-May-2021 |
Benjamin Kramer <[email protected]> |
Bump googletest to 1.8.1
We've accumulated a scary amount of local patches to this directory. I tried to merge them all, but if your favorite change is missing please reapply it manually (and send i
Bump googletest to 1.8.1
We've accumulated a scary amount of local patches to this directory. I tried to merge them all, but if your favorite change is missing please reapply it manually (and send it upstream).
show more ...
|
|
Revision tags: llvmorg-12.0.0, llvmorg-12.0.0-rc5, llvmorg-12.0.0-rc4 |
|
| #
d9abcdd9 |
| 22-Mar-2021 |
Krasimir Georgiev <[email protected]> |
[clang-format] Fix ObjC method indent after f7f9f94b
Commit https://github.com/llvm/llvm-project/commit/f7f9f94b2e2b4c714bac9036f6b73a3df42daaff changed the indent of ObjC method arguments from +4 t
[clang-format] Fix ObjC method indent after f7f9f94b
Commit https://github.com/llvm/llvm-project/commit/f7f9f94b2e2b4c714bac9036f6b73a3df42daaff changed the indent of ObjC method arguments from +4 to +2, if the method occurs after a block statement. I believe this was unintentional and there was insufficient ObjC test coverage to catch this.
Example: `clang-format -style=google test.mm`
before: ``` void aaaaaaaaaaaaaaaaaaaaa(int c) { if (c) { f(); } [dddddddddddddddddddddddddddddddddddddddddddddddddddddddd eeeeeeeeeeeeeeeeeeeeeeeeeeeee:^(fffffffffffffff gggggggg) { f(SSSSS, c); }]; } ```
after: ``` void aaaaaaaaaaaaaaaaaaaaa(int c) { if (c) { f(); } [dddddddddddddddddddddddddddddddddddddddddddddddddddddddd eeeeeeeeeeeeeeeeeeeeeeeeeeeee:^(fffffffffffffff gggggggg) { f(SSSSS, c); }]; } ```
Differential Revision: https://reviews.llvm.org/D99063
show more ...
|
|
Revision tags: llvmorg-12.0.0-rc3, llvmorg-12.0.0-rc2, llvmorg-11.1.0, llvmorg-11.1.0-rc3, llvmorg-12.0.0-rc1, llvmorg-13-init, llvmorg-11.1.0-rc2, llvmorg-11.1.0-rc1, llvmorg-11.0.1, llvmorg-11.0.1-rc2, llvmorg-11.0.1-rc1 |
|
| #
244022a3 |
| 20-Nov-2020 |
Samuel Giddins <[email protected]> |
Don’t break before nested block param when prior param is not a block
Add ScopedTrace to verify methods in FormatTestObjC Add tests from D17700
Reviewed By: keith, kastiglione
Differential Revisio
Don’t break before nested block param when prior param is not a block
Add ScopedTrace to verify methods in FormatTestObjC Add tests from D17700
Reviewed By: keith, kastiglione
Differential Revision: https://reviews.llvm.org/D91669
show more ...
|
| #
66a3b907 |
| 19-Oct-2020 |
Alex Richardson <[email protected]> |
[clang-format] Drop clangFrontend dependency for FormatTests
This allows building the clang-format unit tests in only 657 ninja steps rather than 1257 which allows for much faster incremental builds
[clang-format] Drop clangFrontend dependency for FormatTests
This allows building the clang-format unit tests in only 657 ninja steps rather than 1257 which allows for much faster incremental builds after a git pull.
Reviewed By: MyDeveloperDay Differential Revision: https://reviews.llvm.org/D89709
show more ...
|
| #
24b52668 |
| 15-Oct-2020 |
Ben Hamilton <[email protected]> |
[Format/ObjC] Correctly handle base class with lightweight generics and protocol
ClangFormat does not correctly handle an Objective-C interface declaration with both lightweight generics and a proto
[Format/ObjC] Correctly handle base class with lightweight generics and protocol
ClangFormat does not correctly handle an Objective-C interface declaration with both lightweight generics and a protocol conformance.
This simple example:
``` @interface Foo : Bar <Baz> <Blech>
@end ```
means `Foo` extends `Bar` (a lightweight generic class whose type parameter is `Baz`) and also conforms to the protocol `Blech`.
ClangFormat should not apply any changes to the above example, but instead it currently formats it quite poorly:
``` @interface Foo : Bar <Baz> <Blech>
@end ```
The bug is that `UnwrappedLineParser` assumes an open-angle bracket after a base class name is a protocol list, but it can also be a lightweight generic specification.
This diff fixes the bug by factoring out the logic to parse lightweight generics so it can apply both to the declared class as well as the base class.
Test Plan: New tests added. Ran tests with: % ninja FormatTests && ./tools/clang/unittests/Format/FormatTests Confirmed tests failed before diff and passed after diff.
Reviewed By: sammccall, MyDeveloperDay
Differential Revision: https://reviews.llvm.org/D89496
show more ...
|
| #
e7b4feea |
| 14-Oct-2020 |
Ben Hamilton <[email protected]> |
[Format/ObjC] Add NS_SWIFT_NAME() and CF_SWIFT_NAME() to WhitespaceSensitiveMacros
The argument passed to the preprocessor macros `NS_SWIFT_NAME(x)` and `CF_SWIFT_NAME(x)` is stringified before pass
[Format/ObjC] Add NS_SWIFT_NAME() and CF_SWIFT_NAME() to WhitespaceSensitiveMacros
The argument passed to the preprocessor macros `NS_SWIFT_NAME(x)` and `CF_SWIFT_NAME(x)` is stringified before passing to `__attribute__((swift_name("x")))`.
ClangFormat didn't know about this stringification, so its custom parser tried to parse the argument(s) passed to the macro as if they were normal function arguments.
That means ClangFormat currently incorrectly inserts whitespace between `NS_SWIFT_NAME` arguments with colons and dots, so:
``` extern UIWindow *MainWindow(void) NS_SWIFT_NAME(getter:MyHelper.mainWindow()); ```
becomes:
``` extern UIWindow *MainWindow(void) NS_SWIFT_NAME(getter : MyHelper.mainWindow()); ```
which clang treats as a parser error:
``` error: 'swift_name' attribute has invalid identifier for context name [-Werror,-Wswift-name-attribute] ```
Thankfully, D82620 recently added the ability to treat specific macros as "whitespace sensitive", meaning their arguments are implicitly treated as strings (so whitespace is not added anywhere inside).
This diff adds `NS_SWIFT_NAME` and `CF_SWIFT_NAME` to `WhitespaceSensitiveMacros` so their arguments are implicitly treated as whitespace-sensitive.
Test Plan: New tests added. Ran tests with: % ninja FormatTests && ./tools/clang/unittests/Format/FormatTests
Reviewed By: sammccall
Differential Revision: https://reviews.llvm.org/D89425
show more ...
|
|
Revision tags: llvmorg-11.0.0, llvmorg-11.0.0-rc6, llvmorg-11.0.0-rc5, llvmorg-11.0.0-rc4, llvmorg-11.0.0-rc3, llvmorg-11.0.0-rc2, llvmorg-11.0.0-rc1, llvmorg-12-init, llvmorg-10.0.1, llvmorg-10.0.1-rc4, llvmorg-10.0.1-rc3, llvmorg-10.0.1-rc2 |
|
| #
8f1156a7 |
| 26-May-2020 |
mydeveloperday <[email protected]> |
[clang-format] Fix an ObjC regression introduced with new [[likely]][[unlikely]] support in if/else clauses
Summary: {D80144} introduce an ObjC regression
Only parse the `[]` if what follows is rea
[clang-format] Fix an ObjC regression introduced with new [[likely]][[unlikely]] support in if/else clauses
Summary: {D80144} introduce an ObjC regression
Only parse the `[]` if what follows is really an attribute
Reviewers: krasimir, JakeMerdichAMD
Reviewed By: krasimir
Subscribers: rdwampler, aaron.ballman, curdeius, cfe-commits
Tags: #clang, #clang-format
Differential Revision: https://reviews.llvm.org/D80547
show more ...
|
|
Revision tags: llvmorg-10.0.1-rc1 |
|
| #
ece7e95f |
| 02-May-2020 |
mydeveloperday <[email protected]> |
[clang-format] NFC - clang-format the FormatTests
Summary: Ensure the clang-format unit tests are themselves clang-formatted
Having areas of the llvm code which are clang-format clean, give us more
[clang-format] NFC - clang-format the FormatTests
Summary: Ensure the clang-format unit tests are themselves clang-formatted
Having areas of the llvm code which are clang-format clean, give us more areas to run new clang-format binaries on ensuring we haven't broken anything.
It seems to me we SHOULD have this clang-formatted at a minimum, otherwise how can we expect others to use clang-format if we "don't eat our own dogfood", also if the tests are dependent on the formatting of the code then that would also be bad!
Reviewed By: sammccall
Subscribers: cfe-commits
Tags: #clang, #clang-format
Differential Revision: https://reviews.llvm.org/D79204
show more ...
|
| #
28ecd7f0 |
| 06-Apr-2020 |
Kanglei Fang <[email protected]> |
[clang-format] Don't break multi block parameters on ObjCBreakBeforeNestedBlockParam
Summary: While [the original diff](https://reviews.llvm.org/D42493) makes a lot of sense, and multiple inline blo
[clang-format] Don't break multi block parameters on ObjCBreakBeforeNestedBlockParam
Summary: While [the original diff](https://reviews.llvm.org/D42493) makes a lot of sense, and multiple inline block parameter/trailing paramemter after inline block paramemter should be discouraged, the formatting result is different than what xcode does by default For the exact same example provided in the original diff: ``` [object blockArgument:^{ a = 42; } anotherArg:42]; ``` The code is hard to read and not very visually pleasing
This diff uses `ObjCBreakBeforeNestedBlockParam` to shield from the formatting When it's set to false, don't allign the inline block paramemters.
Reviewers: jolesiak, benhamilton, jinlin
Reviewed By: jolesiak
Subscribers: cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D77039
show more ...
|
|
Revision tags: llvmorg-10.0.0, llvmorg-10.0.0-rc6, llvmorg-10.0.0-rc5, llvmorg-10.0.0-rc4, llvmorg-10.0.0-rc3, llvmorg-10.0.0-rc2 |
|
| #
70c98671 |
| 01-Feb-2020 |
mydeveloperday <[email protected]> |
[clang-format] Add option for not breaking line before ObjC params
Summary: From `clang-format` version 3.7.0 and up, , there is no way to keep following format of ObjectiveC block: ``` - (void)_aMe
[clang-format] Add option for not breaking line before ObjC params
Summary: From `clang-format` version 3.7.0 and up, , there is no way to keep following format of ObjectiveC block: ``` - (void)_aMethod { [self.test1 t:self w:self callback:^(typeof(self) self, NSNumber *u, NSNumber *v) { u = c; }] } ``` Regardless of the change in `.clang-format` configuration file, all parameters will be lined up so that colons will be on the same column, like following: ``` - (void)_aMethod { [self.test1 t:self w:self callback:^(typeof(self) self, NSNumber *u, NSNumber *v) { u = c; }] } ```
Considering with ObjectiveC, the first code style is cleaner & more readable for some people, I've added a config option: `ObjCDontBreakBeforeNestedBlockParam` (boolean) so that if it is enable, the first code style will be favored.
Reviewed By: MyDeveloperDay
Patch By: ghvg1313
Tags: #clang, #clang-format
Differential Revision: https://reviews.llvm.org/D70926
show more ...
|
|
Revision tags: llvmorg-10.0.0-rc1, llvmorg-11-init, llvmorg-9.0.1, llvmorg-9.0.1-rc3, llvmorg-9.0.1-rc2, llvmorg-9.0.1-rc1 |
|
| #
fb13e65a |
| 03-Oct-2019 |
Paul Hoad <[email protected]> |
[clang-format] Add ability to wrap braces after multi-line control statements
Summary: Change the BraceWrappingFlags' AfterControlStatement from a bool to an enum with three values:
* "Never": This
[clang-format] Add ability to wrap braces after multi-line control statements
Summary: Change the BraceWrappingFlags' AfterControlStatement from a bool to an enum with three values:
* "Never": This is the default, and does not do any brace wrapping after control statements. * "MultiLine": This only wraps braces after multi-line control statements (this really only happens when a ColumnLimit is specified). * "Always": This always wraps braces after control statements.
The first and last options are backwards-compatible with "false" and "true", respectively.
The new "MultiLine" option is useful for when a wrapped control statement's indentation matches the subsequent block's indentation. It makes it easier to see at a glance where the control statement ends and where the block's code begins. For example:
``` if ( foo && bar ) { baz(); } ```
vs.
``` if ( foo && bar ) { baz(); } ```
Short control statements (1 line) do not wrap the brace to the next line, e.g.
``` if (foo) { bar(); } else { baz(); } ```
Reviewers: sammccall, owenpan, reuk, MyDeveloperDay, klimek
Reviewed By: MyDeveloperDay
Subscribers: MyDeveloperDay, cfe-commits
Patch By: mitchell-stellar
Tags: #clang-format, #clang, #clang-tools-extra
Differential Revision: https://reviews.llvm.org/D68296
llvm-svn: 373647
show more ...
|
|
Revision tags: llvmorg-9.0.0, llvmorg-9.0.0-rc6, llvmorg-9.0.0-rc5, llvmorg-9.0.0-rc4, llvmorg-9.0.0-rc3, llvmorg-9.0.0-rc2, llvmorg-9.0.0-rc1 |
|
| #
d9212ef7 |
| 22-Jul-2019 |
Ben Hamilton <[email protected]> |
Adds support for formatting NS_CLOSED_ENUM and CF_CLOSED_ENUM alongside NS_ENUM and CF_ENUM.
Summary: Addresses the formatting of NS_CLOSED_ENUM and CF_CLOSED_ENUM, introduced in Swift 5.
Before:
Adds support for formatting NS_CLOSED_ENUM and CF_CLOSED_ENUM alongside NS_ENUM and CF_ENUM.
Summary: Addresses the formatting of NS_CLOSED_ENUM and CF_CLOSED_ENUM, introduced in Swift 5.
Before:
``` typedef NS_CLOSED_ENUM(NSInteger, Foo){FooValueOne = 1, FooValueTwo, FooValueThree}; ```
After:
``` typedef NS_CLOSED_ENUM(NSInteger, Foo) { FooValueOne = 1, FooValueTwo, FooValueThree }; ```
Contributed by heijink.
Reviewers: benhamilton, krasimir
Reviewed By: benhamilton
Subscribers: cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D65012
llvm-svn: 366719
show more ...
|
| #
86383e66 |
| 19-Jul-2019 |
Ben Hamilton <[email protected]> |
[Format/ObjC] Avoid breaking between unary operators and operands
Summary: Test Plan: New tests added. Ran tests with: % ninja FormatTests && ./tools/clang/unittests/Format/FormatTests Confirm
[Format/ObjC] Avoid breaking between unary operators and operands
Summary: Test Plan: New tests added. Ran tests with: % ninja FormatTests && ./tools/clang/unittests/Format/FormatTests Confirmed tests failed before change and passed after change.
Reviewers: krasimir, djasper, sammccall, klimek
Reviewed By: sammccall
Subscribers: klimek, cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D64775
llvm-svn: 366592
show more ...
|
|
Revision tags: llvmorg-10-init, llvmorg-8.0.1, llvmorg-8.0.1-rc4, llvmorg-8.0.1-rc3, llvmorg-8.0.1-rc2, llvmorg-8.0.1-rc1 |
|
| #
fc67176e |
| 25-Mar-2019 |
Krasimir Georgiev <[email protected]> |
[clang-format] Refine structured binding detection
Summary: Revision r356575 had the unfortunate consequence that now clang-format never detects an ObjC call expression after `&&`.
This patch tries
[clang-format] Refine structured binding detection
Summary: Revision r356575 had the unfortunate consequence that now clang-format never detects an ObjC call expression after `&&`.
This patch tries harder to distinguish between C++17 structured bindings and ObjC call expressions and adds a few regression tests.
Reviewers: klimek
Reviewed By: klimek
Subscribers: cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D59774
llvm-svn: 356928
show more ...
|
|
Revision tags: llvmorg-8.0.0, llvmorg-8.0.0-rc5 |
|
| #
c416c52b |
| 11-Mar-2019 |
Krasimir Georgiev <[email protected]> |
clang-format: distinguish ObjC call subexpressions after r355434
Summary: The revision r355434 had the unfortunate side-effect that it started to recognize certain ObjC expressions with a call subex
clang-format: distinguish ObjC call subexpressions after r355434
Summary: The revision r355434 had the unfortunate side-effect that it started to recognize certain ObjC expressions with a call subexpression followed by a `a->b` subexpression as C++ lambda expressions.
This patch adds a bit of logic to handle these cases and documents them in tests.
The commented-out test cases in the new test suite are ones that were problematic before r355434.
Reviewers: MyDeveloperDay, gribozavr
Reviewed By: MyDeveloperDay, gribozavr
Subscribers: MyDeveloperDay, cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D59210
llvm-svn: 355831
show more ...
|
|
Revision tags: llvmorg-8.0.0-rc4, llvmorg-8.0.0-rc3, llvmorg-7.1.0, llvmorg-7.1.0-rc1 |
|
| #
30b7d09d |
| 08-Feb-2019 |
Ben Hamilton <[email protected]> |
[Format/ObjC] Fix [foo bar]->baz formatting as lambda arrow
Summary: Currently, `UnwrappedLineParser` thinks an arrow token after an ObjC method expression is a C++ lambda arrow, so it formats:
```
[Format/ObjC] Fix [foo bar]->baz formatting as lambda arrow
Summary: Currently, `UnwrappedLineParser` thinks an arrow token after an ObjC method expression is a C++ lambda arrow, so it formats:
``` [foo bar]->baz ```
as:
``` [foo bar] -> baz ```
Because `UnwrappedLineParser` runs before `TokenAnnotator`, it can't know if the arrow token is after an ObjC method expression or not.
This diff makes `TokenAnnotator` remove the TT_LambdaArrow on the arrow token if it follows an ObjC method expression.
Test Plan: New test added. Ran test with: % ninja FormatTests && ./tools/clang/unittests/Format/FormatTests Confirmed test failed before diff and passed after diff.
Reviewers: krasimir, djasper, sammccall
Reviewed By: sammccall
Subscribers: cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D57923
llvm-svn: 353531
show more ...
|
|
Revision tags: llvmorg-8.0.0-rc2 |
|
| #
9d53cb8f |
| 24-Jan-2019 |
Alex Lorenz <[email protected]> |
[clang-format] square parens with one token are not Objective-C message sends
The commit r322690 introduced support for ObjC detection in header files. Unfortunately some C headers that use designat
[clang-format] square parens with one token are not Objective-C message sends
The commit r322690 introduced support for ObjC detection in header files. Unfortunately some C headers that use designated initializers are now incorrectly detected as Objective-C. This commit fixes it by ensuring that `[ token ]` is not annotated as an Objective-C message send.
rdar://45504376
Differential Revision: https://reviews.llvm.org/D56226
llvm-svn: 352125
show more ...
|
|
Revision tags: llvmorg-8.0.0-rc1 |
|
| #
2946cd70 |
| 19-Jan-2019 |
Chandler Carruth <[email protected]> |
Update the file headers across all of the LLVM projects in the monorepo to reflect the new license.
We understand that people may be surprised that we're moving the header entirely to discuss the ne
Update the file headers across all of the LLVM projects in the monorepo to reflect the new license.
We understand that people may be surprised that we're moving the header entirely to discuss the new license. We checked this carefully with the Foundation's lawyer and we believe this is the correct approach.
Essentially, all code in the project is now made available by the LLVM project under our new license, so you will see that the license headers include that license only. Some of our contributors have contributed code under our old license, and accordingly, we have retained a copy of our old license notice in the top-level files in each project and repository.
llvm-svn: 351636
show more ...
|
|
Revision tags: llvmorg-7.0.1, llvmorg-7.0.1-rc3, llvmorg-7.0.1-rc2, llvmorg-7.0.1-rc1 |
|
| #
97034a36 |
| 12-Oct-2018 |
Ben Hamilton <[email protected]> |
[clang-format] Fix BraceWrapping AfterFunction for ObjC methods
Summary: > clang-format --version > clang-format version 7.0.0 (tags/RELEASE_700/final) > echo "@implementation Foo\n- (void)foo:(id)b
[clang-format] Fix BraceWrapping AfterFunction for ObjC methods
Summary: > clang-format --version > clang-format version 7.0.0 (tags/RELEASE_700/final) > echo "@implementation Foo\n- (void)foo:(id)bar\n{\n}\n@end\n" |clang-format -style='{BreakBeforeBraces: Custom, BraceWrapping: {AfterFunction: true}}' ``` @implementation Foo - (void)foo:(id)bar { } @end ```
with patch:
> bin/clang-format --version > clang-format version 8.0.0 (trunk 344285) > echo "@implementation Foo\n- (void)foo:(id)bar\n{\n}\n@end\n" |bin/clang-format -style='{BreakBeforeBraces: Custom, BraceWrapping: {AfterFunction: true}}' ``` @implementation Foo - (void)foo:(id)bar { } @end ```
Contributed by hultman@.
Reviewers: benhamilton, jolesiak, klimek, Wizard
Reviewed By: benhamilton
Subscribers: cfe-commits
Differential Revision: https://reviews.llvm.org/D53197
llvm-svn: 344406
show more ...
|
|
Revision tags: llvmorg-7.0.0, llvmorg-7.0.0-rc3, llvmorg-7.0.0-rc2, llvmorg-7.0.0-rc1 |
|
| #
2dc3dac9 |
| 09-Jul-2018 |
Jacek Olesiak <[email protected]> |
[clang-format/ObjC] Put ObjC method arguments into one line when they fit
Reapply D47195: Currently BreakBeforeParameter is set to true everytime message receiver spans multiple lines, e.g.: ``` [[o
[clang-format/ObjC] Put ObjC method arguments into one line when they fit
Reapply D47195: Currently BreakBeforeParameter is set to true everytime message receiver spans multiple lines, e.g.: ``` [[object block:^{ return 42; }] aa:42 bb:42]; ``` will be formatted: ``` [[object block:^{ return 42; }] aa:42 bb:42]; ``` even though arguments could fit into one line. This change fixes this behavior.
llvm-svn: 336521
show more ...
|
| #
6b475b73 |
| 09-Jul-2018 |
Jacek Olesiak <[email protected]> |
[clang-format/ObjC] Improve split priorities for ObjC methods
Reduce penalty for aligning ObjC method arguments using the colon alignment as this is the canonical way.
Trying to fit a whole express
[clang-format/ObjC] Improve split priorities for ObjC methods
Reduce penalty for aligning ObjC method arguments using the colon alignment as this is the canonical way.
Trying to fit a whole expression into one line should not force other line breaks (e.g. when ObjC method expression is a part of other expression).
llvm-svn: 336520
show more ...
|
| #
3007b385 |
| 29-Jun-2018 |
Ben Hamilton <[email protected]> |
[clang-format/ObjC] Fix NS_SWIFT_NAME(foo(bar:baz:)) after ObjC method decl
Summary: In D44638, I partially fixed `NS_SWIFT_NAME(foo(bar:baz:))`-style annotations on C functions, but didn't add a te
[clang-format/ObjC] Fix NS_SWIFT_NAME(foo(bar:baz:)) after ObjC method decl
Summary: In D44638, I partially fixed `NS_SWIFT_NAME(foo(bar:baz:))`-style annotations on C functions, but didn't add a test for Objective-C method declarations.
For ObjC method declarations which are annotated with `NS_SWIFT_NAME(...)`, we currently fail to annotate the final component of the selector name as `TT_SelectorName`.
Because the token type is left unknown, clang-format will happily cause a compilation error when it changes the following:
``` @interface Foo - (void)doStuffWithFoo:(id)name bar:(id)bar baz:(id)baz NS_SWIFT_NAME(doStuff(withFoo:bar:baz:)); @end ```
to:
``` @interface Foo - (void)doStuffWithFoo:(id)name bar:(id)bar baz:(id)baz NS_SWIFT_NAME(doStuff(withFoo:bar:baz :)); @end ```
(note the linebreak before the final `:`).
The logic which decides whether or not to annotate the token before a `:` with `TT_SelectorName` is pretty fragile, and has to handle some pretty odd cases like pair-parameters:
``` [I drawRectOn:surface ofSize:aa:bbb atOrigin:cc:dd]; ```
So, to minimize the effect of this change, I decided to only annotate unknown identifiers before a `:` as `TT_SelectorName` for Objective-C declaration lines.
Test Plan: New tests included. Confirmed tests failed before change and passed after change. Ran tests with: % make -j16 FormatTests && ./tools/clang/unittests/Format/FormatTests
Reviewers: djasper, krasimir, jolesiak
Reviewed By: krasimir
Subscribers: cfe-commits
Differential Revision: https://reviews.llvm.org/D48679
llvm-svn: 335983
show more ...
|
| #
2b772c11 |
| 22-Jun-2018 |
Jacek Olesiak <[email protected]> |
[clang-format] Add AlwaysBreakBeforeMultilineString tests
Summary: Followup to D47393.
Reviewers: stephanemoore
Reviewed By: stephanemoore
Subscribers: benhamilton, cfe-commits
Differential Revi
[clang-format] Add AlwaysBreakBeforeMultilineString tests
Summary: Followup to D47393.
Reviewers: stephanemoore
Reviewed By: stephanemoore
Subscribers: benhamilton, cfe-commits
Differential Revision: https://reviews.llvm.org/D48432
llvm-svn: 335338
show more ...
|
|
Revision tags: llvmorg-6.0.1, llvmorg-6.0.1-rc3 |
|
| #
1ab722ed |
| 14-Jun-2018 |
Ben Hamilton <[email protected]> |
[clang-format] Disable AlwaysBreakBeforeMultilineStrings in Google style for Objective-C
Contributed by @stephanemoore.
Reviewers: benhamilton, jolesiak, djasper
Reviewed By: benhamilton
Subsc
[clang-format] Disable AlwaysBreakBeforeMultilineStrings in Google style for Objective-C
Contributed by @stephanemoore.
Reviewers: benhamilton, jolesiak, djasper
Reviewed By: benhamilton
Subscribers: klimek, cfe-commits
Differential Revision: https://reviews.llvm.org/D47393
llvm-svn: 334739
show more ...
|