|
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 |
|
| #
36229fa3 |
| 11-Jul-2022 |
owenca <[email protected]> |
[clang-format][NFC] Replace most of std::vector with SmallVector
Differential Revision: https://reviews.llvm.org/D129466
|
| #
c84d29ac |
| 05-Jul-2022 |
owenca <[email protected]> |
[clang-format][NFC] Clean up IndentForLevel in LevelIndentTracker
Differential Revision: https://reviews.llvm.org/D129105
|
| #
14c30c70 |
| 04-Jul-2022 |
Marek Kurdej <[email protected]> |
[clang-format] Avoid crash in LevelIndentTracker.
Fixes https://github.com/llvm/llvm-project/issues/56352.
Reviewed By: HazardyKnusperkeks, owenpan, MyDeveloperDay
Differential Revision: https://r
[clang-format] Avoid crash in LevelIndentTracker.
Fixes https://github.com/llvm/llvm-project/issues/56352.
Reviewed By: HazardyKnusperkeks, owenpan, MyDeveloperDay
Differential Revision: https://reviews.llvm.org/D129064
show more ...
|
| #
664ce34e |
| 25-Jun-2022 |
owenca <[email protected]> |
[clang-format] Quit analyzing solution space for large state count
Fixes #56043.
Differential Revision: https://reviews.llvm.org/D128574
|
|
Revision tags: llvmorg-14.0.6, llvmorg-14.0.5, llvmorg-14.0.4 |
|
| #
bebf7bdf |
| 22-May-2022 |
owenca <[email protected]> |
[clang-format][NFC] Insert/remove braces in clang/lib/Format/
Differential Revision: https://reviews.llvm.org/D126157
|
| #
f4d52cad |
| 21-May-2022 |
owenca <[email protected]> |
[clang-format] Fix a bug in "AfterControlStatement: MultiLine"
Fixes #55582.
Differential Revision: https://reviews.llvm.org/D125959
|
|
Revision tags: llvmorg-14.0.3, llvmorg-14.0.2 |
|
| #
221c2b68 |
| 21-Apr-2022 |
owenca <[email protected]> |
[clang-format] Fix a crash on AllowShortFunctionsOnASingleLine
Fixes #55008.
Differential Revision: https://reviews.llvm.org/D124152
|
| #
19884d62 |
| 19-Apr-2022 |
Arthur Eubanks <[email protected]> |
[clang-format] Don't skip PP lines if original line was a PP line when trying to merge lines
Fixes a crash introduced in D123737 where LastNonComment would be null.
Reviewed By: curdeius
Different
[clang-format] Don't skip PP lines if original line was a PP line when trying to merge lines
Fixes a crash introduced in D123737 where LastNonComment would be null.
Reviewed By: curdeius
Differential Revision: https://reviews.llvm.org/D124036
show more ...
|
| #
f14ebe91 |
| 13-Apr-2022 |
Arthur Eubanks <[email protected]> |
[clang-format] Skip preprocessor lines when finding the record lbrace
With D117142, we would now format
``` struct A { #define A void f() { a(); } #endif }; ```
into
``` struct A { #ifdef A v
[clang-format] Skip preprocessor lines when finding the record lbrace
With D117142, we would now format
``` struct A { #define A void f() { a(); } #endif }; ```
into
``` struct A { #ifdef A void f() { a(); } #endif }; ```
because we were looking for the record lbrace without skipping preprocess lines.
Fixes https://github.com/llvm/llvm-project/issues/54901.
Reviewed By: curdeius, owenpan
Differential Revision: https://reviews.llvm.org/D123737
show more ...
|
|
Revision tags: llvmorg-14.0.1 |
|
| #
f6740fe4 |
| 30-Mar-2022 |
sstwcw <[email protected]> |
[clang-format] Indent import statements in JavaScript.
[clang-format] Indent import statements in JavaScript.
Take for example this piece of code found at <https://developer.mozilla.org/en-US/docs/
[clang-format] Indent import statements in JavaScript.
[clang-format] Indent import statements in JavaScript.
Take for example this piece of code found at <https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/import>.
``` for (const link of document.querySelectorAll("nav > a")) { link.addEventListener("click", e => { e.preventDefault();
import('/modules/my-module.js') .then(module => { module.loadPageInto(main); }) .catch(err => { main.textContent = err.message; }); }); } ```
Previously the import line would be unindented, looking like this.
``` for (const link of document.querySelectorAll("nav > a")) { link.addEventListener("click", e => { e.preventDefault();
import('/modules/my-module.js') .then(module => { module.loadPageInto(main); }) .catch(err => { main.textContent = err.message; }); }); } ```
Actually we were going to fix this along with fixing Verilog import statements. But the patch got too big.
Reviewed By: MyDeveloperDay, curdeius
Differential Revision: https://reviews.llvm.org/D121906
show more ...
|
|
Revision tags: llvmorg-14.0.0 |
|
| #
0570af17 |
| 13-Mar-2022 |
Marek Kurdej <[email protected]> |
[clang-format] Fix incorrect assertion on macro definitions with keyword class.
Fixes https://github.com/llvm/llvm-project/issues/54348.
|
|
Revision tags: llvmorg-14.0.0-rc4, llvmorg-14.0.0-rc3 |
|
| #
d03e3428 |
| 03-Mar-2022 |
Marek Kurdej <[email protected]> |
[clang-format] Fix assertion failure/crash with `AllowShortFunctionsOnASingleLine: Inline/InlineOnly`.
Fixes https://github.com/llvm/llvm-project/issues/54147.
When handling `AllowShortFunctionsOnA
[clang-format] Fix assertion failure/crash with `AllowShortFunctionsOnASingleLine: Inline/InlineOnly`.
Fixes https://github.com/llvm/llvm-project/issues/54147.
When handling `AllowShortFunctionsOnASingleLine`, we were searching for the last line with a smaller level than the current line. The search was incorrect when the first line had the same level as the current one. This led to an unsatisfied assumption about the existence of a brace (non-comment token).
Reviewed By: HazardyKnusperkeks, owenpan
Differential Revision: https://reviews.llvm.org/D120902
show more ...
|
|
Revision tags: llvmorg-14.0.0-rc2 |
|
| #
ef39235c |
| 16-Feb-2022 |
Marek Kurdej <[email protected]> |
[clang-format] Make checking for a record more robust and avoid a loop.
|
| #
d81f003c |
| 14-Feb-2022 |
Marek Kurdej <[email protected]> |
[clang-format] Fix formatting of struct-like records followed by variable declaration.
Fixes https://github.com/llvm/llvm-project/issues/24781. Fixes https://github.com/llvm/llvm-project/issues/3816
[clang-format] Fix formatting of struct-like records followed by variable declaration.
Fixes https://github.com/llvm/llvm-project/issues/24781. Fixes https://github.com/llvm/llvm-project/issues/38160.
This patch splits `TT_RecordLBrace` for classes/enums/structs/unions (and other records, e.g. interfaces) and uses the brace type to avoid the error-prone scanning for record token.
The mentioned bugs were provoked by the scanning being too limited (and so not considering `const` or `constexpr`, or other qualifiers, on an anonymous struct variable declaration).
Moreover, the proposed solution is more efficient as we parse tokens once only (scanning being parsing too).
Reviewed By: MyDeveloperDay, HazardyKnusperkeks
Differential Revision: https://reviews.llvm.org/D119785
show more ...
|
| #
9cb94459 |
| 11-Feb-2022 |
Marek Kurdej <[email protected]> |
[clang-format] Correctly format loops and `if` statements even if preceded with comments.
Fixes https://github.com/llvm/llvm-project/issues/53758.
Braces in loops and in `if` statements with leadin
[clang-format] Correctly format loops and `if` statements even if preceded with comments.
Fixes https://github.com/llvm/llvm-project/issues/53758.
Braces in loops and in `if` statements with leading (block) comments were formatted according to `BraceWrapping.AfterFunction` and not `AllowShortBlocksOnASingleLine`/`AllowShortLoopsOnASingleLine`/`AllowShortIfStatementsOnASingleLine`.
Previously, the code: ``` while (true) { f(); } /*comment*/ while (true) { f(); } ```
was incorrectly formatted to: ``` while (true) { f(); } /*comment*/ while (true) { f(); } ```
when using config: ``` BasedOnStyle: LLVM BreakBeforeBraces: Custom BraceWrapping: AfterFunction: false AllowShortBlocksOnASingleLine: false AllowShortLoopsOnASingleLine: false ```
and it was (correctly but by chance) formatted to: ``` while (true) { f(); } /*comment*/ while (true) { f(); } ```
when using enabling brace wrapping after functions: ``` BasedOnStyle: LLVM BreakBeforeBraces: Custom BraceWrapping: AfterFunction: true AllowShortBlocksOnASingleLine: false AllowShortLoopsOnASingleLine: false ```
Reviewed By: MyDeveloperDay, HazardyKnusperkeks, owenpan
Differential Revision: https://reviews.llvm.org/D119649
show more ...
|
| #
23f27850 |
| 11-Feb-2022 |
Marek Kurdej <[email protected]> |
[clang-format] Avoid multiple calls to FormatToken::getNextNonComment(). NFC.
|
|
Revision tags: llvmorg-14.0.0-rc1, llvmorg-15-init, llvmorg-13.0.1, llvmorg-13.0.1-rc3, llvmorg-13.0.1-rc2 |
|
| #
3d0b6192 |
| 03-Dec-2021 |
Björn Schäpers <[email protected]> |
[clang-format][NFC] Code Tidies in UnwrappedLineFormatter
* Give I[1] and I[-1] a name: - Easier to understand - Easier to debug (since you don't go through operator[] everytime) * TheLine->Firs
[clang-format][NFC] Code Tidies in UnwrappedLineFormatter
* Give I[1] and I[-1] a name: - Easier to understand - Easier to debug (since you don't go through operator[] everytime) * TheLine->First != TheLine->Last follows since last is a l brace and first isn't. * Factor the check for is(tok::l_brace) out. * Drop else after return.
Differential Revision: https://reviews.llvm.org/D115060
show more ...
|
| #
ca0d9707 |
| 03-Feb-2022 |
Marek Kurdej <[email protected]> |
[clang-format] Avoid merging macro definitions.
Fixes https://github.com/llvm/llvm-project/issues/42087.
Reviewed By: HazardyKnusperkeks, owenpan
Differential Revision: https://reviews.llvm.org/D1
[clang-format] Avoid merging macro definitions.
Fixes https://github.com/llvm/llvm-project/issues/42087.
Reviewed By: HazardyKnusperkeks, owenpan
Differential Revision: https://reviews.llvm.org/D118879
show more ...
|
| #
d079995d |
| 02-Feb-2022 |
Marek Kurdej <[email protected]> |
[clang-format] Elide unnecessary braces. NFC.
|
| #
574ad2a8 |
| 02-Feb-2022 |
Marek Kurdej <[email protected]> |
[clang-format] Use prefix operator--. NFC.
|
| #
d1aed486 |
| 30-Jan-2022 |
Philip Sigillito <[email protected]> |
[clang-format] Handle C variables with name that matches c++ access specifier
Reviewed By: MyDeveloperDay, curdeius, HazardyKnusperkeks
Differential Revision: https://reviews.llvm.org/D117416
|
| #
36622c4e |
| 27-Jan-2022 |
Marek Kurdej <[email protected]> |
[clang-format] Fix AllowShortFunctionsOnASingleLine: InlineOnly with wrapping after record.
Fixes https://github.com/llvm/llvm-project/issues/53430.
Initially, I had a quick and dirty approach, but
[clang-format] Fix AllowShortFunctionsOnASingleLine: InlineOnly with wrapping after record.
Fixes https://github.com/llvm/llvm-project/issues/53430.
Initially, I had a quick and dirty approach, but it led to a myriad of special cases handling comments (that may add unwrapped lines). So I added TT_RecordLBrace type annotations and it seems like a much nicer solution. I think that in the future it will allow us to clean up some convoluted code that detects records.
Reviewed By: MyDeveloperDay, HazardyKnusperkeks
Differential Revision: https://reviews.llvm.org/D118337
show more ...
|
| #
670a721d |
| 24-Jan-2022 |
Marek Kurdej <[email protected]> |
[clang-format] Assert Line->First. NFC.
Cf. scan-build reports: * https://llvm.org/reports/scan-build/report-AffectedRangeManager.cpp-nonPPLineAffected-34-16c04b.html#EndPath * https://llvm.org/repo
[clang-format] Assert Line->First. NFC.
Cf. scan-build reports: * https://llvm.org/reports/scan-build/report-AffectedRangeManager.cpp-nonPPLineAffected-34-16c04b.html#EndPath * https://llvm.org/reports/scan-build/report-SortJavaScriptImports.cpp-parseModuleReferences-34-96a7f8.html#EndPath * https://llvm.org/reports/scan-build/report-TokenAnnotator.cpp-setCommentLineLevels-26-77bdba.html#EndPath * https://llvm.org/reports/scan-build/report-AffectedRangeManager.cpp-nonPPLineAffected-31-714434.html#EndPath * https://llvm.org/reports/scan-build/report-TokenAnnotator.cpp-setCommentLineLevels-16-bd39d0.html#EndPath * https://llvm.org/reports/scan-build/report-UnwrappedLineFormatter.cpp-format-90-668b2d.html#EndPath
show more ...
|
| #
1e512f02 |
| 14-Jan-2022 |
Marek Kurdej <[email protected]> |
[clang-format] Treat ForEachMacros as loops
TT_ForEachMacro should be considered in rules AllowShortBlocksOnASingleLine and AllowShortLoopsOnASingleLine. Fixes https://github.com/llvm/llvm-project/i
[clang-format] Treat ForEachMacros as loops
TT_ForEachMacro should be considered in rules AllowShortBlocksOnASingleLine and AllowShortLoopsOnASingleLine. Fixes https://github.com/llvm/llvm-project/issues/45432.
Reviewed By: MyDeveloperDay
Differential Revision: https://reviews.llvm.org/D94955
show more ...
|
| #
7af11989 |
| 14-Jan-2022 |
Marek Kurdej <[email protected]> |
[clang-format] Fix short functions being considered as inline inside an indented namespace.
Fixes https://github.com/llvm/llvm-project/issues/24784.
With config: ``` AllowShortFunctionsOnASingleLin
[clang-format] Fix short functions being considered as inline inside an indented namespace.
Fixes https://github.com/llvm/llvm-project/issues/24784.
With config: ``` AllowShortFunctionsOnASingleLine: Inline NamespaceIndentation: All ```
The code: ``` namespace Test { void f() { return; } } ``` was incorrectly formatted to: ``` namespace Test { void f() { return; } } ```
since the function `f` was considered being inside a class/struct/record. That's because the check was simplistic and only checked for a non-zero indentation level of the line starting `f`.
Reviewed By: MyDeveloperDay, HazardyKnusperkeks
Differential Revision: https://reviews.llvm.org/D117142
show more ...
|