Lines Matching refs:State

99       const ParenState *State = FindParenState(End->Next->MatchingParen);  in getLengthToMatchingParen()  local
100 if (State && State->BreakBeforeClosingBrace) in getLengthToMatchingParen()
239 LineState State; in getInitialState() local
240 State.FirstIndent = FirstIndent; in getInitialState()
242 State.Column = FirstStartColumn; in getInitialState()
244 State.Column = FirstIndent; in getInitialState()
251 State.Column = 0; in getInitialState()
252 State.Line = Line; in getInitialState()
253 State.NextToken = Line->First; in getInitialState()
254 State.Stack.push_back(ParenState(/*Tok=*/nullptr, FirstIndent, FirstIndent, in getInitialState()
257 State.LineContainsContinuedForLoopSection = false; in getInitialState()
258 State.NoContinuation = false; in getInitialState()
259 State.StartOfStringLiteral = 0; in getInitialState()
260 State.StartOfLineLevel = 0; in getInitialState()
261 State.LowestLevelOnLine = 0; in getInitialState()
262 State.IgnoreStackForComparison = false; in getInitialState()
267 State.Stack.back().AvoidBinPacking = true; in getInitialState()
268 State.Stack.back().BreakBeforeParameter = true; in getInitialState()
269 State.Stack.back().AlignColons = false; in getInitialState()
273 moveStateToNextToken(State, DryRun, /*Newline=*/false); in getInitialState()
274 return State; in getInitialState()
277 bool ContinuationIndenter::canBreak(const LineState &State) { in canBreak() argument
278 const FormatToken &Current = *State.NextToken; in canBreak()
281 if (!Current.CanBreakBefore && !(State.Stack.back().BreakBeforeClosingBrace && in canBreak()
297 State.LowestLevelOnLine < State.StartOfLineLevel && in canBreak()
298 State.LowestLevelOnLine < Current.NestingLevel) in canBreak()
300 if (Current.isMemberAccess() && State.Stack.back().ContainsUnwrappedBuilder) in canBreak()
305 if (Previous.is(tok::l_brace) && State.Stack.size() > 1 && in canBreak()
306 State.Stack[State.Stack.size() - 2].NestedBlockInlined && in canBreak()
307 State.Stack[State.Stack.size() - 2].HasMultipleNestedBlocks) in canBreak()
312 if (Current.is(TT_FunctionDeclarationName) && State.Column < 6) { in canBreak()
320 State.Stack.back().NoLineBreakInOperand) in canBreak()
326 return !State.Stack.back().NoLineBreak; in canBreak()
329 bool ContinuationIndenter::mustBreak(const LineState &State) { in mustBreak() argument
330 const FormatToken &Current = *State.NextToken; in mustBreak()
334 auto LambdaBodyLength = getLengthToMatchingParen(Current, State.Stack); in mustBreak()
335 return (LambdaBodyLength > getColumnLimit(State)); in mustBreak()
339 if (State.Stack.back().BreakBeforeClosingBrace && in mustBreak()
342 if (Previous.is(tok::semi) && State.LineContainsContinuedForLoopSection) in mustBreak()
352 if (State.Stack.back().IsCSharpGenericTypeConstraint && in mustBreak()
367 State.Stack.back().BreakBeforeParameter && !Current.isTrailingComment() && in mustBreak()
370 if (State.Stack.back().IsChainedConditional && in mustBreak()
381 getLengthToMatchingParen(Previous, State.Stack) + State.Column - 1 > in mustBreak()
382 getColumnLimit(State)) in mustBreak()
390 (State.Column + State.Line->Last->TotalLength - Previous.TotalLength > in mustBreak()
391 getColumnLimit(State) || in mustBreak()
392 State.Stack.back().BreakBeforeParameter) && in mustBreak()
399 State.Line->startsWith(TT_ObjCMethodSpecifier)) in mustBreak()
402 State.Stack.back().ObjCSelectorNameFound && in mustBreak()
403 State.Stack.back().BreakBeforeParameter && in mustBreak()
408 unsigned NewLineColumn = getNewLineColumn(State); in mustBreak()
410 State.Column + getLengthToNextOperator(Current) > Style.ColumnLimit && in mustBreak()
411 (State.Column > NewLineColumn || in mustBreak()
412 Current.NestingLevel < State.StartOfLineLevel)) in mustBreak()
416 (State.Stack.back().CallContinuation != 0 || in mustBreak()
417 State.Stack.back().BreakBeforeParameter) && in mustBreak()
423 !(State.Column <= NewLineColumn && in mustBreak()
425 !(Previous.closesScopeAfterBlock() && State.Column <= NewLineColumn)) in mustBreak()
431 State.Stack.back().BreakBeforeParameter && Current.CanBreakBefore) in mustBreak()
434 if (!State.Line->First->is(tok::kw_enum) && State.Column <= NewLineColumn) in mustBreak()
438 (NewLineColumn == State.FirstIndent + Style.ContinuationIndentWidth || in mustBreak()
443 nextIsMultilineString(State)) in mustBreak()
468 State.Stack.back().BreakBeforeParameter) in mustBreak()
471 State.Stack.back().BreakBeforeParameter) { in mustBreak()
477 State.Stack.back().BreakBeforeParameter && in mustBreak()
478 State.Stack.back().FirstLessLess == 0) in mustBreak()
500 !Previous.is(tok::kw_template) && State.Stack.back().BreakBeforeParameter) in mustBreak()
519 if (State.NoContinuation) in mustBreak()
525 unsigned ContinuationIndenter::addTokenToState(LineState &State, bool Newline, in addTokenToState() argument
528 const FormatToken &Current = *State.NextToken; in addTokenToState()
530 assert(!State.Stack.empty()); in addTokenToState()
531 State.NoContinuation = false; in addTokenToState()
542 State.Column = EndColumn; in addTokenToState()
547 State.Column += EndColumn - StartColumn; in addTokenToState()
549 moveStateToNextToken(State, DryRun, /*Newline=*/false); in addTokenToState()
555 Penalty = addTokenOnNewLine(State, DryRun); in addTokenToState()
557 addTokenOnCurrentLine(State, DryRun, ExtraSpaces); in addTokenToState()
559 return moveStateToNextToken(State, DryRun, Newline) + Penalty; in addTokenToState()
562 void ContinuationIndenter::addTokenOnCurrentLine(LineState &State, bool DryRun, in addTokenOnCurrentLine() argument
564 FormatToken &Current = *State.NextToken; in addTokenOnCurrentLine()
565 const FormatToken &Previous = *State.NextToken->Previous; in addTokenOnCurrentLine()
567 (State.Line->First->is(tok::kw_for) || Current.NestingLevel == 0) && in addTokenOnCurrentLine()
568 State.Stack.back().VariablePos == 0) { in addTokenOnCurrentLine()
569 State.Stack.back().VariablePos = State.Column; in addTokenOnCurrentLine()
572 while (Tok && State.Stack.back().VariablePos >= Tok->ColumnWidth) { in addTokenOnCurrentLine()
573 State.Stack.back().VariablePos -= Tok->ColumnWidth; in addTokenOnCurrentLine()
579 State.Stack.back().LastSpace = State.Stack.back().VariablePos; in addTokenOnCurrentLine()
587 Previous.is(tok::hash) && State.FirstIndent > 0 && in addTokenOnCurrentLine()
588 (State.Line->Type == LT_PreprocessorDirective || in addTokenOnCurrentLine()
589 State.Line->Type == LT_ImportStatement)) { in addTokenOnCurrentLine()
590 Spaces += State.FirstIndent; in addTokenOnCurrentLine()
602 State.Column + Spaces + PPColumnCorrection); in addTokenOnCurrentLine()
608 State.Stack.back().NoLineBreak = true; in addTokenOnCurrentLine()
611 State.Stack.back().NoLineBreak = true; in addTokenOnCurrentLine()
614 !State.Stack.back().ObjCSelectorNameFound) { in addTokenOnCurrentLine()
616 std::max(State.FirstIndent + Style.ContinuationIndentWidth, in addTokenOnCurrentLine()
617 State.Stack.back().Indent); in addTokenOnCurrentLine()
618 unsigned FirstColonPos = State.Column + Spaces + Current.ColumnWidth; in addTokenOnCurrentLine()
620 State.Stack.back().AlignColons = false; in addTokenOnCurrentLine()
622 State.Stack.back().ColonPos = MinIndent + Current.LongestObjCSelectorName; in addTokenOnCurrentLine()
624 State.Stack.back().ColonPos = FirstColonPos; in addTokenOnCurrentLine()
634 State.Column > getNewLineColumn(State) && in addTokenOnCurrentLine()
646 State.Stack.back().NoLineBreak = true; in addTokenOnCurrentLine()
648 State.Stack.back().NoLineBreak = true; in addTokenOnCurrentLine()
651 !State.Stack.back().IsCSharpGenericTypeConstraint && in addTokenOnCurrentLine()
654 State.Stack.back().Indent = State.Column + Spaces; in addTokenOnCurrentLine()
655 State.Stack.back().IsAligned = true; in addTokenOnCurrentLine()
657 if (State.Stack.back().AvoidBinPacking && startsNextParameter(Current, Style)) in addTokenOnCurrentLine()
658 State.Stack.back().NoLineBreak = true; in addTokenOnCurrentLine()
660 State.Column > getNewLineColumn(State)) in addTokenOnCurrentLine()
661 State.Stack.back().ContainsUnwrappedBuilder = true; in addTokenOnCurrentLine()
664 State.Stack.back().NoLineBreak = true; in addTokenOnCurrentLine()
674 State.Stack.back().NoLineBreak = true; in addTokenOnCurrentLine()
701 (!State.Stack.back().LastOperatorWrapped && BreakBeforeOperator)) in addTokenOnCurrentLine()
702 State.Stack.back().NoLineBreakInOperand = true; in addTokenOnCurrentLine()
705 State.Column += Spaces; in addTokenOnCurrentLine()
711 State.Stack.back().LastSpace = State.Column; in addTokenOnCurrentLine()
712 State.Stack.back().NestedBlockIndent = State.Column; in addTokenOnCurrentLine()
717 State.Stack.back().LastSpace = State.Column; in addTokenOnCurrentLine()
721 State.Stack.back().Indent = State.Column; in addTokenOnCurrentLine()
722 State.Stack.back().LastSpace = State.Column; in addTokenOnCurrentLine()
733 State.Stack.back().LastSpace = State.Column; in addTokenOnCurrentLine()
735 State.Stack.back().Indent = State.Column; in addTokenOnCurrentLine()
736 State.Stack.back().LastSpace = State.Column; in addTokenOnCurrentLine()
738 State.Stack.back().ColonPos = State.Column; in addTokenOnCurrentLine()
750 if (HasTrailingCall && State.Stack.size() > 1 && in addTokenOnCurrentLine()
751 State.Stack[State.Stack.size() - 2].CallContinuation == 0) in addTokenOnCurrentLine()
752 State.Stack.back().LastSpace = State.Column; in addTokenOnCurrentLine()
756 unsigned ContinuationIndenter::addTokenOnNewLine(LineState &State, in addTokenOnNewLine() argument
758 FormatToken &Current = *State.NextToken; in addTokenOnNewLine()
759 const FormatToken &Previous = *State.NextToken->Previous; in addTokenOnNewLine()
771 if (!State.Stack.back().ContainsLineBreak) in addTokenOnNewLine()
773 State.Stack.back().ContainsLineBreak = true; in addTokenOnNewLine()
775 Penalty += State.NextToken->SplitPenalty; in addTokenOnNewLine()
781 State.Stack.back().FirstLessLess == 0 && in addTokenOnNewLine()
782 (State.Column <= Style.ColumnLimit / 3 || in addTokenOnNewLine()
783 State.Stack.back().BreakBeforeParameter)) in addTokenOnNewLine()
786 State.Column = getNewLineColumn(State); in addTokenOnNewLine()
800 if (State.Column > State.FirstIndent) in addTokenOnNewLine()
802 Style.PenaltyIndentedWhitespace * (State.Column - State.FirstIndent); in addTokenOnNewLine()
819 State.Stack.back().NestedBlockIndent = State.Column; in addTokenOnNewLine()
822 if (State.Stack.back().CallContinuation == 0) in addTokenOnNewLine()
823 State.Stack.back().CallContinuation = State.Column; in addTokenOnNewLine()
825 if (!State.Stack.back().ObjCSelectorNameFound) { in addTokenOnNewLine()
827 State.Stack.back().AlignColons = false; in addTokenOnNewLine()
829 State.Stack.back().ColonPos = in addTokenOnNewLine()
830 (shouldIndentWrappedSelectorName(Style, State.Line->Type) in addTokenOnNewLine()
831 ? std::max(State.Stack.back().Indent, in addTokenOnNewLine()
832 State.FirstIndent + Style.ContinuationIndentWidth) in addTokenOnNewLine()
833 : State.Stack.back().Indent) + in addTokenOnNewLine()
837 } else if (State.Stack.back().AlignColons && in addTokenOnNewLine()
838 State.Stack.back().ColonPos <= NextNonComment->ColumnWidth) { in addTokenOnNewLine()
839 State.Stack.back().ColonPos = State.Column + NextNonComment->ColumnWidth; in addTokenOnNewLine()
852 if (State.Stack.size() > 1) in addTokenOnNewLine()
853 State.Stack[State.Stack.size() - 2].LastSpace = in addTokenOnNewLine()
854 std::max(State.Stack.back().LastSpace, State.Stack.back().Indent) + in addTokenOnNewLine()
860 !State.Stack.back().AvoidBinPacking) || in addTokenOnNewLine()
862 State.Stack.back().BreakBeforeParameter = false; in addTokenOnNewLine()
866 State.Stack.back().BreakBeforeParameter = false; in addTokenOnNewLine()
869 State.Stack.back().BreakBeforeParameter = true; in addTokenOnNewLine()
871 State.Stack.back().BreakBeforeParameter = false; in addTokenOnNewLine()
887 State.Line->InPPDirective && State.Line->Type != LT_ImportStatement; in addTokenOnNewLine()
888 Whitespaces.replaceWhitespace(Current, Newlines, State.Column, State.Column, in addTokenOnNewLine()
889 State.Stack.back().IsAligned, in addTokenOnNewLine()
894 State.Stack.back().LastSpace = State.Column; in addTokenOnNewLine()
899 State.Stack.back().LastSpace += 3; // 3 -> width of "<< ". in addTokenOnNewLine()
901 State.StartOfLineLevel = Current.NestingLevel; in addTokenOnNewLine()
902 State.LowestLevelOnLine = Current.NestingLevel; in addTokenOnNewLine()
907 (!Style.isCpp() && Current.is(tok::r_brace) && State.Stack.size() > 1 && in addTokenOnNewLine()
908 State.Stack[State.Stack.size() - 2].NestedBlockInlined) || in addTokenOnNewLine()
910 State.Stack.size() > 1 && !Style.ObjCBreakBeforeNestedBlockParam); in addTokenOnNewLine()
912 for (unsigned i = 0, e = State.Stack.size() - 1; i != e; ++i) in addTokenOnNewLine()
913 State.Stack[i].BreakBeforeParameter = true; in addTokenOnNewLine()
923 State.Stack.back().BreakBeforeParameter = true; in addTokenOnNewLine()
930 State.Stack.back().BreakBeforeClosingBrace = true; in addTokenOnNewLine()
932 if (State.Stack.back().AvoidBinPacking) { in addTokenOnNewLine()
943 State.Line->MustBeDeclaration) || in addTokenOnNewLine()
945 !State.Line->MustBeDeclaration) || in addTokenOnNewLine()
949 State.Stack.back().BreakBeforeParameter = true; in addTokenOnNewLine()
956 State.Stack.back().BreakBeforeParameter = false; in addTokenOnNewLine()
962 unsigned ContinuationIndenter::getNewLineColumn(const LineState &State) { in getNewLineColumn() argument
963 if (!State.NextToken || !State.NextToken->Previous) in getNewLineColumn()
966 FormatToken &Current = *State.NextToken; in getNewLineColumn()
968 if (State.Stack.back().IsCSharpGenericTypeConstraint && in getNewLineColumn()
970 return State.Stack.back().ColonPos + 2; in getNewLineColumn()
975 std::max(State.Stack.back().LastSpace, State.Stack.back().Indent) + in getNewLineColumn()
985 return std::max(State.Stack.back().LastSpace, in getNewLineColumn()
986 State.Stack.back().Indent + Style.ContinuationIndentWidth); in getNewLineColumn()
989 State.Line->First->is(tok::kw_enum)) in getNewLineColumn()
990 return (Style.IndentWidth * State.Line->First->IndentLevel) + in getNewLineColumn()
994 return Current.NestingLevel == 0 ? State.FirstIndent in getNewLineColumn()
995 : State.Stack.back().Indent; in getNewLineColumn()
1000 State.Stack.size() > 1) { in getNewLineColumn()
1002 return State.Stack[State.Stack.size() - 2].NestedBlockIndent; in getNewLineColumn()
1004 return State.Stack[State.Stack.size() - 2].LastSpace; in getNewLineColumn()
1005 return State.FirstIndent; in getNewLineColumn()
1022 if (Current.is(tok::r_paren) && State.Stack.size() > 1 && in getNewLineColumn()
1025 return State.Stack[State.Stack.size() - 2].LastSpace; in getNewLineColumn()
1027 return State.Stack[State.Stack.size() - 2].LastSpace; in getNewLineColumn()
1033 return State.Stack.back().Indent; in getNewLineColumn()
1035 State.StartOfStringLiteral != 0) in getNewLineColumn()
1036 return State.StartOfStringLiteral - 1; in getNewLineColumn()
1037 if (NextNonComment->isStringLiteral() && State.StartOfStringLiteral != 0) in getNewLineColumn()
1038 return State.StartOfStringLiteral; in getNewLineColumn()
1040 State.Stack.back().FirstLessLess != 0) in getNewLineColumn()
1041 return State.Stack.back().FirstLessLess; in getNewLineColumn()
1043 if (State.Stack.back().CallContinuation == 0) in getNewLineColumn()
1045 return State.Stack.back().CallContinuation; in getNewLineColumn()
1047 if (State.Stack.back().QuestionColumn != 0 && in getNewLineColumn()
1056 !State.Stack.back().IsWrappedConditional) { in getNewLineColumn()
1061 unsigned Indent = State.Stack.back().Indent; in getNewLineColumn()
1066 State.Stack.back().UnindentOperator) in getNewLineColumn()
1070 return State.Stack.back().QuestionColumn; in getNewLineColumn()
1072 if (Previous.is(tok::comma) && State.Stack.back().VariablePos != 0) in getNewLineColumn()
1073 return State.Stack.back().VariablePos; in getNewLineColumn()
1081 return std::max(State.Stack.back().LastSpace, State.Stack.back().Indent); in getNewLineColumn()
1083 if (!State.Stack.back().ObjCSelectorNameFound) { in getNewLineColumn()
1084 unsigned MinIndent = State.Stack.back().Indent; in getNewLineColumn()
1085 if (shouldIndentWrappedSelectorName(Style, State.Line->Type)) in getNewLineColumn()
1087 State.FirstIndent + Style.ContinuationIndentWidth); in getNewLineColumn()
1102 if (!State.Stack.back().AlignColons) in getNewLineColumn()
1103 return State.Stack.back().Indent; in getNewLineColumn()
1104 if (State.Stack.back().ColonPos > NextNonComment->ColumnWidth) in getNewLineColumn()
1105 return State.Stack.back().ColonPos - NextNonComment->ColumnWidth; in getNewLineColumn()
1106 return State.Stack.back().Indent; in getNewLineColumn()
1109 return State.Stack.back().ColonPos; in getNewLineColumn()
1111 if (State.Stack.back().StartOfArraySubscripts != 0) in getNewLineColumn()
1112 return State.Stack.back().StartOfArraySubscripts; in getNewLineColumn()
1115 return State.Stack.back().Indent; in getNewLineColumn()
1123 return State.Stack.back().Indent; in getNewLineColumn()
1132 return State.Stack.back().Indent; in getNewLineColumn()
1135 return State.Stack.back().Indent; in getNewLineColumn()
1138 return State.Stack.back().Indent; in getNewLineColumn()
1141 return State.FirstIndent + Style.ConstructorInitializerIndentWidth; in getNewLineColumn()
1146 return State.Stack.back().Indent; in getNewLineColumn()
1147 if (Current.isBinaryOperator() && State.Stack.back().UnindentOperator) in getNewLineColumn()
1148 return State.Stack.back().Indent - Current.Tok.getLength() - in getNewLineColumn()
1151 NextNonComment->isBinaryOperator() && State.Stack.back().UnindentOperator) in getNewLineColumn()
1152 return State.Stack.back().Indent - NextNonComment->Tok.getLength() - in getNewLineColumn()
1154 if (State.Stack.back().Indent == State.FirstIndent && PreviousNonComment && in getNewLineColumn()
1158 return State.Stack.back().Indent + Style.ContinuationIndentWidth; in getNewLineColumn()
1159 return State.Stack.back().Indent; in getNewLineColumn()
1174 unsigned ContinuationIndenter::moveStateToNextToken(LineState &State, in moveStateToNextToken() argument
1176 assert(State.Stack.size()); in moveStateToNextToken()
1177 const FormatToken &Current = *State.NextToken; in moveStateToNextToken()
1180 State.Stack.back().IsCSharpGenericTypeConstraint = true; in moveStateToNextToken()
1182 State.Stack.back().NoLineBreakInOperand = false; in moveStateToNextToken()
1184 State.Stack.back().AvoidBinPacking = true; in moveStateToNextToken()
1186 if (State.Stack.back().FirstLessLess == 0) in moveStateToNextToken()
1187 State.Stack.back().FirstLessLess = State.Column; in moveStateToNextToken()
1189 State.Stack.back().LastOperatorWrapped = Newline; in moveStateToNextToken()
1192 State.Stack.back().LastOperatorWrapped = Newline; in moveStateToNextToken()
1195 State.Stack.back().LastOperatorWrapped = Newline; in moveStateToNextToken()
1197 State.Stack.back().StartOfArraySubscripts == 0) in moveStateToNextToken()
1198 State.Stack.back().StartOfArraySubscripts = State.Column; in moveStateToNextToken()
1203 State.Stack.back().IsWrappedConditional = true; in moveStateToNextToken()
1205 State.Stack.back().QuestionColumn = State.Column; in moveStateToNextToken()
1211 State.Stack.back().QuestionColumn = State.Column; in moveStateToNextToken()
1215 State.LowestLevelOnLine = in moveStateToNextToken()
1216 std::min(State.LowestLevelOnLine, Current.NestingLevel); in moveStateToNextToken()
1218 State.Stack.back().StartOfFunctionCall = in moveStateToNextToken()
1219 !Current.NextOperator ? 0 : State.Column; in moveStateToNextToken()
1221 State.Stack.back().ObjCSelectorNameFound = true; in moveStateToNextToken()
1229 State.Stack.back().Indent = in moveStateToNextToken()
1230 State.Column + in moveStateToNextToken()
1234 State.Stack.back().NestedBlockIndent = State.Stack.back().Indent; in moveStateToNextToken()
1236 State.Stack.back().AvoidBinPacking = true; in moveStateToNextToken()
1237 State.Stack.back().BreakBeforeParameter = in moveStateToNextToken()
1240 State.Stack.back().BreakBeforeParameter = false; in moveStateToNextToken()
1245 State.Stack.back().Indent = in moveStateToNextToken()
1246 State.FirstIndent + Style.ConstructorInitializerIndentWidth; in moveStateToNextToken()
1247 State.Stack.back().NestedBlockIndent = State.Stack.back().Indent; in moveStateToNextToken()
1249 State.Stack.back().AvoidBinPacking = true; in moveStateToNextToken()
1252 State.Stack.back().Indent = in moveStateToNextToken()
1253 State.FirstIndent + Style.ConstructorInitializerIndentWidth; in moveStateToNextToken()
1255 State.Stack.back().NestedBlockIndent = in moveStateToNextToken()
1256 State.Column + Current.ColumnWidth + 1; in moveStateToNextToken()
1258 State.Stack.back().LastSpace = State.Column; in moveStateToNextToken()
1271 !Previous->is(TT_DictLiteral) && State.Stack.size() > 1 && in moveStateToNextToken()
1272 !State.Stack.back().HasMultipleNestedBlocks) { in moveStateToNextToken()
1273 if (State.Stack[State.Stack.size() - 2].NestedBlockInlined && Newline) in moveStateToNextToken()
1274 for (unsigned i = 0, e = State.Stack.size() - 1; i != e; ++i) in moveStateToNextToken()
1275 State.Stack[i].NoLineBreak = true; in moveStateToNextToken()
1276 State.Stack[State.Stack.size() - 2].NestedBlockInlined = false; in moveStateToNextToken()
1282 State.Stack.back().NestedBlockInlined = in moveStateToNextToken()
1286 moveStatePastFakeLParens(State, Newline); in moveStateToNextToken()
1287 moveStatePastScopeCloser(State); in moveStateToNextToken()
1288 bool AllowBreak = !State.Stack.back().NoLineBreak && in moveStateToNextToken()
1289 !State.Stack.back().NoLineBreakInOperand; in moveStateToNextToken()
1290 moveStatePastScopeOpener(State, Newline); in moveStateToNextToken()
1291 moveStatePastFakeRParens(State); in moveStateToNextToken()
1293 if (Current.is(TT_ObjCStringLiteral) && State.StartOfStringLiteral == 0) in moveStateToNextToken()
1294 State.StartOfStringLiteral = State.Column + 1; in moveStateToNextToken()
1295 if (Current.is(TT_CSharpStringLiteral) && State.StartOfStringLiteral == 0) in moveStateToNextToken()
1296 State.StartOfStringLiteral = State.Column + 1; in moveStateToNextToken()
1297 else if (Current.isStringLiteral() && State.StartOfStringLiteral == 0) in moveStateToNextToken()
1298 State.StartOfStringLiteral = State.Column; in moveStateToNextToken()
1301 State.StartOfStringLiteral = 0; in moveStateToNextToken()
1303 State.Column += Current.ColumnWidth; in moveStateToNextToken()
1304 State.NextToken = State.NextToken->Next; in moveStateToNextToken()
1307 handleEndOfLine(Current, State, DryRun, AllowBreak, Newline); in moveStateToNextToken()
1310 Current.Role->formatFromToken(State, this, DryRun); in moveStateToNextToken()
1317 Penalty += Previous->Role->formatAfterToken(State, this, DryRun); in moveStateToNextToken()
1322 void ContinuationIndenter::moveStatePastFakeLParens(LineState &State, in moveStatePastFakeLParens() argument
1324 const FormatToken &Current = *State.NextToken; in moveStatePastFakeLParens()
1340 ParenState NewParenState = State.Stack.back(); in moveStatePastFakeLParens()
1348 NewParenState.NoLineBreak || State.Stack.back().NoLineBreakInOperand; in moveStatePastFakeLParens()
1365 std::max(std::max(State.Column, NewParenState.Indent), in moveStatePastFakeLParens()
1366 State.Stack.back().LastSpace); in moveStatePastFakeLParens()
1391 NewParenState.LastSpace = std::max(NewParenState.LastSpace, State.Column); in moveStatePastFakeLParens()
1394 NewParenState.StartOfFunctionCall = State.Column; in moveStatePastFakeLParens()
1403 !State.Stack.back().IsWrappedConditional) { in moveStatePastFakeLParens()
1405 NewParenState.UnindentOperator = State.Stack.back().UnindentOperator; in moveStatePastFakeLParens()
1413 State.Stack.push_back(NewParenState); in moveStatePastFakeLParens()
1418 void ContinuationIndenter::moveStatePastFakeRParens(LineState &State) { in moveStatePastFakeRParens() argument
1419 for (unsigned i = 0, e = State.NextToken->FakeRParens; i != e; ++i) { in moveStatePastFakeRParens()
1420 unsigned VariablePos = State.Stack.back().VariablePos; in moveStatePastFakeRParens()
1421 if (State.Stack.size() == 1) { in moveStatePastFakeRParens()
1425 State.Stack.pop_back(); in moveStatePastFakeRParens()
1426 State.Stack.back().VariablePos = VariablePos; in moveStatePastFakeRParens()
1430 void ContinuationIndenter::moveStatePastScopeOpener(LineState &State, in moveStatePastScopeOpener() argument
1432 const FormatToken &Current = *State.NextToken; in moveStatePastScopeOpener()
1438 State.Stack.back().IsCSharpGenericTypeConstraint) in moveStatePastScopeOpener()
1442 moveStateToNewBlock(State); in moveStatePastScopeOpener()
1447 unsigned LastSpace = State.Stack.back().LastSpace; in moveStatePastScopeOpener()
1450 unsigned NestedBlockIndent = std::max(State.Stack.back().StartOfFunctionCall, in moveStatePastScopeOpener()
1451 State.Stack.back().NestedBlockIndent); in moveStatePastScopeOpener()
1456 std::min(State.Column, State.Stack.back().NestedBlockIndent); in moveStatePastScopeOpener()
1458 NewIndent = State.Stack.back().LastSpace + Style.ContinuationIndentWidth; in moveStatePastScopeOpener()
1473 NestedBlockIndent = std::max(NestedBlockIndent, State.Column + 1); in moveStatePastScopeOpener()
1476 std::max(State.Stack.back().LastSpace, in moveStatePastScopeOpener()
1477 State.Stack.back().StartOfFunctionCall); in moveStatePastScopeOpener()
1484 NewIndent = std::max(NewIndent, State.Stack.back().Indent); in moveStatePastScopeOpener()
1485 LastSpace = std::max(LastSpace, State.Stack.back().Indent); in moveStatePastScopeOpener()
1501 (State.Line->Type != LT_ObjCDecl && Style.BinPackParameters) || in moveStatePastScopeOpener()
1502 (State.Line->Type == LT_ObjCDecl && ObjCBinPackProtocolList); in moveStatePastScopeOpener()
1505 (State.Stack.back().IsCSharpGenericTypeConstraint) || in moveStatePastScopeOpener()
1507 (State.Line->MustBeDeclaration && !BinPackDeclaration) || in moveStatePastScopeOpener()
1508 (!State.Line->MustBeDeclaration && !Style.BinPackArguments) || in moveStatePastScopeOpener()
1518 if (getLengthToMatchingParen(Current, State.Stack) + State.Column > in moveStatePastScopeOpener()
1519 getColumnLimit(State)) in moveStatePastScopeOpener()
1544 (State.Stack.back().NoLineBreak || in moveStatePastScopeOpener()
1545 State.Stack.back().NoLineBreakInOperand || in moveStatePastScopeOpener()
1547 State.Stack.back().ContainsUnwrappedBuilder)); in moveStatePastScopeOpener()
1548 State.Stack.push_back( in moveStatePastScopeOpener()
1550 State.Stack.back().NestedBlockIndent = NestedBlockIndent; in moveStatePastScopeOpener()
1551 State.Stack.back().BreakBeforeParameter = BreakBeforeParameter; in moveStatePastScopeOpener()
1552 State.Stack.back().HasMultipleNestedBlocks = in moveStatePastScopeOpener()
1561 State.Stack.back().HasMultipleNestedBlocks = true; in moveStatePastScopeOpener()
1568 State.Stack.back().IsInsideObjCArrayLiteral = in moveStatePastScopeOpener()
1573 void ContinuationIndenter::moveStatePastScopeCloser(LineState &State) { in moveStatePastScopeCloser() argument
1574 const FormatToken &Current = *State.NextToken; in moveStatePastScopeCloser()
1580 if (State.Stack.size() > 1 && in moveStatePastScopeCloser()
1582 (Current.is(tok::r_brace) && State.NextToken != State.Line->First) || in moveStatePastScopeCloser()
1583 State.NextToken->is(TT_TemplateCloser) || in moveStatePastScopeCloser()
1585 State.Stack.pop_back(); in moveStatePastScopeCloser()
1597 if (State.Stack.back().BreakBeforeParameter && Current.MatchingParen && in moveStatePastScopeCloser()
1603 getLengthToMatchingParen(CurrentScopeOpener, State.Stack) + in moveStatePastScopeCloser()
1605 if (State.Column + Current.ColumnWidth + NecessarySpaceInLine <= in moveStatePastScopeCloser()
1607 State.Stack.back().BreakBeforeParameter = false; in moveStatePastScopeCloser()
1615 State.Stack.back().StartOfArraySubscripts = 0; in moveStatePastScopeCloser()
1619 void ContinuationIndenter::moveStateToNewBlock(LineState &State) { in moveStateToNewBlock() argument
1620 unsigned NestedBlockIndent = State.Stack.back().NestedBlockIndent; in moveStateToNewBlock()
1623 NestedBlockIndent + (State.NextToken->is(TT_ObjCBlockLBrace) in moveStateToNewBlock()
1626 State.Stack.push_back(ParenState(State.NextToken, NewIndent, in moveStateToNewBlock()
1627 State.Stack.back().LastSpace, in moveStateToNewBlock()
1630 State.Stack.back().NestedBlockIndent = NestedBlockIndent; in moveStateToNewBlock()
1631 State.Stack.back().BreakBeforeParameter = true; in moveStateToNewBlock()
1648 const FormatToken &Current, LineState &State, in reformatRawStringLiteral() argument
1650 unsigned StartColumn = State.Column - Current.ColumnWidth; in reformatRawStringLiteral()
1711 ? State.Stack.back().NestedBlockIndent in reformatRawStringLiteral()
1712 : State.Stack.back().Indent; in reformatRawStringLiteral()
1736 return addMultilineToken(Current, State); in reformatRawStringLiteral()
1778 State.Column = RawLastLineEndColumn + NewSuffixSize; in reformatRawStringLiteral()
1790 for (unsigned i = 0, e = State.Stack.size(); i != e; ++i) in reformatRawStringLiteral()
1791 State.Stack[i].BreakBeforeParameter = true; in reformatRawStringLiteral()
1797 LineState &State) { in addMultilineToken() argument
1799 for (unsigned i = 0, e = State.Stack.size(); i != e; ++i) in addMultilineToken()
1800 State.Stack[i].BreakBeforeParameter = true; in addMultilineToken()
1802 unsigned ColumnsUsed = State.Column; in addMultilineToken()
1805 State.Column = Current.LastLineColumnWidth; in addMultilineToken()
1807 if (ColumnsUsed > getColumnLimit(State)) in addMultilineToken()
1808 return Style.PenaltyExcessCharacter * (ColumnsUsed - getColumnLimit(State)); in addMultilineToken()
1813 LineState &State, bool DryRun, in handleEndOfLine() argument
1818 auto RawStringStyle = getRawStringStyle(Current, State); in handleEndOfLine()
1820 Penalty = reformatRawStringLiteral(Current, State, *RawStringStyle, DryRun, in handleEndOfLine()
1825 Penalty = addMultilineToken(Current, State); in handleEndOfLine()
1826 } else if (State.Line->Type != LT_ImportStatement) { in handleEndOfLine()
1828 LineState OriginalState = State; in handleEndOfLine()
1837 Current, State, AllowBreak, /*DryRun=*/true, Strict); in handleEndOfLine()
1849 State = StrictState; in handleEndOfLine()
1859 if (State.Column > getColumnLimit(State)) { in handleEndOfLine()
1860 unsigned ExcessCharacters = State.Column - getColumnLimit(State); in handleEndOfLine()
1888 const LineState &State) { in getRawStringStyle() argument
1900 RawStringStyle->ColumnLimit = getColumnLimit(State); in getRawStringStyle()
1906 LineState &State, bool AllowBreak) { in createBreakableToken() argument
1907 unsigned StartColumn = State.Column - Current.ColumnWidth; in createBreakableToken()
1922 if (State.Line->Type == LT_PreprocessorDirective) in createBreakableToken()
1930 if (State.Stack.back().IsInsideObjCArrayLiteral) { in createBreakableToken()
1951 unsigned UnbreakableTailLength = (State.NextToken && canBreak(State)) in createBreakableToken()
1956 State.Line->InPPDirective, Encoding, Style); in createBreakableToken()
1968 State.Line->InPPDirective, Encoding, Style, Whitespaces.useCRLF()); in createBreakableToken()
1984 LineState &State, bool AllowBreak, in breakProtrudingToken() argument
1987 createBreakableToken(Current, State, AllowBreak); in breakProtrudingToken()
1991 unsigned ColumnLimit = getColumnLimit(State); in breakProtrudingToken()
2005 unsigned StartColumn = State.Column - Current.ColumnWidth; in breakProtrudingToken()
2338 State.Column = ContentStartColumn + RemainingTokenColumns - in breakProtrudingToken()
2346 for (unsigned i = 0, e = State.Stack.size(); i != e; ++i) in breakProtrudingToken()
2347 State.Stack[i].BreakBeforeParameter = true; in breakProtrudingToken()
2351 State.NoContinuation = true; in breakProtrudingToken()
2353 State.Stack.back().LastSpace = StartColumn; in breakProtrudingToken()
2356 Token->updateNextToken(State); in breakProtrudingToken()
2361 unsigned ContinuationIndenter::getColumnLimit(const LineState &State) const { in getColumnLimit()
2363 return Style.ColumnLimit - (State.Line->InPPDirective ? 2 : 0); in getColumnLimit()
2366 bool ContinuationIndenter::nextIsMultilineString(const LineState &State) { in nextIsMultilineString() argument
2367 const FormatToken &Current = *State.NextToken; in nextIsMultilineString()
2381 State.Column + Current.ColumnWidth + Current.UnbreakableTailLength > in nextIsMultilineString()