apps:pasdoc:history
Table of Contents
PasDoc: Version History
DIPasDoc 0.8.11 - released 3. July 2017
- Change the code so that
Create_Help.bat
,Create_HtmlHelp.bat
, etc. no longer fail because of missing include files.
DIPasDoc 0.8.10 - released 6. July 2006
- This is a compatibility update with DIContainers only.
DIPasDoc 0.8.9 - released 9. March 2006
New Features
- Added Simple Chinese (CP 936 / GB2312) translation received from Kots <firstrose@tom.com>.
Bugs Fixed
- Some HtmlHelp TOC items were not translated.
DIPasDoc 0.8.8 - released 1. March 2006
- compatibility update.
DIPasDoc 0.8.7 - released 14. January 2004
New Features
- Added full documentation of Enumeration Types, including their individual enumeration items, which can have their own documentation comment and can be referenced via
@link(MyEnumItem)
. - Added full declaration of Types to the documentation, including links to declaration identifiers.
- Added full declaration of Constants to the documentation, including links to declaration identifiers.
- Added a property
TDIPasDoc.OutputCharSet
which overwrites the language default output character set. Matthew Barucha <mati@nowydwor.k.pl> suggested this feature to create documentation for languages which use another code page than the Pascal source file(s). Its command line parameter is-P<OUTPUT CHARACTER SET>
.
Bugs Fixed
- The “
deprecated
” and “platform
” calling conventions introduced with Delphi 6 were not recognized for class members. Thanks to Adrian Meyer <ameyer (at) a4healthsystems.com> for the hint. - Corrected the handling of “
dispid
” directives followed by integer constants. Bug reported by Chris Eyre <chris@chris-eyre.demon.co.uk>. - Fixed parsing of calling conventions for variable function declarations.
- Allowed parsing the rare case of function declarations which don't end with a semicolon but are followed by
type
instead. Surprisingly, Delphi compilers don't report an error on such constructs, so they appear in code and we consider them legal as well. - Gerard Visent <gerard@zootec.ad> corrected and completed the French, Spanish, and Catalan language translations.
- For the Polish language, completed the translations and specified
'windows-1250
' as the default character set (courtesy of Matthew Barucha <mati@nowydwor.k.pl> and Czarek <smoog@poczta.gazeta.pl>). - Some memory leaks fixed.
DIPasDoc 0.8.6 - released 31. March 2003
New Features
- New property
VisibleClassMembers
controls the level of class member visibility which should be included in the documentation. The command line switch equivalent is-M<private|protected|public|published|automated><+|→
. Example:-Mprivate+
includes private members,-Mprotected-
excludes protected members from the documentation. - Named internal HTML links according to the item's names whenever possible to ease linking from external HTML files to the auto-generated documentation.
- Improved link resolution, including warnings issued for links that can not be resolved.
- Added recognition for single letter Switch Directives, i.e.
{$R+}
,{$B-}
, etc. - Slightly improved visibility resolution for members at the beginning of a class declaration which dont have a specified visibility. These are now documented as published if the
{$M+}
Switch Directive is defined; otherwise such members are documented as public. Published visibility is not yet applied to those classes which are derived from classes which are compiled in the{$M+}
state. - Henrique Meira <henrique@delphi-br.org> contributed an example project which demonstrates the basics of how to use the
TDIPasDoc
component with GUI applications. - Javier Francisco <javfranram@hotmail.com> contributed yet another, more sophisticated
TDIPasDoc
component GUI example.
Bugs Fixed
- The “
register
” and “safecall
” calling conventions were not recognized for procedures and functions. - Corrected the handling of “
external
” and “name
” directives, especially when followed by string constants. Reported by Alexander Muylaert <alexander.muylaert@etc.be>. - As Sergei Klochkov <sk_news@mail.ru> reported, multiple comma separated class fields were not documented at all except for the very first field.
- Removed “
on
” from the list of Pascal reserved keywords to avoid DIPasDoc throwing an error on class properties with the same name as suggested by Chris Eyre <chris@chris-eyre.demon.co.uk>. - No documentation text was assigned to comma separated variables except for the very first variable.
- The end of
(* … *)
comments was sometimes overlooked. - Detailed description were not fully written.
- Corrected some sorting issues.
- Nonsense characters wrapped by conditional compilation directives caused fatal parsing errors. Example:
{$IFDEF Undefined} !!! Compiler Test Error !!! {$ENDIF}
. - When
OutputFolder
was not explicitly specified,TDIPasDoc
complained by raising an exception. Changed this to using the current directory instead. - Non-link class ancestors were not properly documented. Thanks to Onno Broekmans <obroekma@angelfire.com> for insiting on a fix, which actually turned out quite simple.
- The HTML Help legend did not use the Legend translation, reported Juarez Rudsatz <juarez@correio.com>. Please check your language if it includes the correct translation for “Legend”. Thanks, Juarez, for also completing the Brazilian translation.
- Kristijan Smiljanic <kristijan@vicevi.net> updated the Bosnian Language translation.
Dropped Features
- Removed the
ExcludePrivate
property and the-P
command line switch in favor of the more powerful newVisibleClassMembers
property (see above).
DIPasDoc 0.8.5 - released 18. December 2002
New Features
TDIPasDoc
now descends fromTComponent
. This completely separates the documentation engine from the legacy console application and makes the engine available to third applications, console as well as GUI applications. Applications only needs to set theTDIPasDoc
properties (which can also be done in the Object Inspector) and call theTDIPasDoc.Execute
method.- DIContainers are now responsible for the underlying in memory storage of all parsed information. The new Class Hierarchy feature (see below) called for a flexible N-ary Tree implementation, which I found in my DIContainers library. Along the conversion way I also replaced all
ShortString
s withAnsiString
s. Now, with DIContainers applied throughout, DIPasDoc uses 10 (yes, ten!) times less memory and executes 3 times faster compared to the previous release. The advantage is most pronounced with huge projects consisting of many files. - Class Hierarchy added for a much better overview of all classes, interfaces and objects contained in a help project. Plain HTML output benefits most from this new feature. For HtmlHelp projects there is a new HhcContents command
@ClassHierarchy
. Thanks to Chris Eyre <chris@chris-eyre.demon.co.uk> for the suggestion and the initial implementation from which I expanded the code. - Chinese Big 5 translation thanks to Daniel Lin <danieltwpda@yahoo.com.tw>.
- Kristijan Smiljanic <kristijan@vicevi.net> translated DIPasDoc to Bosnian Language.
- Hendy Irawan“ <ceefour@gauldong.net> added translations for Indonesian and Javanese languages. He also suggested translation tokens for the “Generated by” and the “Generated on” messages. Please check the
DIPasDoc_Languages.pas
if your language needs an update, too! - First steps taken to convert the souce from the old Turbo Pascal Objects to the new Delphi Classes.
- Delphi 7 Support.
Bugs Fixed
- Duplicate class names (in different units) could lead to an exception when writing the HtmlHelp project.
- The
{$IFNDEF}
compiler directive could still confuse the build-in Pascal parser to skip code which it should not. - The ALT attribute of the protected visibility image erroneously produced a “Private” alternative text. Thanks to Guido Mies <gmies@gei-aachen.de> and Paul Urban <paulu@korbitec.com>, who both reported this copy & paste typo.
- The “automated” class sections were not parsed correctly, as Chris Eyre <chris@chris-eyre.demon.co.uk> reported.
- Very large projects could crash DIPasDoc with an “214 Collection overflow error”. Thanks to Ralf Grenzing <ralf.grenzing@gmx.de> for the hint after running DIPasDoc on a very big heap of files. The error was due to an array overrun and should no longer happen with DIContainers in use.
Dropped Features
- Temporarily dropped Kylix support. The goal is, however, to keep DIPasDoc Kylix compatible as soon as as I'v found the time and disk space to get Linux up and running. Contributions are welcome.
DIPasDoc 0.8.1 - released 10. June 2002
Bugs Fixed
- On compilation, Delphi reported an error if the “Assignable typed constants” compiler directive (
$J
) was not checked in the project's Options / Compiler tab. Fixed this by changing all variables to use thevar
instead ofconst
keyword. Thanks to Gasper Kozak <gasper.kozak@email.si> for sharing his confusion about this. - Removed unused code from
Objects.pas
.
DIPasDoc 0.8.0 - released 7. June 2002
Starting from Version 0.8.0, rjPasDoc changed its name to DIPasDoc.
New Features
- Kylix compatibility. DIPasDoc compiles with Kylix and runs under Linux. Thanks to Jan Holst Jensen <jhje@novonordisk.com> for having mastered this challenge.
- New DocComment: @inherited will cause DIPasDoc to search for an inherited method or property and insert its name with full link information into the documentation. This allows easy reference to inherited documentation like “See inherited @inherited” which will be replaced with “See inherited MyMethodPropertyName”.
- Fields of Classes and Objects also display the same visibility indicators as Methods and Properties.
- Improved readability to the Methods and Procedures summary. Also, parameters now show clickable links when available.
- New DocComment: @nil inserts the word “nil” formatted as code:
nil
. - File names read from a source file (
-S<FileName>
switch) may contain wildcards (*?
). - New internal design of language and translation handling: The
Languages.pas
unit contains all language and translation definitions and only this file needs to be modified to add new languages. Everything else is taken care of automatically, including the command line help. Also, if some language item is not included in the translation, the default (English) text will be used and no warning will be issued. If you speak one of DIPasDoc's languages, I would appreciate if you could check “your” language for typing errors and missing translations, using the English translation as a reference. Also, new translations are of course always welcome. - General support for character sets / codepages added if languages request so (as Russian does).
- Russian translation(s) added with support for codepages 1251, 866 and KOI-8. Thanks to Vitaly Kovalenko <v_l_kovalenko@alsy.by> for the initial CP 1251 translation and Alexander Lisnevsky <alisnevsky@yandex.ru> for some fixes and CP 866 and KOI-8 implementation. Added new language switches
-Lru1251
,-Lru866
, and-LruKOI8
for Russian output. - Danish translation courtesy of Martin Hansen <mh@geus.dk>. Added new language switch
-Ldk
for Danish output. - Italian translation submitted by Michele Bersini <michele.bersini@smartit.it>. The language switch is
-Lit
. - Slovak translation was kindly sent by Peter imkoviè <simkovic_jr@manal.sk>. Added new language switch
-Lsk
for Slowak output. - Translation into Swedish by Peter Thörnqvist <pt@timemetrics.se>. Invoke it by language switch
-Lse
.
Bugs Fixed
- An access violation occurred when the last items of the HtmlHelp index were duplicates. It also turned out that duplicate index names were sometimes suppressed. All this should now be fixed. Thanks to Danny Heijl <danny.heijl@cevi.be> for the initial report.
- Relaxed the parsing of semicolons after directives which follow procedures and functions (i.e.
overload
, etc.) which caused a parsing error if a semicolon did not not separate and terminate the directives. Thanks to Alexander Lisnevsky <alisnevsky@yandex.ru> showing me that the semicolons can be omitted. - Reworked the
{$ELSE}
bug which was unfortunately not properly fixed in version 0.6.22 and occurred again in a different scenario. The scanner did not properly skip nested{$DEFINE …}
conditional defines in conjunction with{$ELSE}
. Now everything should be fine. See comment inSkipUntilElseOrEndif
(Scanning.pas)
for details. - Documentation inside of
@code( … )
was limited to the length of a ShortStiring (255 Chars at most). Replacing this by an AnsiString removed this restriction. - Adjusted compiler defines to properly compile with Delphi 6.
- Multiple other bugs fixed including general stability issues.
rjPasDoc 0.7.0 - released 12. July 2001
New Features
- Automatic generation of MS HtmlHelp projects, including Contents and Index files. With the new output switch
-HtmlHelp
, rjPasDoc generates all files needed by MS HtmlHelp Compiler to create full fledged HtmlHelp projects directly from your sources (idea and first implementation thanks to Wim van der Vegt <wvd_vegt@knoware.nl>). HtmlHelp output is adjusted to the needs of that format and slightly differs from standard HTML output. To create the HtmlHelp file, simply open the project (*.hhp) in HtmlHelp Workshop and compile. rjPasDoc will try to find the MS HtmlHelp compiler to compile the project. If this is not what you want, specify the-XHHC
option. For plain HTML output (default), use the new-OHtml
option. - Introduction of Cascading Style Sheets. The default style sheet is very basic. So you have all options to change it and extend it since rjPasDoc will not overwrite it once it is in the output path.
- New
-T<TITLE>
comand line option allows to set the title for both plain HTML and Htmlhelp output. - New
-N<Name>
option for setting a help projects name. rjPasDoc will name*.css
files and the HtmlHelp project according to this switch. - New
-C<FILE>
switch to allow customized HtmlHelp contents files. See Usage for details.
Gone Features
- Removed
Tex.pas
unit. So there is no LaTeX output any more. I did not need it, did not maintain it, and nobody else said they would. All LaTeX related options are gone as well. - Completely removed the
-k
option (keep formatting). It did not show an effect anyway.
Bugs Fixed
DispInterface
types are now properly parsed as CIO (Classes, Interfaces, Objects).- Compiler defines are now correctly recognized without trailing spaces in case there are any after the terminating
}
. Example:{$DEFINE MyDefine }
(notice the space afterMyDefine
) is now treated like{$DEFINE MyDefine}
(without the space). - Improved parsing of property overrides / redeclarations where only the property name is given (i.e.
property Color;
). Where a colon was wrongly inserted into the docs before, it is now a semicolon. - Corrected parsing of e-mail addresses with underscore (_) characters.
- Eliminated compiler warnings by removing unused code from
objects.pas
(suggested by Wim van der Vegt <wvd_vegt@knoware.nl>). - Corrected a small typo in the English language strings (thanks to Wim van der Vegt <wvd_vegt@knoware.nl> for spotting this).
rjPasDoc 0.6.22 - released 30. June 2001
New Features
- For better readability, the names of functions, procedures and methods now appear in bold font.
- rjPasDoc now issues a warning in case two different unit files have the same unit name, i.e.
unit MyUnitName
in their unit's clause. Since duplicate unit names are not allowed, the source file parsed last will be discarded and will not appear in the documentation.
Bugs Fixed
- Improved parser: Now rjPasDoc correctly recognizes forward class declarations (
class MyClass=class;
) and does no longer create empty documentation for those classes. Comments in front of the forward declaration are ignored, only those of the defining declaration are included into the documentation. Scanning.pas
: Fixed a bug which caused the scanner to loose track of{$ELSE}
conditional defines.- Corrected expansion of
@Created()
and@LastMod()
. - Fixed a bug which caused
@@
(literal @) to report a warning.
Version 0.6.21 - released 21. June 2001
We have fixed some bugs of the original version, corrected some of its functionality and added a few new features:
- Delphi compatibility: Included
objects.pas
from FreePascal sources. - Improved link generation.
- Proper recognition of “reintroduce”.
- All overloaded functions are now all listed, not just the first one.
- Duplicate class names no longer overwrite their corresponding HTML-files.
- Improved sorting of overviews.
- Class hierarchy.
- Removed conversion of HTML markup characters '<', '>', '&' and '”'. This allows to include HTML markup into the descriptions. To display these characters, precede them by an @, i.e. @<, @>, @&, @“.
- Reintegrated item exclusion (
@exclude
, without brackets). -htmlheader FILE
switch adds contents of file to all HTML output before the beginning of the page, just after the <BODY> tag.-htmlfooter FILE
switch adds contents of file to all HTML output after the end of the page, just before the </BODY> tag.@Name
inserts the name of the current item (no brackets required).@ClassName
inserts the name of the class of the current item, if there is one (no brackets required).@code(Text)
inserts the Text formatted ascode
.@True
and@False
insert True / False formatted ascode
.
apps/pasdoc/history.txt · Last modified: 2017/07/03 18:13 by 127.0.0.1