gideon refactoring

Victor Roeder victor_roeder at gmx.de
Tue Mar 26 21:11:02 UTC 2002


Hi, Matthias!

> 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.

Hey! Very cool! We (at our university) are using this tool, too! And it is 
really great. AND: I thought that this IDE(A) could be very cool model for 
Gideon. I had a little talk about IDEA with Sandy, so that this situation is 
REALLY cool :-)!

> 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.

Three weeks? Hacking 24/7 :-)?

> 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.

Very COOL!

> 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

I will have a look ASAP!

> 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 ;)

I think I don't have to tell more about my agreement :-).
Really cool!

Bye,
	Victor




More information about the KDevelop-devel mailing list