Project JEDI Knowledgebase Article (original) (raw)

Nicole Boivin�s Proposal for a Project JEDI Software Engineering Tool Suite Project got me interested in the tools available for Delphi and in a few odd minutes I have looked around and tried a few out.

FreeVCS

This is a Freeware software version control system by Thomas Hensle The version numbers are fairly complex, but I seem to have server version 1.09 and client (Delphi Add On) version 2.2.1.

FreeVCS was donated to Project JEDI in 2002 and is actively in development now as JEDI VCS under the administration of Thomas Huber. -- Ed.

I would put this at the top of my list of must have Delphi stuff.� I have been using this product since I first read about it in Nicole�s Jedi documents.� I have not tried it across the network.� It just lives on my personal machine at work and at home.� I have also limited my experiments to Delphi 5 so far.� FreeVCS works great.

I knew what version control software was before I downloaded FreeVCS but I had never used any.� And I hadn�t gotten a very high opinion of it from my fellows who had been forced to use such.� They found the programs to be a pain and just checked every file out at the beginning of a project and maybe, if someone made them, checked them all back in at the end.� Using FreeVCS, I don�t understand what all the fuss was about.� This is very easy to use and it takes care of some jobs I was doing by hand.

For example, I used to try and keep a little history of the modifications to my units up at the top.�I was pretty good about keeping notes in the file I was mostly working in, but if I had changes in several files the notes never made it into everyone of them.� FreeVCS keeps track of that and prompts me when I check the file in.

In the past I have occasionally broken programs while working on them.� I have code saved that won�t compile and I have no idea what I did to it.� Getting interrupted late on Friday afternoon is a great cause of this problem.� Since I have been working with FreeVCS I haven�t made one of those bone head mistakes.� So I can�t prove that FreeVCS would let me back out of it gracefully.� However, the capability does seem to be there.� I did have one little interruption where I wasn�t sure what I had been doing when I came back.� The FreeVCS delta display made it easy to see where I had been making changes.

Are there any weaknesses?�Well, I like to enter my history comments after I make the changes.� FreeVCS seems to insist on displaying the dialog box when I check the file out as well as when I check it in.� You are supposed to be able to turn that off, but I followed the instructions and it still does it.� The other little gotcha I have run across is that the FreeVCS server is really that, a TCP/IP server even when it runs local.� My home computer is on RoadRunner so its IP address changes every time the power goes off.� So I have to be careful to check the IP address when I start the server and cut and paste the current one into the connect to Server dialog in Delphi.

The web site has a new version showing that includes support for C++ Builder as well as Delphi.� The site also has a note about using FreeVCS with Delphi 6.� I haven�t tried either of those yet.

YAPP

Yapp stands for yet another pretty printer, but it doesn�t really reformat code for printing.� What it does do is convert source code to either rich text format for pasting into Word or HTML for pasting into web documents.�Yapp is provided courtesy of John Kaster and you can download it from CodeCentral at Borland.

I once wrote my own Pascal pretty print program to convert Turbo Pascal code to RTF and I kept it up to date through a couple of versions of Delphi and Word.� Mine worked, but this works better.� For one thing it handles C++ and Java as well as Pascal.�That is one thing I wish all the Borland helpers would do.� Borland does sell, and I do use, three different language products.� Shouldn�t the tools support all three?

Yapp works fine for me.�There is an option to automatically insert the resulting RTF into your open Word session.� I have that option tuned off because it doesn�t insert, it replaces everything in your open Word document.� I lost some good work that way.� If the option actually inserted as the Word Insert File... command, then I would probably use it.

