Issue with KDevelop: Is it using different parsers in parallell for different puropuses?

Christoph Cullmann cullmann at absint.com
Wed Aug 16 06:48:55 UTC 2006


On Wednesday 16 August 2006 05:57, Hamish Rodda wrote:
> As has been discussed, it is not within the scope of katepart to provide
> advanced highlighting such as this.  You simply need to know all of that
> stuff about your build system etc. in order to perform the parsing.  Kate
> app could decide to use our parser, and if they decided to do that we could
> make it a shared library.  However I'd consider this unlikely, whenever it
> is raised on kwrite-devel to introduce a parser, the response is usually
> (and I believe correctly) 'use kdevelop'.
Yes ;=) I think the current way is the right one to go. You have enriched 
KatePart/KTextEditor with methods to allow external apps like KDevelop to 
customize the highlighting of the document.

The KatePart internal "parser" should really stay the stackmachine it is atm, 
it may get some more tuning for KDE 4, but since KDE 3.4/5 it is 
alreadystackmachine  really fast, compared to older incarnations. It gives 
enough power to the user to write hl's even for stuff like perl, which is 
complex, but still provides a xml-syntax format which is much easier to write 
than other known parser generator inputs like yacc.

For indentation: yes, first of all, we suck ;) I know this, Kate team works on 
this ;) The problem atm is, that unlike the highlighting, which are external 
xml file where we get many many many contributions by users, which is really 
great ;), the indenters are atm hardcoded in C++ in katepart, which makes the 
barrier to write own ones much too high. First we though about making C++ 
plugins for this, but again, this would be dead-hard for users, to setup a 
development environment for KDE stuff just to write indenters. In KDE 4 we 
will support indentation javascripts. Therefor we already integrage kjs. It 
will be as easy to write indenters as highlighting, just fill some stubs in 
a  .js file, move it to the right place and Kate will be able to use it. This 
is still in it's early stages, atm only one indentation script is in work, 
for C/C++, by Dominik. We are fighting with some speed problems, as kjs is 
not that blazing fast, and yes, you notice that even for the small scripts 
needed for indenation. Therefor we will provide a rich js API for 
document/view to allow to outsource many loops/calculations to the C++ core 
of the katepart (which will mean additional work, as more interface functions 
to come up with...) This indenters may use internal knowledge of the hl, too, 
but this is not there atm I guess...

cu
Christoph




More information about the KDevelop-devel mailing list