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 FIXED | ||
Severity: | normal | CC: | christoph, waqar.17a |
Priority: | NOR | ||
Version First Reported In: | 24.08.1 | ||
Target Milestone: | --- | ||
Platform: | Kubuntu | ||
OS: | Linux | ||
Latest Commit: | https://invent.kde.org/utilities/kate/-/commit/00f6233f47c5a55f5d765ecf3d099caf988669c4 | 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 Kate nightly AppImage (9477) showing raw values |
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 Created attachment 181656 [details]
Kate nightly AppImage (9477) showing raw values
This is still broken for me with multiple versions of the YAML language server
The current state with various versions of yaml-language-server (https://github.com/redhat-developer/yaml-language-server/) installed directly from the repository, using the latest nightly AppImage of kate (9477): 0.16.0: Issue as originally reported (language server is usable, but output is weird) 0.19.0: Same 0.23.0: Language server crash due to ResponseError in workspace/configuration 1.1.1: Same issue as 0.23.0 1.10.0: Receive error in workspace/configuration and then no hover text. 1.18.0 (latest stable version): Same as 1.10.0 main branch (commit 6424ff6f6e673b912ffa1a891ec75afba5f4f233): Same as 1.10.0 Error message from 1.10.0: [13:11:59  LSP Client Log] Started server yaml@/home/lengau: /home/lengau/.local/bin/yaml-language-server --stdio [13:11:59  LSP Server Log] yaml@/home/lengau [Error] Error: workspace/configuration at handleResponse (/home/lengau/Projects/yaml-language-server/node_modules/vscode-jsonrpc/lib/common/connection.js:477:48) at processMessageQueue (/home/lengau/Projects/yaml-language-server/node_modules/vscode-jsonrpc/lib/common/connection.js:292:17) at Immediate.<anonymous> (/home/lengau/Projects/yaml-language-server/node_modules/vscode-jsonrpc/lib/common/connection.js:276:13) at process.processImmediate (node:internal/timers:483:21) [13:11:59  LSP Server Log] yaml@/home/lengau [Error] Error: workspace/configuration at handleResponse (/home/lengau/Projects/yaml-language-server/node_modules/vscode-jsonrpc/lib/common/connection.js:477:48) at processMessageQueue (/home/lengau/Projects/yaml-language-server/node_modules/vscode-jsonrpc/lib/common/connection.js:292:17) at Immediate.<anonymous> (/home/lengau/Projects/yaml-language-server/node_modules/vscode-jsonrpc/lib/common/connection.js:276:13) at process.processImmediate (node:internal/timers:483:21) A possibly relevant merge request was started @ https://invent.kde.org/utilities/kate/-/merge_requests/1822 Could you try my request for the default to markdown for hover? Git commit cac48eb62878bcfde22077ffaecc1b9fc13b7743 by Christoph Cullmann. Committed on 26/07/2025 at 14:53. Pushed by cullmann into branch 'master'. default is markdown for hover strings see: https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#markedString M +7 -5 addons/lspclient/lspclientserver.cpp https://invent.kde.org/utilities/kate/-/commit/cac48eb62878bcfde22077ffaecc1b9fc13b7743 Git commit 00f6233f47c5a55f5d765ecf3d099caf988669c4 by Christoph Cullmann. Committed on 26/07/2025 at 15:13. Pushed by cullmann into branch 'release/25.08'. default is markdown for hover strings see: https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#markedString (cherry picked from commit cac48eb62878bcfde22077ffaecc1b9fc13b7743) Co-authored-by: Christoph Cullmann <christoph@cullmann.dev> M +7 -5 addons/lspclient/lspclientserver.cpp https://invent.kde.org/utilities/kate/-/commit/00f6233f47c5a55f5d765ecf3d099caf988669c4 |