https://bugs.kde.org/show_bug.cgi?id=506664

            Bug ID: 506664
           Summary: kate sends requests to the Language Server that it did
                    not announce support for the feature
    Classification: Applications
           Product: kate
      Version First 25.04.2
       Reported In:
          Platform: Other
                OS: Other
            Status: REPORTED
          Severity: normal
          Priority: NOR
         Component: general
          Assignee: kwrite-bugs-n...@kde.org
          Reporter: ni...@thykier.net
  Target Milestone: ---

SUMMARY
The `kate` editor sends LSP requests to the language server without any regards
for the server capabilities.


STEPS TO REPRODUCE
1. Open a file format with a language server that does not support
`textDocument/definition` or/and `workspace/symbol` or/and
`textDocument/rangeFormatting`
2a. To trigger `textDocument/definition`,  I am not entirely sure what does it.
It sometimes just appear while I am working. I am suspecting copy-paste (`CTRL
+ C`) or scrolling. However, I cannot figure out a reliable trigger - just that
it happens "often" while I work on the document.
2b. To trigger `workspace/symbol`, use the `Search and Go to symbol` feature
(Right click in the doc, Expand `LSP Client`, then pick the  `Search and Go to
symbol` ).
2c. To trigger `textDocument/rangeFormatting`, I had the `kate` setup to use
the language server for formatting, with `Format on Save` on in the LSP
settings, then marked a range and hit `CTRL+S`. Probably there is a simpler way
to trigger this.

Note: The reproducers lists 

OBSERVED RESULT
The `kate` editor will send the request to the server. The Language server will
complain about receiving a request that it does not support in the `Output` tab
(or crash or silently ignore it depending on the language server and how they
decided to implement it)


EXPECTED RESULT
The `kate` editor should not send these requests, since the server has not
announced support for them in the server capabilities. Additionally, it would
make sense for `kate` to disable UI elements that depend on this feature
without a fallback. As an example, `Search and Go to symbol` might need to be
disabled in the menu.

For `textDocument/rangeFormatting`, having `kate` fallback to format the entire
document would work for the "on save"-triggered formatting (since the language
server in question supports full document formatting). Though other instances /
ways to trigger that request might need a different strategy.

SOFTWARE/OS VERSIONS
Debian/testing version of kate (25.04.2). Though, I believe this is would not
be an OS specific issue and the LSP plugin code is in `kate` (plasma and KDE
would be irrelevant as well), so I am skipping the details.

ADDITIONAL INFORMATION
A simple example version of the `pygls` language server like
https://github.com/openlawlibrary/pygls/tree/main/examples/hello-world should
be sufficient to trigger this problem, if you need a language server without
these features.

In case it matters, the language server I used responded with the following as
its server capabilities:
pygls.protocol.json_rpc: info: Sending data: {"id": 1, "jsonrpc": "2.0",
"result": {"capabilities": {"positionEncoding": "utf-16", "textDocumentSync":
{"openClose": true, "change": 2, "save": false}, "completionProvider": {},
"hoverProvider": true, "codeActionProvider": true,
"documentFormattingProvider": true, "foldingRangeProvider": true,
"executeCommandProvider": {"commands": []}, "semanticTokensProvider":
{"legend": {"tokenTypes": ["keyword", "enumMember", "comment", "string",
"macro", "operator", "typeParameter", "variable"], "tokenModifiers": []},
"documentSelector": null, "full": true}, "inlayHintProvider":
{"resolveProvider": false}, "workspace": {"workspaceFolders": {"supported":
true, "changeNotifications": true}, "fileOperations": {}}}, "serverInfo":
{"name": "debputy", "version": "vN/A"}}}

(The version being `vN/A` is because I am using a git checkout and it does not
announce the correct version there)

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to