| Index: tools/gn/command_format.cc
|
| diff --git a/tools/gn/command_format.cc b/tools/gn/command_format.cc
|
| index c2870f1433a7cbec81d802bc8b557d378d0bbdf9..9e0914552de04d2d7bbf5b831e5e1de582d006e5 100644
|
| --- a/tools/gn/command_format.cc
|
| +++ b/tools/gn/command_format.cc
|
| @@ -686,10 +686,18 @@ int Printer::FunctionCall(const FunctionCallNode* func_call,
|
| terminator += " {";
|
| terminator += suffix;
|
|
|
| + // Special case to make function calls of one arg taking a long list of
|
| + // boolean operators not indent.
|
| + bool continuation_requires_indent =
|
| + list.size() != 1 || !list[0]->AsBinaryOp() ||
|
| + (list[0]->AsBinaryOp()->op().value() != "||" &&
|
| + list[0]->AsBinaryOp()->op().value() != "&&");
|
| +
|
| // 1: Same line.
|
| Printer sub1;
|
| InitializeSub(&sub1);
|
| - sub1.stack_.push_back(IndentState(CurrentColumn(), true, false));
|
| + sub1.stack_.push_back(
|
| + IndentState(CurrentColumn(), continuation_requires_indent, false));
|
| int penalty_one_line = 0;
|
| for (size_t i = 0; i < list.size(); ++i) {
|
| penalty_one_line += sub1.Expr(list[i], kPrecedenceLowest,
|
| @@ -706,7 +714,8 @@ int Printer::FunctionCall(const FunctionCallNode* func_call,
|
| // 2: Starting on same line, broken at commas.
|
| Printer sub2;
|
| InitializeSub(&sub2);
|
| - sub2.stack_.push_back(IndentState(CurrentColumn(), true, false));
|
| + sub2.stack_.push_back(
|
| + IndentState(CurrentColumn(), continuation_requires_indent, false));
|
| int penalty_multiline_start_same_line = 0;
|
| for (size_t i = 0; i < list.size(); ++i) {
|
| penalty_multiline_start_same_line += sub2.Expr(
|
| @@ -721,7 +730,8 @@ int Printer::FunctionCall(const FunctionCallNode* func_call,
|
| // 3: Starting on next line, broken at commas.
|
| Printer sub3;
|
| InitializeSub(&sub3);
|
| - sub3.stack_.push_back(IndentState(margin() + kIndentSize * 2, true, false));
|
| + sub3.stack_.push_back(IndentState(margin() + kIndentSize * 2,
|
| + continuation_requires_indent, false));
|
| sub3.Newline();
|
| int penalty_multiline_start_next_line = 0;
|
| for (size_t i = 0; i < list.size(); ++i) {
|
| @@ -757,10 +767,13 @@ int Printer::FunctionCall(const FunctionCallNode* func_call,
|
| // No elements, and not forcing newlines, print nothing.
|
| } else {
|
| if (penalty_multiline_start_next_line < penalty_multiline_start_same_line) {
|
| - stack_.push_back(IndentState(margin() + kIndentSize * 2, true, false));
|
| + stack_.push_back(IndentState(margin() + kIndentSize * 2,
|
| + continuation_requires_indent,
|
| + false));
|
| Newline();
|
| } else {
|
| - stack_.push_back(IndentState(CurrentColumn(), true, false));
|
| + stack_.push_back(
|
| + IndentState(CurrentColumn(), continuation_requires_indent, false));
|
| }
|
|
|
| for (size_t i = 0; i < list.size(); ++i) {
|
|
|