gideon refactoring

Matthias Hölzer-Klüpfel mhk at kde.org
Tue Mar 26 20:36:02 UTC 2002


Hi all,

as I have not been active on this list for a long time, I think I should start 
telling this story from the beginning:

I recently learned to know IntelliJ's IDEA, a very cool Java IDE (I have a new 
job, so I have to do stuff like Java more and more often...). Well, I fell in 
love with that tool.

Three weeks ago, I told Cornelius about IDEA's incredibly user interface, and 
he said something like "How long can it take to put something like that into 
gideon?" Well, the answer is: about three weeks.

So I took the rest of spare time I have left, and started to hack on gideon 
again. Stupid as I am, I did several things at once:

1) I completely refactored the core.cpp code. It is now contained in about 5 
small classes, each serving a single purpose.

2) I implemented a first version of a zoom-tab-widget like the ones used in 
IDEA and put them in place. (You have to have a look at IDEA, you will never 
be able to live without them).

3) I dropped the old editor interfaces, and made use of the new ones.

Well, I didn't completely follow through with 3, as I didn't want to start 
changing all the parts right now.

The result of this work can be obtained from:

http://verein.lst.de/~mhk/gideon/newframe.tgz

It is just a tarball that you can put beside the 'src' directory in gideon. Do 
the usual Makefile.cvs, configure, make stuff, and you get a new binary to 
play with. (You might have to disable some of the plugins in gideonrc, as 
some of the parts don't like the new structure yet.)

Now from the three steps I did, I think that 1) is smart if one intends to 
continue the gideon development, as it makes live a lot easier. (It isn't 
nearly finished, as there is a kludge in place to account for the KDevApi 
class, which should be refactored next. Rather see it as a first step).

Step 3 I guess has been agreed on by everyone here, so this will have to be 
applied to the parts sooner or later anyway.

This leaves 2), and this one will be controversial, I guess. But if you look 
at toplevel.cpp, you will see that changing the UI model is a matter of 
replacing 50 lines in a single class, so it is nothing really important.

So I would ask you to have a look at the tarball and tell me if you like it. I 
would love to replace the code in src with the new one, and go on doing a lot 
of necessary refactorings, like putting the new editor interfaces completely 
into use, refactoring the lib interfaces etc. etc. But I won't do something 
like that without consent from this list, not again ;)

Looking forward for feedback,
Matthias.




More information about the KDevelop-devel mailing list