Lines Matching full:current
83 // Maintains a stack level corresponding to the current End token. in getLengthToMatchingParen()
122 // Returns \c true if \c Current starts a new parameter.
123 static bool startsNextParameter(const FormatToken &Current, in startsNextParameter() argument
125 const FormatToken &Previous = *Current.Previous; in startsNextParameter()
126 if (Current.is(TT_CtorInitializerComma) && in startsNextParameter()
130 if (Style.Language == FormatStyle::LK_Proto && Current.is(TT_SelectorName)) in startsNextParameter()
132 return Previous.is(tok::comma) && !Current.isTrailingComment() && in startsNextParameter()
281 const FormatToken &Current = *State.NextToken; in canBreak() local
282 const FormatToken &Previous = *Current.Previous; in canBreak()
284 assert(&Previous == Current.Previous); in canBreak()
285 if (!Current.CanBreakBefore && !(CurrentState.BreakBeforeClosingBrace && in canBreak()
286 Current.closesBlockOrBlockTypeList(Style))) { in canBreak()
291 if (!Current.MustBreakBefore && Previous.is(tok::l_brace) && in canBreak()
304 State.LowestLevelOnLine < Current.NestingLevel) { in canBreak()
307 if (Current.isMemberAccess() && CurrentState.ContainsUnwrappedBuilder) in canBreak()
320 if (Current.is(TT_FunctionDeclarationName) && State.Column < 6) { in canBreak()
327 if (!Current.isOneOf(TT_BinaryOperator, tok::comma) && in canBreak()
335 if (Current.is(TT_ConditionalExpr) && Previous.is(tok::r_paren) && in canBreak()
348 const FormatToken &Current = *State.NextToken; in mustBreak() local
349 const FormatToken &Previous = *Current.Previous; in mustBreak()
351 if (Style.BraceWrapping.BeforeLambdaBody && Current.CanBreakBefore && in mustBreak()
352 Current.is(TT_LambdaLBrace) && Previous.isNot(TT_LineComment)) { in mustBreak()
353 auto LambdaBodyLength = getLengthToMatchingParen(Current, State.Stack); in mustBreak()
356 if (Current.MustBreakBefore || in mustBreak()
357 (Current.is(TT_InlineASMColon) && in mustBreak()
363 Current.closesBlockOrBlockTypeList(Style)) { in mustBreak()
366 if (CurrentState.BreakBeforeClosingParen && Current.is(tok::r_paren)) in mustBreak()
370 Current.ObjCSelectorNameParts > 1 && in mustBreak()
371 Current.startsSequence(TT_SelectorName, tok::colon, tok::caret)) { in mustBreak()
380 if ((startsNextParameter(Current, Style) || Previous.is(tok::semi) || in mustBreak()
381 (Previous.is(TT_TemplateCloser) && Current.is(TT_StartOfName) && in mustBreak()
388 (Style.BreakBeforeTernaryOperators && Current.is(TT_ConditionalExpr) && in mustBreak()
392 CurrentState.BreakBeforeParameter && !Current.isTrailingComment() && in mustBreak()
393 !Current.isOneOf(tok::r_paren, tok::r_brace)) { in mustBreak()
397 ((Style.BreakBeforeTernaryOperators && Current.is(TT_ConditionalExpr) && in mustBreak()
398 Current.is(tok::colon)) || in mustBreak()
416 : Current; in mustBreak()
421 (!Current.isTrailingComment() || Current.NewlinesBefore > 0) && in mustBreak()
428 if (Current.is(TT_ObjCMethodExpr) && !Previous.is(TT_SelectorName) && in mustBreak()
432 if (Current.is(TT_SelectorName) && !Previous.is(tok::at) && in mustBreak()
435 !Current.startsSequence(TT_SelectorName, tok::colon, tok::caret))) { in mustBreak()
440 if (Current.isMemberAccess() && Style.ColumnLimit != 0 && in mustBreak()
441 State.Column + getLengthToNextOperator(Current) > Style.ColumnLimit && in mustBreak()
443 Current.NestingLevel < State.StartOfLineLevel)) { in mustBreak()
447 if (startsSegmentOfBuilderTypeCall(Current) && in mustBreak()
463 Current.CanBreakBefore) { in mustBreak()
472 Previous.is(tok::comma) || Current.NestingLevel < 2) && in mustBreak()
481 // current style uses wrapping before or after operators for the given in mustBreak()
483 if (Previous.is(TT_BinaryOperator) && Current.CanBreakBefore) { in mustBreak()
486 CurrentState.BreakBeforeParameter && !Current.isTrailingComment()) { in mustBreak()
509 } else if (Current.is(TT_BinaryOperator) && Current.CanBreakBefore && in mustBreak()
515 if (Current.is(tok::lessless) && Current.isNot(TT_OverloadedOperator) && in mustBreak()
520 if (Current.NestingLevel == 0 && !Current.isTrailingComment()) { in mustBreak()
526 if (Current.is(tok::kw_concept)) { in mustBreak()
536 if (Current.is(TT_RequiresClause)) { in mustBreak()
551 if (Previous.is(TT_LeadingJavaAnnotation) && Current.isNot(tok::l_paren) && in mustBreak()
552 Current.isNot(TT_LeadingJavaAnnotation)) { in mustBreak()
563 if (BreakBeforeDecoratedTokens.contains(Current.TokenText)) in mustBreak()
568 if (((Current.is(TT_FunctionDeclarationName) && in mustBreak()
576 (Current.is(tok::kw_operator) && !Previous.is(tok::coloncolon))) && in mustBreak()
586 !Current.isOneOf(tok::r_brace, tok::comment)) { in mustBreak()
590 if (Current.is(tok::lessless) && in mustBreak()
609 const FormatToken &Current = *State.NextToken; in addTokenToState() local
616 if ((Current.is(TT_ImplicitStringLiteral) && in addTokenToState()
621 SourceMgr.getSpellingColumnNumber(Current.WhitespaceRange.getEnd()); in addTokenToState()
622 if (Current.LastNewlineOffset != 0) { in addTokenToState()
624 // determined by the current end column. in addTokenToState()
628 SourceMgr.getSpellingColumnNumber(Current.WhitespaceRange.getBegin()); in addTokenToState()
647 FormatToken &Current = *State.NextToken; in addTokenOnCurrentLine() local
652 if (Current.is(tok::equal) && in addTokenOnCurrentLine()
653 (State.Line->First->is(tok::kw_for) || Current.NestingLevel == 0) && in addTokenOnCurrentLine()
668 unsigned Spaces = Current.SpacesRequiredBefore + ExtraSpaces; in addTokenOnCurrentLine()
688 Whitespaces.replaceWhitespace(Current, /*Newlines=*/0, Spaces, in addTokenOnCurrentLine()
695 Current.is(TT_InheritanceColon)) { in addTokenOnCurrentLine()
703 if (Current.is(TT_SelectorName) && !CurrentState.ObjCSelectorNameFound) { in addTokenOnCurrentLine()
706 unsigned FirstColonPos = State.Column + Spaces + Current.ColumnWidth; in addTokenOnCurrentLine()
707 if (Current.LongestObjCSelectorName == 0) in addTokenOnCurrentLine()
709 else if (MinIndent + Current.LongestObjCSelectorName > FirstColonPos) in addTokenOnCurrentLine()
710 CurrentState.ColonPos = MinIndent + Current.LongestObjCSelectorName; in addTokenOnCurrentLine()
735 Current.FakeLParens.size() > 0 && in addTokenOnCurrentLine()
736 Current.FakeLParens.back() > prec::Unknown) { in addTokenOnCurrentLine()
745 (Current.isNot(TT_LineComment) || Previous.is(BK_BracedInit))) { in addTokenOnCurrentLine()
749 if (CurrentState.AvoidBinPacking && startsNextParameter(Current, Style)) in addTokenOnCurrentLine()
751 if (startsSegmentOfBuilderTypeCall(Current) && in addTokenOnCurrentLine()
756 if (Current.is(TT_LambdaArrow) && Style.Language == FormatStyle::LK_Java) in addTokenOnCurrentLine()
758 if (Current.isMemberAccess() && Previous.is(tok::r_paren) && in addTokenOnCurrentLine()
774 const FormatToken *P = Current.getPreviousNonComment(); in addTokenOnCurrentLine()
775 if (!Current.is(tok::comment) && P && in addTokenOnCurrentLine()
801 if (Current.isNot(tok::comment) && Previous.is(tok::l_paren) && in addTokenOnCurrentLine()
808 } else if (!Current.isOneOf(tok::comment, tok::caret) && in addTokenOnCurrentLine()
814 (!Current.isTrailingComment() || Current.NewlinesBefore > 0) && in addTokenOnCurrentLine()
824 Current.StartsBinaryExpression)) { in addTokenOnCurrentLine()
833 } else if (Current.is(TT_CSharpGenericTypeConstraintColon)) { in addTokenOnCurrentLine()
853 FormatToken &Current = *State.NextToken; in addTokenOnNewLine() local
862 const FormatToken *PreviousNonComment = Current.getPreviousNonComment(); in addTokenOnNewLine()
865 NextNonComment = &Current; in addTokenOnNewLine()
912 if (!Current.is(TT_LambdaArrow) && in addTokenOnNewLine()
913 (!Style.isJavaScript() || Current.NestingLevel != 0 || in addTokenOnNewLine()
915 !Current.isOneOf(Keywords.kw_async, Keywords.kw_function))) { in addTokenOnNewLine()
966 Current.NestingLevel == 0) { in addTokenOnNewLine()
973 if (Current.is(TT_BinaryOperator) && Current.CanBreakBefore) in addTokenOnNewLine()
978 if (Current.is(tok::r_brace) && Current.MatchingParen && in addTokenOnNewLine()
981 !Current.MatchingParen->Children.empty()) { in addTokenOnNewLine()
988 std::max(1u, std::min(Current.NewlinesBefore, MaxEmptyLinesToKeep)); in addTokenOnNewLine()
991 Whitespaces.replaceWhitespace(Current, Newlines, State.Column, State.Column, in addTokenOnNewLine()
995 if (!Current.isTrailingComment()) in addTokenOnNewLine()
997 if (Current.is(tok::lessless)) { in addTokenOnNewLine()
1004 State.StartOfLineLevel = Current.NestingLevel; in addTokenOnNewLine()
1005 State.LowestLevelOnLine = Current.NestingLevel; in addTokenOnNewLine()
1010 (!Style.isCpp() && Current.is(tok::r_brace) && State.Stack.size() > 1 && in addTokenOnNewLine()
1012 (Style.Language == FormatStyle::LK_ObjC && Current.is(tok::r_brace) && in addTokenOnNewLine()
1017 (Current.MatchingParen && in addTokenOnNewLine()
1018 Current.MatchingParen->is(TT_RequiresExpressionLBrace)); in addTokenOnNewLine()
1027 Current.NestingLevel != 0) && in addTokenOnNewLine()
1031 Current.isNot(TT_BinaryOperator) && !PreviousNonComment->opensScope()) { in addTokenOnNewLine()
1084 FormatToken &Current = *State.NextToken; in getNewLineColumn() local
1088 Current.isNot(TT_CSharpGenericTypeConstraint)) { in getNewLineColumn()
1092 const FormatToken &Previous = *Current.Previous; in getNewLineColumn()
1097 const FormatToken *PreviousNonComment = Current.getPreviousNonComment(); in getNewLineColumn()
1100 NextNonComment = &Current; in getNewLineColumn()
1104 Current.isOneOf(Keywords.kw_implements, Keywords.kw_extends)) { in getNewLineColumn()
1111 // thus are on the same line as the current token. in getNewLineColumn()
1120 return Current.NestingLevel == 0 ? State.FirstIndent : CurrentState.Indent; in getNewLineColumn()
1121 if ((Current.isOneOf(tok::r_brace, tok::r_square) || in getNewLineColumn()
1122 (Current.is(tok::greater) && in getNewLineColumn()
1126 if (Current.closesBlockOrBlockTypeList(Style)) in getNewLineColumn()
1128 if (Current.MatchingParen && Current.MatchingParen->is(BK_BracedInit)) in getNewLineColumn()
1147 if (Current.is(tok::r_paren) && State.Stack.size() > 1 && in getNewLineColumn()
1148 (!Current.Next || in getNewLineColumn()
1149 Current.Next->isOneOf(tok::semi, tok::kw_const, tok::l_brace))) { in getNewLineColumn()
1153 Current.is(tok::r_paren) && State.Stack.size() > 1) { in getNewLineColumn()
1158 if (Current.is(tok::identifier) && Current.Next && in getNewLineColumn()
1159 (Current.Next->is(TT_DictLiteral) || in getNewLineColumn()
1162 Current.Next->isOneOf(tok::less, tok::l_brace)))) { in getNewLineColumn()
1185 (Previous.is(tok::colon) && !Current.FakeLParens.empty() && in getNewLineColumn()
1186 Current.FakeLParens.back() == prec::Conditional)) && in getNewLineColumn()
1203 if (Current.is(TT_RequiresClause)) { in getNewLineColumn()
1295 if (Previous.is(tok::r_paren) && !Current.isBinaryOperator() && in getNewLineColumn()
1296 !Current.isOneOf(tok::colon, tok::comment)) { in getNewLineColumn()
1299 if (Current.is(TT_ProtoExtensionLSquare)) in getNewLineColumn()
1301 if (Current.isBinaryOperator() && CurrentState.UnindentOperator) { in getNewLineColumn()
1302 return CurrentState.Indent - Current.Tok.getLength() - in getNewLineColumn()
1303 Current.SpacesRequiredBefore; in getNewLineColumn()
1305 if (Current.isOneOf(tok::comment, TT_BlockComment, TT_LineComment) && in getNewLineColumn()
1320 const FormatToken &Current, in hasNestedBlockInlined() argument
1328 return Style.BraceWrapping.BeforeLambdaBody && Current.is(TT_LambdaLSquare); in hasNestedBlockInlined()
1334 const FormatToken &Current = *State.NextToken; in moveStateToNextToken() local
1337 if (Current.is(TT_CSharpGenericTypeConstraint)) in moveStateToNextToken()
1339 if (Current.isOneOf(tok::comma, TT_BinaryOperator)) in moveStateToNextToken()
1341 if (Current.isOneOf(TT_InheritanceColon, TT_CSharpGenericTypeConstraintColon)) in moveStateToNextToken()
1343 if (Current.is(tok::lessless) && Current.isNot(TT_OverloadedOperator)) { in moveStateToNextToken()
1349 if (Current.is(TT_BinaryOperator) && Current.isNot(tok::lessless)) in moveStateToNextToken()
1351 if (Current.is(TT_ConditionalExpr) && Current.Previous && in moveStateToNextToken()
1352 !Current.Previous->is(TT_ConditionalExpr)) { in moveStateToNextToken()
1355 if (Current.is(TT_ArraySubscriptLSquare) && in moveStateToNextToken()
1369 if (IsWrappedConditional(Current)) in moveStateToNextToken()
1371 if (Style.BreakBeforeTernaryOperators && Current.is(tok::question)) in moveStateToNextToken()
1373 if (!Style.BreakBeforeTernaryOperators && Current.isNot(tok::colon)) { in moveStateToNextToken()
1374 const FormatToken *Previous = Current.Previous; in moveStateToNextToken()
1380 if (!Current.opensScope() && !Current.closesScope() && in moveStateToNextToken()
1381 !Current.is(TT_PointerOrReference)) { in moveStateToNextToken()
1383 std::min(State.LowestLevelOnLine, Current.NestingLevel); in moveStateToNextToken()
1385 if (Current.isMemberAccess()) in moveStateToNextToken()
1386 CurrentState.StartOfFunctionCall = !Current.NextOperator ? 0 : State.Column; in moveStateToNextToken()
1387 if (Current.is(TT_SelectorName)) in moveStateToNextToken()
1389 if (Current.is(TT_CtorInitializerColon) && in moveStateToNextToken()
1409 if (Current.is(TT_CtorInitializerColon) && in moveStateToNextToken()
1417 if (Current.is(TT_InheritanceColon)) { in moveStateToNextToken()
1421 if (Current.isOneOf(TT_BinaryOperator, TT_ConditionalExpr) && Newline) in moveStateToNextToken()
1422 CurrentState.NestedBlockIndent = State.Column + Current.ColumnWidth + 1; in moveStateToNextToken()
1423 if (Current.isOneOf(TT_LambdaLSquare, TT_LambdaArrow)) in moveStateToNextToken()
1425 if (Current.is(TT_RequiresExpression) && in moveStateToNextToken()
1431 const FormatToken *Previous = Current.getPreviousNonComment(); in moveStateToNextToken()
1439 if (Current.isNot(tok::comment) && !Current.ClosesRequiresClause && in moveStateToNextToken()
1452 !Newline && hasNestedBlockInlined(Previous, Current, Style); in moveStateToNextToken()
1464 if (Current.is(TT_ObjCStringLiteral) && State.StartOfStringLiteral == 0) in moveStateToNextToken()
1466 if (Current.is(TT_CSharpStringLiteral) && State.StartOfStringLiteral == 0) { in moveStateToNextToken()
1468 } else if (Current.isStringLiteral() && State.StartOfStringLiteral == 0) { in moveStateToNextToken()
1470 } else if (!Current.isOneOf(tok::comment, tok::identifier, tok::hash) && in moveStateToNextToken()
1471 !Current.isStringLiteral()) { in moveStateToNextToken()
1475 State.Column += Current.ColumnWidth; in moveStateToNextToken()
1479 handleEndOfLine(Current, State, DryRun, AllowBreak, Newline); in moveStateToNextToken()
1481 if (Current.Role) in moveStateToNextToken()
1482 Current.Role->formatFromToken(State, this, DryRun); in moveStateToNextToken()
1496 const FormatToken &Current = *State.NextToken; in moveStatePastFakeLParens() local
1497 if (Current.FakeLParens.empty()) in moveStatePastFakeLParens()
1500 const FormatToken *Previous = Current.getPreviousNonComment(); in moveStatePastFakeLParens()
1512 for (const auto &PrecedenceLevel : llvm::reverse(Current.FakeLParens)) { in moveStatePastFakeLParens()
1531 if (!Current.isTrailingComment() && in moveStatePastFakeLParens()
1537 PrecedenceLevel != prec::Comma || Current.NestingLevel == 0)) { in moveStatePastFakeLParens()
1571 if (PrecedenceLevel != prec::Conditional && !Current.is(TT_UnaryOperator) && in moveStatePastFakeLParens()
1583 &PrecedenceLevel == &Current.FakeLParens.back() && in moveStatePastFakeLParens()
1589 !Current.isTrailingComment())) { in moveStatePastFakeLParens()
1619 const FormatToken &Current = *State.NextToken; in moveStatePastScopeOpener() local
1620 if (!Current.opensScope()) in moveStatePastScopeOpener()
1626 if (Current.isOneOf(tok::less, tok::l_paren) && in moveStatePastScopeOpener()
1631 if (Current.MatchingParen && Current.is(BK_Block)) { in moveStatePastScopeOpener()
1642 if (Current.isOneOf(tok::l_brace, TT_ArrayInitializerLSquare) || in moveStatePastScopeOpener()
1643 opensProtoMessageField(Current, Style)) { in moveStatePastScopeOpener()
1644 if (Current.opensBlockOrBlockTypeList(Style)) { in moveStatePastScopeOpener()
1650 const FormatToken *NextNoComment = Current.getNextNonComment(); in moveStatePastScopeOpener()
1651 bool EndsInComma = Current.MatchingParen && in moveStatePastScopeOpener()
1652 Current.MatchingParen->Previous && in moveStatePastScopeOpener()
1653 Current.MatchingParen->Previous->is(tok::comma); in moveStatePastScopeOpener()
1654 AvoidBinPacking = EndsInComma || Current.is(TT_DictLiteral) || in moveStatePastScopeOpener()
1662 if (Current.ParameterCount > 1) in moveStatePastScopeOpener()
1673 if (Current.is(tok::less) && Current.ParentBracket == tok::l_paren) { in moveStatePastScopeOpener()
1679 Current.MatchingParen && in moveStatePastScopeOpener()
1680 Current.MatchingParen->getPreviousNonComment() && in moveStatePastScopeOpener()
1681 Current.MatchingParen->getPreviousNonComment()->is(tok::comma); in moveStatePastScopeOpener()
1695 Current.getPreviousNonComment() && in moveStatePastScopeOpener()
1696 Current.getPreviousNonComment()->is(tok::kw__Generic); in moveStatePastScopeOpener()
1704 (Current.is(PPK_OnePerLine) || in moveStatePastScopeOpener()
1705 (!BinPackInconclusiveFunctions && Current.is(PPK_Inconclusive)))); in moveStatePastScopeOpener()
1707 if (Current.is(TT_ObjCMethodExpr) && Current.MatchingParen && in moveStatePastScopeOpener()
1712 if (getLengthToMatchingParen(Current, State.Stack) + State.Column > in moveStatePastScopeOpener()
1719 for (const FormatToken *Tok = &Current; in moveStatePastScopeOpener()
1720 Tok && Tok != Current.MatchingParen; Tok = Tok->Next) { in moveStatePastScopeOpener()
1733 // Generally inherit NoLineBreak from the current scope to nested scope. in moveStatePastScopeOpener()
1737 Current.Children.empty() && in moveStatePastScopeOpener()
1738 !Current.isOneOf(TT_DictLiteral, TT_ArrayInitializerLSquare) && in moveStatePastScopeOpener()
1740 (Current.is(TT_TemplateOpener) && in moveStatePastScopeOpener()
1743 ParenState(&Current, NewIndent, LastSpace, AvoidBinPacking, NoLineBreak)); in moveStatePastScopeOpener()
1747 NewState.HasMultipleNestedBlocks = (Current.BlockParameterCount > 1); in moveStatePastScopeOpener()
1749 if (Style.BraceWrapping.BeforeLambdaBody && Current.Next != nullptr && in moveStatePastScopeOpener()
1750 Current.is(tok::l_paren)) { in moveStatePastScopeOpener()
1752 FormatToken const *next = Current.Next; in moveStatePastScopeOpener()
1762 NewState.IsInsideObjCArrayLiteral = Current.is(TT_ArrayInitializerLSquare) && in moveStatePastScopeOpener()
1763 Current.Previous && in moveStatePastScopeOpener()
1764 Current.Previous->is(tok::at); in moveStatePastScopeOpener()
1768 const FormatToken &Current = *State.NextToken; in moveStatePastScopeCloser() local
1769 if (!Current.closesScope()) in moveStatePastScopeCloser()
1775 (Current.isOneOf(tok::r_paren, tok::r_square, TT_TemplateString) || in moveStatePastScopeCloser()
1776 (Current.is(tok::r_brace) && State.NextToken != State.Line->First) || in moveStatePastScopeCloser()
1778 (Current.is(tok::greater) && Current.is(TT_DictLiteral)))) { in moveStatePastScopeCloser()
1794 if (CurrentState.BreakBeforeParameter && Current.MatchingParen && in moveStatePastScopeCloser()
1795 Current.MatchingParen->Previous) { in moveStatePastScopeCloser()
1796 const FormatToken &CurrentScopeOpener = *Current.MatchingParen->Previous; in moveStatePastScopeCloser()
1801 CurrentScopeOpener.TotalLength - Current.TotalLength - 1; in moveStatePastScopeCloser()
1802 if (State.Column + Current.ColumnWidth + NecessarySpaceInLine <= in moveStatePastScopeCloser()
1809 if (Current.is(tok::r_square)) { in moveStatePastScopeCloser()
1811 const FormatToken *NextNonComment = Current.getNextNonComment(); in moveStatePastScopeCloser()
1846 const FormatToken &Current, LineState &State, in reformatRawStringLiteral() argument
1848 unsigned StartColumn = State.Column - Current.ColumnWidth; in reformatRawStringLiteral()
1849 StringRef OldDelimiter = *getRawStringDelimiter(Current.TokenText); in reformatRawStringLiteral()
1861 Current.TokenText.substr(OldPrefixSize).drop_back(OldSuffixSize)); in reformatRawStringLiteral()
1878 // - if the content starts on newline, it is one level more than the current in reformatRawStringLiteral()
1885 bool ContentStartsOnNewline = Current.TokenText[OldPrefixSize] == '\n'; in reformatRawStringLiteral()
1908 (!Newline && Current.Next && Current.Next->is(tok::r_paren)) in reformatRawStringLiteral()
1921 // - if the raw string prefix does not start on a newline, it is the current in reformatRawStringLiteral()
1924 Current.NewlinesBefore ? FirstStartColumn - NewPrefixSize : CurrentIndent; in reformatRawStringLiteral()
1934 return addMultilineToken(Current, State); in reformatRawStringLiteral()
1940 Current.Tok.getLocation().getLocWithOffset(2); in reformatRawStringLiteral()
1951 Current.Tok.getLocation().getLocWithOffset(Current.TokenText.size() - in reformatRawStringLiteral()
1962 Current.Tok.getLocation().getLocWithOffset(OldPrefixSize); in reformatRawStringLiteral()
1993 unsigned ContinuationIndenter::addMultilineToken(const FormatToken &Current, in addMultilineToken() argument
2002 State.Column = Current.LastLineColumnWidth; in addMultilineToken()
2009 unsigned ContinuationIndenter::handleEndOfLine(const FormatToken &Current, in handleEndOfLine() argument
2015 auto RawStringStyle = getRawStringStyle(Current, State); in handleEndOfLine()
2016 if (RawStringStyle && !Current.Finalized) { in handleEndOfLine()
2017 Penalty = reformatRawStringLiteral(Current, State, *RawStringStyle, DryRun, in handleEndOfLine()
2019 } else if (Current.IsMultiline && Current.isNot(TT_BlockComment)) { in handleEndOfLine()
2022 Penalty = addMultilineToken(Current, State); in handleEndOfLine()
2034 Current, State, AllowBreak, /*DryRun=*/true, Strict); in handleEndOfLine()
2040 breakProtrudingToken(Current, StrictState, AllowBreak, in handleEndOfLine()
2052 breakProtrudingToken(Current, OriginalState, AllowBreak, /*DryRun=*/false, in handleEndOfLine()
2065 static StringRef getEnclosingFunctionName(const FormatToken &Current) { in getEnclosingFunctionName() argument
2066 // Look for: 'function(' or 'function<templates>(' before Current. in getEnclosingFunctionName()
2067 auto Tok = Current.getPreviousNonComment(); in getEnclosingFunctionName()
2084 ContinuationIndenter::getRawStringStyle(const FormatToken &Current, in getRawStringStyle() argument
2086 if (!Current.isStringLiteral()) in getRawStringStyle()
2088 auto Delimiter = getRawStringDelimiter(Current.TokenText); in getRawStringStyle()
2094 getEnclosingFunctionName(Current)); in getRawStringStyle()
2103 ContinuationIndenter::createBreakableToken(const FormatToken &Current, in createBreakableToken() argument
2105 unsigned StartColumn = State.Column - Current.ColumnWidth; in createBreakableToken()
2106 if (Current.isStringLiteral()) { in createBreakableToken()
2125 if (Current.IsUnterminatedLiteral) in createBreakableToken()
2132 StringRef Text = Current.TokenText; in createBreakableToken()
2147 // UnbreakableTailLength of Current is an overapproximation is that case in createBreakableToken()
2151 : Current.UnbreakableTailLength; in createBreakableToken()
2153 Current, StartColumn, Prefix, Postfix, UnbreakableTailLength, in createBreakableToken()
2156 } else if (Current.is(TT_BlockComment)) { in createBreakableToken()
2161 switchesFormatting(Current)) { in createBreakableToken()
2165 Current, StartColumn, Current.OriginalColumn, !Current.Previous, in createBreakableToken()
2167 } else if (Current.is(TT_LineComment) && in createBreakableToken()
2168 (Current.Previous == nullptr || in createBreakableToken()
2169 Current.Previous->isNot(TT_ImplicitStringLiteral))) { in createBreakableToken()
2171 for (const FormatToken *T = &Current; T && T->is(TT_LineComment); in createBreakableToken()
2179 CommentPragmasRegex.match(Current.TokenText.substr(2)) || in createBreakableToken()
2180 switchesFormatting(Current) || !RegularComments) { in createBreakableToken()
2184 Current, StartColumn, /*InPPDirective=*/false, Encoding, Style); in createBreakableToken()
2190 ContinuationIndenter::breakProtrudingToken(const FormatToken &Current, in breakProtrudingToken() argument
2194 createBreakableToken(Current, State, AllowBreak); in breakProtrudingToken()
2199 if (Current.is(TT_LineComment)) { in breakProtrudingToken()
2208 if (Current.UnbreakableTailLength >= ColumnLimit) in breakProtrudingToken()
2212 unsigned StartColumn = State.Column - Current.ColumnWidth; in breakProtrudingToken()
2213 unsigned NewBreakPenalty = Current.isStringLiteral() in breakProtrudingToken()
2229 // Where we are in the content of the current logical line. in breakProtrudingToken()
2234 // The number of columns left in the current logical line after TailOffset. in breakProtrudingToken()
2251 // we'll start reflowing if the current line is broken or whitespace is in breakProtrudingToken()
2254 // Break the current token until we can fit the rest of the line. in breakProtrudingToken()
2261 // If the current token doesn't fit, find the latest possible split in the in breakProtrudingToken()
2262 // current line so that breaking at it will be under the column limit. in breakProtrudingToken()
2283 // Check whether the next natural split point after the current one can in breakProtrudingToken()
2310 // into the current line. in breakProtrudingToken()
2328 // If the whitespace compression makes us fit, continue on the current in breakProtrudingToken()
2335 // penalty of introducing a new break, continue on the current line. in breakProtrudingToken()
2349 // The current line fits after compressing the whitespace - reflow in breakProtrudingToken()
2366 // Update the ContentIndent only if the current line was not reflown with in breakProtrudingToken()
2415 // After breaking a line, try to reflow the next line into the current in breakProtrudingToken()
2421 // current one. in breakProtrudingToken()
2431 // When we reflow, we need to add a space between the end of the current in breakProtrudingToken()
2435 // of the current one; the split will include any leading whitespace of in breakProtrudingToken()
2446 // If the rest of the next line fits into the current line below the in breakProtrudingToken()
2460 // of the next line to that break point onto the current line is in breakProtrudingToken()
2549 Current.UnbreakableTailLength; in breakProtrudingToken()
2555 if (Current.isNot(TT_LineComment)) in breakProtrudingToken()
2559 if (Current.is(TT_BlockComment)) in breakProtrudingToken()
2576 const FormatToken &Current = *State.NextToken; in nextIsMultilineString() local
2577 if (!Current.isStringLiteral() || Current.is(TT_ImplicitStringLiteral)) in nextIsMultilineString()
2582 if (Current.TokenText.startswith("R\"")) in nextIsMultilineString()
2584 if (Current.IsMultiline) in nextIsMultilineString()
2586 if (Current.getNextNonComment() && in nextIsMultilineString()
2587 Current.getNextNonComment()->isStringLiteral()) { in nextIsMultilineString()
2591 State.Column + Current.ColumnWidth + Current.UnbreakableTailLength > in nextIsMultilineString()