llvm-project/clang/unittests
Paul Hoad fb13e65acf [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
2019-10-03 18:42:31 +00:00
..
AST Fix memory leak in DeclTest. 2019-09-25 22:38:20 +00:00
ASTMatchers Fix the nullPointerConstant() test to get bots back to green. 2019-08-22 18:56:18 +00:00
Analysis [CFG] Introduce CFGElementRef, a wrapper that knows it's position in a CFGBlock 2019-08-14 17:05:55 +00:00
Basic ASTReader: Bypass overridden files when reading PCHs 2019-08-30 22:59:25 +00:00
CodeGen Added 'inline' to functions defined in headers to avoid ODR violations 2019-08-29 16:58:13 +00:00
CrossTU [Tooling] Migrated APIs that take ownership of objects to unique_ptr 2019-08-30 09:29:34 +00:00
DirectoryWatcher Use ASSERT_THAT_ERROR instead of logAllUnhandledErrors/exit 2019-08-09 06:14:54 +00:00
Driver Driver tests: set `--sysroot=""` to support clang with `DEFAULT_SYSROOT` 2019-09-28 12:21:06 +00:00
Format [clang-format] Add ability to wrap braces after multi-line control statements 2019-10-03 18:42:31 +00:00
Frontend [Clang] Migrate llvm::make_unique to std::make_unique 2019-08-14 23:04:18 +00:00
Index [Tooling] Migrated APIs that take ownership of objects to unique_ptr 2019-08-30 09:29:34 +00:00
Lex [clang-scan-deps] Allow continuation line backslashes followed by whitespace 2019-09-26 19:28:51 +00:00
Rename cmake: Add CLANG_LINK_CLANG_DYLIB option 2019-07-03 22:45:55 +00:00
Rewrite [Rewrite][NFC] Add FIXMEs and tests for RemoveLineIfEmpty bug 2019-08-15 21:17:48 +00:00
Sema [LifetimeAnalysis] don't use raw string literals in macros 2019-09-06 19:15:02 +00:00
Serialization cmake: Add CLANG_LINK_CLANG_DYLIB option 2019-07-03 22:45:55 +00:00
StaticAnalyzer [analyzer][NFC] Fix inconsistent references to checkers as "checks" 2019-09-12 19:09:24 +00:00
Tooling [libTooling] Add various Stencil combinators for expressions. 2019-10-03 13:01:00 +00:00
libclang [libclang] Fix UninstallAbortingLLVMFatalErrorHandler test 2019-09-12 23:51:48 +00:00
CMakeLists.txt [clang] [unittest] Import LLVMTestingSupport if necessary 2019-09-12 13:06:12 +00:00