Lines Matching refs:Changes
53 Changes.push_back(Change(Tok, /*CreateReplacement=*/true, Tok.WhitespaceRange,
63 Changes.push_back(Change(Tok, /*CreateReplacement=*/false,
82 Changes.push_back(
91 if (Changes.empty())
94 llvm::sort(Changes, Change::IsBeforeInFile(SourceMgr));
109 Changes[0].PreviousEndOfTokenColumn = 0;
110 Change *LastOutsideTokenChange = &Changes[0];
111 for (unsigned i = 1, e = Changes.size(); i != e; ++i) {
113 Changes[i].OriginalWhitespaceRange.getBegin();
115 Changes[i - 1].OriginalWhitespaceRange.getEnd();
127 // Usually consecutive changes would occur in consecutive tokens. This is
138 // and 3. So the two consecutive whitespace changes just before '// line 2'
145 // For this reason, if the text between consecutive changes spans multiple
150 Changes[i - 1].TokenLength = OriginalWhitespaceStartOffset -
152 Changes[i].PreviousLinePostfix.size() +
153 Changes[i - 1].CurrentLinePrefix.size();
155 Changes[i - 1].TokenLength =
156 NewlinePos + Changes[i - 1].CurrentLinePrefix.size();
159 // If there are multiple changes in this token, sum up all the changes until
161 if (Changes[i - 1].IsInsideToken && Changes[i - 1].NewlinesBefore == 0)
163 Changes[i - 1].TokenLength + Changes[i - 1].Spaces;
165 LastOutsideTokenChange = &Changes[i - 1];
167 Changes[i].PreviousEndOfTokenColumn =
168 Changes[i - 1].StartOfTokenColumn + Changes[i - 1].TokenLength;
170 Changes[i - 1].IsTrailingComment =
171 (Changes[i].NewlinesBefore > 0 || Changes[i].Tok->is(tok::eof) ||
172 (Changes[i].IsInsideToken && Changes[i].Tok->is(tok::comment))) &&
173 Changes[i - 1].Tok->is(tok::comment) &&
175 // BreakableLineCommentSection does comment reflow changes and here is
182 // That amounts to 2 changes by BreakableLineCommentSection:
190 // So in the end we have two changes like this:
208 Changes.back().TokenLength = 0;
209 Changes.back().IsTrailingComment = Changes.back().Tok->is(tok::comment);
212 for (auto &Change : Changes) {
213 // Reset the IsTrailingComment flag for changes inside of trailing comments
240 for (auto &Change : Changes) {
266 SmallVector<WhitespaceManager::Change, 16> &Changes) {
294 Changes[i].indentAndNestingLevel() <
295 Changes[ScopeStack.back()].indentAndNestingLevel())
302 Changes[PreviousNonComment].Tok->is(tok::comment))
304 if (i != Start && Changes[i].indentAndNestingLevel() >
305 Changes[PreviousNonComment].indentAndNestingLevel())
310 Changes[i].Tok->is(tok::string_literal) &&
311 Changes[i - 1].Tok->is(tok::string_literal);
314 if (Changes[i].NewlinesBefore > 0 && !SkipMatchCheck) {
320 // spaces it has to be shifted, so the rest of the changes on the line are
322 if (!FoundMatchOnLine && !SkipMatchCheck && Matches(Changes[i])) {
324 Shift = Column - Changes[i].StartOfTokenColumn;
325 Changes[i].Spaces += Shift;
330 if (InsideNestedScope && Changes[i].NewlinesBefore > 0) {
334 if (Changes[ScopeStart - 1].Tok->is(TT_FunctionDeclarationName))
339 Changes[ScopeStart - 2].Tok->is(TT_FunctionDeclarationName))
344 Changes[ScopeStart - 2].Tok->is(tok::identifier) &&
345 Changes[ScopeStart - 1].Tok->is(tok::l_paren))
349 if (Changes[i].Tok->is(TT_ConditionalExpr))
353 if (Changes[i].Tok->Previous &&
354 Changes[i].Tok->Previous->is(TT_ConditionalExpr))
361 Changes[i].Spaces += Shift;
365 Changes[i].Spaces += Shift;
368 Changes[i].StartOfTokenColumn += Shift;
369 if (i + 1 != Changes.size())
370 Changes[i + 1].PreviousEndOfTokenColumn += Shift;
374 // Walk through a subset of the changes, starting at StartAt, and find
381 // exhausted all items inside Changes, or because we hit a scope level higher
384 // equal to the initial level, which is the level of Changes[StartAt].
404 SmallVector<WhitespaceManager::Change, 16> &Changes, unsigned StartAt,
415 auto IndentAndNestingLevel = StartAt < Changes.size()
416 ? Changes[StartAt].indentAndNestingLevel()
441 Changes);
449 for (unsigned e = Changes.size(); i != e; ++i) {
450 if (Changes[i].indentAndNestingLevel() < IndentAndNestingLevel)
453 if (Changes[i].NewlinesBefore != 0) {
459 (Changes[i].NewlinesBefore > 1) &&
476 if (i == 0 || !Changes[i].Tok->is(tok::string_literal) ||
477 !Changes[i - 1].Tok->is(tok::string_literal))
482 if (!Changes[i].Tok->is(tok::comment)) {
486 if (Changes[i].Tok->is(tok::comma)) {
488 } else if (Changes[i].indentAndNestingLevel() > IndentAndNestingLevel) {
490 unsigned StoppedAt = AlignTokens(Style, Matches, Changes, i, ACS);
495 if (!Matches(Changes[i]))
509 unsigned ChangeMinColumn = Changes[i].StartOfTokenColumn;
510 int LineLengthAfter = Changes[i].TokenLength;
511 for (unsigned j = i + 1; j != e && Changes[j].NewlinesBefore == 0; ++j) {
512 LineLengthAfter += Changes[j].Spaces;
513 // Changes are generally 1:1 with the tokens, but a change could also be
517 // Therefore, changes inside of a token should only count the space.
518 if (!Changes[j].IsInsideToken)
519 LineLengthAfter += Changes[j].TokenLength;
550 SmallVector<WhitespaceManager::Change, 16> &Changes) {
557 if (Changes[I].NewlinesBefore > 0) {
563 // spaces it has to be shifted, so the rest of the changes on the line are
565 if (!FoundMatchOnLine && AlignMacrosMatches(Changes[I])) {
567 Shift = MinColumn - Changes[I].StartOfTokenColumn;
568 Changes[I].Spaces += Shift;
572 Changes[I].StartOfTokenColumn += Shift;
573 if (I + 1 != Changes.size())
574 Changes[I + 1].PreviousEndOfTokenColumn += Shift;
631 for (unsigned E = Changes.size(); I != E; ++I) {
632 if (Changes[I].NewlinesBefore != 0) {
637 (Changes[I].NewlinesBefore > 1) &&
653 FoundMatchOnLine, AlignMacrosMatches, Changes);
660 if (!Changes[I].Tok->is(tok::comment)) {
664 if (!AlignMacrosMatches(Changes[I]))
672 unsigned ChangeMinColumn = Changes[I].StartOfTokenColumn;
673 int LineLengthAfter = -Changes[I].Spaces;
674 for (unsigned j = I; j != E && Changes[j].NewlinesBefore == 0; ++j)
675 LineLengthAfter += Changes[j].Spaces + Changes[j].TokenLength;
684 FoundMatchOnLine, AlignMacrosMatches, Changes);
699 if (&C != &Changes.back() && (&C + 1)->NewlinesBefore > 0)
704 Changes, /*StartAt=*/0, Style.AlignConsecutiveAssignments);
719 if (&C != &Changes.back() && (&C + 1)->NewlinesBefore > 0)
724 Changes, /*StartAt=*/0, Style.AlignConsecutiveBitFields);
763 Changes, /*StartAt=*/0, Style.AlignConsecutiveDeclarations);
778 Changes, /*StartAt=*/0);
790 for (Change &C : Changes) {
801 &C != &Changes.back() && (&C + 1)->NewlinesBefore == 0 &&
805 Changes, /*StartAt=*/0);
815 for (unsigned i = 0, e = Changes.size(); i != e; ++i) {
816 if (Changes[i].StartOfBlockComment)
818 Newlines += Changes[i].NewlinesBefore;
819 if (!Changes[i].IsTrailingComment)
822 unsigned ChangeMinColumn = Changes[i].StartOfTokenColumn;
827 else if (Style.ColumnLimit >= Changes[i].TokenLength)
828 ChangeMaxColumn = Style.ColumnLimit - Changes[i].TokenLength;
834 if (!Changes[i].CreateReplacement)
837 if (i + 1 != e && Changes[i + 1].ContinuesPPDirective)
841 bool FollowsRBraceInColumn0 = i > 0 && Changes[i].NewlinesBefore == 0 &&
842 Changes[i - 1].Tok->is(tok::r_brace) &&
843 Changes[i - 1].StartOfTokenColumn == 0;
845 if (Changes[i].NewlinesBefore == 1) { // A comment on its own line.
847 Changes[i].OriginalWhitespaceRange.getEnd());
849 if (Changes[j].Tok->is(tok::comment))
853 Changes[j].OriginalWhitespaceRange.getEnd());
871 (Changes[i].NewlinesBefore == 1 && i > 0 &&
872 !Changes[i - 1].IsTrailingComment) ||
882 BreakBeforeNext = (i == 0) || (Changes[i].NewlinesBefore > 1) ||
885 (Changes[i].NewlinesBefore == 1 && StartOfSequence == i);
888 alignTrailingComments(StartOfSequence, Changes.size(), MinColumn);
895 if (Changes[i].IsTrailingComment) {
896 Shift = Column - Changes[i].StartOfTokenColumn;
898 if (Changes[i].StartOfBlockComment) {
899 Shift = Changes[i].IndentationOffset +
900 Changes[i].StartOfBlockComment->StartOfTokenColumn -
901 Changes[i].StartOfTokenColumn;
904 Changes[i].Spaces += Shift;
905 if (i + 1 != Changes.size())
906 Changes[i + 1].PreviousEndOfTokenColumn += Shift;
907 Changes[i].StartOfTokenColumn += Shift;
918 for (unsigned i = 1, e = Changes.size(); i < e; ++i) {
919 Change &C = Changes[i];
930 alignEscapedNewlines(StartOfMacro + 1, Changes.size(), MaxEndOfLine);
936 Change &C = Changes[i];
948 for (unsigned i = 0, e = Changes.size(); i != e; ++i) {
949 const Change &C = Changes[i];
951 assert(Changes[i - 1].OriginalWhitespaceRange.getBegin() !=