Index: clang/lib/Format/ContinuationIndenter.cpp =================================================================== --- clang/lib/Format/ContinuationIndenter.cpp +++ clang/lib/Format/ContinuationIndenter.cpp @@ -1047,6 +1047,8 @@ if (NextNonComment->is(TT_ArraySubscriptLSquare)) { if (State.Stack.back().StartOfArraySubscripts != 0) return State.Stack.back().StartOfArraySubscripts; + else if (Style.isCSharp()) // C# allows `["key"] = value` inside object initializers. + return State.Stack.back().Indent; return ContinuationIndent; } Index: clang/unittests/Format/FormatTestCSharp.cpp =================================================================== --- clang/unittests/Format/FormatTestCSharp.cpp +++ clang/unittests/Format/FormatTestCSharp.cpp @@ -549,6 +549,15 @@ private Transformer _transformer = new X.Y { Filler = (Shape shape) => { return new Transform.Fill(shape, RED); }, Scaler = (Shape shape) => { return new Transform.Resize(shape, 0.1); }, +};)", + Style); + + // Dictionary initialisation. + verifyFormat(R"(// +var myDict = new Dictionary { + ["name"] = _donald, + ["age"] = Convert.ToString(DateTime.Today.Year - 1934), + ["type"] = _duck, };)", Style); }