I have uploaded the source and executables for the 2.0 Beta 1 build of the Jedi Code Formatter.
Please try it, but don't rely on it for production use. Feedback is welcome at this stage. Please tell me if there is any compliable Delphi source that it cannot parse, or if it makes any formatting errors.
The executables are in the /output directory. They are
jcf.exe commandline program suitable for batch files and old school Unix aficionados
jcfGui.exe a GUI interface to formatting files
JcfIde7.bpl the Delphi IDE plug-in compiled for Delphi 7. Requires JCL and JCVL. If anyone can compile this for D5 and D6 I will gladly upload it to Sourceforge.
JcfNotepad.exe is a new gui for experimenting with source and layout. Input source is loaded/typed/pasted into the input text area, and the formatter output is generated to the output text area.
The intension for 2.0 is to match the level of functionality of the 0.6 series, less some of it's quirks due to shortcomings of the old underlying engine. There will of course be new bugs in this beta release. In fact, finding and fixing them is the point of it.
Code that uses {$IFDEF} may not parse successfully, as before. A later release may address this thorny issue.
Use is now made of Dunit to automate testing, comparing formatter output to expected output to track any deviations from a reference version.
Planned activities that must still happen before the 2.0 final release:
- Obfuscate/deobfuscate tests code that has been obfuscated and then deobfuscated should be compilable and correctly formatteed
- Me to reread the Official Borland Delphi style guide and see if I am adhering to it in all cases.
- Reflexive test The formatter should be able to obfuscate it's own source. This obfuscated source should compile and run. The resulting formatter should be able to clarify it's own source, this source should compile and run.
- Get bug reports, fix them.
Expect at least one more beta before 2.0.
There is quite an emphasis on testing and correctness as I feel it is important for this kind of program, and I am not under deadline pressure here :)
Have fun
Anthony
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I have uploaded the source and executables for the 2.0 Beta 1 build of the Jedi Code Formatter.
Please try it, but don't rely on it for production use. Feedback is welcome at this stage. Please tell me if there is any compliable Delphi source that it cannot parse, or if it makes any formatting errors.
The executables are in the /output directory. They are
jcf.exe commandline program suitable for batch files and old school Unix aficionados
jcfGui.exe a GUI interface to formatting files
JcfIde7.bpl the Delphi IDE plug-in compiled for Delphi 7. Requires JCL and JCVL. If anyone can compile this for D5 and D6 I will gladly upload it to Sourceforge.
JcfNotepad.exe is a new gui for experimenting with source and layout. Input source is loaded/typed/pasted into the input text area, and the formatter output is generated to the output text area.
The intension for 2.0 is to match the level of functionality of the 0.6 series, less some of it's quirks due to shortcomings of the old underlying engine. There will of course be new bugs in this beta release. In fact, finding and fixing them is the point of it.
Code that uses {$IFDEF} may not parse successfully, as before. A later release may address this thorny issue.
Use is now made of Dunit to automate testing, comparing formatter output to expected output to track any deviations from a reference version.
Planned activities that must still happen before the 2.0 final release:
- Obfuscate/deobfuscate tests code that has been obfuscated and then deobfuscated should be compilable and correctly formatteed
- Me to reread the Official Borland Delphi style guide and see if I am adhering to it in all cases.
- Reflexive test The formatter should be able to obfuscate it's own source. This obfuscated source should compile and run. The resulting formatter should be able to clarify it's own source, this source should compile and run.
- Get bug reports, fix them.
Expect at least one more beta before 2.0.
There is quite an emphasis on testing and correctness as I feel it is important for this kind of program, and I am not under deadline pressure here :)
Have fun
Anthony