On 28/07/2010 14:59, Bernd Kreuss wrote:
Bernd Kreuss wrote
The understanding of the codetools seems to be essential for doing any
non-trivial thing inside the IDE.
Code-exploration maybe.... There is lot of other stuff in the IDE...

This tool would help me build a tree starting with the current method,
listing all calls to other methods inside the method body as subnodes of
this node and when I click on one of the subnodes it will again list all
method calls inside the called method as subnodes of *this* node,
letting me grow this tree only into the branches that are of interest to
me. Whenever I click a node the editor window will immediately
open/scroll directly to the *implementation*
...
Nice Idea, certainly helpful.

It has limits too (that shouldn't mean not to do it...):

Simple concepts like a Visitor (or anything where the method is based on inheritance) simply can not be resolved => codetools will always jump to the base class.

procedure TOnlineState.SwitchStateToOffline( Connection: TBaseConnection);
begin
  Connection.SayGoodBye;
  Connection.GoOffline;
end;

The code can have many different Connection classes, each having it's own SayGoodBye and GoOffline method. Only at runtime, only if you know the real class, only then you can know where the code will go...

On the other hand, you can pick simplier tasks => there is a window that can show your jump history => so you don't need all windows open. That List is very basic => it could get many improvements (for example showing not only the line of a history point but also the procedure in which the line is (ok that is codetools, but less of it)...

I guess you probably rather go for your solution, and yours is better => but I just wanted to make an example, that the amount of "learning existing ide" and "which parts to learn" depends on the task you choose.

Martin


--
_______________________________________________
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus

Reply via email to