summaryrefslogtreecommitdiff
path: root/content/posts/kate-lsp-client-restart/index.md
diff options
context:
space:
mode:
authorChristoph Cullmann <cullmann@kde.org>2019-07-07 15:09:38 +0200
committerChristoph Cullmann <cullmann@kde.org>2019-07-07 15:09:38 +0200
commit67d845b40e26ad7062bc21027a312337064d3b80 (patch)
treee709ffad9ea06542259091013ca034d4268874a2 /content/posts/kate-lsp-client-restart/index.md
parentd6c09a054819bffd11e726270d5a79ab78684592 (diff)
post about new LSP plugin
Diffstat (limited to 'content/posts/kate-lsp-client-restart/index.md')
-rw-r--r--content/posts/kate-lsp-client-restart/index.md53
1 files changed, 53 insertions, 0 deletions
diff --git a/content/posts/kate-lsp-client-restart/index.md b/content/posts/kate-lsp-client-restart/index.md
new file mode 100644
index 0000000..54ba9bf
--- /dev/null
+++ b/content/posts/kate-lsp-client-restart/index.md
@@ -0,0 +1,53 @@
+---
+title: "Kate LSP Client Restart"
+date: 2019-07-07T15:10:00+02:00
+draft: false
+categories: [kde, kate, development]
+tags: [kde, kate]
+---
+
+Since my last post about the [LSP client progress](/posts/kate-lsp-client-progress/) in May I didn't work on that project at all I think.
+
+But the good news is, somebody else did scratch that itch on his own ;=)
+
+We have now a prototype plugin in kate.git master, see [lspclient](https://cgit.kde.org/kate.git/tree/addons/lspclient) in the addons directory.
+
+It is not compiled per default, you can turn it on via:
+
+{{< highlight bash >}}
+cmake -DCMAKE_INSTALL_PREFIX=<your prefix> -DENABLE_LSPCLIENT=ON <kate src dir>
+{{< / highlight >}}
+
+It shares no code with my initial prototype.
+The author started this without knowing of my work.
+This might actually be not that bad, as this plugin is composed of a much smaller code base.
+This allows to get familiar with the code easier as with the code I copied over from Qt Creator for my initial try.
+
+But, even nicer, it does actually work a lot better than my variant, already now!
+
+What does work (tested with clangd and kate.git/work projects) at the moment:
+
+* Auto completion: you get the proper LSP server provided completion items
+<p align="center">
+ <a href="images/kate-auto-completion.png" target="_blank"><img width=500 src="images/kate-auto-completion.png"></a>
+</p>
+* Outline view: Get an extra tool view with the symbols of your current view
+<p align="center">
+ <a href="images/kate-outline-view.png" target="_blank"><img width=500 src="images/kate-outline-view.png"></a>
+</p>
+* Document highlight: highlight all occurrences of a variable/... inside the current view
+<p align="center">
+ <a href="images/kate-document-highlight.png" target="_blank"><img width=500 src="images/kate-document-highlight.png"></a>
+</p>
+* Code navigation: jump to the definition/declaration
+
+There is still a lot of stuff missing and this is all prototype quality.
+For example the document highlight implementation I added has no way to clear the highlighting at the moment beside document reload.
+
+But given I just needed one hour to add the document highlight support, I would say the code base is easy to adjust.
+
+=> If you have time and want a good LSP client, now you can join the fun and have direct results.
+
+As the author was kind enough to move his work on the plugin to the KDE infrastructure, feel welcome to show up on [kwrite-devel@kde.org](mailto:kwrite-devel@kde.org) and help out!
+All development discussion regarding this plugin happens there.
+We are happy to accept patches, too, if you are a new contributor!