Kate LSP Client Progress

The Kate lsp branch contains now the infrastructure as used by Qt Creator. In addition, clangd is now somehow started in a working state for the first project opened inside Kate.

For example, if you use the CMake Kate project generator and you compile Kate from the “lsp” branch, clangd should pick up the compile_commands.json for a CMake generated Kate project.

;=) Unfortunately not much more than starting and informing clangd about the open workspaces (for the first opened project) works ATM.

If you press ALT-1 over some identifier, you will get some debug output on the console about found links, like below:

qtc.languageclient.parse: content: “{\“id\”:\“{812e04c6-2bca-42e3-a632-d616fdc2f7d4}\“,\“jsonrpc\”:\“2.0\“,\“result\”:[{\“range\”:{\“end\”:{\“character\”:20,\“line\”:67},\“start\”:{\“character\”:6,\“line\”:67}},\“uri\”:\“file:///local/cullmann/kde/src/kate/kate/katemainwindow.h\“}]}”

The current ALT-1 handling is a big hack, as then one just adds the current document and triggers the GotoDefinitionRequest. A proper implementation tracks the opened/closed documented of the editor.

But at least in principle Kate is now able to start some language server processes and talk a bit with them, all thanks to the nice code borrowed from Qt Creator.

:=) As my spare time is limited, any help in bringing the branch up-to-speed is highly welcome, just drop us a mail to kwrite-devel@kde.org or mail me in private (cullmann@kde.org). A working LSP integration will help to make Kate more attractive for programmers of many languages.

If you have feedback, drop me a mail at christoph@cullmann.io. Corrections or additions can be handed in as a pull request or patch for this repository, too. This web site honors your privacy, no social like or share buttons, feel free to share this content on your own.