From c3cc3612948be235577ccfd55990062829c8cfbb Mon Sep 17 00:00:00 2001 From: Robin van Dijk Date: Mon, 5 Oct 2020 19:27:29 +0200 Subject: honor content_format clientcap This removes all markdown when the client does not support the markdown MarkupKind Otherwise the output on the editor will have some markdown boilerplate, making it less readable --- crates/ide/src/markdown_remove.rs | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 crates/ide/src/markdown_remove.rs (limited to 'crates/ide/src/markdown_remove.rs') diff --git a/crates/ide/src/markdown_remove.rs b/crates/ide/src/markdown_remove.rs new file mode 100644 index 000000000..62b2aa1e7 --- /dev/null +++ b/crates/ide/src/markdown_remove.rs @@ -0,0 +1,16 @@ +use pulldown_cmark::{Event, Parser}; + +pub fn remove_markdown(markdown: &str) -> String { + let mut out = String::new(); + let parser = Parser::new(markdown); + + for event in parser { + match event { + Event::Text(text) | Event::Code(text) => out.push_str(&text), + Event::SoftBreak | Event::HardBreak | Event::Rule => out.push('\n'), + _ => {} + } + } + + out +} -- cgit v1.2.3