Refactoring support

David Nolden zwabel at googlemail.com
Wed Feb 27 00:55:28 UTC 2008


On Wednesday 27 February 2008 01:29:36 Robert Knight wrote:
> Hello,
>
> Something that was mentioned as a long-term goal for KDevelop, at
> Akademy I believe, was refactoring support for C++ and possibly other
> languages.  This is the one aspect of an environment like Eclipse/JDT
> which is I greatly miss when dealing with KDE code.  I couldn't find
> any further documentation on the wiki about it though so I'm not sure
> if it has been discussed in detail yet.  This is something I'd be
> interested in helping to implement.
>
> I have been looking at the C++ language support (the DUChain) in
> KDevelop 4 and it seems to be pretty good shape apart from the lack of
> persistence - which I don't think is a problem for at least getting
> the basics of a refactoring framework working.
>
> Any thoughts about how to proceed on this?
>
> Regards,
> Robert.

Hi! The underlying C++ support is in a that good shape, that refactoring 
support is just around the corner. However a lot of testing and small-bug 
fixing will be needed before it can actually be reliable. Today I've tried 
for the first time enabling use-building(that means recording all places 
where a declaration is used) globally while parsing kdevelop, and the 
memory-usage and parsing-speed was not much higher than without.

We could implement a refactoring user-interface right now with just a few 
hundreds lines of code, but before it can actually be useful we definitely 
need DUChain persistence, because the parsing is slow, and the duchain needs 
too much memory to hold the whole thing in memory for a big project.

However duchain persistence is not that easy, because at least the C++ support 
part consists of many additional components that need to work together 
seamlessly. It's a too big project for me to start because of my limited 
time, so I try reducing my efforts to fixing bugs.

Kris Wong has written a mail to me last weekend that he wants to start working 
on duchain persistence, however I don't know how far he's gotten.

Btw. what exactly do you expect a "refactoring framework" to do?

Greetings, David




More information about the KDevelop-devel mailing list