[clangd] Fix markdown rendering in VSCode
authorKadir Cetinkaya <kadircet@google.com>
Thu, 9 Jan 2020 16:56:30 +0000 (17:56 +0100)
committerKadir Cetinkaya <kadircet@google.com>
Fri, 10 Jan 2020 08:51:20 +0000 (09:51 +0100)
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
clang-tools-extra/clangd/unittests/FormattedStringTests.cpp

index cfa1210..1e61b8b 100644 (file)
@@ -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 {
index 3093ba2..825bf5b 100644 (file)
@@ -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");