All posts by Christoph Cullmann

Dr.-Ing. Christoph Cullmann is a Senior Software Engineer at AbsInt Angewandte Informatik GmbH. His work is focused on static analysis of both binary and source programs and the WCET analysis of embedded systems. In his spare time, he works on the KDE project and maintains the Kate editor application and component.

kate-editor.org moving

In the last weeks, the homepage was sometimes down, as the server it is on is slowly dying. I just negotiate the transfer to a new one. That one will allow additional stuff to be run, guess we than even have nightly unit test runs (at least I hope so) ;)

Therefor it may be, that the site is not reachable, as DNS transfer might always take some days.

SmartRanges goodbye

Like told in previous posts here and there, KDE 4.6 won’t have a KatePart that supports the SmartInterface but instead KatePart moves on to the new and shiny (and much simpler) MovingInterface for the handling of automatic moving cursors and ranges.

Now the big cut is done: KatePart in /trunk no longer implements the SmartInterface. KDevelop already adopted the new interface in a development branch, lets see how that all evolves.

SVN commit 1162946 by cullmann:

Smart* handling is purged in kate part now for KDE 4.6.
It seems to work, at least I used it in that state now more than a day.
More stuff needs polishing still, like removing the duplicated edit history, but nice first start.


 M  +0 -7      CMakeLists.txt  
 M  +0 -1      completion/katecompletiondelegate.cpp  
 M  +13 -49    completion/katecompletionwidget.cpp  
 M  +5 -6      completion/katecompletionwidget.h  
 M  +6 -215    document/katedocument.cpp  
 M  +0 -64     document/katedocument.h  
 M  +1 -5      render/katerenderer.cpp  
 M  +0 -191    render/katerenderrange.cpp  
 M  +1 -25     render/katerenderrange.h  
 D             smart (directory)  
 M  +0 -2      tests/completion_test.cpp  
 M  +0 -81     view/kateview.cpp  
 M  +0 -17     view/kateview.h  
 M  +0 -1      view/kateviewhelpers.cpp  
 M  +7 -184    view/kateviewinternal.cpp  
 M  +1 -20     view/kateviewinternal.h  

KDE 4.5 is approaching, thanks to all Kate contributors

KDE 4.5 will be released in the next days with the most polished Kate/KWrite and KatePart during the KDE 4.x series.

A lot of work went into fixing bugs and cleaning up old code for this release. Many important aspects where redone, just to enumerate a few:

  • encoding detection & handling
  • the text buffer
  • the undo/redo system (thanks Bernhard)
  • search/replace (thanks again Bernhard)
  • handling cursors and ranges
  • improved spell checking (thanks Michel)
  • improved indentation (thanks Milian)
  • speed improvements (Milian too)
  • better JS scripting (Dominik)
  • porting of KDevelop to new interfaces (David Nolden)

It will be the most unit-tested release of KatePart ever I guess, but still a long way to go until we have a good test coverage. (we just scratch the surface)

Many thanks to the people contributing to this release (not only to the ones named above or below!), without that much helping hands, never such an amount of cool stuff would have happened ;)

I guess one of the real kickoffs was the great Kate/KDevelop sprint in Berlin, handled by Milian and sponsored by the e.V., thanks a lot!

For the next release, with KDE 4.6, already new cool stuff is in production:

If you think, you can help us, just join us and make Kate for KDE 4.6 even more awesome.

MovingRanges moving on ;)

As with any new code, during adoption bottlenecks show up.

For example the rendering of text lines with many ranges inside was quiet slow. This is now partly addressed by Milian Wolff, thanks a lot.

An other bottleneck was the assumption, that it is fast enough to hash the ranges just by their block and iterate over all of them to search the ranges matching a specific line. This does scale well enough for KatePart itself, but KDevelop creates multi-thousand ranges for small documents. To improve this, an internal special mapping was implemented by David Nolden for ranges which don’t span more than one line. For them an efficient line => range mapping is easy and not to costly.

If both changes are tested a bit more, they can be backported in time for KDE 4.5, which will allow a good usability of KatePart for KDevelop once again after the rewrite, given other bugs are fixed.