diff --git a/clang/lib/Format/BreakableToken.cpp b/clang/lib/Format/BreakableToken.cpp --- a/clang/lib/Format/BreakableToken.cpp +++ b/clang/lib/Format/BreakableToken.cpp @@ -789,9 +789,14 @@ Prefix[i] = "///< "; else if (Prefix[i] == "//!<") Prefix[i] = "//!< "; - else if (Prefix[i] == "#" && - Style.Language == FormatStyle::LK_TextProto) + else if (Prefix[i] == "#") Prefix[i] = "# "; + else if (Prefix[i] == "##") + Prefix[i] = "## "; + else if (Prefix[i] == "###") + Prefix[i] = "### "; + else if (Prefix[i] == "####") + Prefix[i] = "#### "; } Tokens[i] = LineTok; diff --git a/clang/unittests/Format/FormatTestTextProto.cpp b/clang/unittests/Format/FormatTestTextProto.cpp --- a/clang/unittests/Format/FormatTestTextProto.cpp +++ b/clang/unittests/Format/FormatTestTextProto.cpp @@ -380,25 +380,29 @@ "cccccccccccccccccccccccc: 3849"); } -TEST_F(FormatTestTextProto, UnderstandsHashHashComments) { +TEST_F(FormatTestTextProto, UnderstandsHashComments) { FormatStyle Style = getGoogleStyle(FormatStyle::LK_TextProto); Style.ColumnLimit = 60; // To make writing tests easier. EXPECT_EQ("aaa: 100\n" - "##this is a double-hash comment.\n" + "## this is a double-hash comment.\n" "bb: 100\n" "## another double-hash comment.\n" "### a triple-hash comment\n" "cc: 200\n" + "### another triple-hash comment\n" "#### a quadriple-hash comment\n" - "dd: 100\n", + "dd: 100\n" + "#### another quadriple-hash comment\n", format("aaa: 100\n" "##this is a double-hash comment.\n" "bb: 100\n" "## another double-hash comment.\n" - "### a triple-hash comment\n" + "###a triple-hash comment\n" "cc: 200\n" - "#### a quadriple-hash comment\n" - "dd: 100\n", + "### another triple-hash comment\n" + "####a quadriple-hash comment\n" + "dd: 100\n" + "#### another quadriple-hash comment\n", Style)); }