diff options
Diffstat (limited to 'clang-tools-extra/clangd/FormattedString.cpp')
| -rw-r--r-- | clang-tools-extra/clangd/FormattedString.cpp | 19 |
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 |

