[UNB] Kate's Future, Improvements and Suggestions 2021
This is a sort of a mega issue where we can just track ideas / suggestions / what to do. Suggestions are welcome and everything is open to discussion :)
There is not strict timeline, but I would like for us to have all of these this year (unless someone has an objection about some particular thing).
If you want to work on something and want to discuss, just comment below OR open a separate issue if you feel like it.
Kate main app
-
Command Bar - A quick-open like dialog using which we can perform any action, open config quickly. Initial Commit | Update 1 | Update 2 | Styling and RTL fix | clean up, don't include self in actions -
Icons only in our side bars. Currently the toolviews with text take too much space... -
Kate should set up a session by default, so all the amazing session-specific features are exposed without the user needing to configure anything. BUG 402598 -
Stash unsaved documents/changes on quit BUG 353654 Further discussion | Update -
Improved HiDpi support on windows so that font dont look pixelated with scaling -
Fix light/dark icon theme support on Windows + macOS BUG 432085 -
Messages / Output toolview for unified message reporting available to all plugins Rev 1 Rev 2 Rev 3 Rev 4 -
A history keeper / location tracker to allow you to jump back and forth when you jump to some other location via search / ctrl + click | Update 1 | Update 2 | Update 3 -
A nicer config dialog: Instead of individual pages, just one long vbox of all pages, left side bar jumps to start of the individual page in the large widget + we have some search to search for labels/... -
Make the "Output" view more versatile: we should be able to copy just parts of lines and we should be able to click on links, e.g. for the merge request links output by git.
LSP
-
Ctrl + Click to go to definition / find implementations. Current way of doing this is very cumbersome imo -
Better tooltips. Tooltips often provide markdown like text, we can leverage QTextDocument to improve the situation. We likely need a custom widget for the tooltips, something that is scrollable and looks good. Additionally we can do some syntax highlighting too using KSH. -
Semantic Highlighting. This is something which will really raise Kate to a whole new level. Currently we have some form of Semantic highlighting, but we need to implement the official LSP protocol for this. -
Easy way to go to references, perhaps a shortcut. A submenu is definitely not very fast to reach. -
Fix a rare case where you have Two autocomplete boxes floating! - I may have been confused, so marking this as done with 235 @mnauwelaerts @cullmann -
LSP results in the toolview have Line: xxx: .....
. The "Line xx" part should be bold and ideally we can have borders between elements so that they look clearly separated. -
If you have autobrackets enabled for ""
, and you type#include "xxx.h"
, you get two inverted commas at the end ->#include "xxx.h""
-
LSP Config page should have some more explanation on config items in the form of inline help / tooltips. -
Highlight active function argument as you type -
Support code lenses. Example for Haskell language
Project plugin
-
Add git branch name with the project name. I think this is often very useful (cf. #24 (closed)) -
Ability to Open any folder as project directly via kate /path/to/folder
BUG 423306 -
Allow opening a folder via GUI i.e., a menu from the top Project->Open Folder... -
Move CTags plugin inside the project plugin - Currently we have about 3? 4? ways to go to defintion etc, I think 3 of them are in the context menu! This needs to be remedied. -
Ability to close a project -
Ability to exclude a folder manually -
Option to "Open Terminal Here" -
Ability to create a new file / folder inside a selected folder using context menu -
Ability to rename files -
Ability to delete files -
Drag & Drop to move stuff around -
Hide Bottom Tool Info View on Esc key press -
Show untracked files as part of the project (with git mode) -
Keyboard navigation doesn't work in project tree if tree loses focus
Document Browser
Build plugin
-
Make it clear that you can remove both target / target set using the remove button -
Don't change the cursor for whole application while building something -
Build plugin should put "Project Targets" first(expanded) and restore the last selected target as checked. -
The button-icon for build button is a check-mark, this doesn't make things obvious and you have to read the tooltip to find out the build button -
Some syntax highlighting for build-output -
Support for autoloading CMake targets?Can be done using CMake generate Kate project.
Terminal plugin
-
Ability to open multiple tabs. BUG 419710 -
Hide terminal on Esc Key press
Search
-
Faster multi-file / folder search. Currently if you search "kate" in the kate project, it takes about 7 - 8 seconds on my computer. Qt Creator is instant. (#21 (closed)) (#23 (closed)) Further improvements -
Horizontally scrollable search results that can contain long lines. This has a very important use case i.e., a "line filter" tool - This is done but line length limit is about 180 or so -
Theme Search&Replace plugin with editor colors
GDB Plugin
-
Step In / Step Out / Step Over have the same icons... -
https://microsoft.github.io/debug-adapter-protocol support?
External tools
-
Currently if you execute an external tool command through kate, the cursor is moved to center of screen. This is okay if the text changed, but not okay if nothing changed.This is a tool issue, and hard to resolve in KTE. The best solution is to not use document reload. And if we can implement git-based gutter, than this will become even better. -
Fix prettier command, it should be npm run prettier
and not global prettier.
Documents (Kate File Tree) plugin
-
Use more std containers internally -
Remove the inefficiencies in katefiletreemodel.cpp (extra lookups, unnecessary containers)
KTextEditor stuff
-
Support for active and non-active indentation line. Currently everything is active and looks the same regardless of your cursor position. -
Support for alpha channel in themes, Syntax-Highlighting Layer Config Layer, KTE Html Export. -
Fix the RTL bug of correct dynamic wrapping -
Multicursor support -
Dont paint selection background over the full width of the editor. Just paint over the text that is selected only. Improvements -
Make sure the current line highlight is painted from edge to edge. Currently there is a tiny gap at the beginning -
Current line highlight in line number area too -
Allow having different colors for "occurrences" and "selection" -
Do smooth pixel-by-pixel scrolling with touchpads BUG 378275 -
Detect and match opened files' existing indentation method (https://bugs.kde.org/show_bug.cgi?id=109338) -
Camel Case cursor / Snake case cursor for movement / text removal. -
LSP should not put everything from the autocomplete into text editor. For example somefunc() [int]
ends up on current cursor position if you press tab. Review tab-completion behaviour -
Autocomplete box is sometimes really narrow :/ -
Git based gutter, for git projects
Plugins
-
A basic git plugin Discussion, checkout -
Rainbow brackets
Plugin ideas
- A CMake plugin, which has basic cmake support to load targets and allows some configuration? - Currently Cmake can generate a project for you with all the targets so this may not be necessary.
- Native TSserver support. Things are working through LSP, but native support is better and lets not forget there is a huge JS developers community
- A plugin for KDE Development
(edit - added the UNB tag on the title so that the current group of UNB students will see this)
Edited by Waqar Ahmed