This revision was automatically updated to reflect the committed changes. Closed by commit rG5e1a026c2d81: [clang-format] Do not indent C# array initialisers as continuations (authored by Jonathan Coe <jb...@google.com>).
Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D75760/new/ https://reviews.llvm.org/D75760 Files: clang/lib/Format/UnwrappedLineParser.cpp clang/unittests/Format/FormatTestCSharp.cpp Index: clang/unittests/Format/FormatTestCSharp.cpp =================================================================== --- clang/unittests/Format/FormatTestCSharp.cpp +++ clang/unittests/Format/FormatTestCSharp.cpp @@ -562,6 +562,17 @@ Style); } +TEST_F(FormatTestCSharp, CSharpArrayInitializers) { + FormatStyle Style = getGoogleStyle(FormatStyle::LK_CSharp); + + verifyFormat(R"(// +private MySet<Node>[] setPoints = { + new Point<Node>(), + new Point<Node>(), +};)", + Style); +} + TEST_F(FormatTestCSharp, CSharpNamedArguments) { FormatStyle Style = getGoogleStyle(FormatStyle::LK_CSharp); Index: clang/lib/Format/UnwrappedLineParser.cpp =================================================================== --- clang/lib/Format/UnwrappedLineParser.cpp +++ clang/lib/Format/UnwrappedLineParser.cpp @@ -1460,6 +1460,11 @@ nextToken(); if (FormatTok->Tok.is(tok::l_brace)) { + // Block kind should probably be set to BK_BracedInit for any language. + // C# needs this change to ensure that array initialisers and object + // initialisers are indented the same way. + if (Style.isCSharp()) + FormatTok->BlockKind = BK_BracedInit; nextToken(); parseBracedList(); } else if (Style.Language == FormatStyle::LK_Proto && @@ -1652,7 +1657,7 @@ bool UnwrappedLineParser::parseBracedList(bool ContinueOnSemicolons, tok::TokenKind ClosingBraceKind) { bool HasError = false; - + // FIXME: Once we have an expression parser in the UnwrappedLineParser, // replace this by using parseAssigmentExpression() inside. do {
Index: clang/unittests/Format/FormatTestCSharp.cpp =================================================================== --- clang/unittests/Format/FormatTestCSharp.cpp +++ clang/unittests/Format/FormatTestCSharp.cpp @@ -562,6 +562,17 @@ Style); } +TEST_F(FormatTestCSharp, CSharpArrayInitializers) { + FormatStyle Style = getGoogleStyle(FormatStyle::LK_CSharp); + + verifyFormat(R"(// +private MySet<Node>[] setPoints = { + new Point<Node>(), + new Point<Node>(), +};)", + Style); +} + TEST_F(FormatTestCSharp, CSharpNamedArguments) { FormatStyle Style = getGoogleStyle(FormatStyle::LK_CSharp); Index: clang/lib/Format/UnwrappedLineParser.cpp =================================================================== --- clang/lib/Format/UnwrappedLineParser.cpp +++ clang/lib/Format/UnwrappedLineParser.cpp @@ -1460,6 +1460,11 @@ nextToken(); if (FormatTok->Tok.is(tok::l_brace)) { + // Block kind should probably be set to BK_BracedInit for any language. + // C# needs this change to ensure that array initialisers and object + // initialisers are indented the same way. + if (Style.isCSharp()) + FormatTok->BlockKind = BK_BracedInit; nextToken(); parseBracedList(); } else if (Style.Language == FormatStyle::LK_Proto && @@ -1652,7 +1657,7 @@ bool UnwrappedLineParser::parseBracedList(bool ContinueOnSemicolons, tok::TokenKind ClosingBraceKind) { bool HasError = false; - + // FIXME: Once we have an expression parser in the UnwrappedLineParser, // replace this by using parseAssigmentExpression() inside. do {
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits