Users
Improved 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 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:
Do you understand the word HTML?
During the Kate developer meeting we also thought about simplifying KWrite and how to make the decision whether KWrite should be launched in full featured mode or in a stripped version. …well, and we found a really funny idea:
Note, that this would even work, the question would be rather annoying, though :) The solution right now is to always start KWrite in a simple mode. Mostly only actions are hidden in the menus (@distributors: kdelibs/kate/data/katepartsimpleui.rc), but you can also change c++ code at Kate part level, as there are some functions:
Kate Highlighting Power
Kate’s highlighting capabilities are amazing. If you want you can highlight really complex syntax, without having to hardcode rules in C++. As an example, we’ll take a look at how Lua comments can be realized:
- –[=[ starts a multiline comment (the ‘=’ chars are optional)
- ]=] ends the multiline comment
- the number of ‘=’ chars in ]=] must match the number of –[=[
That means: When the highlighting processor matches the end of a multiline comment, it has to know how many ‘=’ chars started the comment. Thanks to the concept of dynamic rules and contexts Kate is able to do that. The highlighting file looks like this. First comes the header
Read MoreExtending Kate by Scripts
We have seen how scripting basically works for indentation. It’s also possible to register commandline functions (The command line is bound to F7 by default, or invoke View > Switch to Command Line). We will consider a small example again: sort the selected text.
/ kate-script
Read More
name: unused
author: foo bar
license: LGPL
version: 1
kate-version: 3.0
functions: sorter
/
Kate: More on Indentation Scripting
My last blog was about the theory of how indentation works by using javascripts. Now we will look at a concrete example: a LISP-style indenter. (LISP indentation is easy, that’s why it’s a good example).
The rules:
- comments starting with ;;; always have indentation 0
- comments starting with ;; should be aligned with the next line
- comments starting with ; should only appear behind code, so they are simply ignored
- every ‘(‘ indents and every ‘)’ unindents
lisp.js looks like this:
Read MoreKate Scripting: Indentation
Kate Part in KDE4 supports the ECMAScript (JavaScript) language by using kjs. In KDE3 we had several hard-coded indenters in C++, the idea is to let scripts do all the indentation in KDE4.
How does it work? It is similar to vim: You simply create a script in the directory $KDEDIR/share/apps/katepart/jscript. An indentation script has to follow several rules:
- it must have a valid script header (the first line must include the string kate-script and indentation scripts must have the type: indentation)
- it must define some variables and functions
Whenever the user types a character, the flow in Kate Part works like this
Read More.kateconfig Files
Kate allows you to specify local document variables by setting the corresponding modelines. The hidden file .kateconfig provides exactly the same functionality, but for all files in the directory.
Enable the Feature
To use a .kateconfig file you first have to enable the feature by invoking Settings > Configure Kate. In the config page Open/Save you can find the option Search depth for config file, which defaults to Do not use a config file. Change the value to an appropriate number,
Read More