================
@@ -118,8 +138,8 @@ class Document {
BulletList &addBulletList();
/// Doesn't contain any trailing newlines.
- /// We try to make the markdown human-readable, e.g. avoid extra escaping.
- /// At least one client (coc.nvim) displays the markdown verbatim!
----------------
tcottin wrote:
This patch changes 2 things for markdown:
- The documentation string is taken as is without escaping anything (except for
html tags and entity references)
- Paragraphs are separated with an empty line
My idea was to let the client handle the markdown rendering completely.
Therefore no escaping is needed and even false because if markdown annotations
are escaped, the client will not render it as expected.
The same for the empty line between paragraphs: this is how paragraphs are
separated in markdown.
I think it is save to assume that the client can handle unescaped markdown.
According to the [LSP
specification](https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#markupContent),
if a clients capability is specifying `'markdown'` as `MarkupKind` for it
`MarkupContent`, the "content should follow the GitHub Flavored Markdown
Specification".
Now regarding `coc.nvim`: I dont use it and do not know the current behaviour.
Reading through e.g. clangd/coc-clangd#48 though, I understood that `coc.nvim`
requests `MarkupContent` with `'markdown'` but does not really render markdown.
Hence I would assume that in this case leaving out the escaping would result in
just not showing the escaping character.
Regarding the empty newlines between paragraphs I would also expect that the
empty line is just shown, creating better visual separations between paragraphs
But: @emaxx-google do you use `coc.nvim` and could you give this patch a try?
Maybe my assumptions are false and it causes issues I did not see yet.
Regarding the capabilities: I think currently there is only `'plaintext'` and
`'markdown'`.
Additionally there is the option to allow HTML tags when markdown is selected.
Other than that I dont know how we could handle this.
But I think we don't need to actually, because as stated above, if the client
specifies to support markdown, it should handle it correctly.
If it can't handle it, `'plaintext'` is always an option.
https://github.com/llvm/llvm-project/pull/140498
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits