Kate issueshttps://invent.kde.org/utilities/kate/-/issues2024-03-15T17:43:43Zhttps://invent.kde.org/utilities/kate/-/issues/117Wrong Download Links (https://binary-factory.kde.org/)2024-03-15T17:43:43ZMax WilfingerWrong Download Links (https://binary-factory.kde.org/)The download links on https://kate-editor.org/de/get-it/ link all to https://binary-factory.kde.org/ and it is not possible to download the packages.The download links on https://kate-editor.org/de/get-it/ link all to https://binary-factory.kde.org/ and it is not possible to download the packages.https://invent.kde.org/utilities/kate/-/issues/101Discussion of plugin API2024-03-12T21:34:45ZChristoph Cullmanncullmann@kde.orgDiscussion of plugin APIATM we use the KTextEditor plugin API.
Inside Kate we started to add more and more hacks to expose extra API and we now started to share more common high level code inside the kateprivate library.
It will be more and more uncertain if ...ATM we use the KTextEditor plugin API.
Inside Kate we started to add more and more hacks to expose extra API and we now started to share more common high level code inside the kateprivate library.
It will be more and more uncertain if the plugins at all work in other host applications like KDevelop and RKWard.
Perhaps it is now time to think about if that makes still sense.
The idea of the basic plugin stuff was to allow that others can use our stuff to get more contributions, I fail to see that this happens, since a long time, e.g. years, I don't see that happen.
I tend to the idea of just dropping that interfacing for KF6 and only export our API via our private lib to the plugins we ship, that will allow a faster and easier evolution and if we ever start to see out of kate.git plugins one can still think about stabilizing that library and installing it for 3rdparty plugins in the future.
Feedback on that is welcome.
@waqar @dhaumann @mwolff @tfry @igorkushnirhttps://invent.kde.org/utilities/kate/-/issues/32Neither "b" nor ctrl-left are working in vi mode2024-02-15T07:25:05ZAhmed TarekNeither "b" nor ctrl-left are working in vi modeFor some reason "b" and ctrl+left in vi mode only go to beginning of word but stop there, correct behavior should keep going just like "w", any idea on what might be causing this issue?For some reason "b" and ctrl+left in vi mode only go to beginning of word but stop there, correct behavior should keep going just like "w", any idea on what might be causing this issue?https://invent.kde.org/utilities/kate/-/issues/31Developing a new LSP config2024-02-15T07:25:05ZFrederik BanningDeveloping a new LSP configFrom https://invent.kde.org/utilities/kate/-/issues/20
> LSP Config page should have some more explanation on config items in the form of inline help / tooltips.
I'm very much interested in this as it would probably greatly help me in ...From https://invent.kde.org/utilities/kate/-/issues/20
> LSP Config page should have some more explanation on config items in the form of inline help / tooltips.
I'm very much interested in this as it would probably greatly help me in the process.
Currently I'm trying to configure a language server for Julia in Kate (based on [LanguageServer.jl](https://github.com/julia-vscode/LanguageServer.jl/)). Once I got it sorted out, I would be more than glad to contribute a PR for incorporating it into Kate's default LSP settings.
Sadly in its current state it errors out every time. The same command used in the json file is working just fine when executing it directly in terminal (i.e. it starts a server and doesn't error out immediately).
```json
{
"servers": {
"julia": {
"command": ["julia", "--startup-file=no", "--history-file=no", "-e", "'using LanguageServer; import SymbolServer; server=LanguageServer.LanguageServerInstance(stdin,stdout); server.runlinter = true; run(server);'"],
"url": "https://github.com/julia-vscode/LanguageServer.jl",
"highlightingModeRegex": "^Julia$"
}
}
}
```
Any suggestions on the formatting or what else to try to get it running?Mark NauwelaertsMark Nauwelaertshttps://invent.kde.org/utilities/kate/-/issues/30LSP for bash2024-02-15T07:25:05ZDaniele ScasciafratteLSP for bashhttps://github.com/bash-lsp/bash-language-server
Trying it with these settings:
```
"bash": {
"use": "bash-language-server start"
}
```https://github.com/bash-lsp/bash-language-server
Trying it with these settings:
```
"bash": {
"use": "bash-language-server start"
}
```https://invent.kde.org/utilities/kate/-/issues/28Somes fixes needed for "Allow to stash changes on Close"2024-02-15T07:25:05ZChristoph Cullmanncullmann@kde.orgSomes fixes needed for "Allow to stash changes on Close"The following discussion from !228 should be addressed:
- [ ] @dhaumann started a [discussion](https://invent.kde.org/utilities/kate/-/merge_requests/228#note_198150): (+2 comments)
> @ngraham Since it didn't work for you, what na...The following discussion from !228 should be addressed:
- [ ] @dhaumann started a [discussion](https://invent.kde.org/utilities/kate/-/merge_requests/228#note_198150): (+2 comments)
> @ngraham Since it didn't work for you, what name does your session have? I remember we once used (or still use?) some percentEncoded path name.
>
> Maybe something is going wrong here?Méven CarMéven Carhttps://invent.kde.org/utilities/kate/-/issues/27pgrep xxx during running pgrep yyy => assert (or segfault)2024-02-15T07:25:05ZChristoph Cullmanncullmann@kde.orgpgrep xxx during running pgrep yyy => assert (or segfault)I guess we need to ensure we either finalized the running search or ignore such requests.
```
Application: Kate (kate), signal: Aborted
Content of s_kcrashErrorMessage: [Current thread is 1 (Thread 0x7f45ee75dd40 (LWP 1185881))]
[KCrash...I guess we need to ensure we either finalized the running search or ignore such requests.
```
Application: Kate (kate), signal: Aborted
Content of s_kcrashErrorMessage: [Current thread is 1 (Thread 0x7f45ee75dd40 (LWP 1185881))]
[KCrash Handler]
#5 0x00007f45f24efef5 in raise () from /usr/lib/libc.so.6
#6 0x00007f45f24d9862 in abort () from /usr/lib/libc.so.6
#7 0x00007f45f2a4e9ac in QMessageLogger::fatal(char const*, ...) const () from /usr/lib/libQt5Core.so.5
#8 0x00007f45f2a4dd59 in qt_assert(char const*, char const*, int) () from /usr/lib/libQt5Core.so.5
#9 0x00007f45ec19cad6 in SearchDiskFilesWorkList::init (this=0x556d92950248, files=..., numberOfWorkers=8) at /home/cullmann/projects/kde/src/kde/applications/kate/addons/search/SearchDiskFiles.h:71
#10 0x00007f45ec18dd3c in KatePluginSearchView::startDiskFileSearch (this=0x556d9294ffe0, fileList=..., reg=..., includeBinaryFiles=false) at /home/cullmann/projects/kde/src/kde/applications/kate/addons/search/plugin_search.cpp:768
#11 0x00007f45ec18fbbf in KatePluginSearchView::startSearch (this=0x556d9294ffe0) at /home/cullmann/projects/kde/src/kde/applications/kate/addons/search/plugin_search.cpp:1081
#12 0x00007f45ec1a3be7 in QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, void (KatePluginSearchView::*)()>::call(void (KatePluginSearchView::*)(), KatePluginSearchView*, void**) (f=(void (KatePluginSearchView::*)(KatePluginSearchView * const)) 0x7f45ec18e746 <KatePluginSearchView::startSearch()>, o=0x556d9294ffe0, arg=0x7ffe4a81a2a0) at /usr/include/qt/QtCore/qobjectdefs_impl.h:152
#13 0x00007f45ec1a2de9 in QtPrivate::FunctionPointer<void (KatePluginSearchView::*)()>::call<QtPrivate::List<>, void>(void (KatePluginSearchView::*)(), KatePluginSearchView*, void**) (f=(void (KatePluginSearchView::*)(KatePluginSearchView * const)) 0x7f45ec18e746 <KatePluginSearchView::startSearch()>, o=0x556d9294ffe0, arg=0x7ffe4a81a2a0) at /usr/include/qt/QtCore/qobjectdefs_impl.h:185
#14 0x00007f45ec1a13e0 in QtPrivate::QSlotObject<void (KatePluginSearchView::*)(), QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) (which=1, this_=0x556d929f3c80, r=0x556d9294ffe0, a=0x7ffe4a81a2a0, ret=0x0) at /usr/include/qt/QtCore/qobjectdefs_impl.h:418
#15 0x00007f45f2caadd6 in ?? () from /usr/lib/libQt5Core.so.5
#16 0x00007f45ec163b8f in KateSearchCommand::startSearch (this=0x556d92737690) at addons/search/katesearchplugin_autogen/EWIEGA46WW/moc_KateSearchCommand.cpp:198
#17 0x00007f45ec1715c0 in KateSearchCommand::exec (this=0x556d92737690, cmd=...) at /home/cullmann/projects/kde/src/kde/applications/kate/addons/search/KateSearchCommand.cpp:53
#18 0x00007f45f53079bf in KateCmdLineEdit::slotReturnPressed (this=0x556d9362a8e0, text=...) at /home/cullmann/projects/kde/src/frameworks/ktexteditor/src/view/kateviewhelpers.cpp:1226
#19 0x00007f45f5319c98 in QtPrivate::FunctorCall<QtPrivate::IndexesList<0>, QtPrivate::List<QString const&>, void, void (KateCmdLineEdit::*)(QString const&)>::call (f=(void (KateCmdLineEdit::*)(KateCmdLineEdit * const, const QString &)) 0x7f45f5307490 <KateCmdLineEdit::slotReturnPressed(QString const&)>, o=0x556d9362a8e0, arg=0x7ffe4a81a610) at /usr/include/qt/QtCore/qobjectdefs_impl.h:152
#20 0x00007f45f531911d in QtPrivate::FunctionPointer<void (KateCmdLineEdit::*)(QString const&)>::call<QtPrivate::List<QString const&>, void> (f=(void (KateCmdLineEdit::*)(KateCmdLineEdit * const, const QString &)) 0x7f45f5307490 <KateCmdLineEdit::slotReturnPressed(QString const&)>, o=0x556d9362a8e0, arg=0x7ffe4a81a610) at /usr/include/qt/QtCore/qobjectdefs_impl.h:185
#21 0x00007f45f5317d30 in QtPrivate::QSlotObject<void (KateCmdLineEdit::*)(QString const&), QtPrivate::List<QString const&>, void>::impl (which=1, this_=0x556d9360df30, r=0x556d9362a8e0, a=0x7ffe4a81a610, ret=0x0) at /usr/include/qt/QtCore/qobjectdefs_impl.h:418
#22 0x00007f45f2caadd6 in ?? () from /usr/lib/libQt5Core.so.5
#23 0x00007f45f483650c in KLineEdit::returnPressed (this=0x556d9362a8e0, _t1=...) at src/KF5Completion_autogen/include/moc_klineedit.cpp:391
#24 0x00007f45f48314cc in KLineEdit::keyPressEvent (this=0x556d9362a8e0, e=0x7ffe4a81ac60) at /home/cullmann/projects/kde/src/frameworks/kcompletion/src/klineedit.cpp:576
#25 0x00007f45f5308021 in KateCmdLineEdit::keyPressEvent (this=0x556d9362a8e0, ev=0x7ffe4a81ac60) at /home/cullmann/projects/kde/src/frameworks/ktexteditor/src/view/kateviewhelpers.cpp:1302
#26 0x00007f45f39679c5 in QWidget::event(QEvent*) () from /usr/lib/libQt5Widgets.so.5
#27 0x00007f45f4833b04 in KLineEdit::event (this=0x556d9362a8e0, ev=0x7ffe4a81ac60) at /home/cullmann/projects/kde/src/frameworks/kcompletion/src/klineedit.cpp:1065
#28 0x00007f45f5307418 in KateCmdLineEdit::event (this=0x556d9362a8e0, e=0x7ffe4a81ac60) at /home/cullmann/projects/kde/src/frameworks/ktexteditor/src/view/kateviewhelpers.cpp:1146
#29 0x00007f45f3925752 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/libQt5Widgets.so.5
#30 0x00007f45f392cdb8 in QApplication::notify(QObject*, QEvent*) () from /usr/lib/libQt5Widgets.so.5
#31 0x00007f45f2c73a7a in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /usr/lib/libQt5Core.so.5
#32 0x00007f45f398269a in ?? () from /usr/lib/libQt5Widgets.so.5
#33 0x00007f45f3925752 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/libQt5Widgets.so.5
#34 0x00007f45f2c73a7a in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /usr/lib/libQt5Core.so.5
#35 0x00007f45f31cb474 in QGuiApplicationPrivate::processKeyEvent(QWindowSystemInterfacePrivate::KeyEvent*) () from /usr/lib/libQt5Gui.so.5
#36 0x00007f45f31a4bb5 in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQt5Gui.so.5
#37 0x00007f45ee30e16c in ?? () from /usr/lib/libQt5XcbQpa.so.5
#38 0x00007f45f0bd5b54 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#39 0x00007f45f0c29bf1 in ?? () from /usr/lib/libglib-2.0.so.0
#40 0x00007f45f0bd4381 in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#41 0x00007f45f2ccc6e1 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQt5Core.so.5
#42 0x00007f45f2c723fc in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQt5Core.so.5
#43 0x00007f45f2c7a894 in QCoreApplication::exec() () from /usr/lib/libQt5Core.so.5
#44 0x0000556d82c58954 in main (argc=1, argv=0x7ffe4a81b348) at /home/cullmann/projects/kde/src/kde/applications/kate/kate/main.cpp:703
[Inferior 1 (process 1185881) detached]
```Kåre SärsKåre Särshttps://invent.kde.org/utilities/kate/-/issues/26Better Defaults / Shortcuts2024-02-15T07:25:05ZWaqar AhmedBetter Defaults / ShortcutsHere we can discuss / improve the current defaults for a better out-of-the-box experience
- [x] [Remove white space on modified lines by default](https://invent.kde.org/frameworks/ktexteditor/commit/57aa67e6f485651e7f5d50b10d2acf9381116...Here we can discuss / improve the current defaults for a better out-of-the-box experience
- [x] [Remove white space on modified lines by default](https://invent.kde.org/frameworks/ktexteditor/commit/57aa67e6f485651e7f5d50b10d2acf93811168e8)
- [x] Use F11 for full-screen
- [x] Use Ctrl + Shift + F for searchhttps://invent.kde.org/utilities/kate/-/issues/25More external tools2024-02-15T07:25:05ZWaqar AhmedMore external toolsHere we can discuss what additional external tools we can provide out of the box
- [ ] Astyle
- [x] [Prettier](https://invent.kde.org/utilities/kate/-/merge_requests/278)
- [x] [rustfmt](https://invent.kde.org/utilities/kate/-/merge_req...Here we can discuss what additional external tools we can provide out of the box
- [ ] Astyle
- [x] [Prettier](https://invent.kde.org/utilities/kate/-/merge_requests/278)
- [x] [rustfmt](https://invent.kde.org/utilities/kate/-/merge_requests/278)
- [x] [gofmt](https://invent.kde.org/utilities/kate/-/merge_requests/278)
- [x] go imports
- [x] Search Qt / KDE Docs
- [ ] Search MDN for Javascript
Guidelines:
- Only add tools of general use. Avoid adding a tool just *because we can*.
- Set the file extension and/or mimetype to avoid tools appearing when not applicable.https://invent.kde.org/utilities/kate/-/issues/24Git integration discussion2024-02-15T07:25:05ZWaqar AhmedGit integration discussionHere we can discuss git integration related stuff.
## Goals
- Support most commonly used git stuff
## Non Goals
- Be a competitor to git guis
- Have support for advanced / not commonly used features
### Features that would be nice to ...Here we can discuss git integration related stuff.
## Goals
- Support most commonly used git stuff
## Non Goals
- Be a competitor to git guis
- Have support for advanced / not commonly used features
### Features that would be nice to have
- [x] [Git checkout support](https://invent.kde.org/utilities/kate/-/merge_requests/227)
- [x] [Branch creation](https://invent.kde.org/utilities/kate/-/merge_requests/238)
- [x] [File staging](https://invent.kde.org/utilities/kate/-/merge_requests/255)
- [x] [viewing untracked / modified stuff](https://invent.kde.org/utilities/kate/-/merge_requests/255)
- [x] [Line / hunk staging](https://invent.kde.org/utilities/kate/-/merge_requests/290)
- [x] [Diff viewing](https://invent.kde.org/utilities/kate/-/merge_requests/255) - Partially done, allows external diff tool and view raw diffs
- [ ] Conflict Resolution
- [x] [Pull + Push](https://invent.kde.org/utilities/kate/-/merge_requests/308) - Basic support for it. Maybe we'll improve on it if there are better ideas.
- [x] [Stashing](https://invent.kde.org/utilities/kate/-/merge_requests/272)
- [x] [Commit with extended description](https://invent.kde.org/utilities/kate/-/merge_requests/255)
- [x] [Git blame](https://invent.kde.org/utilities/kate/-/merge_requests/266) (tons of UIs for it already, + design for it needs some deep thinking so that we get it right)
- [x] Beautiful git icons, see https://invent.kde.org/frameworks/breeze-icons/-/issues/2
- [x] [Show file history](https://invent.kde.org/utilities/kate/-/merge_requests/294)
- [x] [Compare branches](https://invent.kde.org/utilities/kate/-/merge_requests/340) , [rev 1](https://invent.kde.org/utilities/kate/-/merge_requests/347)
- [x] [Commit Ammend](https://invent.kde.org/utilities/kate/-/merge_requests/388)
## Undecided
- Log
### Additional stuff for project plugin
- Project files (in git mode), should show that a file is modified by coloring it.
- Maybe rethink how to show untracked files?
- context menus will need to have git related options?
Current idea is to do this inside the project plugin. Advantage would be that we can notify the project plugin about changes. Disadvantage is that code will grow, which is not really a big disadvantage I think. Another advantage is that vcs is related to project stuff, so things will live quite near to the project in UI and will be discoverable.https://invent.kde.org/utilities/kate/-/issues/23Follow-up from "Search disk files multithreaded"2024-02-15T07:25:05ZChristoph Cullmanncullmann@kde.orgFollow-up from "Search disk files multithreaded"The following discussions from !208 should be addressed:
- [x] @cullmann started a [discussion](https://invent.kde.org/utilities/kate/-/merge_requests/208#note_176627):
> Aren't these initializer duplicates of the ones above or th...The following discussions from !208 should be addressed:
- [x] @cullmann started a [discussion](https://invent.kde.org/utilities/kate/-/merge_requests/208#note_176627):
> Aren't these initializer duplicates of the ones above or the C++11 initializers in the header?
- [x] @cullmann started a [discussion](https://invent.kde.org/utilities/kate/-/merge_requests/208#note_176628):
> If the destructor is just the default one, I would remove the implementation.
- [x] @cullmann started a [discussion](https://invent.kde.org/utilities/kate/-/merge_requests/208#note_176631):
> As said in the general comment: I would tend to still either just go for ideal thread count or if that is measurable worse on your machine default to ideal thread count but provide some setting for this.Kåre SärsKåre Särshttps://invent.kde.org/utilities/kate/-/issues/22Move to another instance / detach the document2024-02-15T07:25:05ZNo. 95 Type MMove to another instance / detach the documentThe split view mode is not good enough for multiple monitors, therefore it would be nice if there was a function to open the document (tab) in another instance. Similar to "Detach Tab" in Dolphin.The split view mode is not good enough for multiple monitors, therefore it would be nice if there was a function to open the document (tab) in another instance. Similar to "Detach Tab" in Dolphin.https://invent.kde.org/utilities/kate/-/issues/21Optimize search in files2024-02-15T07:25:05ZChristoph Cullmanncullmann@kde.orgOptimize search in filesSee below a profile, project wide search in the Kate project for Kate ;=)
![perf.ef7XP.svg](/uploads/c9cb0b449a24f59062a451d80d67d81b/perf.ef7XP.svg)See below a profile, project wide search in the Kate project for Kate ;=)
![perf.ef7XP.svg](/uploads/c9cb0b449a24f59062a451d80d67d81b/perf.ef7XP.svg)https://invent.kde.org/utilities/kate/-/issues/20[UNB] Kate's Future, Improvements and Suggestions 20212024-02-15T07:25:05ZWaqar Ahmed[UNB] Kate's Future, Improvements and Suggestions 2021This 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 yea...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
- [x] Command Bar - A quick-open like dialog using which we can perform any action, open config quickly. [Initial Commit](https://invent.kde.org/utilities/kate/-/merge_requests/179) | [Update 1](https://invent.kde.org/utilities/kate/-/merge_requests/182) | [Update 2](https://invent.kde.org/utilities/kate/-/merge_requests/183) | [Styling and RTL fix](https://invent.kde.org/utilities/kate/-/merge_requests/188) | [clean up, don't include self in actions](https://invent.kde.org/utilities/kate/-/merge_requests/191)
- [ ] 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](https://bugs.kde.org/show_bug.cgi?id=402598)
- [x] [Stash unsaved documents/changes on quit](https://invent.kde.org/utilities/kate/-/issues/24) [BUG 353654](https://bugs.kde.org/show_bug.cgi?id=353654) [Further discussion](https://invent.kde.org/utilities/kate/-/issues/28) | [Update](https://invent.kde.org/utilities/kate/-/commit/81027b0f22906f52130a2c513711a3464ea06aec)
- [x] [Improved HiDpi support on windows so that font dont look pixelated with scaling](https://invent.kde.org/utilities/kate/-/commit/c60c3edef0e85abdad530c2769ff2c77394d11c9)
- [x] [Fix light/dark icon theme support on Windows + macOS](https://invent.kde.org/frameworks/breeze-icons/-/merge_requests/79) [BUG 432085](https://bugs.kde.org/show_bug.cgi?id=432085)
- [x] [Messages / Output toolview for unified message reporting available to all plugins](https://invent.kde.org/utilities/kate/-/merge_requests/296) [Rev 1](https://invent.kde.org/utilities/kate/-/merge_requests/299) [Rev 2](https://invent.kde.org/utilities/kate/-/merge_requests/300) [Rev 3](https://invent.kde.org/utilities/kate/-/merge_requests/301) [Rev 4](https://invent.kde.org/utilities/kate/-/merge_requests/302)
- [x] [A history keeper / location tracker to allow you to jump back and forth when you jump to some other location via search / ctrl + click](https://invent.kde.org/utilities/kate/-/merge_requests/306) | [Update 1](https://invent.kde.org/utilities/kate/-/merge_requests/310) | [Update 2](https://invent.kde.org/utilities/kate/-/merge_requests/312) | [Update 3](https://invent.kde.org/utilities/kate/-/merge_requests/313)
- [ ] 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
- [x] [Ctrl + Click to go to definition / find implementations](https://invent.kde.org/utilities/kate/-/merge_requests/172). Current way of doing this is very cumbersome imo
- [x] 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.
- [x] 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.
- [x] [Fix a rare case where you have **Two** autocomplete boxes floating!](https://invent.kde.org/utilities/kate/-/merge_requests/235) - I may have been confused, so marking this as done with 235 @mnauwelaerts @cullmann
- [x] 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.
- [x] [If you have autobrackets enabled for `""`, and you type `#include "xxx.h"`, you get two inverted commas at the end -> `#include "xxx.h""`](https://invent.kde.org/utilities/kate/-/merge_requests/192)
- [ ] LSP Config page should have some more explanation on config items in the form of inline help / tooltips.
- [x] [Highlight active function argument as you type](https://invent.kde.org/utilities/kate/-/merge_requests/240)
- [ ] Support code lenses. [Example for Haskell language](https://github.com/haskell/haskell-language-server/blob/master/plugins/hls-eval-plugin/README.md)
### Project plugin
- [x] [Add git branch name with the project name.](https://invent.kde.org/utilities/kate/-/merge_requests/227) I think this is often very useful (cf. #24)
- [x] [Ability to Open any folder as project directly via `kate /path/to/folder`](https://invent.kde.org/utilities/kate/-/merge_requests/336) [BUG 423306](https://bugs.kde.org/show_bug.cgi?id=423306)
- [x] Allow opening a folder via GUI i.e., a menu from the top Project->Open Folder...
- [x] 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.
- [x] Ability to close a project
- [ ] Ability to exclude a folder manually
- [x] Option to "Open Terminal Here"
- [x] [Ability to create a new file / folder inside a selected folder using context menu](https://invent.kde.org/utilities/kate/-/merge_requests/332)
- [x] [Ability to rename files](https://invent.kde.org/utilities/kate/-/merge_requests/216)
- [x] Ability to delete files
- [ ] Drag & Drop to move stuff around
- [x] [Hide Bottom Tool Info View on Esc key press](https://invent.kde.org/utilities/kate/-/merge_requests/236)
- [x] [Show untracked files as part of the project](https://invent.kde.org/utilities/kate/-/merge_requests/264) (with git mode)
- [x] [Keyboard navigation doesn't work in project tree if tree loses focus](https://invent.kde.org/utilities/kate/-/merge_requests/333)
### Document Browser
- [x] [A tiny "x" (close) button to close documents quickly](https://invent.kde.org/utilities/kate/-/merge_requests/282)
### Build plugin
- [x] [Make it clear that you can remove both target / target set using the remove button](https://invent.kde.org/utilities/kate/-/merge_requests/315)
- [x] [Don't change the cursor for whole application while building something](https://invent.kde.org/utilities/kate/-/merge_requests/175)
- [ ] Build plugin should put "Project Targets" first(expanded) and restore the last selected target as checked.
- [x] [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](https://invent.kde.org/utilities/kate/-/merge_requests/315)
- [ ] Some syntax highlighting for build-output
- [x] <s>Support for autoloading CMake targets?</s> Can be done using CMake generate Kate project.
### Terminal plugin
- [x] Ability to open multiple tabs. [BUG 419710](https://bugs.kde.org/show_bug.cgi?id=419710)
- [x] [Hide terminal on Esc Key press](https://invent.kde.org/utilities/kate/-/merge_requests/237)
### Search
- [x] [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.](https://invent.kde.org/utilities/kate/-/merge_requests/208) (https://invent.kde.org/utilities/kate/-/issues/21) (https://invent.kde.org/utilities/kate/-/issues/23) [Further improvements](https://invent.kde.org/utilities/kate/-/merge_requests/211)
- [x] [Horizontally scrollable search results that can contain long lines. This has a very important use case i.e., a "line filter" tool](https://invent.kde.org/utilities/kate/-/merge_requests/180) - This is done but line length limit is about 180 or so
- [x] [Theme Search&Replace plugin with editor colors](https://invent.kde.org/utilities/kate/-/merge_requests/194)
### GDB Plugin
- [ ] Step In / Step Out / Step Over have the same icons...
- [ ] https://microsoft.github.io/debug-adapter-protocol support?
### External tools
- [x] <s>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.</s> 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
- [x] Use more std containers internally
- [x] Remove the inefficiencies in katefiletreemodel.cpp (extra lookups, unnecessary containers)
### KTextEditor stuff
- [x] Support for active and non-active indentation line. Currently everything is active and looks the same regardless of your cursor position.
- [x] [Support for alpha channel in themes](https://invent.kde.org/frameworks/ktexteditor/-/merge_requests/69), [Syntax-Highlighting Layer](https://invent.kde.org/frameworks/syntax-highlighting/-/merge_requests/148) [Config Layer](https://invent.kde.org/frameworks/ktexteditor/-/merge_requests/72), [KTE Html Export](https://invent.kde.org/frameworks/ktexteditor/-/merge_requests/73).
- [ ] Fix the RTL bug of correct dynamic wrapping
- [ ] Multicursor support
- [x] [Dont paint selection background over the full width of the editor. Just paint over the text that is selected only.](https://invent.kde.org/frameworks/ktexteditor/-/merge_requests/75) [Improvements](https://invent.kde.org/frameworks/ktexteditor/-/merge_requests/77)
- [x] [Make sure the current line highlight is painted from edge to edge. Currently there is a tiny gap at the beginning](https://invent.kde.org/frameworks/ktexteditor/-/merge_requests/68)
- [x] [Current line highlight in line number area too](https://invent.kde.org/frameworks/ktexteditor/-/merge_requests/71)
- [ ] Allow having different colors for "occurrences" and "selection"
- [ ] Do smooth pixel-by-pixel scrolling with touchpads [BUG 378275](https://bugs.kde.org/show_bug.cgi?id=378275)
- [ ] Detect and match opened files' existing indentation method (https://bugs.kde.org/show_bug.cgi?id=109338)
- [x] [Camel Case cursor / Snake case cursor for movement / text removal](https://invent.kde.org/frameworks/ktexteditor/-/merge_requests/92).
- [ ] 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
- [x] Autocomplete box is sometimes really narrow :/
- [ ] Git based gutter, for git projects
### Plugins
- [x] A basic git plugin [Discussion](https://invent.kde.org/utilities/kate/-/issues/24), [checkout](https://invent.kde.org/utilities/kate/-/merge_requests/227)
- [x] 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)https://invent.kde.org/utilities/kate/-/issues/19Failing compilation on debian buster2024-02-15T07:25:05ZBrian OrweFailing compilation on debian busterI installed Qt, and all the depencies, cmake runs to completion with no errors. but once I start the make process, here is the errors I get:
```
[ 0%] Automatic MOC for target katebacktracebrowserplugin
[ 0%] Built target katebacktrac...I installed Qt, and all the depencies, cmake runs to completion with no errors. but once I start the make process, here is the errors I get:
```
[ 0%] Automatic MOC for target katebacktracebrowserplugin
[ 0%] Built target katebacktracebrowserplugin_autogen
Scanning dependencies of target katebacktracebrowserplugin
[ 0%] Building CXX object addons/backtracebrowser/CMakeFiles/katebacktracebrowserplugin.dir/katebacktracebrowser.cpp.o
In file included from /home/brian/Git-Repos/kate/addons/backtracebrowser/katebacktracebrowser.cpp:13:
In file included from /usr/include/KF5/KConfigCore/KConfigGroup:1:
/usr/include/KF5/KConfigCore/kconfiggroup.h:734:16: error: expected expression
Q_FOREACH (const T &value, defaultValue) {
^
/usr/include/KF5/KConfigCore/kconfiggroup.h:739:16: error: expected expression
Q_FOREACH (const QVariant &value, readEntry<QVariantList>(key, data)) {
^
/usr/include/KF5/KConfigCore/kconfiggroup.h:760:16: error: expected expression
Q_FOREACH (const T &value, list) {
^
3 errors generated.
make[2]: *** [addons/backtracebrowser/CMakeFiles/katebacktracebrowserplugin.dir/build.make:71: addons/backtracebrowser/CMakeFiles/katebacktracebrowserplugin.dir/katebacktracebrowser.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:901: addons/backtracebrowser/CMakeFiles/katebacktracebrowserplugin.dir/all] Error 2
make: *** [Makefile:141: all] Error 2
```https://invent.kde.org/utilities/kate/-/issues/18Allow opening directory as a project2024-02-15T07:25:05ZAndrzej DąbrowskiAllow opening directory as a project#### The problem
VSCode and pantheon-code (from elementaryOS) both have a feature allowing the user to open a directory as a project. The problem is the former is a bloated, slow mess, the latter lacks any useful features beyond that one...#### The problem
VSCode and pantheon-code (from elementaryOS) both have a feature allowing the user to open a directory as a project. The problem is the former is a bloated, slow mess, the latter lacks any useful features beyond that one. **Kate** on the other hand has a project plugin, that allows creating projects with a .kateproject file or a VCS system. This is not exactly user-friendly in my opinion, because you can't set up arbitrary random directory as a project easily.
#### The solution
When the Project plugin is active, add an option right under [File] -> [Open] which would be something like "Open directory as project", to allow the user to select a directory and in the selected directory create a .kateproject file which would contain the following contents:
```
{
"name": "DIRNAME",
"files": [
{ "directory": ".", "recursive": 1 }
]
}
```
or something similarly generic.
Also, it would be good to always show ".kateproject" file in the Project's sidepanel as it is an important part of the project.https://invent.kde.org/utilities/kate/-/issues/17Export color scheme containing all colors2024-02-15T07:25:05ZAlex TurbovExport color scheme containing all colorsThere is no way to export a syntax highlighting colors containing all items and not only that has changed. I'm trying to port my kate4 color schemes (and do it via GUI is a big pain) but unfortunately, in the exported JSON scheme there a...There is no way to export a syntax highlighting colors containing all items and not only that has changed. I'm trying to port my kate4 color schemes (and do it via GUI is a big pain) but unfortunately, in the exported JSON scheme there are no items related to various syntaxes 'till I don't change some color via GUI %((( So I just can't edit the JSON file (which is far easier than using GUI).https://invent.kde.org/utilities/kate/-/issues/16Exporting color scheme and file override2024-02-15T07:25:05ZAlex TurbovExporting color scheme and file overrideExporting a color scheme when the target file exists shows a warning dialog but pressing _Override_ button doesn't override the file.
```
$ kate --version
kate 20.08.2
```Exporting a color scheme when the target file exists shows a warning dialog but pressing _Override_ button doesn't override the file.
```
$ kate --version
kate 20.08.2
```https://invent.kde.org/utilities/kate/-/issues/15String not being copied properly2024-02-15T07:25:05ZHerschel PawarString not being copied properlyim so unsure whats happening lol
i thought it was because of double inverted commas but its acting weird now
![9E66I4YLHn](/uploads/8be971b355ad271445ae9f6433ea01f8/9E66I4YLHn.mp4)
![PPRRHVlH6P](/uploads/93f0feefb7b9dbf9fef277fa3a687fdb/...im so unsure whats happening lol
i thought it was because of double inverted commas but its acting weird now
![9E66I4YLHn](/uploads/8be971b355ad271445ae9f6433ea01f8/9E66I4YLHn.mp4)
![PPRRHVlH6P](/uploads/93f0feefb7b9dbf9fef277fa3a687fdb/PPRRHVlH6P.mp4)https://invent.kde.org/utilities/kate/-/issues/14Snap package install two .desktop application files. Kate should be packaged ...2024-02-15T07:25:05Zsilo coderSnap package install two .desktop application files. Kate should be packaged as --classicInstalled Kate via Snap. I get two Kate applications showing in the KDE Menu. Here are the Properties
```
env BAMF_DESKTOP_FILE_HINT=/var/lib/snapd/desktop/applications/kate_kate.desktop /snap/bin/kate -b %U
env BAMF_DESKTOP_FILE_HINT=...Installed Kate via Snap. I get two Kate applications showing in the KDE Menu. Here are the Properties
```
env BAMF_DESKTOP_FILE_HINT=/var/lib/snapd/desktop/applications/kate_kate.desktop /snap/bin/kate -b %U
env BAMF_DESKTOP_FILE_HINT=/var/lib/snapd/desktop/applications/kate_org.kde.kate.desktop /snap/bin/kate -b %U
```
The main difference is some languages and the Icon= attribute.
Also, Kate snap prevents editing files outside of /home/user/ as well as dot files in /home/user/<dot folders>
According to Snap support, the package should install as --classic since this is an IDE. I am forced to install it from command line with the --devmode option so it works properly.
```
~$ snap list | grep -i kate
kate 20.04.0 64 latest/stable kde* -
```
```
Operating System: Kubuntu 20.04
KDE Plasma Version: 5.18.5
KDE Frameworks Version: 5.68.0
Qt Version: 5.12.8
Kernel Version: 5.4.0-47-generic
OS Type: 64-bit
Processors: 8 × Intel® Core™ i7-4810MQ CPU @ 2.80GHz
Memory: 15.6 GiB of RAM
```