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