I do have a couple of wishes for Yapp.� First, it doesn�t do Ada.� Ok, Borland doesn�t sell an Ada compiler, but yes I actually have gotten paid to write Ada code.� I currently use the Grasp editor to get pretty printed Ada.� Grasp, which is a continuing computer science project from Auburn University (http://www.eng.auburn.edu/grasp), is an editor that handles Ada, C++, and Java.�It can export RTF but the big deal about Grasp is that it can draw a code structure diagram alongside the code in the editor window.� The CSD is a great idea and I wish all the editors in the world did it.� Naturally it would be nice if Yapp did that too.

CodeRush

Eagle Software, Inc. (www.eagle-software.com) sells CodeRush as an add on to Delphi that takes the already pretty good Delphi editor and gives it even more power.�Maybe too much power.� I have had CodeRush 5 standard installed for months now and I suspect I am only using a tiny fraction of its true power.

CodeRush does several things I like.� First it auto-magically keeps track of the lines I have changed in this editing session.�It is sort of like having the FreeVCS diff up all the time.� It lets me stick real bookmarks with names and cute icons in the code.� Those help some in finding my way around.� It lets me comment out blocks of code by inserting or removing leading //�s rather than using (* *) surrounds.� It keeps track of mismatched parentheses.� I like these features and can use them.

CodeRush also has a macro language and thousands of predefined macros.� Maybe millions of predefined macros.� This is where I get overwhelmed.� The macros are not set up exactly the way I want them.� Too many spaces here, the wrong kind of comment marker there.� With the book in hand I did manage to define a couple of my own macros and edit some of the others.� I haven�t had time to edit all the macros I might want to use, and with them not edited I don�t use them.� None of this is a criticism of CodeRush, it�s just a lot of product.� I suspect if I was hacking Delphi full time I would like it more.

CodeRush runs fairly well, but it is not as solid as Delphi itself.� The popup right mouse menu is noticeably slower to pop up with CodeRush installed.� I occasionally get odd Interface not supported errors when I start Delphi.� The error dialog pops up, I click on it, and nothing bad happens.�Sometimes I get protection faults when I stop Delphi and Windows warns me it is halting the task, which is fine because I am done anyway.

For all the things I think CodeRush can do that I don�t know how to use yet, there is one thing I really wish it would do that it can�t.� It can�t check the spelling in my comments.� This becomes particularly important with Doc4Delphi (see below), so I keep Word up while I�m coding and cut and paste comments in and out, sometimes, when I think about it.� There are some limitations in Word too.� It doesn�t know that ThisIsFourWords or This_Is_Four_Words is really four fine words, all of them spelled correctly.� It puts the red wiggle under the whole thing.

Doc4Delphi

This is a Delphi version of JavaDoc provided to the world by User Driven Software, Ltd. (www.udsl.com).� You can download the Beta test version from the CodeCentral at Borland.� I have only recently spent some time learning Java so javaDoc was new to me.� Oh, what a wonderful idea, I thought, I wonder if anyone has built anything like that for Delphi?� And here it is.�

Doc4Delphi produces HTML documentation by reading your source code.� It can get the basic structure with no special help from you.�However, if you want real helpful documents you do have to insert HTML into comments in the code.� Which of course is why I want an editor that spell checks comments.

Doc4Delphi works fairly well.� The documents look very much like what javaDoc generates.� Maybe it uses the same cascading style sheets?� I have managed to break it on code with overloaded procedure names.�It doesn�t support the special @ constructs that javaDoc uses, but that isn�t a major problem for a first effort.

The interface for Doc4Delphi is rather cryptic although I have managed to make it work.� What I would prefer is just one menu item in the Delphi IDE that generates (or updates) the HTML files for the current project.� Of course that would require parsing the project file and walking the tree of uses.� Doc4Delphi doesn�t do that yet.� It is strictly a one Pascal file at a time critter.

One of the weaknesses I noticed in the javaDoc generated documents that ship with JBuilder is that they lack the many examples we Delphi folks are used to having in our on-line help.�It might be possible to use yapp in conjunction with Doc4Delphi to include syntax highlighted examples in your documents.� I tried it once and made a mess.� What would be really nice would be something like an @see construct that points to an example.� Then our Delphi classes would quickly outclass the Java classes because they would all have examples.

Conclusion

So I found four Delphi tools that I think are worthwhile.� What else is out there?� Does anyone want to add his or her discoveries to this list?