Lines Matching refs:State

100       const ParenState *State = FindParenState(End->Next->MatchingParen);  in getLengthToMatchingParen()  local
101 if (State && State->BreakBeforeClosingBrace) in getLengthToMatchingParen()
240 LineState State; in getInitialState() local
241 State.FirstIndent = FirstIndent; in getInitialState()
243 State.Column = FirstStartColumn; in getInitialState()
245 State.Column = FirstIndent; in getInitialState()
252 State.Column = 0; in getInitialState()
253 State.Line = Line; in getInitialState()
254 State.NextToken = Line->First; in getInitialState()
255 State.Stack.push_back(ParenState(/*Tok=*/nullptr, FirstIndent, FirstIndent, in getInitialState()
258 State.LineContainsContinuedForLoopSection = false; in getInitialState()
259 State.NoContinuation = false; in getInitialState()
260 State.StartOfStringLiteral = 0; in getInitialState()
261 State.StartOfLineLevel = 0; in getInitialState()
262 State.LowestLevelOnLine = 0; in getInitialState()
263 State.IgnoreStackForComparison = false; in getInitialState()
268 State.Stack.back().AvoidBinPacking = true; in getInitialState()
269 State.Stack.back().BreakBeforeParameter = true; in getInitialState()
270 State.Stack.back().AlignColons = false; in getInitialState()
274 moveStateToNextToken(State, DryRun, /*Newline=*/false); in getInitialState()
275 return State; in getInitialState()
278 bool ContinuationIndenter::canBreak(const LineState &State) { in canBreak() argument
279 const FormatToken &Current = *State.NextToken; in canBreak()
282 if (!Current.CanBreakBefore && !(State.Stack.back().BreakBeforeClosingBrace && in canBreak()
298 State.LowestLevelOnLine < State.StartOfLineLevel && in canBreak()
299 State.LowestLevelOnLine < Current.NestingLevel) in canBreak()
301 if (Current.isMemberAccess() && State.Stack.back().ContainsUnwrappedBuilder) in canBreak()
306 if (Previous.is(tok::l_brace) && State.Stack.size() > 1 && in canBreak()
307 State.Stack[State.Stack.size() - 2].NestedBlockInlined && in canBreak()
308 State.Stack[State.Stack.size() - 2].HasMultipleNestedBlocks) in canBreak()
313 if (Current.is(TT_FunctionDeclarationName) && State.Column < 6) { in canBreak()
321 State.Stack.back().NoLineBreakInOperand) in canBreak()
327 return !State.Stack.back().NoLineBreak; in canBreak()
330 bool ContinuationIndenter::mustBreak(const LineState &State) { in mustBreak() argument
331 const FormatToken &Current = *State.NextToken; in mustBreak()
335 if (State.Stack.back().BreakBeforeClosingBrace && in mustBreak()
338 if (Previous.is(tok::semi) && State.LineContainsContinuedForLoopSection) in mustBreak()
357 State.Stack.back().BreakBeforeParameter && !Current.isTrailingComment() && in mustBreak()
365 getLengthToMatchingParen(Previous, State.Stack) + State.Column - 1 > in mustBreak()
366 getColumnLimit(State)) in mustBreak()
374 (State.Column + State.Line->Last->TotalLength - Previous.TotalLength > in mustBreak()
375 getColumnLimit(State) || in mustBreak()
376 State.Stack.back().BreakBeforeParameter) && in mustBreak()
383 State.Line->startsWith(TT_ObjCMethodSpecifier)) in mustBreak()
386 State.Stack.back().ObjCSelectorNameFound && in mustBreak()
387 State.Stack.back().BreakBeforeParameter) in mustBreak()
390 unsigned NewLineColumn = getNewLineColumn(State); in mustBreak()
392 State.Column + getLengthToNextOperator(Current) > Style.ColumnLimit && in mustBreak()
393 (State.Column > NewLineColumn || in mustBreak()
394 Current.NestingLevel < State.StartOfLineLevel)) in mustBreak()
398 (State.Stack.back().CallContinuation != 0 || in mustBreak()
399 State.Stack.back().BreakBeforeParameter) && in mustBreak()
405 !(State.Column <= NewLineColumn && in mustBreak()
408 State.Column <= NewLineColumn)) in mustBreak()
414 State.Stack.back().BreakBeforeParameter && Current.CanBreakBefore) in mustBreak()
417 if (State.Column <= NewLineColumn) in mustBreak()
421 (NewLineColumn == State.FirstIndent + Style.ContinuationIndentWidth || in mustBreak()
425 nextIsMultilineString(State)) in mustBreak()
450 State.Stack.back().BreakBeforeParameter) in mustBreak()
453 State.Stack.back().BreakBeforeParameter) { in mustBreak()
459 State.Stack.back().BreakBeforeParameter && in mustBreak()
460 State.Stack.back().FirstLessLess == 0) in mustBreak()
479 !Previous.is(tok::kw_template) && State.Stack.back().BreakBeforeParameter) in mustBreak()
498 if (State.NoContinuation) in mustBreak()
504 unsigned ContinuationIndenter::addTokenToState(LineState &State, bool Newline, in addTokenToState() argument
507 const FormatToken &Current = *State.NextToken; in addTokenToState()
509 assert(!State.Stack.empty()); in addTokenToState()
510 State.NoContinuation = false; in addTokenToState()
521 State.Column = EndColumn; in addTokenToState()
526 State.Column += EndColumn - StartColumn; in addTokenToState()
528 moveStateToNextToken(State, DryRun, /*Newline=*/false); in addTokenToState()
534 Penalty = addTokenOnNewLine(State, DryRun); in addTokenToState()
536 addTokenOnCurrentLine(State, DryRun, ExtraSpaces); in addTokenToState()
538 return moveStateToNextToken(State, DryRun, Newline) + Penalty; in addTokenToState()
541 void ContinuationIndenter::addTokenOnCurrentLine(LineState &State, bool DryRun, in addTokenOnCurrentLine() argument
543 FormatToken &Current = *State.NextToken; in addTokenOnCurrentLine()
544 const FormatToken &Previous = *State.NextToken->Previous; in addTokenOnCurrentLine()
546 (State.Line->First->is(tok::kw_for) || Current.NestingLevel == 0) && in addTokenOnCurrentLine()
547 State.Stack.back().VariablePos == 0) { in addTokenOnCurrentLine()
548 State.Stack.back().VariablePos = State.Column; in addTokenOnCurrentLine()
551 while (Tok && State.Stack.back().VariablePos >= Tok->ColumnWidth) { in addTokenOnCurrentLine()
552 State.Stack.back().VariablePos -= Tok->ColumnWidth; in addTokenOnCurrentLine()
558 State.Stack.back().LastSpace = State.Stack.back().VariablePos; in addTokenOnCurrentLine()
566 Previous.is(tok::hash) && State.FirstIndent > 0 && in addTokenOnCurrentLine()
567 (State.Line->Type == LT_PreprocessorDirective || in addTokenOnCurrentLine()
568 State.Line->Type == LT_ImportStatement)) { in addTokenOnCurrentLine()
569 Spaces += State.FirstIndent; in addTokenOnCurrentLine()
581 State.Column + Spaces + PPColumnCorrection); in addTokenOnCurrentLine()
587 State.Stack.back().NoLineBreak = true; in addTokenOnCurrentLine()
590 State.Stack.back().NoLineBreak = true; in addTokenOnCurrentLine()
593 !State.Stack.back().ObjCSelectorNameFound) { in addTokenOnCurrentLine()
595 std::max(State.FirstIndent + Style.ContinuationIndentWidth, in addTokenOnCurrentLine()
596 State.Stack.back().Indent); in addTokenOnCurrentLine()
597 unsigned FirstColonPos = State.Column + Spaces + Current.ColumnWidth; in addTokenOnCurrentLine()
599 State.Stack.back().AlignColons = false; in addTokenOnCurrentLine()
601 State.Stack.back().ColonPos = MinIndent + Current.LongestObjCSelectorName; in addTokenOnCurrentLine()
603 State.Stack.back().ColonPos = FirstColonPos; in addTokenOnCurrentLine()
611 State.Column > getNewLineColumn(State) && in addTokenOnCurrentLine()
623 State.Stack.back().NoLineBreak = true; in addTokenOnCurrentLine()
625 State.Stack.back().NoLineBreak = true; in addTokenOnCurrentLine()
630 State.Stack.back().Indent = State.Column + Spaces; in addTokenOnCurrentLine()
631 if (State.Stack.back().AvoidBinPacking && startsNextParameter(Current, Style)) in addTokenOnCurrentLine()
632 State.Stack.back().NoLineBreak = true; in addTokenOnCurrentLine()
634 State.Column > getNewLineColumn(State)) in addTokenOnCurrentLine()
635 State.Stack.back().ContainsUnwrappedBuilder = true; in addTokenOnCurrentLine()
638 State.Stack.back().NoLineBreak = true; in addTokenOnCurrentLine()
648 State.Stack.back().NoLineBreak = true; in addTokenOnCurrentLine()
673 (!State.Stack.back().LastOperatorWrapped && BreakBeforeOperator)) in addTokenOnCurrentLine()
674 State.Stack.back().NoLineBreakInOperand = true; in addTokenOnCurrentLine()
677 State.Column += Spaces; in addTokenOnCurrentLine()
684 State.Stack.back().LastSpace = State.Column; in addTokenOnCurrentLine()
685 State.Stack.back().NestedBlockIndent = State.Column; in addTokenOnCurrentLine()
690 State.Stack.back().LastSpace = State.Column; in addTokenOnCurrentLine()
694 State.Stack.back().Indent = State.Column; in addTokenOnCurrentLine()
695 State.Stack.back().LastSpace = State.Column; in addTokenOnCurrentLine()
706 State.Stack.back().LastSpace = State.Column; in addTokenOnCurrentLine()
708 State.Stack.back().Indent = State.Column; in addTokenOnCurrentLine()
709 State.Stack.back().LastSpace = State.Column; in addTokenOnCurrentLine()
721 if (HasTrailingCall && State.Stack.size() > 1 && in addTokenOnCurrentLine()
722 State.Stack[State.Stack.size() - 2].CallContinuation == 0) in addTokenOnCurrentLine()
723 State.Stack.back().LastSpace = State.Column; in addTokenOnCurrentLine()
727 unsigned ContinuationIndenter::addTokenOnNewLine(LineState &State, in addTokenOnNewLine() argument
729 FormatToken &Current = *State.NextToken; in addTokenOnNewLine()
730 const FormatToken &Previous = *State.NextToken->Previous; in addTokenOnNewLine()
742 if (!State.Stack.back().ContainsLineBreak) in addTokenOnNewLine()
744 State.Stack.back().ContainsLineBreak = true; in addTokenOnNewLine()
746 Penalty += State.NextToken->SplitPenalty; in addTokenOnNewLine()
752 State.Stack.back().FirstLessLess == 0 && in addTokenOnNewLine()
753 (State.Column <= Style.ColumnLimit / 3 || in addTokenOnNewLine()
754 State.Stack.back().BreakBeforeParameter)) in addTokenOnNewLine()
757 State.Column = getNewLineColumn(State); in addTokenOnNewLine()
774 State.Stack.back().NestedBlockIndent = State.Column; in addTokenOnNewLine()
777 if (State.Stack.back().CallContinuation == 0) in addTokenOnNewLine()
778 State.Stack.back().CallContinuation = State.Column; in addTokenOnNewLine()
780 if (!State.Stack.back().ObjCSelectorNameFound) { in addTokenOnNewLine()
782 State.Stack.back().AlignColons = false; in addTokenOnNewLine()
784 State.Stack.back().ColonPos = in addTokenOnNewLine()
785 (shouldIndentWrappedSelectorName(Style, State.Line->Type) in addTokenOnNewLine()
786 ? std::max(State.Stack.back().Indent, in addTokenOnNewLine()
787 State.FirstIndent + Style.ContinuationIndentWidth) in addTokenOnNewLine()
788 : State.Stack.back().Indent) + in addTokenOnNewLine()
792 } else if (State.Stack.back().AlignColons && in addTokenOnNewLine()
793 State.Stack.back().ColonPos <= NextNonComment->ColumnWidth) { in addTokenOnNewLine()
794 State.Stack.back().ColonPos = State.Column + NextNonComment->ColumnWidth; in addTokenOnNewLine()
807 if (State.Stack.size() > 1) in addTokenOnNewLine()
808 State.Stack[State.Stack.size() - 2].LastSpace = in addTokenOnNewLine()
809 std::max(State.Stack.back().LastSpace, State.Stack.back().Indent) + in addTokenOnNewLine()
815 !State.Stack.back().AvoidBinPacking) || in addTokenOnNewLine()
817 State.Stack.back().BreakBeforeParameter = false; in addTokenOnNewLine()
821 State.Stack.back().BreakBeforeParameter = false; in addTokenOnNewLine()
824 State.Stack.back().BreakBeforeParameter = true; in addTokenOnNewLine()
826 State.Stack.back().BreakBeforeParameter = false; in addTokenOnNewLine()
842 State.Line->InPPDirective && State.Line->Type != LT_ImportStatement; in addTokenOnNewLine()
843 Whitespaces.replaceWhitespace(Current, Newlines, State.Column, State.Column, in addTokenOnNewLine()
848 State.Stack.back().LastSpace = State.Column; in addTokenOnNewLine()
853 State.Stack.back().LastSpace += 3; // 3 -> width of "<< ". in addTokenOnNewLine()
855 State.StartOfLineLevel = Current.NestingLevel; in addTokenOnNewLine()
856 State.LowestLevelOnLine = Current.NestingLevel; in addTokenOnNewLine()
861 !Style.isCpp() && Current.is(tok::r_brace) && State.Stack.size() > 1 && in addTokenOnNewLine()
862 State.Stack[State.Stack.size() - 2].NestedBlockInlined; in addTokenOnNewLine()
864 for (unsigned i = 0, e = State.Stack.size() - 1; i != e; ++i) in addTokenOnNewLine()
865 State.Stack[i].BreakBeforeParameter = true; in addTokenOnNewLine()
875 State.Stack.back().BreakBeforeParameter = true; in addTokenOnNewLine()
882 State.Stack.back().BreakBeforeClosingBrace = true; in addTokenOnNewLine()
884 if (State.Stack.back().AvoidBinPacking) { in addTokenOnNewLine()
890 State.Line->MustBeDeclaration) || in addTokenOnNewLine()
892 State.Stack.back().BreakBeforeParameter = true; in addTokenOnNewLine()
898 unsigned ContinuationIndenter::getNewLineColumn(const LineState &State) { in getNewLineColumn() argument
899 if (!State.NextToken || !State.NextToken->Previous) in getNewLineColumn()
901 FormatToken &Current = *State.NextToken; in getNewLineColumn()
905 std::max(State.Stack.back().LastSpace, State.Stack.back().Indent) + in getNewLineColumn()
915 return std::max(State.Stack.back().LastSpace, in getNewLineColumn()
916 State.Stack.back().Indent + Style.ContinuationIndentWidth); in getNewLineColumn()
919 return Current.NestingLevel == 0 ? State.FirstIndent in getNewLineColumn()
920 : State.Stack.back().Indent; in getNewLineColumn()
925 State.Stack.size() > 1) { in getNewLineColumn()
927 return State.Stack[State.Stack.size() - 2].NestedBlockIndent; in getNewLineColumn()
930 return State.Stack[State.Stack.size() - 2].LastSpace; in getNewLineColumn()
931 return State.FirstIndent; in getNewLineColumn()
943 if (Current.is(tok::r_paren) && State.Stack.size() > 1 && in getNewLineColumn()
945 return State.Stack[State.Stack.size() - 2].LastSpace; in getNewLineColumn()
947 return State.Stack[State.Stack.size() - 2].LastSpace; in getNewLineColumn()
953 return State.Stack.back().Indent; in getNewLineColumn()
955 State.StartOfStringLiteral != 0) in getNewLineColumn()
956 return State.StartOfStringLiteral - 1; in getNewLineColumn()
957 if (NextNonComment->isStringLiteral() && State.StartOfStringLiteral != 0) in getNewLineColumn()
958 return State.StartOfStringLiteral; in getNewLineColumn()
960 State.Stack.back().FirstLessLess != 0) in getNewLineColumn()
961 return State.Stack.back().FirstLessLess; in getNewLineColumn()
963 if (State.Stack.back().CallContinuation == 0) in getNewLineColumn()
965 return State.Stack.back().CallContinuation; in getNewLineColumn()
967 if (State.Stack.back().QuestionColumn != 0 && in getNewLineColumn()
971 return State.Stack.back().QuestionColumn; in getNewLineColumn()
972 if (Previous.is(tok::comma) && State.Stack.back().VariablePos != 0) in getNewLineColumn()
973 return State.Stack.back().VariablePos; in getNewLineColumn()
981 return std::max(State.Stack.back().LastSpace, State.Stack.back().Indent); in getNewLineColumn()
983 if (!State.Stack.back().ObjCSelectorNameFound) { in getNewLineColumn()
984 unsigned MinIndent = State.Stack.back().Indent; in getNewLineColumn()
985 if (shouldIndentWrappedSelectorName(Style, State.Line->Type)) in getNewLineColumn()
987 State.FirstIndent + Style.ContinuationIndentWidth); in getNewLineColumn()
1002 if (!State.Stack.back().AlignColons) in getNewLineColumn()
1003 return State.Stack.back().Indent; in getNewLineColumn()
1004 if (State.Stack.back().ColonPos > NextNonComment->ColumnWidth) in getNewLineColumn()
1005 return State.Stack.back().ColonPos - NextNonComment->ColumnWidth; in getNewLineColumn()
1006 return State.Stack.back().Indent; in getNewLineColumn()
1009 return State.Stack.back().ColonPos; in getNewLineColumn()
1011 if (State.Stack.back().StartOfArraySubscripts != 0) in getNewLineColumn()
1012 return State.Stack.back().StartOfArraySubscripts; in getNewLineColumn()
1020 return State.Stack.back().Indent; in getNewLineColumn()
1029 return State.Stack.back().Indent; in getNewLineColumn()
1032 return State.Stack.back().Indent; in getNewLineColumn()
1035 return State.Stack.back().Indent; in getNewLineColumn()
1038 return State.FirstIndent + Style.ConstructorInitializerIndentWidth; in getNewLineColumn()
1043 return State.Stack.back().Indent; in getNewLineColumn()
1044 if (State.Stack.back().Indent == State.FirstIndent && PreviousNonComment && in getNewLineColumn()
1048 return State.Stack.back().Indent + Style.ContinuationIndentWidth; in getNewLineColumn()
1049 return State.Stack.back().Indent; in getNewLineColumn()
1052 unsigned ContinuationIndenter::moveStateToNextToken(LineState &State, in moveStateToNextToken() argument
1054 assert(State.Stack.size()); in moveStateToNextToken()
1055 const FormatToken &Current = *State.NextToken; in moveStateToNextToken()
1058 State.Stack.back().NoLineBreakInOperand = false; in moveStateToNextToken()
1060 State.Stack.back().AvoidBinPacking = true; in moveStateToNextToken()
1062 if (State.Stack.back().FirstLessLess == 0) in moveStateToNextToken()
1063 State.Stack.back().FirstLessLess = State.Column; in moveStateToNextToken()
1065 State.Stack.back().LastOperatorWrapped = Newline; in moveStateToNextToken()
1068 State.Stack.back().LastOperatorWrapped = Newline; in moveStateToNextToken()
1071 State.Stack.back().LastOperatorWrapped = Newline; in moveStateToNextToken()
1073 State.Stack.back().StartOfArraySubscripts == 0) in moveStateToNextToken()
1074 State.Stack.back().StartOfArraySubscripts = State.Column; in moveStateToNextToken()
1076 State.Stack.back().QuestionColumn = State.Column; in moveStateToNextToken()
1082 State.Stack.back().QuestionColumn = State.Column; in moveStateToNextToken()
1086 State.LowestLevelOnLine = in moveStateToNextToken()
1087 std::min(State.LowestLevelOnLine, Current.NestingLevel); in moveStateToNextToken()
1089 State.Stack.back().StartOfFunctionCall = in moveStateToNextToken()
1090 !Current.NextOperator ? 0 : State.Column; in moveStateToNextToken()
1092 State.Stack.back().ObjCSelectorNameFound = true; in moveStateToNextToken()
1100 State.Stack.back().Indent = in moveStateToNextToken()
1101 State.Column + in moveStateToNextToken()
1105 State.Stack.back().NestedBlockIndent = State.Stack.back().Indent; in moveStateToNextToken()
1107 State.Stack.back().AvoidBinPacking = true; in moveStateToNextToken()
1108 State.Stack.back().BreakBeforeParameter = false; in moveStateToNextToken()
1112 State.Stack.back().Indent = in moveStateToNextToken()
1113 State.FirstIndent + Style.ConstructorInitializerIndentWidth; in moveStateToNextToken()
1114 State.Stack.back().NestedBlockIndent = State.Stack.back().Indent; in moveStateToNextToken()
1116 State.Stack.back().AvoidBinPacking = true; in moveStateToNextToken()
1119 State.Stack.back().Indent = in moveStateToNextToken()
1120 State.FirstIndent + Style.ConstructorInitializerIndentWidth; in moveStateToNextToken()
1122 State.Stack.back().NestedBlockIndent = in moveStateToNextToken()
1123 State.Column + Current.ColumnWidth + 1; in moveStateToNextToken()
1125 State.Stack.back().LastSpace = State.Column; in moveStateToNextToken()
1138 !Previous->is(TT_DictLiteral) && State.Stack.size() > 1 && in moveStateToNextToken()
1139 !State.Stack.back().HasMultipleNestedBlocks) { in moveStateToNextToken()
1140 if (State.Stack[State.Stack.size() - 2].NestedBlockInlined && Newline) in moveStateToNextToken()
1141 for (unsigned i = 0, e = State.Stack.size() - 1; i != e; ++i) in moveStateToNextToken()
1142 State.Stack[i].NoLineBreak = true; in moveStateToNextToken()
1143 State.Stack[State.Stack.size() - 2].NestedBlockInlined = false; in moveStateToNextToken()
1149 State.Stack.back().NestedBlockInlined = in moveStateToNextToken()
1154 moveStatePastFakeLParens(State, Newline); in moveStateToNextToken()
1155 moveStatePastScopeCloser(State); in moveStateToNextToken()
1156 bool AllowBreak = !State.Stack.back().NoLineBreak && in moveStateToNextToken()
1157 !State.Stack.back().NoLineBreakInOperand; in moveStateToNextToken()
1158 moveStatePastScopeOpener(State, Newline); in moveStateToNextToken()
1159 moveStatePastFakeRParens(State); in moveStateToNextToken()
1161 if (Current.is(TT_ObjCStringLiteral) && State.StartOfStringLiteral == 0) in moveStateToNextToken()
1162 State.StartOfStringLiteral = State.Column + 1; in moveStateToNextToken()
1163 else if (Current.isStringLiteral() && State.StartOfStringLiteral == 0) in moveStateToNextToken()
1164 State.StartOfStringLiteral = State.Column; in moveStateToNextToken()
1167 State.StartOfStringLiteral = 0; in moveStateToNextToken()
1169 State.Column += Current.ColumnWidth; in moveStateToNextToken()
1170 State.NextToken = State.NextToken->Next; in moveStateToNextToken()
1173 handleEndOfLine(Current, State, DryRun, AllowBreak); in moveStateToNextToken()
1176 Current.Role->formatFromToken(State, this, DryRun); in moveStateToNextToken()
1183 Penalty += Previous->Role->formatAfterToken(State, this, DryRun); in moveStateToNextToken()
1188 void ContinuationIndenter::moveStatePastFakeLParens(LineState &State, in moveStatePastFakeLParens() argument
1190 const FormatToken &Current = *State.NextToken; in moveStatePastFakeLParens()
1206 ParenState NewParenState = State.Stack.back(); in moveStatePastFakeLParens()
1211 NewParenState.NoLineBreak || State.Stack.back().NoLineBreakInOperand; in moveStatePastFakeLParens()
1227 std::max(std::max(State.Column, NewParenState.Indent), in moveStatePastFakeLParens()
1228 State.Stack.back().LastSpace); in moveStatePastFakeLParens()
1237 NewParenState.LastSpace = std::max(NewParenState.LastSpace, State.Column); in moveStatePastFakeLParens()
1240 NewParenState.StartOfFunctionCall = State.Column; in moveStatePastFakeLParens()
1252 State.Stack.push_back(NewParenState); in moveStatePastFakeLParens()
1257 void ContinuationIndenter::moveStatePastFakeRParens(LineState &State) { in moveStatePastFakeRParens() argument
1258 for (unsigned i = 0, e = State.NextToken->FakeRParens; i != e; ++i) { in moveStatePastFakeRParens()
1259 unsigned VariablePos = State.Stack.back().VariablePos; in moveStatePastFakeRParens()
1260 if (State.Stack.size() == 1) { in moveStatePastFakeRParens()
1264 State.Stack.pop_back(); in moveStatePastFakeRParens()
1265 State.Stack.back().VariablePos = VariablePos; in moveStatePastFakeRParens()
1269 void ContinuationIndenter::moveStatePastScopeOpener(LineState &State, in moveStatePastScopeOpener() argument
1271 const FormatToken &Current = *State.NextToken; in moveStatePastScopeOpener()
1276 moveStateToNewBlock(State); in moveStatePastScopeOpener()
1281 unsigned LastSpace = State.Stack.back().LastSpace; in moveStatePastScopeOpener()
1284 unsigned NestedBlockIndent = std::max(State.Stack.back().StartOfFunctionCall, in moveStatePastScopeOpener()
1285 State.Stack.back().NestedBlockIndent); in moveStatePastScopeOpener()
1290 std::min(State.Column, State.Stack.back().NestedBlockIndent); in moveStatePastScopeOpener()
1292 NewIndent = State.Stack.back().LastSpace + Style.ContinuationIndentWidth; in moveStatePastScopeOpener()
1307 NestedBlockIndent = std::max(NestedBlockIndent, State.Column + 1); in moveStatePastScopeOpener()
1310 std::max(State.Stack.back().LastSpace, in moveStatePastScopeOpener()
1311 State.Stack.back().StartOfFunctionCall); in moveStatePastScopeOpener()
1318 NewIndent = std::max(NewIndent, State.Stack.back().Indent); in moveStatePastScopeOpener()
1319 LastSpace = std::max(LastSpace, State.Stack.back().Indent); in moveStatePastScopeOpener()
1335 (State.Line->Type != LT_ObjCDecl && Style.BinPackParameters) || in moveStatePastScopeOpener()
1336 (State.Line->Type == LT_ObjCDecl && ObjCBinPackProtocolList); in moveStatePastScopeOpener()
1340 (State.Line->MustBeDeclaration && !BinPackDeclaration) || in moveStatePastScopeOpener()
1341 (!State.Line->MustBeDeclaration && !Style.BinPackArguments) || in moveStatePastScopeOpener()
1351 if (getLengthToMatchingParen(Current, State.Stack) + State.Column > in moveStatePastScopeOpener()
1352 getColumnLimit(State)) in moveStatePastScopeOpener()
1377 (State.Stack.back().NoLineBreak || in moveStatePastScopeOpener()
1378 State.Stack.back().NoLineBreakInOperand || in moveStatePastScopeOpener()
1380 State.Stack.back().ContainsUnwrappedBuilder)); in moveStatePastScopeOpener()
1381 State.Stack.push_back( in moveStatePastScopeOpener()
1383 State.Stack.back().NestedBlockIndent = NestedBlockIndent; in moveStatePastScopeOpener()
1384 State.Stack.back().BreakBeforeParameter = BreakBeforeParameter; in moveStatePastScopeOpener()
1385 State.Stack.back().HasMultipleNestedBlocks = Current.BlockParameterCount > 1; in moveStatePastScopeOpener()
1386 State.Stack.back().IsInsideObjCArrayLiteral = in moveStatePastScopeOpener()
1391 void ContinuationIndenter::moveStatePastScopeCloser(LineState &State) { in moveStatePastScopeCloser() argument
1392 const FormatToken &Current = *State.NextToken; in moveStatePastScopeCloser()
1398 if (State.Stack.size() > 1 && in moveStatePastScopeCloser()
1400 (Current.is(tok::r_brace) && State.NextToken != State.Line->First) || in moveStatePastScopeCloser()
1401 State.NextToken->is(TT_TemplateCloser) || in moveStatePastScopeCloser()
1403 State.Stack.pop_back(); in moveStatePastScopeCloser()
1415 if (State.Stack.back().BreakBeforeParameter && Current.MatchingParen && in moveStatePastScopeCloser()
1421 getLengthToMatchingParen(CurrentScopeOpener, State.Stack) + in moveStatePastScopeCloser()
1423 if (State.Column + Current.ColumnWidth + NecessarySpaceInLine <= in moveStatePastScopeCloser()
1425 State.Stack.back().BreakBeforeParameter = false; in moveStatePastScopeCloser()
1433 State.Stack.back().StartOfArraySubscripts = 0; in moveStatePastScopeCloser()
1437 void ContinuationIndenter::moveStateToNewBlock(LineState &State) { in moveStateToNewBlock() argument
1438 unsigned NestedBlockIndent = State.Stack.back().NestedBlockIndent; in moveStateToNewBlock()
1441 NestedBlockIndent + (State.NextToken->is(TT_ObjCBlockLBrace) in moveStateToNewBlock()
1444 State.Stack.push_back(ParenState(State.NextToken, NewIndent, in moveStateToNewBlock()
1445 State.Stack.back().LastSpace, in moveStateToNewBlock()
1448 State.Stack.back().NestedBlockIndent = NestedBlockIndent; in moveStateToNewBlock()
1449 State.Stack.back().BreakBeforeParameter = true; in moveStateToNewBlock()
1466 const FormatToken &Current, LineState &State, in reformatRawStringLiteral() argument
1468 unsigned StartColumn = State.Column - Current.ColumnWidth; in reformatRawStringLiteral()
1520 ? State.Stack.back().NestedBlockIndent in reformatRawStringLiteral()
1521 : State.Stack.back().Indent; in reformatRawStringLiteral()
1546 return addMultilineToken(Current, State); in reformatRawStringLiteral()
1588 State.Column = RawLastLineEndColumn + NewSuffixSize; in reformatRawStringLiteral()
1599 for (unsigned i = 0, e = State.Stack.size(); i != e; ++i) in reformatRawStringLiteral()
1600 State.Stack[i].BreakBeforeParameter = true; in reformatRawStringLiteral()
1606 LineState &State) { in addMultilineToken() argument
1608 for (unsigned i = 0, e = State.Stack.size(); i != e; ++i) in addMultilineToken()
1609 State.Stack[i].BreakBeforeParameter = true; in addMultilineToken()
1611 unsigned ColumnsUsed = State.Column; in addMultilineToken()
1614 State.Column = Current.LastLineColumnWidth; in addMultilineToken()
1616 if (ColumnsUsed > getColumnLimit(State)) in addMultilineToken()
1617 return Style.PenaltyExcessCharacter * (ColumnsUsed - getColumnLimit(State)); in addMultilineToken()
1622 LineState &State, bool DryRun, in handleEndOfLine() argument
1627 auto RawStringStyle = getRawStringStyle(Current, State); in handleEndOfLine()
1629 Penalty = reformatRawStringLiteral(Current, State, *RawStringStyle, DryRun); in handleEndOfLine()
1633 Penalty = addMultilineToken(Current, State); in handleEndOfLine()
1634 } else if (State.Line->Type != LT_ImportStatement) { in handleEndOfLine()
1636 LineState OriginalState = State; in handleEndOfLine()
1645 Current, State, AllowBreak, /*DryRun=*/true, Strict); in handleEndOfLine()
1657 State = StrictState; in handleEndOfLine()
1667 if (State.Column > getColumnLimit(State)) { in handleEndOfLine()
1668 unsigned ExcessCharacters = State.Column - getColumnLimit(State); in handleEndOfLine()
1696 const LineState &State) { in getRawStringStyle() argument
1708 RawStringStyle->ColumnLimit = getColumnLimit(State); in getRawStringStyle()
1713 const FormatToken &Current, LineState &State, bool AllowBreak) { in createBreakableToken() argument
1714 unsigned StartColumn = State.Column - Current.ColumnWidth; in createBreakableToken()
1729 if (State.Line->Type == LT_PreprocessorDirective) in createBreakableToken()
1737 if (State.Stack.back().IsInsideObjCArrayLiteral) { in createBreakableToken()
1758 unsigned UnbreakableTailLength = (State.NextToken && canBreak(State)) in createBreakableToken()
1763 State.Line->InPPDirective, Encoding, Style); in createBreakableToken()
1775 State.Line->InPPDirective, Encoding, Style); in createBreakableToken()
1792 LineState &State, bool AllowBreak, in breakProtrudingToken() argument
1795 createBreakableToken(Current, State, AllowBreak); in breakProtrudingToken()
1799 unsigned ColumnLimit = getColumnLimit(State); in breakProtrudingToken()
1808 unsigned StartColumn = State.Column - Current.ColumnWidth; in breakProtrudingToken()
2141 State.Column = ContentStartColumn + RemainingTokenColumns - in breakProtrudingToken()
2149 for (unsigned i = 0, e = State.Stack.size(); i != e; ++i) in breakProtrudingToken()
2150 State.Stack[i].BreakBeforeParameter = true; in breakProtrudingToken()
2154 State.NoContinuation = true; in breakProtrudingToken()
2156 State.Stack.back().LastSpace = StartColumn; in breakProtrudingToken()
2159 Token->updateNextToken(State); in breakProtrudingToken()
2164 unsigned ContinuationIndenter::getColumnLimit(const LineState &State) const { in getColumnLimit()
2166 return Style.ColumnLimit - (State.Line->InPPDirective ? 2 : 0); in getColumnLimit()
2169 bool ContinuationIndenter::nextIsMultilineString(const LineState &State) { in nextIsMultilineString() argument
2170 const FormatToken &Current = *State.NextToken; in nextIsMultilineString()
2184 State.Column + Current.ColumnWidth + Current.UnbreakableTailLength > in nextIsMultilineString()