Category Archives: Developers

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 :)

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:

Kate 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

  1. 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/
  2. Create the folder where you checkout the suite
    mkdir /home/dh/kde/tests
  3. Change to this folder
  4. Checkout the data:
    svn co svn://anonsvn.kde.org/home/kde/trunk/tests/katetests

Now all the data is there for testing.

Step II: Run the test suite

  1. go to your build directory of kate (e.g. kdelibs/build/kate/tests/
  2. run the complete suite:
    ./testkateregression.shell
  3. run specific tests, e.g. for the c indenter:
    ./testkateregression.shell -t indent/csmart

That’s it.

Kate 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 -l) 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: sudo aptitude install libqt4-dev
  • KDE 4.2 with development packages for kdelibs and kdebase, i.e. under Ubuntu: sudo aptitude install 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:

  1. # go to your development folder
  2. cs
  3. # checkout sources
  4. svn co svn://anonsvn.kde.org/home/kde/trunk/playground/devtools/kte_linter
  5. cd kte_linter
  6. # build base linter plugin
  7. cd linter
  8. cmakekde
  9. # build php linter plugin
  10. cd ../phplinter
  11. cmakekde
  12. # build javascript linter plugin
  13. cd ../jslinter
  14. cmakekde
  15. # update sycoca
  16. kbuildsycoca4
  17. # start editor and select the plugins - happy coding!
  18. kwrite
Todo
  • Support for more languages

    If you know good linters drop me a note. But it would be even better if you could write your own linter plugin. It’s pretty easy, take a look at one of the existing plugins for a skeleton & documentation.

  • Right now each plugin returns a hardcoded list of highlighting-modes which it supports for linting. This should be made configurable so that custom highlighting modes are supported

  • make error messages more pretty

Happy coding!