From 18th to 25th of January 2014, the Kate, KDevelop and Skanlite developers met in Barcelona to work on these projects full time for a week. Full time usually implies about 14 hours per person a day (yes, besides food, we do nothing but developing). 11 developers working 14 hours a day for 7 days makes a total of 1078 hours. If we divide this by 8 hours, the typical amount of work hours in a day, this makes 134 man-days of work, or about 27 weeks of continued development time. While this calculation is a bit theoretical, it is still very valid to estimate the amount of work that is put into these projects during such a sprint, especially since usually developers have far less time for development in their spare time.

The efforts focus mostly on KDE Frameworks 5, so what is listed next is mostly relevant only for the KF5/Qt5 version of Kate etc. Going through the Kate and Skanlite commits from 18th to the 25th of January, we have (not listing all commits):

January, 18th (arrival day):

KTextEditor::Cursor and KTextEditor::Range are declared as Q_MOVABLE_TYPE, telling Qt containers that these primitive types can be mem-moved without copy constructor.

since KTextEditor and KatePart are now merged into a single list, the API was changed such that KTextEditor::Editor::instance() is a singleton. Therefore, KTextEditor::Document::editor() was dropped, as it is not needed anymore.

vi input mode: new sentence text object

merged code completion models

some API cleanups

removed ModeInterface, which was never implemented

January, 19th:

January, 20th:

January, 21th:

January, 22th:

vi input mode: expose more motions in visual mode

status bar: better sorting

tab bar: add tab also for documents without view

tab tracking: simplify, make tab switching work

tab bar tabs: track document name changes

work around QSpinBox pluralizable issues

revert quick open shortcut

fix viewChanged() signals

search & replace plugin: fix signals

remove all tab bar plugins due to the built-in one

sync syntax xml file changes from master

status bar: no resize between status bar, goto line and internal command line, more, more¸more

add split view actions to view space navigation tab bar

no document duplicates in quick open

fix broken scroll bars when opening remove files

derive KateViewSpace from QWidget instead of QFrame

remove focus rect from view

Fix painting bug when scrolling while floating widgets are shown

allow empty view spaces

cleanup of ViewManager and ViewSpace logic (1, 2, 3,

extend ConfigInterface: icon-border-color, folding-marker-color, line-number-color, modification-markers

Skanlite: bug finding in framworksintegration module, fix focus

status bar: make spaces and tabs configurable

use popup for split actions in view space bar

show short cut in tool tip (cool one!)

remove KTE::View::informationMessage() in favour of the MessageInterface

January, 23th:

Kate, KWrite: show modification asterisk in title bar

status bar: polishing, cleanups

relicense file tree

Kate’s view manager: cleanup, more cleanup¸more, more

KWrite: reformat to kdelibs coding style

Kate: reformat to kdelibs coding style

set Document read-only on too long lines wrap

view space tab buttons: elide if too long text

view space tab bar: add action “Close other Views“

avoid flicker in Kate

Kate: in fullscreen mode, show a button in the corner of the menu bar to escape the fullscreen mode

KTextEditor: add actions jump to bracket and select to bracket

API documentation: split docs

kate view space tab bar: implement correct document switching

tab bar: attempt for better sizing, again

API documentation: update porting guide

better order of elements in status bar¸not bold

Kate: turn SessionConfigWigdet into .ui-file

http://commits.kde.org/kate/751431df3eaa48b96cd905c7fff11e28da0aad86" target=”_blank”>refactor Kate source code

attempt to make tab bar work as expected, another one

Python plugin updates

Kate View Space: allow to maximize a view space (cool!)

refactor Kate View Space a bit

small cleanup of view manager¸ again

performance: use QHash instead of QList for lookups

fix bug in bash.xml

loading message for file with too long lines: provide button to reload without limit

January, 24th:

January, 25th (departure day):

In the days after the sprint we did a lot more fine tuning and cleanups with respect to the changes we did during the sprint. So let’s have a look at Kate before the sprint:

Kate after the sprint:

So Kate changed in several ways:

New status bar: The status bar is in the KTextEditor interfaces now. That implies that KDevelop, Kile, and all other applications using the KTextEditor framework will have the same status bar.

It is now possible to change the indent settings (tabs, spaces) through the status bar. The same holds for the encoding and the current highlighting.

Double click on “Line: …, Column: …” switches into goto-mode (Ctrl+G).

Double click on INSERT changes to OVERWRITE mode, if not in vi input mode.

New Tab Bar in each view space: This tab bar shows the documents you are working on in a least recently used (LRU) fashion. It only shows as many tabs as fit into the tab bar, since we want to avoid horizonal scrolling (it does not scale). If not all documents fit into the tab bar, just use the Documents tab on the left, or the quick open icon in the view space tab bar bar on the right to to launch quick open.

Since we now have a tab bar, we can now show the splitting actions at a more prominent place on the very right. New features include to hide inactive views, which equals maximizing the current view space.

Yes, no worries, the tab bar can be disabled.

We’ll cover the workflow of the tab bar in a separate blog post.

…oh, and we have much more in the pipe (not related to the sprint) :-)

See also