first experience with Archlinux
So, I kinda messed up my desktop right after the upgrade to karmic, because I was too greedy for performance and converted my root file system to ext4. Well, that worked like a charm on my laptop, but it broke my desktop. This is in no way karmic’s fault, it’s my own misbehavior. Thankfully I could rescue most of my data.
Since I’d had to reinstall anyways, I decided to finally try out Archlinux. I find the rolling release mantra very intriguing. Together with a “simpler” packaging, namely no splitting between -dev
and -dbg
packages like debian/ubuntu does, this is destined to be a good environment for a developer. I always hated it to track down missing -dev
packages when compiling software. And don’t get me started on outdated software in repos… I just compiled kdelibs and the only missing build dependency was hspell, that I don’t need anyways. Under Jaunty I had to compile stuff from kdesupport to fulfill updated dependencies. And the list of not-found optional dependencies was huge, since I did not spent time to install all those -dev
packages by hand…
News from the Holy Kate Land
Since we now all know that Kate is holy (thanks to rms. By accident, he obviously confused Kate with emacs, though) let’s have a look at what’s going on. In the last months Kate development is quite active, so here is a quick update:
- new: on-the-fly spell checking thanks to Michel Ludwig. Highlights include e.g. spell checking in comments of source code or latex parts. Also, constructs like sch”on work in latex.
- extended scripting support in the command line, more on that later
- more and more mature vi input mode
- lots of bug fixing. quite impressive bug squashing by Pascal Létourneau for more than 4 months now
- lots of refactoring and code cleanups thanks to Bernhard!
- “Find in Files” appears by default again in the tool view,
- “File Browser” uses UrlNavigator, huge code cleanup
- convenience updates of syntax highlighting
- delayed highlighting of code folding ranges to prevent flickering on mouse move
- new command line commands: ‘toggle-header’ in the Open Header plugin. ‘grep’ and ‘find-in-files’
- haskell and lilypond indenter
- much, much more, see commits for details.
Thanks to all contributors involved in Kate development. Keep it up :)
Read MoreImproved PHP support in Kate
Improved HereDocs
screenshot of improved highlighting in PHP heredocs Read More
Followup on Kate’s on-the-fly spellchecking
As there was a lot of feedback in the last blog, I’ll answer some of the questions here.
Where can I get this patch?
The relevant subversion revisions are r992778, r992779, r992780, r992784.
Will it be available in 4.3, or only in 4.4?
Read More
As KDE 4.3 will be released end of the month, this feature will be available in KDE 4.4 and not earlier.
On-the-fly spellchecking in Kate
Christoph just added an awesome and long awaited feature: on-the-fly spellchecking. ‘Kate’s xml highlighting files now have an additional attribute in the itemData section: spellChecking=”true/false”. C++ comments and strings can be spellchecked now :) Same for all other languages such as Latex. Really big thanks to Michel Ludwig for the patch, good work! Screenshot for latex highlighting:
Read MoreKate Test Regression Suite
This blog is mainly about documenting the process how to run Kate Part’s test regression suite and probably not much use for other developers.
Step I: Setup the environment
- create the file ~/.testkateregression. The content of this file is a single line pointing to the folder of the checkout of the test regression suite data. For me this is
/home/dh/kde/tests/katetests/regression/ - Create the folder where you checkout the suite
mkdir /home/dh/kde/tests - Change to this folder
- Checkout the data:
svn co svn://anonsvn.kde.org/home/kde/trunk/tests/katetests
Now all the data is there for testing.
Read MoreKate linter plugin
Just a quicky: I wrote a little plugin for KTextEditor which supplies you with basic error checking when you save documents. Currently only PHP (via php <span class="re5">-l</span>
) and JavaScript (via JavaScript Lint) are supported.
Screenshots
Requirements
- usual tools for compiling C++, e.g. gcc.
- cmake
- Qt development packages, i.e. under Ubuntu:
<span class="kw2">sudo</span> <span class="kw2">aptitude</span> <span class="kw2">install</span> libqt4-dev
- KDE 4.2 with development packages for kdelibs and kdebase, i.e. under Ubuntu:
<span class="kw2">sudo</span> <span class="kw2">aptitude</span> <span class="kw2">install</span> kdebase-dev kdebase-workspace-dev kdelibs5-dev
. Note: You’ll need the experimental KDE 4.2 packages activated as of now, see for example the Kubuntu news on KDE 4.2 RC1 for hints. - proper setup of environment variables, read this techbase article for more information. the
.bashrc
linked there should be enough for most people - For PHP support: a PHP executable which supports the
-l
switch for linting - For JavaScript support: a JavaScript Lint executable, you could download and compile the sources for example.
Installing
Get the sources for the linter plugin from KDE SVN and compile it, using e.g. the functions supplied via the .bashrc
mentioned above:
System Load Viewer
So if you want to have the plasmoid for your KDE4.2 desktop, it should be straightforward to compile/install.
On the screenshot you can see the plasmoid in action. There are two instances, one on the panel and one on the desktop. The one on the left is the KDE3 one.
It’s worth to mention that the plasmoid already supports more featues than the KDE3 version. Features include: Read More
Kate Internals: The Undo/Redo System
The Kate Editor Component (also called KatePart) has its own undo/redo system. It did not change much since KDE2 and basically it is very simple. Meanwhile there are classes for undo/redo support in Qt as well. In fact both systems are very similar. This article focuses on Kate Part’s system.
Text Operations
First we have to take a look at what actions need to be saved. In Kate Part this basically comes down to
Read MoreAkademy 08: Kate Flashback
This Akademy’s Kate changes include
- fix: drag & drop of text
- code completion: only show group header if the group name is not empty
- reintroduction of buffer blocks in Kate’s document buffer (one buffer contains up to 4096 lines). The blocks build a linked list. Editing a 500 MB file kind of works now again. It’s still rather slow, though.
- more speedup in Kate’s document buffer
- Kate is using KEncodingProber instead of KEncodingDetector now
- generate internal version of KatePart automatically, so developers don’t have to adapt it manually each release
- python encoding detection plugin that warns if encoding is not correct while saving
- new plugin: Backtrace browser, mainly for developers
- find in files: several speed optimizations
- find in files: progress indicator while search is active
- find in files: redesign of workflow. Search happens with non-modal dialog and results are shown in toolviews.
- lots of vi mode changes
- lots of bugs closed, mainly old ones
- some real bug fixes…
- things I forgot