Summary: | LSP hover text has backslashes before certain characters. | ||
---|---|---|---|
Product: | [Applications] kate | Reporter: | Alex Lowe <lengau> |
Component: | general | Assignee: | KWrite Developers <kwrite-bugs-null> |
Status: | RESOLVED WORKSFORME | ||
Severity: | normal | CC: | waqar.17a |
Priority: | NOR | ||
Version: | 24.08.1 | ||
Target Milestone: | --- | ||
Platform: | Kubuntu | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | ||
Sentry Crash Report: | |||
Attachments: |
Kate, showing backspaces before a bunch of special characters
Emacs not showing these backslashes Pycharm not showing these backslashes vscode not showing slashes Visual Studio Code not showing backslashes yaml server hover on master |
Description
Alex Lowe
2024-10-04 22:29:52 UTC
I wonder if its the server's fault or our fault. If the server escapes markdown characters by putting backslashes, thats how they will appear... Created attachment 174623 [details]
Emacs not showing these backslashes
Created attachment 174624 [details]
Pycharm not showing these backslashes
Created attachment 174625 [details]
vscode not showing slashes
Created attachment 174629 [details]
Visual Studio Code not showing backslashes
(In reply to Waqar Ahmed from comment #1) > I wonder if its the server's fault or our fault. If the server escapes > markdown characters by putting backslashes, thats how they will appear... I was initially working to create a report on the YAML language server, but I noticed that kate was also behaving this way with the vscode JSON language server. VSCode doesn't show this same behaviour though, either in JSON or in YAML. I asked some coworkers to compare with their text editors and got the following: - Emacs appears to behave mostly-correctly, but ignores the backslashes that are undoing the "markdownification" of bullet points and then treats those hyphens as bullet points - PyCharm eats the newlines, but doesn't include the slashes (Incorrect because a double-newline in Markdown should be treated as a newline in the resulting formatted document) - VSCode behaves what appears to be "most correctly" from a user perspective, as the contents field is correctly turned into a string (converting "\n" in the raw JSON to a newline character and unescaping "\\" to a single "\"), and then that string is treated as Markdown (including unescaping characters - see: https://www.markdownguide.org/basic-syntax/#characters-you-can-escape) Looking further, the current protocol specification shows the "contents" field to be one of three types (https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#textDocument_hover). In this case, it's a plain string, which is one of the two forms of the MarkedString type (https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#markedString). While this is a deprecated type, the relevance here is that the MarkedString is a union type either of a plain string which needs to be rendered in (presumably GitHub dialect) Markdown or an object that provides both the language and the value. While researching the last comment I found that someone had reported this in the YAML language server: https://github.com/redhat-developer/yaml-language-server/issues/837 I made a comment there because the research displayed in my last comment makes me think that it is behaving correctly, but I wanted to cross-link the bugs in both directions. Created attachment 174670 [details]
yaml server hover on master
This is how it looks like on latest master. I think this got fixed with the recent changes to hover code. Can you try the latest master? We have app-images available I think
Please feel free to reopen if it isn't resolved |