forked from OSchip/llvm-project
clang-format: Allow "single column" list layout even if that violates the
column limit. Single-column layout basically means that we format the list with one element per line. Not doing that when there is a column limit violation doesn't change the fact that there is an item that doesn't fit within the column limit. Before (with a column limit of 30): std::vector<int> a = { aaaaaaaa, aaaaaaaa, aaaaaaaa, aaaaaaaa, aaaaaaaaaa, aaaaaaaa, aaaaaaaaaaaaaaaaaaaaaaaaaaa}; After: std::vector<int> a = { aaaaaaaa, aaaaaaaa, aaaaaaaa, aaaaaaaa, aaaaaaaaaa, aaaaaaaa, aaaaaaaaaaaaaaaaaaaaaaaaaaa}; (and previously we would have formatted like "After" it wasn't for the one item that is too long) llvm-svn: 290084
This commit is contained in:
parent
2cc7fc2cc6
commit
e6169665ec
|
@ -273,7 +273,7 @@ void CommaSeparatedList::precomputeFormattingInfos(const FormatToken *Token) {
|
|||
continue;
|
||||
|
||||
// Ignore layouts that are bound to violate the column limit.
|
||||
if (Format.TotalWidth > Style.ColumnLimit)
|
||||
if (Format.TotalWidth > Style.ColumnLimit && Columns > 1)
|
||||
continue;
|
||||
|
||||
Formats.push_back(Format);
|
||||
|
@ -287,7 +287,7 @@ CommaSeparatedList::getColumnFormat(unsigned RemainingCharacters) const {
|
|||
I = Formats.rbegin(),
|
||||
E = Formats.rend();
|
||||
I != E; ++I) {
|
||||
if (I->TotalWidth <= RemainingCharacters) {
|
||||
if (I->TotalWidth <= RemainingCharacters || I->Columns == 1) {
|
||||
if (BestFormat && I->LineCount > BestFormat->LineCount)
|
||||
break;
|
||||
BestFormat = &*I;
|
||||
|
|
|
@ -6779,6 +6779,18 @@ TEST_F(FormatTest, FormatsBracedListsInColumnLayout) {
|
|||
" 1, 22, 333, 4444, 55555, 666666, 7777777,\n"
|
||||
" 1, 22, 333, 4444, 55555, 666666, 7777777,\n"
|
||||
" 1, 22, 333, 4444, 55555, 666666, 7777777});");
|
||||
|
||||
// Allow "single-column" layout even if that violates the column limit. There
|
||||
// isn't going to be a better way.
|
||||
verifyFormat("std::vector<int> a = {\n"
|
||||
" aaaaaaaa,\n"
|
||||
" aaaaaaaa,\n"
|
||||
" aaaaaaaa,\n"
|
||||
" aaaaaaaa,\n"
|
||||
" aaaaaaaaaa,\n"
|
||||
" aaaaaaaa,\n"
|
||||
" aaaaaaaaaaaaaaaaaaaaaaaaaaa};",
|
||||
getLLVMStyleWithColumns(30));
|
||||
}
|
||||
|
||||
TEST_F(FormatTest, PullTrivialFunctionDefinitionsIntoSingleLine) {
|
||||
|
|
Loading…
Reference in New Issue