summaryrefslogtreecommitdiff
path: root/content/posts/kate-language-server-protocol-client
diff options
context:
space:
mode:
authorChristoph Cullmann <cullmann@kde.org>2024-05-13 21:45:11 +0200
committerChristoph Cullmann <cullmann@kde.org>2024-05-13 21:45:11 +0200
commitcf38879fe89357f1aebd9aff9e86d3df01f46a4d (patch)
tree296ff5e6a0a5c329e2e67aeb1185d9f1f9803948 /content/posts/kate-language-server-protocol-client
parent7a8df42248c8a31fbd59dc602783a2cf00078119 (diff)
sort posts
Diffstat (limited to 'content/posts/kate-language-server-protocol-client')
-rw-r--r--content/posts/kate-language-server-protocol-client/index.md26
1 files changed, 26 insertions, 0 deletions
diff --git a/content/posts/kate-language-server-protocol-client/index.md b/content/posts/kate-language-server-protocol-client/index.md
new file mode 100644
index 0000000..a346a1e
--- /dev/null
+++ b/content/posts/kate-language-server-protocol-client/index.md
@@ -0,0 +1,26 @@
+---
+title: "Kate Language Server Protocol Client"
+date: 2019-04-28T20:36:00+02:00
+draft: false
+categories: [kde, kate, development]
+tags: [kde, kate]
+url: /posts/kate-language-server-protocol-client/
+author: "Christoph Cullmann"
+---
+
+The [Language Server Protocol (LSP)](https://microsoft.github.io/language-server-protocol/overview) allows the integration of stuff like code completion, jump to definition, symbol search and more into an application without manual re-implementation for each language one wants to support.
+LSP doesn't fully allow an integration like [KDevelop](https://www.kdevelop.org) or Qt Creator do with the [libclang](https://clang.llvm.org/docs/Tooling.html) based tooling aimed for C/C++ but on the other side offers the possibility to interface with [plenty of languages](https://langserver.org/#implementations-server) without a large effort on the client side.
+
+If one takes a look at some current [LSP clients list](https://langserver.org/#implementations-client), a lot of editors and IDEs have joined the LSP family in the last years.
+
+In the past I was always scared away to start implementing this in Kate, as no readily available library was around to do the low-level work for the client.
+Whereas you get some reference stuff for the JSON based protocol for JavaScript and such, for Qt nothing was around.
+
+Fortunately Qt Creator started to implement an LSP client beginning with [the 4.8 release](https://blog.qt.io/blog/2018/12/06/qt-creator-4-8-0-released/).
+
+Based on this code, I started now to get this into the Kate project plugin.
+At the moment not much more has happened then some initial import of the Qt Creator LSP infrastructure code into the [Kate lsp branch](https://cgit.kde.org/kate.git/log/?h=lsp).
+
+If I get this working (help is welcome!), any improvements will be submitted back to the Qt Creator implementation.
+If it really starts to work well in Kate, one might think about some better code sharing in the long term.
+But before such plans, first at least some basic things must work for some initial language server like [clangd](https://clang.llvm.org/extra/clangd/).