From 0d228d32f6087ea95d5de5235dd25aa6eeb7f406 Mon Sep 17 00:00:00 2001 From: Rusty Wagner Date: Tue, 1 Apr 2025 17:11:58 -0400 Subject: Fix line formatter handling of calls without arguments and long symbol names --- formatter/generic/genericformatter.cpp | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) (limited to 'formatter/generic/genericformatter.cpp') diff --git a/formatter/generic/genericformatter.cpp b/formatter/generic/genericformatter.cpp index 8e73d740..ab7002c2 100644 --- a/formatter/generic/genericformatter.cpp +++ b/formatter/generic/genericformatter.cpp @@ -490,9 +490,18 @@ static vector RelocateStartAndEndOfContainerItems(const vector& item for (auto& j : startOfContainer.tokens) result.back().AddTokenToLastAtom(j); - vector containerItems(i.items.begin() + 1, i.items.end()); + auto containerContents = i.items.begin() + 1; + if (containerContents != i.items.end() && containerContents->type == EndOfContainer) + { + for (auto& j : containerContents->tokens) + result.back().AddTokenToLastAtom(j); + ++containerContents; + } + + vector containerItems(containerContents, i.items.end()); containerItems = RelocateStartAndEndOfContainerItems(containerItems); - result.push_back({Container, containerItems, {}, 0}); + if (!containerItems.empty()) + result.push_back({Container, containerItems, {}, 0}); } else if (i.type == EndOfContainer && !result.empty()) { @@ -794,6 +803,7 @@ vector GenericLineFormatter::FormatLines( // Item is an atom. We just have to emit the tokens even though it is too wide. item->AppendAllTokens(outputLine.tokens, firstTokenOfLine); + currentWidth += item->width; ++item; continue; } -- cgit v1.3.1