From abfa27e4f04dd84774bcfe15783942e21be391a5 Mon Sep 17 00:00:00 2001 From: Kadir Cetinkaya Date: Thu, 9 Jan 2020 17:56:30 +0100 Subject: [PATCH] [clangd] Fix markdown rendering in VSCode Summary: Eventough it is OK to have a new line without any preceding spaces in some markdown specifications, VSCode requires two spaces before a new line to break a line inside a paragraph. Reviewers: sammccall, ilya-biryukov Subscribers: MaskRay, jkorous, arphaman, usaxena95, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D72462 --- clang-tools-extra/clangd/FormattedString.cpp | 3 ++- .../clangd/unittests/FormattedStringTests.cpp | 20 +++++++++---------- 2 files changed, 12 insertions(+), 11 deletions(-) diff --git a/clang-tools-extra/clangd/FormattedString.cpp b/clang-tools-extra/clangd/FormattedString.cpp index cfa1210a2ee6..1e61b8b5fb1e 100644 --- a/clang-tools-extra/clangd/FormattedString.cpp +++ b/clang-tools-extra/clangd/FormattedString.cpp @@ -196,7 +196,8 @@ void Paragraph::renderMarkdown(llvm::raw_ostream &OS) const { } // Paragraphs are translated into markdown lines, not markdown paragraphs. // Therefore it only has a single linebreak afterwards. - OS << '\n'; + // VSCode requires two spaces at the end of line to start a new one. + OS << " \n"; } void Paragraph::renderPlainText(llvm::raw_ostream &OS) const { diff --git a/clang-tools-extra/clangd/unittests/FormattedStringTests.cpp b/clang-tools-extra/clangd/unittests/FormattedStringTests.cpp index 3093ba2ce50d..825bf5bbd866 100644 --- a/clang-tools-extra/clangd/unittests/FormattedStringTests.cpp +++ b/clang-tools-extra/clangd/unittests/FormattedStringTests.cpp @@ -121,7 +121,7 @@ TEST(Document, Separators) { D.addCodeBlock("test"); D.addParagraph().appendText("bar"); - const char ExpectedMarkdown[] = R"md(foo + const char ExpectedMarkdown[] = R"md(foo ```cpp test ``` @@ -141,7 +141,7 @@ TEST(Document, Spacer) { D.addParagraph().appendText("foo"); D.addSpacer(); D.addParagraph().appendText("bar"); - EXPECT_EQ(D.asMarkdown(), "foo\n\nbar"); + EXPECT_EQ(D.asMarkdown(), "foo \n\nbar"); EXPECT_EQ(D.asPlainText(), "foo\n\nbar"); } @@ -217,10 +217,10 @@ TEST(BulletList, Render) { DeepDoc.addParagraph().appendText("baz"); EXPECT_EQ(L.asMarkdown(), R"md(- foo - bar -- foo - baz - - foo - - baz +- foo + baz + - foo + - baz baz)md"); EXPECT_EQ(L.asPlainText(), R"pt(- foo - bar @@ -234,10 +234,10 @@ TEST(BulletList, Render) { Inner.addParagraph().appendText("after"); EXPECT_EQ(L.asMarkdown(), R"md(- foo - bar -- foo - baz - - foo - - baz +- foo + baz + - foo + - baz baz after)md");