Create_Help.bat
, Create_HtmlHelp.bat
, etc. no longer fail because of missing include files.@link(MyEnumItem)
.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>
.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.dispid
” directives followed by integer constants. Bug reported by Chris Eyre <chris@chris-eyre.demon.co.uk>.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.'windows-1250
' as the default character set (courtesy of Matthew Barucha <mati@nowydwor.k.pl> and Czarek <smoog@poczta.gazeta.pl>).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.{$R+}
, {$B-}
, etc.{$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.TDIPasDoc
component with GUI applications.TDIPasDoc
component GUI example.register
” and “safecall
” calling conventions were not recognized for procedures and functions.external
” and “name
” directives, especially when followed by string constants. Reported by Alexander Muylaert <alexander.muylaert@etc.be>.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>.(* … *)
comments was sometimes overlooked.{$IFDEF Undefined} !!! Compiler Test Error !!! {$ENDIF}
.OutputFolder
was not explicitly specified, TDIPasDoc
complained by raising an exception. Changed this to using the current directory instead.ExcludePrivate
property and the -P
command line switch in favor of the more powerful new VisibleClassMembers
property (see above).TDIPasDoc
now descends from TComponent
. 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 the TDIPasDoc
properties (which can also be done in the Object Inspector) and call the TDIPasDoc.Execute
method.ShortString
s with AnsiString
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.@ClassHierarchy
. Thanks to Chris Eyre <chris@chris-eyre.demon.co.uk> for the suggestion and the initial implementation from which I expanded the code.DIPasDoc_Languages.pas
if your language needs an update, too!{$IFNDEF}
compiler directive could still confuse the build-in Pascal parser to skip code which it should not.$J
) was not checked in the project's Options / Compiler tab. Fixed this by changing all variables to use the var
instead of const
keyword. Thanks to Gasper Kozak <gasper.kozak@email.si> for sharing his confusion about this.Objects.pas
.Starting from Version 0.8.0, rjPasDoc changed its name to DIPasDoc.
nil
.-S<FileName>
switch) may contain wildcards (*?
).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.-Lru1251
, -Lru866
, and -LruKOI8
for Russian output.-Ldk
for Danish output.-Lit
.-Lsk
for Slowak output.-Lse
.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.{$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 in SkipUntilElseOrEndif
(Scanning.pas)
for details.@code( … )
was limited to the length of a ShortStiring (255 Chars at most). Replacing this by an AnsiString removed this restriction.-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.-T<TITLE>
comand line option allows to set the title for both plain HTML and Htmlhelp output.-N<Name>
option for setting a help projects name. rjPasDoc will name *.css
files and the HtmlHelp project according to this switch.-C<FILE>
switch to allow customized HtmlHelp contents files. See Usage for details.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.-k
option (keep formatting). It did not show an effect anyway.DispInterface
types are now properly parsed as CIO (Classes, Interfaces, Objects).}
. Example: {$DEFINE MyDefine }
(notice the space after MyDefine
) is now treated like {$DEFINE MyDefine}
(without the space).property Color;
). Where a colon was wrongly inserted into the docs before, it is now a semicolon.objects.pas
(suggested by Wim van der Vegt <wvd_vegt@knoware.nl>).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.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.@Created()
and @LastMod()
.@@
(literal @) to report a warning.We have fixed some bugs of the original version, corrected some of its functionality and added a few new features:
objects.pas
from FreePascal sources.@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 as code
.@True
and @False
insert True / False formatted as code
.