Kontributions to Kate and KTextEditor in 2022

Contents

During my third semester at TUM, I switched my OS from Windows to Linux. This happened mostly out of curiosity and wanting to learn about Linux, but also because all the “cool geeks” seemed to use some version of Linux. I ended up with the Kubuntu distribution, which ships with the Plasma Desktop and KDE applications simply because it looked a bit like Windows. Ever since that (ca. end of 2018), I have been an enthusiastic user of Plasma.

Constantly following the updates from Nate’s blog about ongoing Plasma and KDE Development I got interested more and more. Last year I finally decided to contribute myself to the KDE community.

I had no prior experience working with (large) C++ codebases and no experience with Qt at all. After looking a while for easy merge requests, I ended up making several contributions to the Kate text editor and to KTextEditor, a framework for building Qt-based text editors.

My first ever contribution was a MR that opens Kate’s Projects View whenever a folder is opened. This is to provide some sort of visual feedback to the user when the “Open Folder…” action is clicked.

Most interesting are probably the features I worked on:

My personal favorite is the clipboard history dialog I implemented for all KTextEditor based applications. It supports searching through clipboard entries and showing a syntax highlighted preview of the clipboard entries. See yourself below:

Another set of changes was focused around improving usability in Kate. This meant adding icons, using icons consistently (link 1, link 2, link 3), rearranging actions in the menu bar to be organized more logically (link 1, link 2, link 3, link 4, link 5, link 6), assigning good default shortcuts (link 1, link 2), and ensuring consistent behavior for actions (link 1) and a more consistent layout for context menus (link 1).

Adding default server configurations for several LSP servers:

Small improvements to Kate’s LSP client:

I also ended up fixing several bugs and crashes:

Finally, I would like to say thank you to Christoph Cullmann and Waqar Ahmed, who reviewed my code and helped me bring it into a mergable state.