summaryrefslogtreecommitdiffstats
path: root/clang-tools-extra/clangd/FormattedString.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'clang-tools-extra/clangd/FormattedString.cpp')
-rw-r--r--clang-tools-extra/clangd/FormattedString.cpp19
1 files changed, 19 insertions, 0 deletions
diff --git a/clang-tools-extra/clangd/FormattedString.cpp b/clang-tools-extra/clangd/FormattedString.cpp
index 1e61b8b5fb1..881c34e0071 100644
--- a/clang-tools-extra/clangd/FormattedString.cpp
+++ b/clang-tools-extra/clangd/FormattedString.cpp
@@ -164,6 +164,19 @@ std::string indentLines(llvm::StringRef Input) {
}
return IndentedR;
}
+
+class Heading : public Paragraph {
+public:
+ Heading(size_t Level) : Level(Level) {}
+ void renderMarkdown(llvm::raw_ostream &OS) const override {
+ OS << std::string(Level, '#') << ' ';
+ Paragraph::renderMarkdown(OS);
+ }
+
+private:
+ size_t Level;
+};
+
} // namespace
std::string Block::asMarkdown() const {
@@ -278,6 +291,12 @@ BulletList &Document::addBulletList() {
Children.emplace_back(std::make_unique<BulletList>());
return *static_cast<BulletList *>(Children.back().get());
}
+
+Paragraph &Document::addHeading(size_t Level) {
+ assert(Level > 0);
+ Children.emplace_back(std::make_unique<Heading>(Level));
+ return *static_cast<Paragraph *>(Children.back().get());
+}
} // namespace markup
} // namespace clangd
} // namespace clang
OpenPOWER on IntegriCloud