PasDoc's autodoc: Overview

Pasdoc Sources Overview

This is the documentation of the pasdoc sources, intended for pasdoc developers. For user's documentation see [https://pasdoc.github.io/].

Contents:

  1. Parsing
  2. Storing
  3. Generators
  4. Notes

General overview of the data flow in pasdoc:

Parsing

TTokenizer reads the source file, and converts it to a series of TTokens.

TScanner uses an underlying TTokenizer and also returns a series of TTokens, but in addition it understands and interprets $define, $ifdef and similar compiler directives. While TTokenizer simply returns all tokens, TScanner returns only those tokens that are not "$ifdefed out". E.g. if WIN32 is not defined then the TScanner returns only tokens "const LineEnding = #10;" for the following code:

const LineEnding = {$ifdef WIN32} #13#10 {$else} #10 {$endif};

Finally TParser uses an underlying TScanner and interprets the series of tokens, as e.g. "here I see a declaration of variable Foo, of type Integer". The Parser stores everything it reads in a TPasUnit instance.

If you ever wrote a program that interprets a text language, you will see that there is nothing special here: We have a lexer (TScanner, a simplified lexer in TTokenizer) and a parser (TParser).

It is important to note that pasdoc's parser is somewhat unusual, compared to "normal" parsers that are used e.g. in Pascal compilers.

  1. Pasdoc's parser is "cheating": It does not really understand everything it reads. E.g. the parameter section of a procedure declaration is parsed "blindly", by simply reading tokens up to a matching closing parenthesis. Such cheating obviously simplifies the parser implementation, but it also makes pasdoc's parser "dumber", see [https://pasdoc.github.io/ToDoParser].

  2. Pasdoc's parser collects the comments before each declaration, since these comments must be converted and placed in the final documentation (while "normal" parsers usually treat comments as a meaningless white-space).

Storing

The unit PasDoc_Items provides a comfortable class hierarchy to store a parsed Pascal source tree. TPasUnit is a "root class" (container-wise), it contains references to all other items within a unit, every item is some instance of TPasItem.

Generators

The last link in the chain are the generators. A generator uses the stored TPasItem tree and generates the final documentation. The base abstract class for a generator is TDocGenerator, this provides some general mechanisms used by all generators. From TDocGenerator descend more specialized generator classes, like TGenericHTMLDocGenerator, THTMLDocGenerator, TTexDocGenerator and others.

Notes

Note that the parser and the generators do not communicate with each other directly. The parser stores things in the TPasItem tree. Generators read and process the TPasItem tree.

So the parser cannot do any stupid thing like messing with some HTML-specific or LaTeX-specific issues of generating documentation. And the generator cannot deal with parsing Pascal source code.

Actually, this makes the implementation of the generator independent enough to be used in other cases, e.g. to generate an "introduction" file for the final documentation, like the one you are reading right now.

Generated by PasDoc 1.0.2.


PasDoc's autodoc: All Units

All Units

Name | Description
PasDoc_Aspell | Spellchecking using Aspell.
PasDoc_Base | Manages parsing and documentation generation: TPasDoc.
PasDoc_Gen | Base generator class TDocGenerator, to be specialized for specific output formats.
PasDoc_GenHtml | HTML documentation generator in TGenericHTMLDocGenerator.
PasDoc_GenHtmlHelp | Generate HtmlHelp output.
PasDoc_GenLatex | LaTeX documentation generator TTexDocGenerator.
PasDoc_GenPHP | PHP output generator.
PasDoc_GenSimpleXML | SimpleXML documentation generator TSimpleXMLDocGenerator.
PasDoc_HierarchyTree | a n-ary tree for PasItems — for use in Class Hierarchy
PasDoc_Items | All items that can appear within Pascal source code.
PasDoc_Languages | Language definitions and translations.
PasDoc_Main | Main procedure, that does the complete job of the command-line PasDoc.
PasDoc_OptionParser | Command line option parsing.
PasDoc_Parser | Parse Pascal code.
PasDoc_ProcessLineTalk | Talking with another process through pipes.
PasDoc_Reg | Registers the PasDoc components into the IDE.
PasDoc_Scanner | Scanner for Pascal, producing tokens and interpreting conditionals.
PasDoc_Serialize | Serializing / deserializing cached information.
PasDoc_SortSettings | Sorting settings types and names.
PasDoc_StreamUtils | A few stream utility functions.
PasDoc_StringPairVector | Simple container for a pair of strings.
PasDoc_StringVector | String vector based on TStringList.
PasDoc_TagManager | Collects information about available @-tags and can parse text with tags.
PasDoc_Tipue | Integrate Tipue search.
PasDoc_Tokenizer | Simple Pascal tokenizer.
PasDoc_Types | Basic types.
PasDoc_Utils | Utility functions.
PasDoc_Versions | Information about PasDoc and compilers version.


PasDoc's autodoc: PasDoc_Aspell

Unit PasDoc_Aspell

Description
Uses
Classes, Interfaces, Objects and Records
Types

Description

Spellchecking using Aspell.

Source: source/component/PasDoc_Aspell.pas (line 24).

Uses

  • SysUtils
  • Classes
  • Contnrs
  • Generics.Collections
  • PasDoc_ProcessLineTalk
  • PasDoc_Types

Overview

Classes, Interfaces, Objects and Records

Name | Description
Class TSpellingError | Single misspelling found by TAspellProcess.CheckString.
Class TAspellProcess | This is a class to interface with aspell through pipe.

Types

TSpellingErrorList = specialize TObjectList<TSpellingError>;

Description

Types

TSpellingErrorList = specialize TObjectList<TSpellingError>;

This item has no description.

Source: source/component/PasDoc_Aspell.pas (line 50).


PasDoc's autodoc: PasDoc_Aspell: Class TSpellingError

Class TSpellingError

Description
Hierarchy
Fields

Unit

PasDoc_Aspell

Declaration

type TSpellingError = class(TObject)

Description

Single misspelling found by TAspellProcess.CheckString. One instance is created per misspelled word.

Source: source/component/PasDoc_Aspell.pas (line 38).

Hierarchy

  • TObject
  • TSpellingError
Show Additional Members:

Overview

Fields

Public | Word: string;
Public | Offset: Integer;
Public | Suggestions: string;

Description

Fields

Public Word: string;

The misspelled word exactly as it appeared in the checked text.

Source: source/component/PasDoc_Aspell.pas (line 41).

Public Offset: Integer;

Offset of the misspelled word within the string that was passed to TAspellProcess.CheckString.

Source: source/component/PasDoc_Aspell.pas (line 44).

Public Suggestions: string;

Comma-separated list of replacement suggestions from Aspell, or empty string if Aspell offered none (the '#' response).

Source: source/component/PasDoc_Aspell.pas (line 47).


PasDoc's autodoc: PasDoc_Aspell: Class TAspellProcess

Class TAspellProcess

Description
Hierarchy
Methods
Properties

Unit

PasDoc_Aspell

Declaration

type TAspellProcess = class(TObject)

Description

This is a class to interface with aspell through pipe. It uses underlying TProcessLineTalk to execute and "talk" with aspell.

Source: source/component/PasDoc_Aspell.pas (line 55).

Hierarchy

  • TObject
  • TAspellProcess
Show Additional Members:

Overview

Methods

Public | constructor Create(const AAspellMode, AAspellLanguage: string; AOnMessage: TPasDocMessageEvent);
Public | destructor Destroy; override;
Public | procedure SetIgnoreWords(Value: TStringList);
Public | procedure CheckString(const AString: string; const AErrors: TSpellingErrorList);

Properties

Public | property AspellMode: string read FAspellMode;
Public | property AspellLanguage: string read FAspellLanguage;
Public | property OnMessage: TPasDocMessageEvent read FOnMessage write FOnMessage;

Description

Methods

Public constructor Create(const AAspellMode, AAspellLanguage: string; AOnMessage: TPasDocMessageEvent);

Constructor. Values for AspellMode and AspellLanguage are the same as for aspell --mode and --lang command-line options. You can pass here '', then we will not pass appropriate command-line option to aspell.

Source: source/component/PasDoc_Aspell.pas (line 70).

Public destructor Destroy; override;

This item has no description.

Source: source/component/PasDoc_Aspell.pas (line 72).

Public procedure SetIgnoreWords(Value: TStringList);

Tell Aspell to ignore all words in Value for subsequent CheckString calls.

Source: source/component/PasDoc_Aspell.pas (line 86).

Public procedure CheckString(const AString: string; const AErrors: TSpellingErrorList);

Spellchecks AString and returns result. Will create an array of TSpellingError objects, one entry for each misspelled word. Offsets of TSpellingErrors will be relative to AString.

Source: source/component/PasDoc_Aspell.pas (line 92).

Properties

Public property AspellMode: string read FAspellMode;

Aspell input mode (passed to aspell --mode command-line option) passed at construction. Empty string means the Aspell default.

Source: source/component/PasDoc_Aspell.pas (line 77).

Public property AspellLanguage: string read FAspellLanguage;

Language code for aspell (passed to aspell --lang command-line option) passed at construction. Empty string means the Aspell default.

Source: source/component/PasDoc_Aspell.pas (line 82).

Public property OnMessage: TPasDocMessageEvent read FOnMessage write FOnMessage;

Callback for diagnostic messages.

Source: source/component/PasDoc_Aspell.pas (line 95).


PasDoc's autodoc: PasDoc_Base

Unit PasDoc_Base

Description
Uses
Classes, Interfaces, Objects and Records
Constants

Description

Manages parsing and documentation generation: TPasDoc.

Note: Unit name must be PasDoc_Base instead of just PasDoc to not conflict with the name of base program name pasdoc.dpr.

Source: source/component/PasDoc_Base.pas (line 39).

Uses

  • SysUtils
  • Classes
  • Contnrs
  • PasDoc_Items
  • PasDoc_Languages
  • PasDoc_Gen
  • PasDoc_Types
  • PasDoc_StringVector
  • PasDoc_SortSettings
  • PasDoc_StreamUtils
  • PasDoc_TagManager

Overview

Classes, Interfaces, Objects and Records

Name | Description
Class TPasDoc | Manages parsing and documentation generation.

Constants

DEFAULT_VERBOSITY_LEVEL = 2;

Description

Constants

DEFAULT_VERBOSITY_LEVEL = 2;

This item has no description.

Source: source/component/PasDoc_Base.pas (line 59).

Authors

  • Johannes Berg <johannes@sipsolutions.de>
  • Ralf Junker (delphi@zeitungsjunge.de)
  • Erwin Scheuch-Heilig (ScheuchHeilig@t-online.de)
  • Marco Schmidt (marcoschmidt@geocities.com)
  • Michael van Canneyt (michael@tfdec1.fys.kuleuven.ac.be)
  • Michalis Kamburelis
  • Richard B. Winston <rbwinst@usgs.gov>
  • Arno Garrels <first name.name@nospamgmx.de>

Created

24 Sep 1999


PasDoc's autodoc: PasDoc_Base: Class TPasDoc

Class TPasDoc

Description
Hierarchy
Methods
Properties

Unit

PasDoc_Base

Declaration

type TPasDoc = class(TComponent)

Description

Manages parsing and documentation generation.

Source: source/component/PasDoc_Base.pas (line 63).

Hierarchy

  • TObject
  • TPersistent
  • TComponent
  • TPasDoc
Show Additional Members:

Overview

Methods

Protected | procedure RemoveExcludedItems(const c: TPasItems);
Protected | procedure Notification(AComponent: TComponent; Operation: TOperation); override;
Public | constructor Create(AOwner: TComponent); override;
Public | destructor Destroy; override;
Public | procedure AddSourceFileNames(const AFileNames: TStringList);
Public | procedure AddSourceFileNamesFromFile(const FileName: string; DashMeansStdin: boolean);
Public | procedure DoError(const AMessage: string; const AArguments: array of const; const AExitCode: Word);
Public | procedure DoMessage(const AVerbosity: Cardinal; const AMessageType: TPasDocMessageType; const AMessage: string; const AArguments: array of const);
Public | procedure GenMessage(const MessageType: TPasDocMessageType; const AMessage: string; const AVerbosity: Cardinal);
Public | procedure Execute;

Properties

Public | property Units: TPasUnits read FUnits;
Public | property Conclusion: TExternalItem read FConclusion;
Public | property Introduction: TExternalItem read FIntroduction;
Public | property AdditionalFiles: TExternalItemList read FAdditionalFiles;
Published | property DescriptionFileNames: TStringVector read FDescriptionFileNames write SetDescriptionFileNames;
Published | property Directives: TStringVector read FDirectives write SetDirectives;
Published | property IncludeDirectories: TStringVector read FIncludeDirectories write SetIncludeDirectories;
Published | property OnWarning: TPasDocMessageEvent read FOnMessage write FOnMessage stored false;
Published | property OnMessage: TPasDocMessageEvent read FOnMessage write FOnMessage;
Published | property ProjectName: string read FProjectName write FProjectName;
Published | property SourceFileNames: TStringVector read FSourceFileNames write SetSourceFileNames;
Published | property Title: string read FTitle write FTitle;
Published | property Verbosity: Cardinal read FVerbosity write FVerbosity default DEFAULT_VERBOSITY_LEVEL;
Published | property StarOnly: boolean read GetStarOnly write SetStarOnly stored false;
Published | property CommentMarkers: TStringList read FCommentMarkers write SetCommentMarkers;
Published | property IgnoreMarkers: TStringList read FIgnoreMarkers write SetIgnoreMarkers;
Published | property MarkerOptional: boolean read FMarkerOptional write FMarkerOptional default false;
Published | property IgnoreLeading: string read FIgnoreLeading write FIgnoreLeading;
Published | property Generator: TDocGenerator read FGenerator write SetGenerator;
Published | property ShowVisibilities: TVisibilities read FShowVisibilities write FShowVisibilities default DefaultVisibilities;
Published | property ToggleVisibilities: TVisibilities read FToggleVisibilities write FToggleVisibilities default [];
Published | property CacheDir: string read FCacheDir write FCacheDir;
Published | property SortSettings: TSortSettings read FSortSettings write FSortSettings default [];
Published | property IntroductionFileName: string read FIntroductionFileName write FIntroductionFileName;
Published | property ConclusionFileName: string read FConclusionFileName write FConclusionFileName;
Published | property AdditionalFilesNames: TStringList read FAdditionalFilesNames;
Published | property ImplicitVisibility: TImplicitVisibility read FImplicitVisibility write FImplicitVisibility default ivPublic;
Published | property HandleMacros: boolean read FHandleMacros write FHandleMacros default true;
Published | property AutoLink: boolean read FAutoLink write FAutoLink default false;
Published | property AutoBackComments: boolean read FAutoBackComments write FAutoBackComments default false;
Published | property InfoMergeType: TInfoMergeType read FInfoMergeType write FInfoMergeType default imtNone;

Description

Methods

Protected procedure RemoveExcludedItems(const c: TPasItems);

Searches the description of each TPasUnit item in the collection for an excluded tag. If one is found, the item is removed from the collection. If not, the fields, methods and properties collections are called with RemoveExcludedItems If the collection is empty after removal of all items, it is disposed of and the variable is set to nil.

Source: source/component/PasDoc_Base.pas (line 127).

Protected procedure Notification(AComponent: TComponent; Operation: TOperation); override;

This item has no description.

Source: source/component/PasDoc_Base.pas (line 129).

Public constructor Create(AOwner: TComponent); override;

Creates object and sets fields to default values.

Source: source/component/PasDoc_Base.pas (line 132).

Public destructor Destroy; override;

This item has no description.

Source: source/component/PasDoc_Base.pas (line 134).

Public procedure AddSourceFileNames(const AFileNames: TStringList);

Adds source filenames from a stringlist

Source: source/component/PasDoc_Base.pas (line 137).

Public procedure AddSourceFileNamesFromFile(const FileName: string; DashMeansStdin: boolean);

Loads names of Pascal unit source code files from a text file. Adds all file names to SourceFileNames. If DashMeansStdin and AFileName = '-' then it will load filenames from stdin.

Source: source/component/PasDoc_Base.pas (line 142).

Public procedure DoError(const AMessage: string; const AArguments: array of const; const AExitCode: Word);

Raises an exception.

Source: source/component/PasDoc_Base.pas (line 145).

Public procedure DoMessage(const AVerbosity: Cardinal; const AMessageType: TPasDocMessageType; const AMessage: string; const AArguments: array of const);

Forwards a message to the OnMessage event.

Source: source/component/PasDoc_Base.pas (line 148).

Public procedure GenMessage(const MessageType: TPasDocMessageType; const AMessage: string; const AVerbosity: Cardinal);

for Generator messages

Source: source/component/PasDoc_Base.pas (line 151).

Public procedure Execute;

Starts creating the documentation.

Source: source/component/PasDoc_Base.pas (line 154).

Properties

Public property Units: TPasUnits read FUnits;

After Execute has been called, Units holds the units that have been parsed.

Source: source/component/PasDoc_Base.pas (line 157).

Public property Conclusion: TExternalItem read FConclusion;

After Execute has been called, Conclusion holds the conclusion.

Source: source/component/PasDoc_Base.pas (line 159).

Public property Introduction: TExternalItem read FIntroduction;

After Execute has been called, Introduction holds the introduction.

Source: source/component/PasDoc_Base.pas (line 161).

Public property AdditionalFiles: TExternalItemList read FAdditionalFiles;

After Execute has been called, AdditionalFiles holds the additional external files.

Source: source/component/PasDoc_Base.pas (line 163).

Published property DescriptionFileNames: TStringVector read FDescriptionFileNames write SetDescriptionFileNames;

This item has no description.

Source: source/component/PasDoc_Base.pas (line 165).

Published property Directives: TStringVector read FDirectives write SetDirectives;

This item has no description.

Source: source/component/PasDoc_Base.pas (line 167).

Published property IncludeDirectories: TStringVector read FIncludeDirectories write SetIncludeDirectories;

This item has no description.

Source: source/component/PasDoc_Base.pas (line 168).

Published property OnWarning: TPasDocMessageEvent read FOnMessage write FOnMessage stored false;

This is deprecated name for OnMessage

Source: source/component/PasDoc_Base.pas (line 172).

Published property OnMessage: TPasDocMessageEvent read FOnMessage write FOnMessage;

This item has no description.

Source: source/component/PasDoc_Base.pas (line 174).

Published property ProjectName: string read FProjectName write FProjectName;

The name PasDoc shall give to this documentation project, also used to name some of the output files.

Source: source/component/PasDoc_Base.pas (line 178).

Published property SourceFileNames: TStringVector read FSourceFileNames write SetSourceFileNames;

This item has no description.

Source: source/component/PasDoc_Base.pas (line 179).

Published property Title: string read FTitle write FTitle;

This item has no description.

Source: source/component/PasDoc_Base.pas (line 181).

Published property Verbosity: Cardinal read FVerbosity write FVerbosity default DEFAULT_VERBOSITY_LEVEL;

This item has no description.

Source: source/component/PasDoc_Base.pas (line 182).

Published property StarOnly: boolean read GetStarOnly write SetStarOnly stored false;

This item has no description.

Source: source/component/PasDoc_Base.pas (line 184).

Published property CommentMarkers: TStringList read FCommentMarkers write SetCommentMarkers;

This item has no description.

Source: source/component/PasDoc_Base.pas (line 185).

Published property IgnoreMarkers: TStringList read FIgnoreMarkers write SetIgnoreMarkers;

This item has no description.

Source: source/component/PasDoc_Base.pas (line 186).

Published property MarkerOptional: boolean read FMarkerOptional write FMarkerOptional default false;

This item has no description.

Source: source/component/PasDoc_Base.pas (line 187).

Published property IgnoreLeading: string read FIgnoreLeading write FIgnoreLeading;

This item has no description.

Source: source/component/PasDoc_Base.pas (line 189).

Published property Generator: TDocGenerator read FGenerator write SetGenerator;

This item has no description.

Source: source/component/PasDoc_Base.pas (line 191).

Published property ShowVisibilities: TVisibilities read FShowVisibilities write FShowVisibilities default DefaultVisibilities;

This item has no description.

Source: source/component/PasDoc_Base.pas (line 192).

Published property ToggleVisibilities: TVisibilities read FToggleVisibilities write FToggleVisibilities default [];

Visibilities that should be included in HTML output but hidden by default, with checkboxes to toggle their display.

Source: source/component/PasDoc_Base.pas (line 197).

Published property CacheDir: string read FCacheDir write FCacheDir;

This item has no description.

Source: source/component/PasDoc_Base.pas (line 199).

Published property SortSettings: TSortSettings read FSortSettings write FSortSettings default [];

How items will be sorted. See --sort documentation.

This class sorts the items in TDocGenerator.Units before executing TDocGenerator.WriteDocumentation, so TDocGenerator usually doesn't need to worry about sorting anymore... Except if output rearranges/sums items, like HTML output does for InheritedMembers<>imNever, in which case they need to be sorted again.

Source: source/component/PasDoc_Base.pas (line 209).

Published property IntroductionFileName: string read FIntroductionFileName write FIntroductionFileName;

This item has no description.

Source: source/component/PasDoc_Base.pas (line 212).

Published property ConclusionFileName: string read FConclusionFileName write FConclusionFileName;

This item has no description.

Source: source/component/PasDoc_Base.pas (line 215).

Published property AdditionalFilesNames: TStringList read FAdditionalFilesNames;

This item has no description.

Source: source/component/PasDoc_Base.pas (line 218).

Published property ImplicitVisibility: TImplicitVisibility read FImplicitVisibility write FImplicitVisibility default ivPublic;

See command-line option --implicit-visibility documentation at --implicit-visibility documentation. This will be passed to parser instance.

Source: source/component/PasDoc_Base.pas (line 223).

Published property HandleMacros: boolean read FHandleMacros write FHandleMacros default true;

This item has no description.

Source: source/component/PasDoc_Base.pas (line 226).

Published property AutoLink: boolean read FAutoLink write FAutoLink default false;

This controls auto-linking, see --auto-link documentation.

Source: source/component/PasDoc_Base.pas (line 231).

Published property AutoBackComments: boolean read FAutoBackComments write FAutoBackComments default false;

This item has no description.

Source: source/component/PasDoc_Base.pas (line 233).

Published property InfoMergeType: TInfoMergeType read FInfoMergeType write FInfoMergeType default imtNone;

This item has no description.

Source: source/component/PasDoc_Base.pas (line 235).


PasDoc's autodoc: PasDoc_Gen

Unit PasDoc_Gen

Description
Uses
Classes, Interfaces, Objects and Records
Functions and Procedures
Types
Constants

Description

Base generator class TDocGenerator, to be specialized for specific output formats.

PasDoc_Gen contains the basic documentation generator object TDocGenerator. It is not sufficient by itself but the basis for all generators that produce documentation in a specific format like HTML or LaTex. They override TDocGenerator's virtual methods.

Source: source/component/PasDoc_Gen.pas (line 43).

Uses

  • SysUtils
  • Classes
  • Contnrs
  • Generics.Collections
  • PasDoc_Items
  • PasDoc_Languages
  • PasDoc_StringVector
  • PasDoc_HierarchyTree
  • PasDoc_Types
  • PasDoc_TagManager
  • PasDoc_Aspell
  • PasDoc_StreamUtils
  • PasDoc_StringPairVector
  • PasDoc_SortSettings

Overview

Classes, Interfaces, Objects and Records

Name | Description
Record TOverviewFileInfo |
Class TListItemData | Collected information about @xxxList item.
Class TListData | Collected information about @xxxList content.
Class TRowData | Collected information about @row (or @rowHead).
Class TTableData | Collected information about @table.
Class TDocGenerator | Base generator class, to be specialized for specific output formats.

Functions and Procedures

function StringToLinkLook(const S: String): TLinkLook;

Types

TOverviewFile = (...);
TCreatedOverviewFile = Low(TOverviewFile) .. ofIdentifiers;
TLinkLook = (...);
TLinkNotFoundAction = (...);
TLinkContext = (...);
TListType = (...);
TListItemSpacing = (...);

Constants

OverviewFilesInfo: array[TOverviewFile] of TOverviewFileInfo = ( (BaseFileName: 'AllUnits' ; TranslationId: trUnits ; TranslationHeadlineId: trHeadlineUnits ; NoItemsTranslationId: trNone ; ), (BaseFileName: 'ClassHierarchy'; TranslationId: trClassHierarchy ; TranslationHeadlineId: trClassHierarchy ; NoItemsTranslationId: trNoCIOs ; ), (BaseFileName: 'AllClasses' ; TranslationId: trCio ; TranslationHeadlineId: trHeadlineCio ; NoItemsTranslationId: trNoCIOs ; ), (BaseFileName: 'AllTypes' ; TranslationId: trTypes ; TranslationHeadlineId: trHeadlineTypes ; NoItemsTranslationId: trNoTypes ; ), (BaseFileName: 'AllVariables' ; TranslationId: trVariables ; TranslationHeadlineId: trHeadlineVariables ; NoItemsTranslationId: trNoVariables ; ), (BaseFileName: 'AllConstants' ; TranslationId: trConstants ; TranslationHeadlineId: trHeadlineConstants ; NoItemsTranslationId: trNoConstants ; ), (BaseFileName: 'AllFunctions' ; TranslationId: trFunctionsAndProcedures; TranslationHeadlineId: trHeadlineFunctionsAndProcedures; NoItemsTranslationId: trNoFunctions ; ), (BaseFileName: 'AllIdentifiers'; TranslationId: trIdentifiers ; TranslationHeadlineId: trHeadlineIdentifiers ; NoItemsTranslationId: trNoIdentifiers ; ), (BaseFileName: 'GVUses' ; TranslationId: trGvUses ; TranslationHeadlineId: trGvUses ; NoItemsTranslationId: trNone ; ), (BaseFileName: 'GVClasses' ; TranslationId: trGvClasses ; TranslationHeadlineId: trGvClasses ; NoItemsTranslationId: trNoCIOs ; ) );
LowCreatedOverviewFile = Low(TCreatedOverviewFile);
HighCreatedOverviewFile = High(TCreatedOverviewFile);

Description

Functions and Procedures

function StringToLinkLook(const S: String): TLinkLook;

This item has no description.

Source: source/component/PasDoc_Gen.pas (line 1091).

Types

TOverviewFile = (...);

Overview files that pasdoc generates for multiple-document-formats like HTML (see TGenericHTMLDocGenerator).

But not all of them are supposed to be generated by pasdoc, some must be generated by external programs by user, e.g. uses and class diagrams must be made by user using programs such as GraphViz. See type TCreatedOverviewFile for subrange type of TOverviewFile that specifies only overview files that are really supposed to be made by pasdoc.

Values
  • ofUnits
  • ofClassHierarchy
  • ofCios
  • ofTypes
  • ofVariables
  • ofConstants
  • ofFunctionsAndProcedures
  • ofIdentifiers
  • ofGraphVizUses
  • ofGraphVizClasses

Source: source/component/PasDoc_Gen.pas (line 72).

TCreatedOverviewFile = Low(TOverviewFile) .. ofIdentifiers;

This item has no description.

Source: source/component/PasDoc_Gen.pas (line 84).

TLinkLook = (...);

This item has no description.

Values
  • llDefault
  • llFull
  • llStripped

Source: source/component/PasDoc_Gen.pas (line 119).

TLinkNotFoundAction = (...);

This item has no description.

Values
  • lnfIgnore
  • lnfWarn
  • lnfWarnIfNotInternal

Source: source/component/PasDoc_Gen.pas (line 121).

TLinkContext = (...);

This is used by TDocGenerator.MakeItemLink

Values
  • lcCode: This means that link is inside some larger code piece, e.g. within FullDeclaration of some item etc. This means that we may be inside a context where used font has constant width.
  • lcNormal: This means that link is inside some "normal" description text.

Source: source/component/PasDoc_Gen.pas (line 124).

TListType = (...);

This item has no description.

Values
  • ltUnordered
  • ltOrdered
  • ltDefinition

Source: source/component/PasDoc_Gen.pas (line 133).

TListItemSpacing = (...);

This item has no description.

Values
  • lisCompact
  • lisParagraph

Source: source/component/PasDoc_Gen.pas (line 135).

Constants

OverviewFilesInfo: array[TOverviewFile] of TOverviewFileInfo = ( (BaseFileName: 'AllUnits' ; TranslationId: trUnits ; TranslationHeadlineId: trHeadlineUnits ; NoItemsTranslationId: trNone ; ), (BaseFileName: 'ClassHierarchy'; TranslationId: trClassHierarchy ; TranslationHeadlineId: trClassHierarchy ; NoItemsTranslationId: trNoCIOs ; ), (BaseFileName: 'AllClasses' ; TranslationId: trCio ; TranslationHeadlineId: trHeadlineCio ; NoItemsTranslationId: trNoCIOs ; ), (BaseFileName: 'AllTypes' ; TranslationId: trTypes ; TranslationHeadlineId: trHeadlineTypes ; NoItemsTranslationId: trNoTypes ; ), (BaseFileName: 'AllVariables' ; TranslationId: trVariables ; TranslationHeadlineId: trHeadlineVariables ; NoItemsTranslationId: trNoVariables ; ), (BaseFileName: 'AllConstants' ; TranslationId: trConstants ; TranslationHeadlineId: trHeadlineConstants ; NoItemsTranslationId: trNoConstants ; ), (BaseFileName: 'AllFunctions' ; TranslationId: trFunctionsAndProcedures; TranslationHeadlineId: trHeadlineFunctionsAndProcedures; NoItemsTranslationId: trNoFunctions ; ), (BaseFileName: 'AllIdentifiers'; TranslationId: trIdentifiers ; TranslationHeadlineId: trHeadlineIdentifiers ; NoItemsTranslationId: trNoIdentifiers ; ), (BaseFileName: 'GVUses' ; TranslationId: trGvUses ; TranslationHeadlineId: trGvUses ; NoItemsTranslationId: trNone ; ), (BaseFileName: 'GVClasses' ; TranslationId: trGvClasses ; TranslationHeadlineId: trGvClasses ; NoItemsTranslationId: trNoCIOs ; ) );

This item has no description.

Source: source/component/PasDoc_Gen.pas (line 94).

LowCreatedOverviewFile = Low(TCreatedOverviewFile);

Using High(TCreatedOverviewFile) or High(Overview) where Overview: TCreatedOverviewFile in PasDoc_GenHtml produces internal error in FPC 2.0.0. Same for Low(TCreatedOverviewFile).

This is submitted as FPC bug 4140, FPC bug 4140. Fixed in FPC 2.0.1 and FPC 2.1.1.

Source: source/component/PasDoc_Gen.pas (line 115).

HighCreatedOverviewFile = High(TCreatedOverviewFile);

This item has no description.

Source: source/component/PasDoc_Gen.pas (line 116).

Authors

  • Johannes Berg <johannes@sipsolutions.de>
  • Ralf Junker (delphi@zeitungsjunge.de)
  • Ivan Montes Velencoso (senbei@teleline.es)
  • Marco Schmidt (marcoschmidt@geocities.com)
  • Philippe Jean Dit Bailleul (jdb@abacom.com)
  • Rodrigo Urubatan Ferreira Jardim (rodrigo@netscape.net)
  • Grzegorz Skoczylas <gskoczylas@rekord.pl>
  • Pierre Woestyn <pwoestyn@users.sourceforge.net>
  • Michalis Kamburelis
  • Richard B. Winston <rbwinst@usgs.gov>
  • Ascanio Pressato
  • Arno Garrels <first name.name@nospamgmx.de>

Created

30 Aug 1998


PasDoc's autodoc: PasDoc_Gen: Record TOverviewFileInfo

Record TOverviewFileInfo

Description
Fields

Unit

PasDoc_Gen

Declaration

type TOverviewFileInfo = record

Description

This item has no description.

Source: source/component/PasDoc_Gen.pas (line 86).

Show Additional Members:

Overview

Fields

Public | BaseFileName: string;
Public | TranslationId: TTranslationId;
Public | TranslationHeadlineId: TTranslationId;
Public | NoItemsTranslationId: TTranslationId;

Description

Fields

Public BaseFileName: string;

This item has no description.

Source: source/component/PasDoc_Gen.pas (line 87).

Public TranslationId: TTranslationId;

This item has no description.

Source: source/component/PasDoc_Gen.pas (line 88).

Public TranslationHeadlineId: TTranslationId;

This item has no description.

Source: source/component/PasDoc_Gen.pas (line 89).

Public NoItemsTranslationId: TTranslationId;

This item has no description.

Source: source/component/PasDoc_Gen.pas (line 90).


PasDoc's autodoc: PasDoc_Gen: Class TListItemData

Class TListItemData

Description
Hierarchy
Methods
Properties

Unit

PasDoc_Gen

Declaration

type TListItemData = class(TObject)

Description

Collected information about @xxxList item.

Source: source/component/PasDoc_Gen.pas (line 138).

Hierarchy

  • TObject
  • TListItemData
Show Additional Members:

Overview

Methods

Public constructor Create(AItemLabel, AText: string; AIndex: Integer);

Properties

Public | property ItemLabel: string read FItemLabel;
Public | property Text: string read FText;
Public | property Index: Integer read FIndex;

Description

Methods

Public constructor Create(AItemLabel, AText: string; AIndex: Integer);

This item has no description.

Source: source/component/PasDoc_Gen.pas (line 144).

Properties

Public property ItemLabel: string read FItemLabel;

This is only for @definitionList: label for this list item, taken from @itemLabel. Already in the processed form. For other lists this will always be ''.

Source: source/component/PasDoc_Gen.pas (line 149).

Public property Text: string read FText;

This is content of this item, taken from @item. Already in the processed form, after TDocGenerator.ConvertString etc. Ready to be included in final documentation.

Source: source/component/PasDoc_Gen.pas (line 155).

Public property Index: Integer read FIndex;

Number of this item. This should be used for @orderedList. When you iterate over TListData.Items, you should be aware that Index of list item is not necessarily equal to the position of item inside TListData.Items. That's because of @itemSetNumber tag.

Normal list numbering (when no @itemSetNumber tag was used) starts from 1. Using @itemSetNumber user is able to change following item's Index.

For unordered and definition lists this is simpler: Index is always equal to the position within TListData.Items (because @itemSetNumber is not allowed there). And usually you will just ignore Index of items on unordered and definition lists.

Source: source/component/PasDoc_Gen.pas (line 172).


PasDoc's autodoc: PasDoc_Gen: Class TListData

Class TListData

Description
Hierarchy
Methods
Properties

Unit

PasDoc_Gen

Declaration

type TListData = class(specialize TObjectList<TListItemData>)

Description

Collected information about @xxxList content. Passed to TDocGenerator.FormatList.

Source: source/component/PasDoc_Gen.pas (line 177).

Hierarchy

  • TObject
  • TList
  • TObjectList
  • TListData
Show Additional Members:

Overview

Methods

Public constructor Create(const AOwnsObject: boolean);

Properties

Public | property ItemSpacing: TListItemSpacing read FItemSpacing;
Public | property ListType: TListType read FListType;

Description

Methods

Public constructor Create(const AOwnsObject: boolean);

This item has no description.

Source: source/component/PasDoc_Gen.pas (line 194).

Properties

Public property ItemSpacing: TListItemSpacing read FItemSpacing;

This item has no description.

Source: source/component/PasDoc_Gen.pas (line 192).

Public property ListType: TListType read FListType;

This item has no description.

Source: source/component/PasDoc_Gen.pas (line 193).


PasDoc's autodoc: PasDoc_Gen: Class TRowData

Class TRowData

Description
Hierarchy
Fields
Methods

Unit

PasDoc_Gen

Declaration

type TRowData = class(TObject)

Description

Collected information about @row (or @rowHead).

Source: source/component/PasDoc_Gen.pas (line 198).

Hierarchy

  • TObject
  • TRowData
Show Additional Members:

Overview

Fields

Public | Head: boolean;
Public | Cells: TStringList;

Methods

Public | constructor Create;
Public | destructor Destroy; override;

Description

Fields

Public Head: boolean;

True if this is for @rowHead tag.

Source: source/component/PasDoc_Gen.pas (line 201).

Public Cells: TStringList;

Each item on this list is already converted (with @-tags parsed, converted by ConvertString etc.) content of given cell tag.

Source: source/component/PasDoc_Gen.pas (line 206).

Methods

Public constructor Create;

This item has no description.

Source: source/component/PasDoc_Gen.pas (line 208).

Public destructor Destroy; override;

This item has no description.

Source: source/component/PasDoc_Gen.pas (line 209).


PasDoc's autodoc: PasDoc_Gen: Class TTableData

Class TTableData

Description
Hierarchy
Properties

Unit

PasDoc_Gen

Declaration

type TTableData = class(specialize TObjectList<TRowData>)

Description

Collected information about @table. Passed to TDocGenerator.FormatTable.

Source: source/component/PasDoc_Gen.pas (line 214).

Hierarchy

  • TObject
  • TList
  • TObjectList
  • TTableData
Show Additional Members:

Overview

Properties

Public | property MaxCellCount: Cardinal read FMaxCellCount;
Public | property MinCellCount: Cardinal read FMinCellCount;

Description

Properties

Public property MaxCellCount: Cardinal read FMaxCellCount;

Maximum Cells.Count, considering all rows.

Source: source/component/PasDoc_Gen.pas (line 221).

Public property MinCellCount: Cardinal read FMinCellCount;

Minimum Cells.Count, considering all rows.

Source: source/component/PasDoc_Gen.pas (line 224).


PasDoc's autodoc: PasDoc_Gen: Class TDocGenerator

Class TDocGenerator

Description
Hierarchy
Constants
Fields
Methods
Properties

Unit

PasDoc_Gen

Declaration

type TDocGenerator = class(TComponent)

Description

Base generator class, to be specialized for specific output formats. This abstract object will do the complete process of writing documentation files. It will be given the collection of units that was the result of the parsing process and a configuration object that was created from default values and program parameters. Depending on the output format, one or more files may be created (HTML will create several, Tex only one).

Source: source/component/PasDoc_Gen.pas (line 235).

Hierarchy

  • TObject
  • TPersistent
  • TComponent
  • TDocGenerator
Show Additional Members:

Overview

Constants

Public DefaultAutoAbstract = true;

Fields

Protected | FLanguage: TPasDocLanguages;
Protected | FClassHierarchy: TStringCardinalTree;
Protected | FUnits: TPasUnits;

Methods

Protected | procedure DoError(const AMessage: string; const AArguments: array of const; const AExitCode: Word);
Protected | procedure DoMessage(const AVerbosity: Cardinal; const MessageType: TPasDocMessageType; const AMessage: string; const AArguments: array of const);
Protected | procedure CreateClassHierarchy;
Protected | function MakeItemLink(const Item: TBaseItem; const LinkCaption: string; const LinkContext: TLinkContext): string; virtual;
Protected | procedure WriteCodeWithLinksCommon(const Item: TPasItem; const Code: string; WriteItemLink: boolean; const NameLinkBegin, NameLinkEnd: string);
Protected | function HasSourcePosition(const AItem: TPasItem; out ItemName, ItemFilenameInRoot, ItemUrl: string): boolean;
Protected | procedure CloseStream;
Protected | function CodeString(const s: string): string; virtual; abstract;
Protected | function ConvertString(const s: string): string; virtual; abstract;
Protected | function ConvertChar(c: char): string; virtual; abstract;
Protected | function CreateLink(const Item: TBaseItem): string; virtual;
Protected | function CreateStream(const AName: string): Boolean;
Protected | function ExtractEmailAddress(s: string; out S1, S2, EmailAddress: string): Boolean;
Protected | function FixEmailaddressWithoutMailTo(const PossibleEmailAddress: String): String;
Protected | function ExtractWebAddress(s: string; out S1, S2, WebAddress: string): Boolean;
Protected | function FindGlobal(const NameParts: TNameParts): TBaseItem;
Protected | function FindGlobalPasItem(const NameParts: TNameParts): TPasItem; overload;
Protected | function FindGlobalPasItem(const ItemName: String): TPasItem; overload;
Protected | function GetClassDirectiveName(const Directive: TClassDirective): string;
Protected | function GetCIOTypeName(const MyType: TCIOType): string;
Protected | procedure LoadDescriptionFile(n: string);
Protected | function SearchItem(s: string; const Item: TBaseItem; WarningIfNotSplittable: boolean): TBaseItem;
Protected | function SearchLink(s: string; const Item: TBaseItem; const LinkDisplay: string; const WarningIfLinkNotFound: TLinkNotFoundAction; out FoundItem: TBaseItem): string; overload;
Protected | function SearchLink(s: string; const Item: TBaseItem; const LinkDisplay: string; const WarningIfLinkNotFound: TLinkNotFoundAction): string; overload;
Protected | procedure StoreDescription(ItemName: string; var t: string);
Protected | procedure WriteConverted(const s: string; Newline: boolean); overload;
Protected | procedure WriteConverted(const s: string); overload;
Protected | procedure WriteConvertedLine(const s: string);
Protected | procedure WriteDirect(const t: string; Newline: boolean); overload;
Protected | procedure WriteDirect(const t: string); overload;
Protected | procedure WriteDirectLine(const t: string);
Protected | procedure WriteUnit(const HL: integer; const U: TPasUnit); virtual; abstract;
Protected | procedure WriteUnits(const HL: integer);
Protected | procedure WriteStartOfCode; virtual;
Protected | procedure WriteEndOfCode; virtual;
Protected | procedure WriteGVUses;
Protected | procedure WriteGVClasses;
Protected | procedure StartSpellChecking(const AMode: string);
Protected | procedure CheckString(const AString: string; const AErrors: TSpellingErrorList);
Protected | procedure EndSpellChecking;
Protected | function FormatPascalCode(const Line: string): string; virtual;
Protected | function FormatNormalCode(AString: string): string; virtual;
Protected | function FormatComment(AString: string): string; virtual;
Protected | function FormatHex(AString: string): string; virtual;
Protected | function FormatNumeric(AString: string): string; virtual;
Protected | function FormatFloat(AString: string): string; virtual;
Protected | function FormatString(AString: string): string; virtual;
Protected | function FormatKeyWord(AString: string): string; virtual;
Protected | function FormatCompilerComment(AString: string): string; virtual;
Protected | function Paragraph: string; virtual;
Protected | function ShortDash: string; virtual;
Protected | function EnDash: string; virtual;
Protected | function EmDash: string; virtual;
Protected | function HtmlString(const S: string): string; virtual;
Protected | function LatexString(const S: string): string; virtual;
Protected | function LineBreak: string; virtual;
Protected | function URLLink(const URL: string): string; overload; virtual;
Protected | function URLLink(const URL, LinkDisplay: string): string; overload; virtual;
Protected | procedure WriteExternal(const ExternalItem: TExternalItem; const Id: TTranslationID);
Protected | procedure WriteExternalCore(const ExternalItem: TExternalItem; const Id: TTranslationID); virtual; abstract;
Protected | procedure WriteConclusion;
Protected | procedure WriteIntroduction;
Protected | procedure WriteAdditionalFiles;
Protected | function FormatSection(HL: integer; const Anchor: string; const Caption: string): string; virtual; abstract;
Protected | function FormatAnchor(const Anchor: string): string; virtual; abstract;
Protected | function FormatBold(const Text: string): string; virtual;
Protected | function FormatItalic(const Text: string): string; virtual;
Protected | function FormatWarning(const Text: string): string; virtual;
Protected | function FormatNote(const Text: string): string; virtual;
Protected | function FormatPreformatted(const Text: string): string; virtual;
Protected | function FormatImage(FileNames: TStringList): string; virtual;
Protected | function FormatList(ListData: TListData): string; virtual; abstract;
Protected | function FormatTable(Table: TTableData): string; virtual; abstract;
Protected | function FormatTableOfContents(Sections: TStringPairVector): string; virtual;
Public | procedure BuildLinks;
Public | procedure ResolveTypeAliasesDescriptions;
Public | procedure ExpandDescriptions;
Public | function GetFileExtension: string; virtual; abstract;
Public | procedure LoadDescriptionFiles(const c: TStringVector);
Public | procedure WriteDocumentation; virtual;
Public | constructor Create(AOwner: TComponent); override;
Public | destructor Destroy; override;
Public | procedure ParseAbbreviationsFile(const AFileName: string);

Properties

Protected | property CurrentStream: TStream read FCurrentStream;
Public | property Units: TPasUnits read FUnits write FUnits;
Public | property Introduction: TExternalItem read FIntroduction write FIntroduction;
Public | property Conclusion: TExternalItem read FConclusion write FConclusion;
Public | property AdditionalFiles: TExternalItemList read FAdditionalFiles write FAdditionalFiles;
Public | property OnMessage: TPasDocMessageEvent read FOnMessage write FOnMessage;
Published | property Language: TLanguageID read GetLanguage write SetLanguage default DEFAULT_LANGUAGE;
Published | property ProjectName: string read FProjectName write FProjectName;
Published | property ExcludeGenerator: Boolean read FExcludeGenerator write FExcludeGenerator default false;
Published | property IncludeCreationTime: Boolean read FIncludeCreationTime write FIncludeCreationTime default false;
Published | property UseLowercaseKeywords: Boolean read FUseLowercaseKeywords write FUseLowercaseKeywords default false;
Published | property Title: string read FTitle write FTitle;
Published | property DestinationDirectory: string read FDestDir write SetDestDir;
Published | property OutputGraphVizUses: boolean read FGraphVizUses write FGraphVizUses default false;
Published | property OutputGraphVizClassHierarchy: boolean read FGraphVizClasses write FGraphVizClasses default false;
Published | property LinkGraphVizUses: string read FLinkGraphVizUses write FLinkGraphVizUses;
Published | property LinkGraphVizClasses: string read FLinkGraphVizClasses write FLinkGraphVizClasses;
Published | property Abbreviations: TStringList read FAbbreviations write SetAbbreviations;
Published | property CheckSpelling: boolean read FCheckSpelling write FCheckSpelling default false;
Published | property AspellLanguage: string read FAspellLanguage write FAspellLanguage;
Published | property SpellCheckIgnoreWords: TStringList read FSpellCheckIgnoreWords write SetSpellCheckIgnoreWords;
Published | property AutoAbstract: boolean read FAutoAbstract write FAutoAbstract default DefaultAutoAbstract;
Published | property LinkLook: TLinkLook read FLinkLook write FLinkLook default llDefault;
Published | property WriteUsesClause: boolean read FWriteUsesClause write FWriteUsesClause default false;
Published | property AutoLink: boolean read FAutoLink write FAutoLink default false;
Published | property AutoLinkExclude: TStringList read FAutoLinkExclude;
Published | property ExternalClassHierarchy: TStrings read FExternalClassHierarchy write SetExternalClassHierarchy stored StoredExternalClassHierarchy;
Published | property Markdown: boolean read FMarkdown write FMarkdown default false;
Published | property ShowSourcePosition: boolean read FShowSourcePosition write FShowSourcePosition default false;
Published | property SourceRoot: string read FSourceRoot write FSourceRoot;
Published | property SourceUrlPattern: string read FSourceUrlPattern write FSourceUrlPattern;
Published | property ToggleVisibilities: TVisibilities read FToggleVisibilities write FToggleVisibilities default [];
Published | property SortSettings: TSortSettings read FSortSettings write FSortSettings default [];

Description

Constants

Public DefaultAutoAbstract = true;

This item has no description.

Source: source/component/PasDoc_Gen.pas (line 911).

Fields

Protected FLanguage: TPasDocLanguages;

the (human) output language of the documentation file(s)

Source: source/component/PasDoc_Gen.pas (line 459).

Protected FClassHierarchy: TStringCardinalTree;

This item has no description.

Source: source/component/PasDoc_Gen.pas (line 461).

Protected FUnits: TPasUnits;

list of all units that were successfully parsed

Source: source/component/PasDoc_Gen.pas (line 511).

Methods

Protected procedure DoError(const AMessage: string; const AArguments: array of const; const AExitCode: Word);

This item has no description.

Source: source/component/PasDoc_Gen.pas (line 463).

Protected procedure DoMessage(const AVerbosity: Cardinal; const MessageType: TPasDocMessageType; const AMessage: string; const AArguments: array of const);

This item has no description.

Source: source/component/PasDoc_Gen.pas (line 465).

Protected procedure CreateClassHierarchy;

This item has no description.

Source: source/component/PasDoc_Gen.pas (line 474).

Protected function MakeItemLink(const Item: TBaseItem; const LinkCaption: string; const LinkContext: TLinkContext): string; virtual;

Return a link to item Item which will be displayed as LinkCaption. Returned string may be directly inserted inside output documentation. LinkCaption will be always converted using ConvertString before writing, so don't worry about doing this yourself when calling this method.

LinkContext may be used in some descendants to present the link differently, see TLinkContext for it's meaning.

If some output format doesn't support this feature, it can return simply ConvertString(LinkCaption). This is the default implementation of this method in this class.

Source: source/component/PasDoc_Gen.pas (line 487).

Protected procedure WriteCodeWithLinksCommon(const Item: TPasItem; const Code: string; WriteItemLink: boolean; const NameLinkBegin, NameLinkEnd: string);

This writes Code as a Pascal code. Links inside the code are resolved from Item. If WriteItemLink then Item.Name is made a link. Item.Name is printed between NameLinkBegin and NameLinkEnd.

Source: source/component/PasDoc_Gen.pas (line 495).

Protected function HasSourcePosition(const AItem: TPasItem; out ItemName, ItemFilenameInRoot, ItemUrl: string): boolean;

Utility to process information from TPasItem.SourceAbsoluteFileName and TPasItem.SourceLine and decide whether to show it. If True, then we should show it.

Parameters
ItemName
is the name to show.
ItemFilenameInRoot
is the filename, relative to SourceRoot, using always / on any system (even on Windows).
ItemUrl
is the URL to link to, if any (don't make a link if this is '').

Source: source/component/PasDoc_Gen.pas (line 507).

Protected procedure CloseStream;

If field CurrentStream is assigned, it is disposed and set to nil.

Source: source/component/PasDoc_Gen.pas (line 514).

Protected function CodeString(const s: string): string; virtual; abstract;

Return S formatted to look like code, e.g. <code>xxx</code> in HTML.

Given S is already in the final output format (with characters converted using ConvertString, @-tags expanded etc.).

Source: source/component/PasDoc_Gen.pas (line 521).

Protected function ConvertString(const s: string): string; virtual; abstract;

Converts for each character in S, thus assembling a String that is returned and can be written to the documentation file.

The @ character should not be converted, this will be done later on.

Source: source/component/PasDoc_Gen.pas (line 528).

Protected function ConvertChar(c: char): string; virtual; abstract;

Converts a character to its converted form. This method should always be called to add characters to a string.

@ should also be converted by this routine.

Source: source/component/PasDoc_Gen.pas (line 534).

Protected function CreateLink(const Item: TBaseItem): string; virtual;

This function is supposed to return a reference to an item, that is the name combined with some linking information like a hyperlink element in HTML or a page number in Tex.

Source: source/component/PasDoc_Gen.pas (line 539).

Protected function CreateStream(const AName: string): Boolean;

Open output stream in the destination directory. If CurrentStream still exists (<> nil), it is closed. Then, a new output stream in the destination directory is created and assigned to CurrentStream. The file is overwritten if exists.

Use this only for text files that you want to write using WriteXxx methods of this class (like WriteConverted). There's no point to use if for other files.

Returns True if creation was successful, False otherwise. When it returns False, the error message was already shown by DoMessage.

Source: source/component/PasDoc_Gen.pas (line 552).

Protected function ExtractEmailAddress(s: string; out S1, S2, EmailAddress: string): Boolean;

Searches for an email address in String S. Searches for first appearance of the @ character

Source: source/component/PasDoc_Gen.pas (line 556).

Protected function FixEmailaddressWithoutMailTo(const PossibleEmailAddress: String): String;

Searches for an email address in PossibleEmailAddress and appends mailto: if it's an email address and mailto: wasn't provided. Otherwise it simply returns the input.

Needed to link email addresses properly which doesn't start with mailto:

Source: source/component/PasDoc_Gen.pas (line 563).

Protected function ExtractWebAddress(s: string; out S1, S2, WebAddress: string): Boolean;

Searches for a web address in String S. It must either contain a http:// or start with www.

Source: source/component/PasDoc_Gen.pas (line 567).

Protected function FindGlobal(const NameParts: TNameParts): TBaseItem;

Searches all items in all units (given by field Units) for item with NameParts. Returns a pointer to the item on success, nil otherwise.

Source: source/component/PasDoc_Gen.pas (line 572).

Protected function FindGlobalPasItem(const NameParts: TNameParts): TPasItem; overload;

Find a Pascal item, searching global namespace. Returns Nil if not found.

Source: source/component/PasDoc_Gen.pas (line 576).

Protected function FindGlobalPasItem(const ItemName: String): TPasItem; overload;

Find a Pascal item, searching global namespace. Assumes that Name is only one component (not something with dots inside). Returns Nil if not found.

Source: source/component/PasDoc_Gen.pas (line 581).

Protected function GetClassDirectiveName(const Directive: TClassDirective): string;

GetClassDirectiveName returns ' abstract', or ' sealed' for classes that abstract or sealed respectively. GetClassDirectiveName is used by TTexDocGenerator and TGenericHTMLDocGenerator in writing the declaration of the class.

Source: source/component/PasDoc_Gen.pas (line 586).

Protected function GetCIOTypeName(const MyType: TCIOType): string;

GetCIOTypeName writes a translation of MyType based on the current language. However, 'record' and 'packed record' are not translated.

Source: source/component/PasDoc_Gen.pas (line 590).

Protected procedure LoadDescriptionFile(n: string);

Loads descriptions from file N and replaces or fills the corresponding comment sections of items.

Source: source/component/PasDoc_Gen.pas (line 594).

Protected function SearchItem(s: string; const Item: TBaseItem; WarningIfNotSplittable: boolean): TBaseItem;

Searches for item with name S.

If S is not splittable by SplitNameParts, returns nil. If WarningIfNotSplittable, additionally does DoMessage with appropriate warning.

Else (if S is "splittable"), seeks for S (first trying Item.FindName, if Item is not nil, then trying FindGlobal). Returns nil if not found.

Source: source/component/PasDoc_Gen.pas (line 604).

Protected function SearchLink(s: string; const Item: TBaseItem; const LinkDisplay: string; const WarningIfLinkNotFound: TLinkNotFoundAction; out FoundItem: TBaseItem): string; overload;

Searches for an item of name S which was linked in the description of Item. Starts search within item, then does a search on all items in all units using FindGlobal. Returns a link as String on success.

If S is not splittable by SplitNameParts, it always does DoMessage with appropriate warning and returns something like 'UNKNOWN' (no matter what is the value of WarningIfLinkNotFound). FoundItem will be set to nil in this case.

When item will not be found then:

  • if WarningIfLinkNotFound is true then it returns CodeString(ConvertString(S)) and makes DoMessage with appropriate warning.

  • else it returns '' (and does not do any DoMessage)

If LinkDisplay is not '', then it specifies explicite the display text for link. Else how exactly link does look like is controlled by LinkLook property.

Parameters
FoundItem
is the found item instance or nil if not found.

Source: source/component/PasDoc_Gen.pas (line 631).

Protected function SearchLink(s: string; const Item: TBaseItem; const LinkDisplay: string; const WarningIfLinkNotFound: TLinkNotFoundAction): string; overload;

Just like previous overloaded version, but this doesn't return FoundItem (in case you don't need it).

Source: source/component/PasDoc_Gen.pas (line 638).

Protected procedure StoreDescription(ItemName: string; var t: string);

This item has no description.

Source: source/component/PasDoc_Gen.pas (line 642).

Protected procedure WriteConverted(const s: string; Newline: boolean); overload;

Writes S to CurrentStream, converting it using ConvertString. Then optionally writes LineEnding.

Source: source/component/PasDoc_Gen.pas (line 646).

Protected procedure WriteConverted(const s: string); overload;

Writes S to CurrentStream, converting it using ConvertString. No LineEnding at the end.

Source: source/component/PasDoc_Gen.pas (line 650).

Protected procedure WriteConvertedLine(const s: string);

Writes S to CurrentStream, converting it using ConvertString. Then writes LineEnding.

Source: source/component/PasDoc_Gen.pas (line 654).

Protected procedure WriteDirect(const t: string; Newline: boolean); overload;

Simply writes T to CurrentStream, with optional LineEnding.

Source: source/component/PasDoc_Gen.pas (line 657).

Protected procedure WriteDirect(const t: string); overload;

Simply writes T to CurrentStream.

Source: source/component/PasDoc_Gen.pas (line 660).

Protected procedure WriteDirectLine(const t: string);

Simply writes T followed by LineEnding to CurrentStream.

Source: source/component/PasDoc_Gen.pas (line 663).

Protected procedure WriteUnit(const HL: integer; const U: TPasUnit); virtual; abstract;

Abstract method that writes all documentation for a single unit U to output, starting at heading level HL. Implementation must be provided by descendant objects and is dependent on output format.

Source: source/component/PasDoc_Gen.pas (line 669).

Protected procedure WriteUnits(const HL: integer);

Writes documentation for all units, calling WriteUnit for each unit.

Source: source/component/PasDoc_Gen.pas (line 674).

Protected procedure WriteStartOfCode; virtual;

This item has no description.

Source: source/component/PasDoc_Gen.pas (line 676).

Protected procedure WriteEndOfCode; virtual;

This item has no description.

Source: source/component/PasDoc_Gen.pas (line 678).

Protected procedure WriteGVUses;

output graphviz uses tree

Source: source/component/PasDoc_Gen.pas (line 681).

Protected procedure WriteGVClasses;

output graphviz class tree

Source: source/component/PasDoc_Gen.pas (line 683).

Protected procedure StartSpellChecking(const AMode: string);

starts the spell checker

Source: source/component/PasDoc_Gen.pas (line 686).

Protected procedure CheckString(const AString: string; const AErrors: TSpellingErrorList);

If CheckSpelling and spell checking was successfully started, this will run FAspellProcess.CheckString and will report all errors using DoMessage with mtWarning.

Otherwise this just clears AErrors, which means that no errors were found.

Source: source/component/PasDoc_Gen.pas (line 694).

Protected procedure EndSpellChecking;

closes the spellchecker

Source: source/component/PasDoc_Gen.pas (line 697).

Protected function FormatPascalCode(const Line: string): string; virtual;

FormatPascalCode will cause Line to be formatted in the way that Pascal code is formatted in Delphi. Note that given Line is taken directly from what user put inside

, it is not even processed by ConvertString. You should process it with ConvertString if you want.

Source: source/component/PasDoc_Gen.pas (line 704).

Protected
function FormatNormalCode(AString: string): string; virtual;

This will cause AString to be formatted in the way that normal Pascal statements (not keywords, strings, comments, etc.) look in Delphi.

Source: source/component/PasDoc_Gen.pas (line 709).

Protected
function FormatComment(AString: string): string; virtual;

FormatComment will cause AString to be formatted in the way that comments other than compiler directives are formatted in Delphi. See: FormatCompilerComment.

Source: source/component/PasDoc_Gen.pas (line 714).

Protected
function FormatHex(AString: string): string; virtual;

FormatHex will cause AString to be formatted in the way that Hex are formatted in Delphi.

Source: source/component/PasDoc_Gen.pas (line 718).

Protected
function FormatNumeric(AString: string): string; virtual;

FormatNumeric will cause AString to be formatted in the way that Numeric are formatted in Delphi.

Source: source/component/PasDoc_Gen.pas (line 722).

Protected
function FormatFloat(AString: string): string; virtual;

FormatFloat will cause AString to be formatted in the way that Float are formatted in Delphi.

Source: source/component/PasDoc_Gen.pas (line 726).

Protected
function FormatString(AString: string): string; virtual;

FormatString will cause AString to be formatted in the way that strings are formatted in Delphi.

Source: source/component/PasDoc_Gen.pas (line 730).

Protected
function FormatKeyWord(AString: string): string; virtual;

FormatKeyWord will cause AString to be formatted in the way that reserved words are formatted in Delphi.

Source: source/component/PasDoc_Gen.pas (line 734).

Protected
function FormatCompilerComment(AString: string): string; virtual;

FormatCompilerComment will cause AString to be formatted in the way that compiler directives are formatted in Delphi.

Source: source/component/PasDoc_Gen.pas (line 738).

Protected
function Paragraph: string; virtual;

This is paragraph marker in output documentation.

Default implementation in this class simply returns ' ' (one space).

Source: source/component/PasDoc_Gen.pas (line 744).

Protected
function ShortDash: string; virtual;

See TTagManager.ShortDash. Default implementation in this class returns '-'.

Source: source/component/PasDoc_Gen.pas (line 748).

Protected
function EnDash: string; virtual;

See TTagManager.EnDash. Default implementation in this class returns '--'.

Source: source/component/PasDoc_Gen.pas (line 752).

Protected
function EmDash: string; virtual;

See TTagManager.EmDash. Default implementation in this class returns '---'.

Source: source/component/PasDoc_Gen.pas (line 756).

Protected
function HtmlString(const S: string): string; virtual;

Process HTML content, like provided by the @html tag. Override this function to decide what to put in output on such thing.

Note that S is not processed in any way, even with ConvertString. So you're able to copy user's input inside @html() verbatim to the output.

The default implementation is this class simply discards it, i.e. returns always ''. Generators that know what to do with HTML can override this with simple "Result := S".

Source: source/component/PasDoc_Gen.pas (line 768).

Protected
function LatexString(const S: string): string; virtual;

Process LaTeX content, like provided by the @latex tag.

The default implementation is this class simply discards it, i.e. returns always ''. Generators that know what to do with raw LaTeX markup can override this with simple "Result := S".

Source: source/component/PasDoc_Gen.pas (line 775).

Protected
function LineBreak: string; virtual;

Markup that forces line break in given output format (e.g. '<br>' in html or '\\' in LaTeX).

It is used on
 tag (but may also be used on other occasions in the future).

In this class it returns '', because it's valid for an output generator to simply ignore
 tags if linebreaks can't be expressed in given output format.

Source: source/component/PasDoc_Gen.pas (line 786).

Protected
function URLLink(const URL: string): string; overload; virtual;

Markup to display URL in a description. E.g. HTML generator will want to wrap this in <a href="...">...</a>.

Note that passed here URL is not processed by ConvertString (because sometimes it could be undesirable). If you want you can process URL with ConvertString when overriding this method.

Default implementation in this class simply returns ConvertString(URL). This is good if your documentation format does not support anything like URL links.

Source: source/component/PasDoc_Gen.pas (line 800).

Protected
function URLLink(const URL, LinkDisplay: string): string; overload; virtual;

Text which will be shown for an URL tag.

URL is a link to a website or e-mail address. LinkDisplay is an optional parameter which will be used as the display name of the URL.

Source: source/component/PasDoc_Gen.pas (line 806).

Protected
procedure WriteExternal(const ExternalItem: TExternalItem; const Id: TTranslationID);

Write the introduction and conclusion of the project.

Source: source/component/PasDoc_Gen.pas (line 809).

Protected
procedure WriteExternalCore(const ExternalItem: TExternalItem; const Id: TTranslationID); virtual; abstract;

This is called from WriteExternal when ExternalItem.Title and ShortTitle are already set, message about generating appropriate item is printed etc. This should write ExternalItem, including ExternalItem.DetailedDescription, ExternalItem.Authors, ExternalItem.Created, ExternalItem.LastMod.

Source: source/component/PasDoc_Gen.pas (line 820).

Protected
procedure WriteConclusion;

Writes a conclusion for the project. See WriteExternal.

Source: source/component/PasDoc_Gen.pas (line 825).

Protected
procedure WriteIntroduction;

Writes an introduction for the project. See WriteExternal.

Source: source/component/PasDoc_Gen.pas (line 829).

Protected
procedure WriteAdditionalFiles;

Writes the other files for the project. See WriteExternal.

Source: source/component/PasDoc_Gen.pas (line 833).

Protected
function FormatSection(HL: integer; const Anchor: string; const Caption: string): string; virtual; abstract;

Writes a section heading and a link-anchor.

Source: source/component/PasDoc_Gen.pas (line 836).

Protected
function FormatAnchor(const Anchor: string): string; virtual; abstract;

Writes a link-anchor.

Source: source/component/PasDoc_Gen.pas (line 840).

Protected
function FormatBold(const Text: string): string; virtual;

Return Text formatted using bold font.

Given Text is already in the final output format (with characters converted using ConvertString, @-tags expanded etc.).

Implementation of this method in this class simply returns Result := Text. Output generators that can somehow express bold formatting (or at least emphasis of some text) should override this.

See also

FormatItalic

Return Text formatted using italic font.

Source: source/component/PasDoc_Gen.pas (line 853).

Protected
function FormatItalic(const Text: string): string; virtual;

Return Text formatted using italic font. Analogous to FormatBold.

Source: source/component/PasDoc_Gen.pas (line 857).

Protected
function FormatWarning(const Text: string): string; virtual;

Return Text using bold font by calling FormatBold(Text).

Source: source/component/PasDoc_Gen.pas (line 860).

Protected
function FormatNote(const Text: string): string; virtual;

Return Text using italic font by calling FormatItalic(Text).

Source: source/component/PasDoc_Gen.pas (line 863).

Protected
function FormatPreformatted(const Text: string): string; virtual;

Return Text preserving spaces and line breaks. Note that Text passed here is not yet converted with ConvertString. The implementation of this method in this class just returns ConvertString(Text).

Source: source/component/PasDoc_Gen.pas (line 869).

Protected
function FormatImage(FileNames: TStringList): string; virtual;

Return markup to show an image. FileNames is a list of possible filenames of the image. FileNames always contains at least one item (i.e. FileNames.Count >= 1), never contains empty lines (i.e. Trim(FileNames[I]) <> ''), and contains only absolute filenames.

E.g. HTML generator will want to choose the best format for HTML, then somehow copy the image from FileNames[Chosen] and wrap this in <img src="...">.

Implementation of this method in this class simply shows FileNames[0]. Output generators should override this.

Source: source/component/PasDoc_Gen.pas (line 883).

Protected
function FormatList(ListData: TListData): string; virtual; abstract;

Format a list from given ListData.

Source: source/component/PasDoc_Gen.pas (line 886).

Protected
function FormatTable(Table: TTableData): string; virtual; abstract;

Return appropriate content for given Table. It's guaranteed that the Table passed here will have at least one row and in each row there will be at least one cell, so you don't have to check it within descendants.

Source: source/component/PasDoc_Gen.pas (line 892).

Protected
function FormatTableOfContents(Sections: TStringPairVector): string; virtual;

Override this if you want to insert something on @tableOfContents tag. As a parameter you get already prepared tree of sections that your table of contents should show. Each item of Sections is a section on the level 1. Item's Name is section name, item's Value is section caption, item's Data is a TStringPairVector instance that describes subsections (on level 2) below this section. And so on, recursively.

Sections given here are never nil, and item's Data is never nil. But of course they may contain 0 items, and this should be a signal to you that given section doesn't have any subsections.

Default implementation of this method in this class just returns empty string.

Source: source/component/PasDoc_Gen.pas (line 908).

Public
procedure BuildLinks;

Creates anchors and links for all items in all units.

Source: source/component/PasDoc_Gen.pas (line 914).

Public
procedure ResolveTypeAliasesDescriptions;

For type aliases with empty RawDescription, copy the RawDescription from the aliased type. Do this only after BuildLinks to be able to follow type aliases.

Source: source/component/PasDoc_Gen.pas (line 920).

Public
procedure ExpandDescriptions;

Expands description for each item in each unit of Units. "Expands description" means that TTagManager.Execute is called, and item's DetailedDescription, AbstractDescription, AbstractDescriptionWasAutomatic (and many others, set by @-tags handlers) properties are calculated.

Source: source/component/PasDoc_Gen.pas (line 927).

Public
function GetFileExtension: string; virtual; abstract;

Abstract function that provides file extension for documentation format. Must be overwritten by descendants.

Source: source/component/PasDoc_Gen.pas (line 931).

Public
procedure LoadDescriptionFiles(const c: TStringVector);

Assumes C contains file names as PString variables. Calls LoadDescriptionFile with each file name.

Source: source/component/PasDoc_Gen.pas (line 935).

Public
procedure WriteDocumentation; virtual;

Must be overwritten, writes all documentation. Will create either a single file or one file for each unit and each class, interface or object, depending on output format.

Source: source/component/PasDoc_Gen.pas (line 940).

Public
constructor Create(AOwner: TComponent); override;

This item has no description.
Source: source/component/PasDoc_Gen.pas (line 944).

Public
destructor Destroy; override;

This item has no description.
Source: source/component/PasDoc_Gen.pas (line 945).

Public
procedure ParseAbbreviationsFile(const AFileName: string);

This item has no description.
Source: source/component/PasDoc_Gen.pas (line 947).

Properties

Protected
property CurrentStream: TStream  read FCurrentStream;

Output stream that is currently written to; depending on the output format, more than one output stream may be necessary to store all documentation.

Source: source/component/PasDoc_Gen.pas (line 472).

Public
property Units: TPasUnits read FUnits write FUnits;

This item has no description.
Source: source/component/PasDoc_Gen.pas (line 942).

Public
property Introduction: TExternalItem read FIntroduction
      write FIntroduction;

This item has no description.
Source: source/component/PasDoc_Gen.pas (line 949).

Public
property Conclusion: TExternalItem read FConclusion write FConclusion;

This item has no description.
Source: source/component/PasDoc_Gen.pas (line 951).

Public
property AdditionalFiles: TExternalItemList read FAdditionalFiles write FAdditionalFiles;

This item has no description.
Source: source/component/PasDoc_Gen.pas (line 952).

Public
property OnMessage: TPasDocMessageEvent read FOnMessage write FOnMessage;

Callback receiving messages from generator.

This is usually used internally by TPasDoc class, that assigns it's internal callback here when using this generator. Also, for the above reason, do not make this published.

See TPasDoc.OnMessage for something more useful for final programs.

Source: source/component/PasDoc_Gen.pas (line 961).

Published
property Language: TLanguageID read GetLanguage write SetLanguage
      default DEFAULT_LANGUAGE;

the (human) output language of the documentation file(s)

Source: source/component/PasDoc_Gen.pas (line 964).

Published
property ProjectName: string read FProjectName write FProjectName;

Name of the project to create.

Source: source/component/PasDoc_Gen.pas (line 967).

Published
property ExcludeGenerator: Boolean
      read FExcludeGenerator write FExcludeGenerator default false;

"Generator info" are things that can change with each invocation of pasdoc, with different pasdoc binary etc.

This includes

  • pasdoc's compiler name and version,
    •

  • pasdoc's version and time of compilation
    •

 See --exclude-generator documentation. Default value is false (i.e. show them), as this information is generally considered useful.

Setting this to true is useful for automatically comparing two versions of pasdoc's output (e.g. when trying to automate pasdoc's tests).

Source: source/component/PasDoc_Gen.pas (line 985).

Published
property IncludeCreationTime: Boolean
      read FIncludeCreationTime write FIncludeCreationTime default false;

Show creation time in the output.

Source: source/component/PasDoc_Gen.pas (line 989).

Published
property UseLowercaseKeywords: Boolean
      read FUseLowercaseKeywords write FUseLowercaseKeywords default false;

Setting to define how literal tag keywords should appear in documentaion.

Source: source/component/PasDoc_Gen.pas (line 993).

Published
property Title: string read FTitle write FTitle;

Title of the documentation, supplied by user. May be empty. See TPasDoc.Title.

Source: source/component/PasDoc_Gen.pas (line 998).

Published
property DestinationDirectory: string read FDestDir write SetDestDir;

Destination directory for documentation. Must include terminating forward slash or backslash so that valid file names can be created by concatenating DestinationDirectory and a pathless file name.

Source: source/component/PasDoc_Gen.pas (line 1003).

Published
property OutputGraphVizUses: boolean read FGraphVizUses write FGraphVizUses
      default false;

generate a GraphViz diagram for the units dependencies

Source: source/component/PasDoc_Gen.pas (line 1006).

Published
property OutputGraphVizClassHierarchy: boolean
      read FGraphVizClasses write FGraphVizClasses default false;

generate a GraphViz diagram for the Class hierarchy

Source: source/component/PasDoc_Gen.pas (line 1009).

Published
property LinkGraphVizUses: string read FLinkGraphVizUses write FLinkGraphVizUses;

link the GraphViz uses diagram

Source: source/component/PasDoc_Gen.pas (line 1012).

Published
property LinkGraphVizClasses: string read FLinkGraphVizClasses write FLinkGraphVizClasses;

link the GraphViz classes diagram

Source: source/component/PasDoc_Gen.pas (line 1014).

Published
property Abbreviations: TStringList read FAbbreviations write SetAbbreviations;

This item has no description.
Source: source/component/PasDoc_Gen.pas (line 1016).

Published
property CheckSpelling: boolean read FCheckSpelling write FCheckSpelling
      default false;

This item has no description.
Source: source/component/PasDoc_Gen.pas (line 1018).

Published
property AspellLanguage: string read FAspellLanguage write FAspellLanguage;

This item has no description.
Source: source/component/PasDoc_Gen.pas (line 1021).

Published
property SpellCheckIgnoreWords: TStringList
      read FSpellCheckIgnoreWords write SetSpellCheckIgnoreWords;

This item has no description.
Source: source/component/PasDoc_Gen.pas (line 1023).

Published
property AutoAbstract: boolean
      read FAutoAbstract write FAutoAbstract default DefaultAutoAbstract;

Automatically detect abstract (summary) descriptions without @abstract tag. See --auto-abstract command-line option docs on https://pasdoc.github.io/Abstract . This is used in ExpandDescriptions.

Source: source/component/PasDoc_Gen.pas (line 1029).

Published
property LinkLook: TLinkLook read FLinkLook write FLinkLook default llDefault;

How SearchLink behaves. This meaning is described in --link-look documentation.

Source: source/component/PasDoc_Gen.pas (line 1034).

Published
property WriteUsesClause: boolean
      read FWriteUsesClause write FWriteUsesClause default false;

This item has no description.
Source: source/component/PasDoc_Gen.pas (line 1036).

Published
property AutoLink: boolean
      read FAutoLink write FAutoLink default false;

Automatically link identifiers to their documentation, even without @link tags. See --auto-link documentation.

Source: source/component/PasDoc_Gen.pas (line 1041).

Published
property AutoLinkExclude: TStringList read FAutoLinkExclude;

This item has no description.
Source: source/component/PasDoc_Gen.pas (line 1044).

Published
property ExternalClassHierarchy: TStrings
      read FExternalClassHierarchy write SetExternalClassHierarchy
      stored StoredExternalClassHierarchy;

This item has no description.
Source: source/component/PasDoc_Gen.pas (line 1046).

Published
property Markdown: boolean
      read FMarkdown write FMarkdown default false;

This item has no description.
Source: source/component/PasDoc_Gen.pas (line 1050).

Published
property ShowSourcePosition: boolean
      read FShowSourcePosition write FShowSourcePosition default false;

Show source filename and line number in documentation output.

Source: source/component/PasDoc_Gen.pas (line 1054).

Published
property SourceRoot: string
      read FSourceRoot write FSourceRoot;

Root path for source files. Used to make relative paths, shown by ShowSourcePosition and replaced by SourceUrlPattern. Leave empty to make ShowSourcePosition and SourceUrlPattern just take the final filename part to show / replace.

Source: source/component/PasDoc_Gen.pas (line 1063).

Published
property SourceUrlPattern: string
      read FSourceUrlPattern write FSourceUrlPattern;

URL pattern for linking source positions. Use {FILE} for filename and {LINE} for line number. When set, source positions in the output become clickable links. Example: https://github.com/owner/repo/blob/main/{FILE}#L{LINE}

Source: source/component/PasDoc_Gen.pas (line 1070).

Published
property ToggleVisibilities: TVisibilities
      read FToggleVisibilities write FToggleVisibilities
      default [];

Visibilities that should be included in output but hidden by default in HTML, with checkboxes to toggle their display.

Source: source/component/PasDoc_Gen.pas (line 1075).

Published
property SortSettings: TSortSettings
      read FSortSettings write FSortSettings default [];

How items should be sorted in output. See --sort documentation.

The TPasDoc sorts the items in Units before executing our WriteDocumentation, so TDocGenerator usually doesn't need to worry about sorting anymore... Except if output rearranges/sums items, like HTML output does for InheritedMembers<>imNever, in which case they need to be sorted again.

Source: source/component/PasDoc_Gen.pas (line 1087).


PasDoc's autodoc: PasDoc_GenHtml

Unit PasDoc_GenHtml

Description
Uses
Classes, Interfaces, Objects and Records
Functions and Procedures
Types

Description

HTML documentation generator in TGenericHTMLDocGenerator.

Source: source/component/PasDoc_GenHtml.pas (line 39).

Uses

  • Classes
  • Contnrs
  • PasDoc_Utils
  • PasDoc_Gen
  • PasDoc_Items
  • PasDoc_Languages
  • PasDoc_StringVector
  • PasDoc_Types
  • PasDoc_StringPairVector
  • PasDoc_SortSettings

Overview

Classes, Interfaces, Objects and Records

Name | Description
Class TGenericHTMLDocGenerator | HTML documentation generator.
Class THTMLDocGenerator | Right now this is the same thing as TGenericHTMLDocGenerator.

Functions and Procedures

function SignatureToHtmlId(const Signature: string): string;
function StringToInheritedMembers(const S: String): TInheritedMembers;

Types

TInheritedMembers = (...);

Description

Functions and Procedures

function SignatureToHtmlId(const Signature: string): string;

DON'T EDIT – this file was automatically generated from "pasdoc.css"

Source: source/component/PasDoc_GenHtml.pas (line 391).

function StringToInheritedMembers(const S: String): TInheritedMembers;

This item has no description.

Source: source/component/PasDoc_GenHtml.pas (line 393).

Types

TInheritedMembers = (...);

Show we show inherited members (in outputs that make it possible, which right now means only HTML output).

Values
  • imNever
  • imDefaultShow
  • imDefaultHide

Source: source/component/PasDoc_GenHtml.pas (line 59).

Authors

  • Johannes Berg <johannes@sipsolutions.de>
  • Ralf Junker (delphi@zeitungsjunge.de)
  • Alexander Lisnevsky (alisnevsky@yandex.ru)
  • Erwin Scheuch-Heilig (ScheuchHeilig@t-online.de)
  • Marco Schmidt (marcoschmidt@geocities.com)
  • Hendy Irawan (ceefour@gauldong.net)
  • Wim van der Vegt (wvd_vegt@knoware.nl)
  • Thomas Mueller (www.dummzeuch.de)
  • David Berg (HTML Layout) <david@sipsolutions.de>
  • Grzegorz Skoczylas <gskoczylas@rekord.pl>
  • Michalis Kamburelis
  • Richard B. Winston <rbwinst@usgs.gov>
  • Ascanio Pressato
  • Arno Garrels <first name.name@nospamgmx.de>


PasDoc's autodoc: PasDoc_GenHtml: Class TGenericHTMLDocGenerator

Class TGenericHTMLDocGenerator

Description
Hierarchy
Constants
Fields
Methods
Properties

Unit

PasDoc_GenHtml

Declaration

type TGenericHTMLDocGenerator = class(TDocGenerator)

Description

HTML documentation generator.

Extends TDocGenerator and overwrites many of its methods to generate output in HTML format.

Source: source/component/PasDoc_GenHtml.pas (line 64).

Hierarchy

  • TObject
  • TPersistent
  • TComponent
  • TDocGenerator
  • TGenericHTMLDocGenerator
Show Additional Members:

Overview

Constants

Public DefaultAutoAbstract = true;

Fields

Protected | FLanguage: TPasDocLanguages;
Protected | FClassHierarchy: TStringCardinalTree;
Protected | FUnits: TPasUnits;

Methods

Protected | procedure DoError(const AMessage: string; const AArguments: array of const; const AExitCode: Word);
Protected | procedure DoMessage(const AVerbosity: Cardinal; const MessageType: TPasDocMessageType; const AMessage: string; const AArguments: array of const);
Protected | procedure CreateClassHierarchy;
Protected | procedure WriteCodeWithLinksCommon(const Item: TPasItem; const Code: string; WriteItemLink: boolean; const NameLinkBegin, NameLinkEnd: string);
Protected | function HasSourcePosition(const AItem: TPasItem; out ItemName, ItemFilenameInRoot, ItemUrl: string): boolean;
Protected | procedure CloseStream;
Protected | function CreateStream(const AName: string): Boolean;
Protected | function ExtractEmailAddress(s: string; out S1, S2, EmailAddress: string): Boolean;
Protected | function FixEmailaddressWithoutMailTo(const PossibleEmailAddress: String): String;
Protected | function ExtractWebAddress(s: string; out S1, S2, WebAddress: string): Boolean;
Protected | function FindGlobal(const NameParts: TNameParts): TBaseItem;
Protected | function FindGlobalPasItem(const NameParts: TNameParts): TPasItem; overload;
Protected | function FindGlobalPasItem(const ItemName: String): TPasItem; overload;
Protected | function GetClassDirectiveName(const Directive: TClassDirective): string;
Protected | function GetCIOTypeName(const MyType: TCIOType): string;
Protected | procedure LoadDescriptionFile(n: string);
Protected | function SearchItem(s: string; const Item: TBaseItem; WarningIfNotSplittable: boolean): TBaseItem;
Protected | function SearchLink(s: string; const Item: TBaseItem; const LinkDisplay: string; const WarningIfLinkNotFound: TLinkNotFoundAction; out FoundItem: TBaseItem): string; overload;
Protected | function SearchLink(s: string; const Item: TBaseItem; const LinkDisplay: string; const WarningIfLinkNotFound: TLinkNotFoundAction): string; overload;
Protected | procedure StoreDescription(ItemName: string; var t: string);
Protected | procedure WriteConverted(const s: string; Newline: boolean); overload;
Protected | procedure WriteConverted(const s: string); overload;
Protected | procedure WriteConvertedLine(const s: string);
Protected | procedure WriteDirect(const t: string; Newline: boolean); overload;
Protected | procedure WriteDirect(const t: string); overload;
Protected | procedure WriteDirectLine(const t: string);
Protected | procedure WriteUnits(const HL: integer);
Protected | procedure WriteGVUses;
Protected | procedure WriteGVClasses;
Protected | procedure StartSpellChecking(const AMode: string);
Protected | procedure CheckString(const AString: string; const AErrors: TSpellingErrorList);
Protected | procedure EndSpellChecking;
Protected | function FormatNormalCode(AString: string): string; virtual;
Protected | function ShortDash: string; virtual;
Protected | function LatexString(const S: string): string; virtual;
Protected | procedure WriteExternal(const ExternalItem: TExternalItem; const Id: TTranslationID);
Protected | procedure WriteConclusion;
Protected | procedure WriteIntroduction;
Protected | procedure WriteAdditionalFiles;
Public | procedure BuildLinks;
Public | procedure ResolveTypeAliasesDescriptions;
Public | procedure ExpandDescriptions;
Public | procedure LoadDescriptionFiles(const c: TStringVector);
Public | procedure ParseAbbreviationsFile(const AFileName: string);
Protected | function MakeHead: string; virtual;
Protected | function MakeBodyBegin: string; virtual;
Protected | function MakeBodyEnd: string; virtual;
Protected | function ConvertString(const s: string): string; override;
Protected | function ConvertChar(c: char): string; override;
Protected | procedure WriteUnit(const HL: integer; const U: TPasUnit); override;
Protected | function HtmlString(const S: string): string; override;
Protected | function FormatPascalCode(const Line: string): string; override;
Protected | function FormatComment(AString: string): string; override;
Protected | function FormatHex(AString: string): string; override;
Protected | function FormatNumeric(AString: string): string; override;
Protected | function FormatFloat(AString: string): string; override;
Protected | function FormatString(AString: string): string; override;
Protected | function FormatKeyWord(AString: string): string; override;
Protected | function FormatCompilerComment(AString: string): string; override;
Protected | function CodeString(const s: string): string; override;
Protected | function CreateLink(const Item: TBaseItem): string; override;
Protected | procedure WriteStartOfCode; override;
Protected | procedure WriteEndOfCode; override;
Protected | procedure WriteAnchor(const AName: string); overload;
Protected | procedure WriteAnchor(const AName, Caption: string); overload;
Protected | function Paragraph: string; override;
Protected | function EnDash: string; override;
Protected | function EmDash: string; override;
Protected | function LineBreak: string; override;
Protected | function URLLink(const URL: string): string; override;
Protected | function URLLink(const URL, LinkDisplay: string): string; override;
Protected | procedure WriteExternalCore(const ExternalItem: TExternalItem; const Id: TTranslationID); override;
Protected | function MakeItemLink(const Item: TBaseItem; const LinkCaption: string; const LinkContext: TLinkContext): string; override;
Protected | function EscapeURL(const AString: string): string; virtual;
Protected | function FormatSection(HL: integer; const Anchor: string; const Caption: string): string; override;
Protected | function FormatAnchor(const Anchor: string): string; override;
Protected | function FormatBold(const Text: string): string; override;
Protected | function FormatItalic(const Text: string): string; override;
Protected | function FormatWarning(const Text: string): string; override;
Protected | function FormatNote(const Text: string): string; override;
Protected | function FormatPreformatted(const Text: string): string; override;
Protected | function FormatImage(FileNames: TStringList): string; override;
Protected | function FormatList(ListData: TListData): string; override;
Protected | function FormatTable(Table: TTableData): string; override;
Protected | function FormatTableOfContents(Sections: TStringPairVector): string; override;
Public | constructor Create(AOwner: TComponent); override;
Public | destructor Destroy; override;
Public | function GetFileExtension: string; override;
Public | procedure WriteDocumentation; override;

Properties

Protected | property CurrentStream: TStream read FCurrentStream;
Public | property Units: TPasUnits read FUnits write FUnits;
Public | property Introduction: TExternalItem read FIntroduction write FIntroduction;
Public | property Conclusion: TExternalItem read FConclusion write FConclusion;
Public | property AdditionalFiles: TExternalItemList read FAdditionalFiles write FAdditionalFiles;
Public | property OnMessage: TPasDocMessageEvent read FOnMessage write FOnMessage;
Published | property Language: TLanguageID read GetLanguage write SetLanguage default DEFAULT_LANGUAGE;
Published | property ProjectName: string read FProjectName write FProjectName;
Published | property ExcludeGenerator: Boolean read FExcludeGenerator write FExcludeGenerator default false;
Published | property IncludeCreationTime: Boolean read FIncludeCreationTime write FIncludeCreationTime default false;
Published | property UseLowercaseKeywords: Boolean read FUseLowercaseKeywords write FUseLowercaseKeywords default false;
Published | property Title: string read FTitle write FTitle;
Published | property DestinationDirectory: string read FDestDir write SetDestDir;
Published | property OutputGraphVizUses: boolean read FGraphVizUses write FGraphVizUses default false;
Published | property OutputGraphVizClassHierarchy: boolean read FGraphVizClasses write FGraphVizClasses default false;
Published | property LinkGraphVizUses: string read FLinkGraphVizUses write FLinkGraphVizUses;
Published | property LinkGraphVizClasses: string read FLinkGraphVizClasses write FLinkGraphVizClasses;
Published | property Abbreviations: TStringList read FAbbreviations write SetAbbreviations;
Published | property CheckSpelling: boolean read FCheckSpelling write FCheckSpelling default false;
Published | property AspellLanguage: string read FAspellLanguage write FAspellLanguage;
Published | property SpellCheckIgnoreWords: TStringList read FSpellCheckIgnoreWords write SetSpellCheckIgnoreWords;
Published | property AutoAbstract: boolean read FAutoAbstract write FAutoAbstract default DefaultAutoAbstract;
Published | property LinkLook: TLinkLook read FLinkLook write FLinkLook default llDefault;
Published | property WriteUsesClause: boolean read FWriteUsesClause write FWriteUsesClause default false;
Published | property AutoLink: boolean read FAutoLink write FAutoLink default false;
Published | property AutoLinkExclude: TStringList read FAutoLinkExclude;
Published | property ExternalClassHierarchy: TStrings read FExternalClassHierarchy write SetExternalClassHierarchy stored StoredExternalClassHierarchy;
Published | property Markdown: boolean read FMarkdown write FMarkdown default false;
Published | property ShowSourcePosition: boolean read FShowSourcePosition write FShowSourcePosition default false;
Published | property SourceRoot: string read FSourceRoot write FSourceRoot;
Published | property SourceUrlPattern: string read FSourceUrlPattern write FSourceUrlPattern;
Published | property ToggleVisibilities: TVisibilities read FToggleVisibilities write FToggleVisibilities default [];
Published | property SortSettings: TSortSettings read FSortSettings write FSortSettings default [];
Published | property Header: string read FHeader write FHeader;
Published | property Footer: string read FFooter write FFooter;
Published | property HtmlBodyBegin: string read FHtmlBodyBegin write FHtmlBodyBegin;
Published | property HtmlBodyEnd: string read FHtmlBodyEnd write FHtmlBodyEnd;
Published | property HtmlHead: string read FHtmlHead write FHtmlHead;
Published | property CSS: string read FCSS write FCSS stored StoredCss;
Published | property Bootstrap: boolean read FBootstrap write FBootstrap default true;
Published | property NumericFilenames: boolean read FNumericFilenames write FNumericFilenames default false;
Published | property UseTipueSearch: boolean read FUseTipueSearch write FUseTipueSearch default False;
Published | property InheritedMembers: TInheritedMembers read FInheritedMembers write FInheritedMembers default imNever;

Description

Constants

Public DefaultAutoAbstract = true;

This item is declared in ancestor TDocGenerator.

This item has no description.

Source: source/component/PasDoc_Gen.pas (line 911).

Fields

Protected FLanguage: TPasDocLanguages;

This item is declared in ancestor TDocGenerator.

the (human) output language of the documentation file(s)

Source: source/component/PasDoc_Gen.pas (line 459).

Protected FClassHierarchy: TStringCardinalTree;

This item is declared in ancestor TDocGenerator.

This item has no description.

Source: source/component/PasDoc_Gen.pas (line 461).

Protected FUnits: TPasUnits;

This item is declared in ancestor TDocGenerator.

list of all units that were successfully parsed

Source: source/component/PasDoc_Gen.pas (line 511).

Methods

Protected procedure DoError(const AMessage: string; const AArguments: array of const; const AExitCode: Word);

This item is declared in ancestor TDocGenerator.

This item has no description.

Source: source/component/PasDoc_Gen.pas (line 463).

Protected procedure DoMessage(const AVerbosity: Cardinal; const MessageType: TPasDocMessageType; const AMessage: string; const AArguments: array of const);

This item is declared in ancestor TDocGenerator.

This item has no description.

Source: source/component/PasDoc_Gen.pas (line 465).

Protected procedure CreateClassHierarchy;

This item is declared in ancestor TDocGenerator.

This item has no description.

Source: source/component/PasDoc_Gen.pas (line 474).

Protected procedure WriteCodeWithLinksCommon(const Item: TPasItem; const Code: string; WriteItemLink: boolean; const NameLinkBegin, NameLinkEnd: string);

This item is declared in ancestor TDocGenerator.

This writes Code as a Pascal code. Links inside the code are resolved from Item. If WriteItemLink then Item.Name is made a link. Item.Name is printed between NameLinkBegin and NameLinkEnd.

Source: source/component/PasDoc_Gen.pas (line 495).

Protected function HasSourcePosition(const AItem: TPasItem; out ItemName, ItemFilenameInRoot, ItemUrl: string): boolean;

This item is declared in ancestor TDocGenerator.

Utility to process information from TPasItem.SourceAbsoluteFileName and TPasItem.SourceLine and decide whether to show it. If True, then we should show it.

Parameters
ItemName
is the name to show.
ItemFilenameInRoot
is the filename, relative to SourceRoot, using always / on any system (even on Windows).
ItemUrl
is the URL to link to, if any (don't make a link if this is '').

Source: source/component/PasDoc_Gen.pas (line 507).

Protected procedure CloseStream;

This item is declared in ancestor TDocGenerator.

If field CurrentStream is assigned, it is disposed and set to nil.

Source: source/component/PasDoc_Gen.pas (line 514).

Protected function CreateStream(const AName: string): Boolean;

This item is declared in ancestor TDocGenerator.

Open output stream in the destination directory. If CurrentStream still exists (<> nil), it is closed. Then, a new output stream in the destination directory is created and assigned to CurrentStream. The file is overwritten if exists.

Use this only for text files that you want to write using WriteXxx methods of this class (like WriteConverted). There's no point to use if for other files.

Returns True if creation was successful, False otherwise. When it returns False, the error message was already shown by DoMessage.

Source: source/component/PasDoc_Gen.pas (line 552).

Protected function ExtractEmailAddress(s: string; out S1, S2, EmailAddress: string): Boolean;

This item is declared in ancestor TDocGenerator.

Searches for an email address in String S. Searches for first appearance of the @ character

Source: source/component/PasDoc_Gen.pas (line 556).

Protected function FixEmailaddressWithoutMailTo(const PossibleEmailAddress: String): String;

This item is declared in ancestor TDocGenerator.

Searches for an email address in PossibleEmailAddress and appends mailto: if it's an email address and mailto: wasn't provided. Otherwise it simply returns the input.

Needed to link email addresses properly which doesn't start with mailto:

Source: source/component/PasDoc_Gen.pas (line 563).

Protected function ExtractWebAddress(s: string; out S1, S2, WebAddress: string): Boolean;

This item is declared in ancestor TDocGenerator.

Searches for a web address in String S. It must either contain a http:// or start with www.

Source: source/component/PasDoc_Gen.pas (line 567).

Protected function FindGlobal(const NameParts: TNameParts): TBaseItem;

This item is declared in ancestor TDocGenerator.

Searches all items in all units (given by field Units) for item with NameParts. Returns a pointer to the item on success, nil otherwise.

Source: source/component/PasDoc_Gen.pas (line 572).

Protected function FindGlobalPasItem(const NameParts: TNameParts): TPasItem; overload;

This item is declared in ancestor TDocGenerator.

Find a Pascal item, searching global namespace. Returns Nil if not found.

Source: source/component/PasDoc_Gen.pas (line 576).

Protected function FindGlobalPasItem(const ItemName: String): TPasItem; overload;

This item is declared in ancestor TDocGenerator.

Find a Pascal item, searching global namespace. Assumes that Name is only one component (not something with dots inside). Returns Nil if not found.

Source: source/component/PasDoc_Gen.pas (line 581).

Protected function GetClassDirectiveName(const Directive: TClassDirective): string;

This item is declared in ancestor TDocGenerator.

GetClassDirectiveName returns ' abstract', or ' sealed' for classes that abstract or sealed respectively. GetClassDirectiveName is used by TTexDocGenerator and TGenericHTMLDocGenerator in writing the declaration of the class.

Source: source/component/PasDoc_Gen.pas (line 586).

Protected function GetCIOTypeName(const MyType: TCIOType): string;

This item is declared in ancestor TDocGenerator.

GetCIOTypeName writes a translation of MyType based on the current language. However, 'record' and 'packed record' are not translated.

Source: source/component/PasDoc_Gen.pas (line 590).

Protected procedure LoadDescriptionFile(n: string);

This item is declared in ancestor TDocGenerator.

Loads descriptions from file N and replaces or fills the corresponding comment sections of items.

Source: source/component/PasDoc_Gen.pas (line 594).

Protected function SearchItem(s: string; const Item: TBaseItem; WarningIfNotSplittable: boolean): TBaseItem;

This item is declared in ancestor TDocGenerator.

Searches for item with name S.

If S is not splittable by SplitNameParts, returns nil. If WarningIfNotSplittable, additionally does DoMessage with appropriate warning.

Else (if S is "splittable"), seeks for S (first trying Item.FindName, if Item is not nil, then trying FindGlobal). Returns nil if not found.

Source: source/component/PasDoc_Gen.pas (line 604).

Protected function SearchLink(s: string; const Item: TBaseItem; const LinkDisplay: string; const WarningIfLinkNotFound: TLinkNotFoundAction; out FoundItem: TBaseItem): string; overload;

This item is declared in ancestor TDocGenerator.

Searches for an item of name S which was linked in the description of Item. Starts search within item, then does a search on all items in all units using FindGlobal. Returns a link as String on success.

If S is not splittable by SplitNameParts, it always does DoMessage with appropriate warning and returns something like 'UNKNOWN' (no matter what is the value of WarningIfLinkNotFound). FoundItem will be set to nil in this case.

When item will not be found then:

  • if WarningIfLinkNotFound is true then it returns CodeString(ConvertString(S)) and makes DoMessage with appropriate warning.

  • else it returns '' (and does not do any DoMessage)

If LinkDisplay is not '', then it specifies explicite the display text for link. Else how exactly link does look like is controlled by LinkLook property.

Parameters
FoundItem
is the found item instance or nil if not found.

Source: source/component/PasDoc_Gen.pas (line 631).

Protected function SearchLink(s: string; const Item: TBaseItem; const LinkDisplay: string; const WarningIfLinkNotFound: TLinkNotFoundAction): string; overload;

This item is declared in ancestor TDocGenerator.

Just like previous overloaded version, but this doesn't return FoundItem (in case you don't need it).

Source: source/component/PasDoc_Gen.pas (line 638).

Protected procedure StoreDescription(ItemName: string; var t: string);

This item is declared in ancestor TDocGenerator.

This item has no description.

Source: source/component/PasDoc_Gen.pas (line 642).

Protected procedure WriteConverted(const s: string; Newline: boolean); overload;

This item is declared in ancestor TDocGenerator.

Writes S to CurrentStream, converting it using ConvertString. Then optionally writes LineEnding.

Source: source/component/PasDoc_Gen.pas (line 646).

Protected procedure WriteConverted(const s: string); overload;

This item is declared in ancestor TDocGenerator.

Writes S to CurrentStream, converting it using ConvertString. No LineEnding at the end.

Source: source/component/PasDoc_Gen.pas (line 650).

Protected procedure WriteConvertedLine(const s: string);

This item is declared in ancestor TDocGenerator.

Writes S to CurrentStream, converting it using ConvertString. Then writes LineEnding.

Source: source/component/PasDoc_Gen.pas (line 654).

Protected procedure WriteDirect(const t: string; Newline: boolean); overload;

This item is declared in ancestor TDocGenerator.

Simply writes T to CurrentStream, with optional LineEnding.

Source: source/component/PasDoc_Gen.pas (line 657).

Protected procedure WriteDirect(const t: string); overload;

This item is declared in ancestor TDocGenerator.

Simply writes T to CurrentStream.

Source: source/component/PasDoc_Gen.pas (line 660).

Protected procedure WriteDirectLine(const t: string);

This item is declared in ancestor TDocGenerator.

Simply writes T followed by LineEnding to CurrentStream.

Source: source/component/PasDoc_Gen.pas (line 663).

Protected procedure WriteUnits(const HL: integer);

This item is declared in ancestor TDocGenerator.

Writes documentation for all units, calling WriteUnit for each unit.

Source: source/component/PasDoc_Gen.pas (line 674).

Protected procedure WriteGVUses;

This item is declared in ancestor TDocGenerator.

output graphviz uses tree

Source: source/component/PasDoc_Gen.pas (line 681).

Protected procedure WriteGVClasses;

This item is declared in ancestor TDocGenerator.

output graphviz class tree

Source: source/component/PasDoc_Gen.pas (line 683).

Protected procedure StartSpellChecking(const AMode: string);

This item is declared in ancestor TDocGenerator.

starts the spell checker

Source: source/component/PasDoc_Gen.pas (line 686).

Protected procedure CheckString(const AString: string; const AErrors: TSpellingErrorList);

This item is declared in ancestor TDocGenerator.

If CheckSpelling and spell checking was successfully started, this will run FAspellProcess.CheckString and will report all errors using DoMessage with mtWarning.

Otherwise this just clears AErrors, which means that no errors were found.

Source: source/component/PasDoc_Gen.pas (line 694).

Protected procedure EndSpellChecking;

This item is declared in ancestor TDocGenerator.

closes the spellchecker

Source: source/component/PasDoc_Gen.pas (line 697).

Protected function FormatNormalCode(AString: string): string; virtual;

This item is declared in ancestor TDocGenerator.

This will cause AString to be formatted in the way that normal Pascal statements (not keywords, strings, comments, etc.) look in Delphi.

Source: source/component/PasDoc_Gen.pas (line 709).

Protected function ShortDash: string; virtual;

This item is declared in ancestor TDocGenerator.

See TTagManager.ShortDash. Default implementation in this class returns '-'.

Source: source/component/PasDoc_Gen.pas (line 748).

Protected function LatexString(const S: string): string; virtual;

This item is declared in ancestor TDocGenerator.

Process LaTeX content, like provided by the @latex tag.

The default implementation is this class simply discards it, i.e. returns always ''. Generators that know what to do with raw LaTeX markup can override this with simple "Result := S".

Source: source/component/PasDoc_Gen.pas (line 775).

Protected procedure WriteExternal(const ExternalItem: TExternalItem; const Id: TTranslationID);

This item is declared in ancestor TDocGenerator.

Write the introduction and conclusion of the project.

Source: source/component/PasDoc_Gen.pas (line 809).

Protected procedure WriteConclusion;

This item is declared in ancestor TDocGenerator.

Writes a conclusion for the project. See WriteExternal.

Source: source/component/PasDoc_Gen.pas (line 825).

Protected procedure WriteIntroduction;

This item is declared in ancestor TDocGenerator.

Writes an introduction for the project. See WriteExternal.

Source: source/component/PasDoc_Gen.pas (line 829).

Protected procedure WriteAdditionalFiles;

This item is declared in ancestor TDocGenerator.

Writes the other files for the project. See WriteExternal.

Source: source/component/PasDoc_Gen.pas (line 833).

Public procedure BuildLinks;

This item is declared in ancestor TDocGenerator.

Creates anchors and links for all items in all units.

Source: source/component/PasDoc_Gen.pas (line 914).

Public procedure ResolveTypeAliasesDescriptions;

This item is declared in ancestor TDocGenerator.

For type aliases with empty RawDescription, copy the RawDescription from the aliased type. Do this only after BuildLinks to be able to follow type aliases.

Source: source/component/PasDoc_Gen.pas (line 920).

Public procedure ExpandDescriptions;

This item is declared in ancestor TDocGenerator.

Expands description for each item in each unit of Units. "Expands description" means that TTagManager.Execute is called, and item's DetailedDescription, AbstractDescription, AbstractDescriptionWasAutomatic (and many others, set by @-tags handlers) properties are calculated.

Source: source/component/PasDoc_Gen.pas (line 927).

Public procedure LoadDescriptionFiles(const c: TStringVector);

This item is declared in ancestor TDocGenerator.

Assumes C contains file names as PString variables. Calls LoadDescriptionFile with each file name.

Source: source/component/PasDoc_Gen.pas (line 935).

Public procedure ParseAbbreviationsFile(const AFileName: string);

This item is declared in ancestor TDocGenerator.

This item has no description.

Source: source/component/PasDoc_Gen.pas (line 947).

Protected function MakeHead: string; virtual;

Return common HTML content that goes inside <head>.

Source: source/component/PasDoc_GenHtml.pas (line 230).

Protected function MakeBodyBegin: string; virtual;

Return common HTML content that goes right after <body>.

Source: source/component/PasDoc_GenHtml.pas (line 232).

Protected function MakeBodyEnd: string; virtual;

Return common HTML content that goes right before </body>.

Source: source/component/PasDoc_GenHtml.pas (line 234).

Protected function ConvertString(const s: string): string; override;

This item has no description. Showing description inherited from TDocGenerator.ConvertString.

Converts for each character in S, thus assembling a String that is returned and can be written to the documentation file.

The @ character should not be converted, this will be done later on.

Source: source/component/PasDoc_GenHtml.pas (line 236).

Protected function ConvertChar(c: char): string; override;

Called by ConvertString to convert a character. Will convert special characters to their html escape sequence -> test

Source: source/component/PasDoc_GenHtml.pas (line 241).

Protected procedure WriteUnit(const HL: integer; const U: TPasUnit); override;

This item has no description. Showing description inherited from TDocGenerator.WriteUnit.

Abstract method that writes all documentation for a single unit U to output, starting at heading level HL. Implementation must be provided by descendant objects and is dependent on output format.

Source: source/component/PasDoc_GenHtml.pas (line 243).

Protected function HtmlString(const S: string): string; override;

overrides TDocGenerator.HtmlString.HtmlString to return the string verbatim (TDocGenerator.HtmlString discards those strings)

Source: source/component/PasDoc_GenHtml.pas (line 247).

Protected function FormatPascalCode(const Line: string): string; override;

FormatPascalCode will cause Line to be formatted in the way that Pascal code is formatted in Delphi.

Source: source/component/PasDoc_GenHtml.pas (line 251).

Protected function FormatComment(AString: string): string; override;

FormatComment will cause AString to be formatted in the way that comments other than compiler directives are formatted in Delphi. See: FormatCompilerComment.

Source: source/component/PasDoc_GenHtml.pas (line 256).

Protected function FormatHex(AString: string): string; override;

FormatHex will cause AString to be formatted in the way that Hex are formatted in Delphi.

Source: source/component/PasDoc_GenHtml.pas (line 260).

Protected function FormatNumeric(AString: string): string; override;

FormatNumeric will cause AString to be formatted in the way that Numeric are formatted in Delphi.

Source: source/component/PasDoc_GenHtml.pas (line 264).

Protected function FormatFloat(AString: string): string; override;

FormatFloat will cause AString to be formatted in the way that Float are formatted in Delphi.

Source: source/component/PasDoc_GenHtml.pas (line 268).

Protected function FormatString(AString: string): string; override;

FormatKeyWord will cause AString to be formatted in the way that strings are formatted in Delphi.

Source: source/component/PasDoc_GenHtml.pas (line 272).

Protected function FormatKeyWord(AString: string): string; override;

FormatKeyWord will cause AString to be formatted in the way that reserved words are formatted in Delphi.

Source: source/component/PasDoc_GenHtml.pas (line 276).

Protected function FormatCompilerComment(AString: string): string; override;

FormatCompilerComment will cause AString to be formatted in the way that compiler directives are formatted in Delphi.

Source: source/component/PasDoc_GenHtml.pas (line 280).

Protected function CodeString(const s: string): string; override;

Makes a String look like a coded String, i.e. <CODE>TheString</CODE> in Html.

Source: source/component/PasDoc_GenHtml.pas (line 284).

Protected function CreateLink(const Item: TBaseItem): string; override;

Returns a link to an anchor within a document. HTML simply concatenates the strings with a "#" character between them.

Source: source/component/PasDoc_GenHtml.pas (line 288).

Protected procedure WriteStartOfCode; override;

This item has no description.

Source: source/component/PasDoc_GenHtml.pas (line 290).

Protected procedure WriteEndOfCode; override;

This item has no description.

Source: source/component/PasDoc_GenHtml.pas (line 291).

Protected procedure WriteAnchor(const AName: string); overload;

This item has no description.

Source: source/component/PasDoc_GenHtml.pas (line 293).

Protected procedure WriteAnchor(const AName, Caption: string); overload;

Write an anchor. Note that the Caption is assumed to be already processed with the ConvertString.

Source: source/component/PasDoc_GenHtml.pas (line 296).

Protected function Paragraph: string; override;

This item has no description. Showing description inherited from TDocGenerator.Paragraph.

This is paragraph marker in output documentation.

Default implementation in this class simply returns ' ' (one space).

Source: source/component/PasDoc_GenHtml.pas (line 298).

Protected function EnDash: string; override;

This item has no description. Showing description inherited from TDocGenerator.EnDash.

See TTagManager.EnDash. Default implementation in this class returns '--'.

Source: source/component/PasDoc_GenHtml.pas (line 300).

Protected function EmDash: string; override;

This item has no description. Showing description inherited from TDocGenerator.EmDash.

See TTagManager.EmDash. Default implementation in this class returns '---'.

Source: source/component/PasDoc_GenHtml.pas (line 301).

Protected function LineBreak: string; override;

This item has no description. Showing description inherited from TDocGenerator.LineBreak.

Markup that forces line break in given output format (e.g. '<br>' in html or '\\' in LaTeX).

It is used on
tag (but may also be used on other occasions in the future).

In this class it returns '', because it's valid for an output generator to simply ignore
tags if linebreaks can't be expressed in given output format.

Source: source/component/PasDoc_GenHtml.pas (line 303).

Protected function URLLink(const URL: string): string; override;

This item has no description. Showing description inherited from TDocGenerator.URLLink.

Markup to display URL in a description. E.g. HTML generator will want to wrap this in <a href="...">...</a>.

Note that passed here URL is not processed by ConvertString (because sometimes it could be undesirable). If you want you can process URL with ConvertString when overriding this method.

Default implementation in this class simply returns ConvertString(URL). This is good if your documentation format does not support anything like URL links.

Source: source/component/PasDoc_GenHtml.pas (line 305).

Protected function URLLink(const URL, LinkDisplay: string): string; override;

This item has no description. Showing description inherited from TDocGenerator.URLLink.

Text which will be shown for an URL tag.

URL is a link to a website or e-mail address. LinkDisplay is an optional parameter which will be used as the display name of the URL.

Source: source/component/PasDoc_GenHtml.pas (line 306).

Protected procedure WriteExternalCore(const ExternalItem: TExternalItem; const Id: TTranslationID); override;

This item has no description. Showing description inherited from TDocGenerator.WriteExternalCore.

This is called from WriteExternal when ExternalItem.Title and ShortTitle are already set, message about generating appropriate item is printed etc. This should write ExternalItem, including ExternalItem.DetailedDescription, ExternalItem.Authors, ExternalItem.Created, ExternalItem.LastMod.

Source: source/component/PasDoc_GenHtml.pas (line 308).

Protected function MakeItemLink(const Item: TBaseItem; const LinkCaption: string; const LinkContext: TLinkContext): string; override;

This item has no description. Showing description inherited from TDocGenerator.MakeItemLink.

Return a link to item Item which will be displayed as LinkCaption. Returned string may be directly inserted inside output documentation. LinkCaption will be always converted using ConvertString before writing, so don't worry about doing this yourself when calling this method.

LinkContext may be used in some descendants to present the link differently, see TLinkContext for it's meaning.

If some output format doesn't support this feature, it can return simply ConvertString(LinkCaption). This is the default implementation of this method in this class.

Source: source/component/PasDoc_GenHtml.pas (line 311).

Protected function EscapeURL(const AString: string): string; virtual;

This item has no description.

Source: source/component/PasDoc_GenHtml.pas (line 315).

Protected function FormatSection(HL: integer; const Anchor: string; const Caption: string): string; override;

This item has no description. Showing description inherited from TDocGenerator.FormatSection.

Writes a section heading and a link-anchor.

Source: source/component/PasDoc_GenHtml.pas (line 317).

Protected function FormatAnchor(const Anchor: string): string; override;

This item has no description. Showing description inherited from TDocGenerator.FormatAnchor.

Writes a link-anchor.

Source: source/component/PasDoc_GenHtml.pas (line 319).

Protected function FormatBold(const Text: string): string; override;

This item has no description. Showing description inherited from TDocGenerator.FormatBold.

Return Text formatted using bold font.

Given Text is already in the final output format (with characters converted using ConvertString, @-tags expanded etc.).

Implementation of this method in this class simply returns Result := Text. Output generators that can somehow express bold formatting (or at least emphasis of some text) should override this.

Source: source/component/PasDoc_GenHtml.pas (line 321).

Protected function FormatItalic(const Text: string): string; override;

This item has no description. Showing description inherited from TDocGenerator.FormatItalic.

Return Text formatted using italic font. Analogous to FormatBold.

Source: source/component/PasDoc_GenHtml.pas (line 322).

Protected function FormatWarning(const Text: string): string; override;

This item has no description. Showing description inherited from TDocGenerator.FormatWarning.

Return Text using bold font by calling FormatBold(Text).

Source: source/component/PasDoc_GenHtml.pas (line 324).

Protected function FormatNote(const Text: string): string; override;

This item has no description. Showing description inherited from TDocGenerator.FormatNote.

Return Text using italic font by calling FormatItalic(Text).

Source: source/component/PasDoc_GenHtml.pas (line 325).

Protected function FormatPreformatted(const Text: string): string; override;

This item has no description. Showing description inherited from TDocGenerator.FormatPreformatted.

Return Text preserving spaces and line breaks. Note that Text passed here is not yet converted with ConvertString. The implementation of this method in this class just returns ConvertString(Text).

Source: source/component/PasDoc_GenHtml.pas (line 326).

Protected function FormatImage(FileNames: TStringList): string; override;

This item has no description. Showing description inherited from TDocGenerator.FormatImage.

Return markup to show an image. FileNames is a list of possible filenames of the image. FileNames always contains at least one item (i.e. FileNames.Count >= 1), never contains empty lines (i.e. Trim(FileNames[I]) <> ''), and contains only absolute filenames.

E.g. HTML generator will want to choose the best format for HTML, then somehow copy the image from FileNames[Chosen] and wrap this in <img src="...">.

Implementation of this method in this class simply shows FileNames[0]. Output generators should override this.

Source: source/component/PasDoc_GenHtml.pas (line 328).

Protected function FormatList(ListData: TListData): string; override;

This item has no description. Showing description inherited from TDocGenerator.FormatList.

Format a list from given ListData.

Source: source/component/PasDoc_GenHtml.pas (line 330).

Protected function FormatTable(Table: TTableData): string; override;

This item has no description. Showing description inherited from TDocGenerator.FormatTable.

Return appropriate content for given Table. It's guaranteed that the Table passed here will have at least one row and in each row there will be at least one cell, so you don't have to check it within descendants.

Source: source/component/PasDoc_GenHtml.pas (line 332).

Protected function FormatTableOfContents(Sections: TStringPairVector): string; override;

This item has no description. Showing description inherited from TDocGenerator.FormatTableOfContents.

Override this if you want to insert something on @tableOfContents tag. As a parameter you get already prepared tree of sections that your table of contents should show. Each item of Sections is a section on the level 1. Item's Name is section name, item's Value is section caption, item's Data is a TStringPairVector instance that describes subsections (on level 2) below this section. And so on, recursively.

Sections given here are never nil, and item's Data is never nil. But of course they may contain 0 items, and this should be a signal to you that given section doesn't have any subsections.

Default implementation of this method in this class just returns empty string.

Source: source/component/PasDoc_GenHtml.pas (line 334).

Public constructor Create(AOwner: TComponent); override;

This item has no description.

Source: source/component/PasDoc_GenHtml.pas (line 336).

Public destructor Destroy; override;

This item has no description.

Source: source/component/PasDoc_GenHtml.pas (line 337).

Public function GetFileExtension: string; override;

Returns HTML file extension ".htm".

Source: source/component/PasDoc_GenHtml.pas (line 340).

Public procedure WriteDocumentation; override;

The method that does everything - writes documentation for all units and creates overview files.

Source: source/component/PasDoc_GenHtml.pas (line 344).

Properties

Protected property CurrentStream: TStream read FCurrentStream;

This item is declared in ancestor TDocGenerator.

Output stream that is currently written to; depending on the output format, more than one output stream may be necessary to store all documentation.

Source: source/component/PasDoc_Gen.pas (line 472).

Public property Units: TPasUnits read FUnits write FUnits;

This item is declared in ancestor TDocGenerator.

This item has no description.

Source: source/component/PasDoc_Gen.pas (line 942).

Public property Introduction: TExternalItem read FIntroduction write FIntroduction;

This item is declared in ancestor TDocGenerator.

This item has no description.

Source: source/component/PasDoc_Gen.pas (line 949).

Public property Conclusion: TExternalItem read FConclusion write FConclusion;

This item is declared in ancestor TDocGenerator.

This item has no description.

Source: source/component/PasDoc_Gen.pas (line 951).

Public property AdditionalFiles: TExternalItemList read FAdditionalFiles write FAdditionalFiles;

This item is declared in ancestor TDocGenerator.

This item has no description.

Source: source/component/PasDoc_Gen.pas (line 952).

Public property OnMessage: TPasDocMessageEvent read FOnMessage write FOnMessage;

This item is declared in ancestor TDocGenerator.

Callback receiving messages from generator.

This is usually used internally by TPasDoc class, that assigns it's internal callback here when using this generator. Also, for the above reason, do not make this published.

See TPasDoc.OnMessage for something more useful for final programs.

Source: source/component/PasDoc_Gen.pas (line 961).

Published property Language: TLanguageID read GetLanguage write SetLanguage default DEFAULT_LANGUAGE;

This item is declared in ancestor TDocGenerator.

the (human) output language of the documentation file(s)

Source: source/component/PasDoc_Gen.pas (line 964).

Published property ProjectName: string read FProjectName write FProjectName;

This item is declared in ancestor TDocGenerator.

Name of the project to create.

Source: source/component/PasDoc_Gen.pas (line 967).

Published property ExcludeGenerator: Boolean read FExcludeGenerator write FExcludeGenerator default false;

This item is declared in ancestor TDocGenerator.

"Generator info" are things that can change with each invocation of pasdoc, with different pasdoc binary etc.

This includes

  • pasdoc's compiler name and version,

  • pasdoc's version and time of compilation

See --exclude-generator documentation. Default value is false (i.e. show them), as this information is generally considered useful.

Setting this to true is useful for automatically comparing two versions of pasdoc's output (e.g. when trying to automate pasdoc's tests).

Source: source/component/PasDoc_Gen.pas (line 985).

Published property IncludeCreationTime: Boolean read FIncludeCreationTime write FIncludeCreationTime default false;

This item is declared in ancestor TDocGenerator.

Show creation time in the output.

Source: source/component/PasDoc_Gen.pas (line 989).

Published property UseLowercaseKeywords: Boolean read FUseLowercaseKeywords write FUseLowercaseKeywords default false;

This item is declared in ancestor TDocGenerator.

Setting to define how literal tag keywords should appear in documentaion.

Source: source/component/PasDoc_Gen.pas (line 993).

Published property Title: string read FTitle write FTitle;

This item is declared in ancestor TDocGenerator.

Title of the documentation, supplied by user. May be empty. See TPasDoc.Title.

Source: source/component/PasDoc_Gen.pas (line 998).

Published property DestinationDirectory: string read FDestDir write SetDestDir;

This item is declared in ancestor TDocGenerator.

Destination directory for documentation. Must include terminating forward slash or backslash so that valid file names can be created by concatenating DestinationDirectory and a pathless file name.

Source: source/component/PasDoc_Gen.pas (line 1003).

Published property OutputGraphVizUses: boolean read FGraphVizUses write FGraphVizUses default false;

This item is declared in ancestor TDocGenerator.

generate a GraphViz diagram for the units dependencies

Source: source/component/PasDoc_Gen.pas (line 1006).

Published property OutputGraphVizClassHierarchy: boolean read FGraphVizClasses write FGraphVizClasses default false;

This item is declared in ancestor TDocGenerator.

generate a GraphViz diagram for the Class hierarchy

Source: source/component/PasDoc_Gen.pas (line 1009).

Published property LinkGraphVizUses: string read FLinkGraphVizUses write FLinkGraphVizUses;

This item is declared in ancestor TDocGenerator.

link the GraphViz uses diagram

Source: source/component/PasDoc_Gen.pas (line 1012).

Published property LinkGraphVizClasses: string read FLinkGraphVizClasses write FLinkGraphVizClasses;

This item is declared in ancestor TDocGenerator.

link the GraphViz classes diagram

Source: source/component/PasDoc_Gen.pas (line 1014).

Published property Abbreviations: TStringList read FAbbreviations write SetAbbreviations;

This item is declared in ancestor TDocGenerator.

This item has no description.

Source: source/component/PasDoc_Gen.pas (line 1016).

Published property CheckSpelling: boolean read FCheckSpelling write FCheckSpelling default false;

This item is declared in ancestor TDocGenerator.

This item has no description.

Source: source/component/PasDoc_Gen.pas (line 1018).

Published property AspellLanguage: string read FAspellLanguage write FAspellLanguage;

This item is declared in ancestor TDocGenerator.

This item has no description.

Source: source/component/PasDoc_Gen.pas (line 1021).

Published property SpellCheckIgnoreWords: TStringList read FSpellCheckIgnoreWords write SetSpellCheckIgnoreWords;

This item is declared in ancestor TDocGenerator.

This item has no description.

Source: source/component/PasDoc_Gen.pas (line 1023).

Published property AutoAbstract: boolean read FAutoAbstract write FAutoAbstract default DefaultAutoAbstract;

This item is declared in ancestor TDocGenerator.

Automatically detect abstract (summary) descriptions without @abstract tag. See --auto-abstract command-line option docs on https://pasdoc.github.io/Abstract . This is used in ExpandDescriptions.

Source: source/component/PasDoc_Gen.pas (line 1029).

Published property LinkLook: TLinkLook read FLinkLook write FLinkLook default llDefault;

This item is declared in ancestor TDocGenerator.

How SearchLink behaves. This meaning is described in --link-look documentation.

Source: source/component/PasDoc_Gen.pas (line 1034).

Published property WriteUsesClause: boolean read FWriteUsesClause write FWriteUsesClause default false;

This item is declared in ancestor TDocGenerator.

This item has no description.

Source: source/component/PasDoc_Gen.pas (line 1036).

Published property AutoLink: boolean read FAutoLink write FAutoLink default false;

This item is declared in ancestor TDocGenerator.

Automatically link identifiers to their documentation, even without @link tags. See --auto-link documentation.

Source: source/component/PasDoc_Gen.pas (line 1041).

Published property AutoLinkExclude: TStringList read FAutoLinkExclude;

This item is declared in ancestor TDocGenerator.

This item has no description.

Source: source/component/PasDoc_Gen.pas (line 1044).

Published property ExternalClassHierarchy: TStrings read FExternalClassHierarchy write SetExternalClassHierarchy stored StoredExternalClassHierarchy;

This item is declared in ancestor TDocGenerator.

This item has no description.

Source: source/component/PasDoc_Gen.pas (line 1046).

Published property Markdown: boolean read FMarkdown write FMarkdown default false;

This item is declared in ancestor TDocGenerator.

This item has no description.

Source: source/component/PasDoc_Gen.pas (line 1050).

Published property ShowSourcePosition: boolean read FShowSourcePosition write FShowSourcePosition default false;

This item is declared in ancestor TDocGenerator.

Show source filename and line number in documentation output.

Source: source/component/PasDoc_Gen.pas (line 1054).

Published property SourceRoot: string read FSourceRoot write FSourceRoot;

This item is declared in ancestor TDocGenerator.

Root path for source files. Used to make relative paths, shown by ShowSourcePosition and replaced by SourceUrlPattern. Leave empty to make ShowSourcePosition and SourceUrlPattern just take the final filename part to show / replace.

Source: source/component/PasDoc_Gen.pas (line 1063).

Published property SourceUrlPattern: string read FSourceUrlPattern write FSourceUrlPattern;

This item is declared in ancestor TDocGenerator.

URL pattern for linking source positions. Use {FILE} for filename and {LINE} for line number. When set, source positions in the output become clickable links. Example: https://github.com/owner/repo/blob/main/{FILE}#L{LINE}

Source: source/component/PasDoc_Gen.pas (line 1070).

Published property ToggleVisibilities: TVisibilities read FToggleVisibilities write FToggleVisibilities default [];

This item is declared in ancestor TDocGenerator.

Visibilities that should be included in output but hidden by default in HTML, with checkboxes to toggle their display.

Source: source/component/PasDoc_Gen.pas (line 1075).

Published property SortSettings: TSortSettings read FSortSettings write FSortSettings default [];

This item is declared in ancestor TDocGenerator.

How items should be sorted in output. See --sort documentation.

The TPasDoc sorts the items in Units before executing our WriteDocumentation, so TDocGenerator usually doesn't need to worry about sorting anymore... Except if output rearranges/sums items, like HTML output does for InheritedMembers<>imNever, in which case they need to be sorted again.

Source: source/component/PasDoc_Gen.pas (line 1087).

Published property Header: string read FHeader write FHeader;

some HTML code to be written as header for every page

Source: source/component/PasDoc_GenHtml.pas (line 347).

Published property Footer: string read FFooter write FFooter;

some HTML code to be written as footer for every page

Source: source/component/PasDoc_GenHtml.pas (line 349).

Published property HtmlBodyBegin: string read FHtmlBodyBegin write FHtmlBodyBegin;

This item has no description.

Source: source/component/PasDoc_GenHtml.pas (line 351).

Published property HtmlBodyEnd: string read FHtmlBodyEnd write FHtmlBodyEnd;

This item has no description.

Source: source/component/PasDoc_GenHtml.pas (line 352).

Published property HtmlHead: string read FHtmlHead write FHtmlHead;

This item has no description.

Source: source/component/PasDoc_GenHtml.pas (line 353).

Published property CSS: string read FCSS write FCSS stored StoredCss;

Contents of the main CSS file (pasdoc.css).

Source: source/component/PasDoc_GenHtml.pas (line 356).

Published property Bootstrap: boolean read FBootstrap write FBootstrap default true;

If true, add Bootstrap CSS and JS. Definitions in CSS will be evaluated after Bootstrap's ones.

Source: source/component/PasDoc_GenHtml.pas (line 360).

Published property NumericFilenames: boolean read FNumericFilenames write FNumericFilenames default false;

if set to true, numeric filenames will be used rather than names with multiple dots

Source: source/component/PasDoc_GenHtml.pas (line 363).

Published property UseTipueSearch: boolean read FUseTipueSearch write FUseTipueSearch default False;

Enable Tipue fulltext search. See --use-tipue-search documentation.

Source: source/component/PasDoc_GenHtml.pas (line 368).

Published property InheritedMembers: TInheritedMembers read FInheritedMembers write FInheritedMembers default imNever;

Show inherited members (in outputs that make it possible, which right now means only HTML output).

Source: source/component/PasDoc_GenHtml.pas (line 373).


PasDoc's autodoc: PasDoc_GenHtml: Class THTMLDocGenerator

Class THTMLDocGenerator

Description
Hierarchy
Constants
Fields
Methods
Properties

Unit

PasDoc_GenHtml

Declaration

type THTMLDocGenerator = class(TGenericHTMLDocGenerator)

Description

Right now this is the same thing as TGenericHTMLDocGenerator. In the future it may be extended to include some things not needed for HtmlHelp generator.

Source: source/component/PasDoc_GenHtml.pas (line 380).

Hierarchy

  • TObject
  • TPersistent
  • TComponent
  • TDocGenerator
  • TGenericHTMLDocGenerator
  • THTMLDocGenerator
Show Additional Members:

Overview

Constants

Public DefaultAutoAbstract = true;

Fields

Protected | FLanguage: TPasDocLanguages;
Protected | FClassHierarchy: TStringCardinalTree;
Protected | FUnits: TPasUnits;

Methods

Protected | procedure DoError(const AMessage: string; const AArguments: array of const; const AExitCode: Word);
Protected | procedure DoMessage(const AVerbosity: Cardinal; const MessageType: TPasDocMessageType; const AMessage: string; const AArguments: array of const);
Protected | procedure CreateClassHierarchy;
Protected | procedure WriteCodeWithLinksCommon(const Item: TPasItem; const Code: string; WriteItemLink: boolean; const NameLinkBegin, NameLinkEnd: string);
Protected | function HasSourcePosition(const AItem: TPasItem; out ItemName, ItemFilenameInRoot, ItemUrl: string): boolean;
Protected | procedure CloseStream;
Protected | function CreateStream(const AName: string): Boolean;
Protected | function ExtractEmailAddress(s: string; out S1, S2, EmailAddress: string): Boolean;
Protected | function FixEmailaddressWithoutMailTo(const PossibleEmailAddress: String): String;
Protected | function ExtractWebAddress(s: string; out S1, S2, WebAddress: string): Boolean;
Protected | function FindGlobal(const NameParts: TNameParts): TBaseItem;
Protected | function FindGlobalPasItem(const NameParts: TNameParts): TPasItem; overload;
Protected | function FindGlobalPasItem(const ItemName: String): TPasItem; overload;
Protected | function GetClassDirectiveName(const Directive: TClassDirective): string;
Protected | function GetCIOTypeName(const MyType: TCIOType): string;
Protected | procedure LoadDescriptionFile(n: string);
Protected | function SearchItem(s: string; const Item: TBaseItem; WarningIfNotSplittable: boolean): TBaseItem;
Protected | function SearchLink(s: string; const Item: TBaseItem; const LinkDisplay: string; const WarningIfLinkNotFound: TLinkNotFoundAction; out FoundItem: TBaseItem): string; overload;
Protected | function SearchLink(s: string; const Item: TBaseItem; const LinkDisplay: string; const WarningIfLinkNotFound: TLinkNotFoundAction): string; overload;
Protected | procedure StoreDescription(ItemName: string; var t: string);
Protected | procedure WriteConverted(const s: string; Newline: boolean); overload;
Protected | procedure WriteConverted(const s: string); overload;
Protected | procedure WriteConvertedLine(const s: string);
Protected | procedure WriteDirect(const t: string; Newline: boolean); overload;
Protected | procedure WriteDirect(const t: string); overload;
Protected | procedure WriteDirectLine(const t: string);
Protected | procedure WriteUnits(const HL: integer);
Protected | procedure WriteGVUses;
Protected | procedure WriteGVClasses;
Protected | procedure StartSpellChecking(const AMode: string);
Protected | procedure CheckString(const AString: string; const AErrors: TSpellingErrorList);
Protected | procedure EndSpellChecking;
Protected | function FormatNormalCode(AString: string): string; virtual;
Protected | function ShortDash: string; virtual;
Protected | function LatexString(const S: string): string; virtual;
Protected | procedure WriteExternal(const ExternalItem: TExternalItem; const Id: TTranslationID);
Protected | procedure WriteConclusion;
Protected | procedure WriteIntroduction;
Protected | procedure WriteAdditionalFiles;
Public | procedure BuildLinks;
Public | procedure ResolveTypeAliasesDescriptions;
Public | procedure ExpandDescriptions;
Public | procedure LoadDescriptionFiles(const c: TStringVector);
Public | procedure ParseAbbreviationsFile(const AFileName: string);
Protected | function MakeHead: string; virtual;
Protected | function ConvertString(const s: string): string; override;
Protected | function ConvertChar(c: char): string; override;
Protected | procedure WriteUnit(const HL: integer; const U: TPasUnit); override;
Protected | function HtmlString(const S: string): string; override;
Protected | function FormatPascalCode(const Line: string): string; override;
Protected | function FormatComment(AString: string): string; override;
Protected | function FormatHex(AString: string): string; override;
Protected | function FormatNumeric(AString: string): string; override;
Protected | function FormatFloat(AString: string): string; override;
Protected | function FormatString(AString: string): string; override;
Protected | function FormatKeyWord(AString: string): string; override;
Protected | function FormatCompilerComment(AString: string): string; override;
Protected | function CodeString(const s: string): string; override;
Protected | function CreateLink(const Item: TBaseItem): string; override;
Protected | procedure WriteStartOfCode; override;
Protected | procedure WriteEndOfCode; override;
Protected | procedure WriteAnchor(const AName: string); overload;
Protected | procedure WriteAnchor(const AName, Caption: string); overload;
Protected | function Paragraph: string; override;
Protected | function EnDash: string; override;
Protected | function EmDash: string; override;
Protected | function LineBreak: string; override;
Protected | function URLLink(const URL: string): string; override;
Protected | function URLLink(const URL, LinkDisplay: string): string; override;
Protected | procedure WriteExternalCore(const ExternalItem: TExternalItem; const Id: TTranslationID); override;
Protected | function MakeItemLink(const Item: TBaseItem; const LinkCaption: string; const LinkContext: TLinkContext): string; override;
Protected | function EscapeURL(const AString: string): string; virtual;
Protected | function FormatSection(HL: integer; const Anchor: string; const Caption: string): string; override;
Protected | function FormatAnchor(const Anchor: string): string; override;
Protected | function FormatBold(const Text: string): string; override;
Protected | function FormatItalic(const Text: string): string; override;
Protected | function FormatWarning(const Text: string): string; override;
Protected | function FormatNote(const Text: string): string; override;
Protected | function FormatPreformatted(const Text: string): string; override;
Protected | function FormatImage(FileNames: TStringList): string; override;
Protected | function FormatList(ListData: TListData): string; override;
Protected | function FormatTable(Table: TTableData): string; override;
Protected | function FormatTableOfContents(Sections: TStringPairVector): string; override;
Public | constructor Create(AOwner: TComponent); override;
Public | destructor Destroy; override;
Public | function GetFileExtension: string; override;
Public | procedure WriteDocumentation; override;
Protected | function MakeBodyBegin: string; override;
Protected | function MakeBodyEnd: string; override;

Properties

Protected | property CurrentStream: TStream read FCurrentStream;
Public | property Units: TPasUnits read FUnits write FUnits;
Public | property Introduction: TExternalItem read FIntroduction write FIntroduction;
Public | property Conclusion: TExternalItem read FConclusion write FConclusion;
Public | property AdditionalFiles: TExternalItemList read FAdditionalFiles write FAdditionalFiles;
Public | property OnMessage: TPasDocMessageEvent read FOnMessage write FOnMessage;
Published | property Language: TLanguageID read GetLanguage write SetLanguage default DEFAULT_LANGUAGE;
Published | property ProjectName: string read FProjectName write FProjectName;
Published | property ExcludeGenerator: Boolean read FExcludeGenerator write FExcludeGenerator default false;
Published | property IncludeCreationTime: Boolean read FIncludeCreationTime write FIncludeCreationTime default false;
Published | property UseLowercaseKeywords: Boolean read FUseLowercaseKeywords write FUseLowercaseKeywords default false;
Published | property Title: string read FTitle write FTitle;
Published | property DestinationDirectory: string read FDestDir write SetDestDir;
Published | property OutputGraphVizUses: boolean read FGraphVizUses write FGraphVizUses default false;
Published | property OutputGraphVizClassHierarchy: boolean read FGraphVizClasses write FGraphVizClasses default false;
Published | property LinkGraphVizUses: string read FLinkGraphVizUses write FLinkGraphVizUses;
Published | property LinkGraphVizClasses: string read FLinkGraphVizClasses write FLinkGraphVizClasses;
Published | property Abbreviations: TStringList read FAbbreviations write SetAbbreviations;
Published | property CheckSpelling: boolean read FCheckSpelling write FCheckSpelling default false;
Published | property AspellLanguage: string read FAspellLanguage write FAspellLanguage;
Published | property SpellCheckIgnoreWords: TStringList read FSpellCheckIgnoreWords write SetSpellCheckIgnoreWords;
Published | property AutoAbstract: boolean read FAutoAbstract write FAutoAbstract default DefaultAutoAbstract;
Published | property LinkLook: TLinkLook read FLinkLook write FLinkLook default llDefault;
Published | property WriteUsesClause: boolean read FWriteUsesClause write FWriteUsesClause default false;
Published | property AutoLink: boolean read FAutoLink write FAutoLink default false;
Published | property AutoLinkExclude: TStringList read FAutoLinkExclude;
Published | property ExternalClassHierarchy: TStrings read FExternalClassHierarchy write SetExternalClassHierarchy stored StoredExternalClassHierarchy;
Published | property Markdown: boolean read FMarkdown write FMarkdown default false;
Published | property ShowSourcePosition: boolean read FShowSourcePosition write FShowSourcePosition default false;
Published | property SourceRoot: string read FSourceRoot write FSourceRoot;
Published | property SourceUrlPattern: string read FSourceUrlPattern write FSourceUrlPattern;
Published | property ToggleVisibilities: TVisibilities read FToggleVisibilities write FToggleVisibilities default [];
Published | property SortSettings: TSortSettings read FSortSettings write FSortSettings default [];
Published | property Header: string read FHeader write FHeader;
Published | property Footer: string read FFooter write FFooter;
Published | property HtmlBodyBegin: string read FHtmlBodyBegin write FHtmlBodyBegin;
Published | property HtmlBodyEnd: string read FHtmlBodyEnd write FHtmlBodyEnd;
Published | property HtmlHead: string read FHtmlHead write FHtmlHead;
Published | property CSS: string read FCSS write FCSS stored StoredCss;
Published | property Bootstrap: boolean read FBootstrap write FBootstrap default true;
Published | property NumericFilenames: boolean read FNumericFilenames write FNumericFilenames default false;
Published | property UseTipueSearch: boolean read FUseTipueSearch write FUseTipueSearch default False;
Published | property InheritedMembers: TInheritedMembers read FInheritedMembers write FInheritedMembers default imNever;

Description

Constants

Public DefaultAutoAbstract = true;

This item is declared in ancestor TDocGenerator.

This item has no description.

Source: source/component/PasDoc_Gen.pas (line 911).

Fields

Protected FLanguage: TPasDocLanguages;

This item is declared in ancestor TDocGenerator.

the (human) output language of the documentation file(s)

Source: source/component/PasDoc_Gen.pas (line 459).

Protected FClassHierarchy: TStringCardinalTree;

This item is declared in ancestor TDocGenerator.

This item has no description.

Source: source/component/PasDoc_Gen.pas (line 461).

Protected FUnits: TPasUnits;

This item is declared in ancestor TDocGenerator.

list of all units that were successfully parsed

Source: source/component/PasDoc_Gen.pas (line 511).

Methods

Protected procedure DoError(const AMessage: string; const AArguments: array of const; const AExitCode: Word);

This item is declared in ancestor TDocGenerator.

This item has no description.

Source: source/component/PasDoc_Gen.pas (line 463).

Protected procedure DoMessage(const AVerbosity: Cardinal; const MessageType: TPasDocMessageType; const AMessage: string; const AArguments: array of const);

This item is declared in ancestor TDocGenerator.

This item has no description.

Source: source/component/PasDoc_Gen.pas (line 465).

Protected procedure CreateClassHierarchy;

This item is declared in ancestor TDocGenerator.

This item has no description.

Source: source/component/PasDoc_Gen.pas (line 474).

Protected procedure WriteCodeWithLinksCommon(const Item: TPasItem; const Code: string; WriteItemLink: boolean; const NameLinkBegin, NameLinkEnd: string);

This item is declared in ancestor TDocGenerator.

This writes Code as a Pascal code. Links inside the code are resolved from Item. If WriteItemLink then Item.Name is made a link. Item.Name is printed between NameLinkBegin and NameLinkEnd.

Source: source/component/PasDoc_Gen.pas (line 495).

Protected function HasSourcePosition(const AItem: TPasItem; out ItemName, ItemFilenameInRoot, ItemUrl: string): boolean;

This item is declared in ancestor TDocGenerator.

Utility to process information from TPasItem.SourceAbsoluteFileName and TPasItem.SourceLine and decide whether to show it. If True, then we should show it.

Parameters
ItemName
is the name to show.
ItemFilenameInRoot
is the filename, relative to SourceRoot, using always / on any system (even on Windows).
ItemUrl
is the URL to link to, if any (don't make a link if this is '').

Source: source/component/PasDoc_Gen.pas (line 507).

Protected procedure CloseStream;

This item is declared in ancestor TDocGenerator.

If field CurrentStream is assigned, it is disposed and set to nil.

Source: source/component/PasDoc_Gen.pas (line 514).

Protected function CreateStream(const AName: string): Boolean;

This item is declared in ancestor TDocGenerator.

Open output stream in the destination directory. If CurrentStream still exists (<> nil), it is closed. Then, a new output stream in the destination directory is created and assigned to CurrentStream. The file is overwritten if exists.

Use this only for text files that you want to write using WriteXxx methods of this class (like WriteConverted). There's no point to use if for other files.

Returns True if creation was successful, False otherwise. When it returns False, the error message was already shown by DoMessage.

Source: source/component/PasDoc_Gen.pas (line 552).

Protected function ExtractEmailAddress(s: string; out S1, S2, EmailAddress: string): Boolean;

This item is declared in ancestor TDocGenerator.

Searches for an email address in String S. Searches for first appearance of the @ character

Source: source/component/PasDoc_Gen.pas (line 556).

Protected function FixEmailaddressWithoutMailTo(const PossibleEmailAddress: String): String;

This item is declared in ancestor TDocGenerator.

Searches for an email address in PossibleEmailAddress and appends mailto: if it's an email address and mailto: wasn't provided. Otherwise it simply returns the input.

Needed to link email addresses properly which doesn't start with mailto:

Source: source/component/PasDoc_Gen.pas (line 563).

Protected function ExtractWebAddress(s: string; out S1, S2, WebAddress: string): Boolean;

This item is declared in ancestor TDocGenerator.

Searches for a web address in String S. It must either contain a http:// or start with www.

Source: source/component/PasDoc_Gen.pas (line 567).

Protected function FindGlobal(const NameParts: TNameParts): TBaseItem;

This item is declared in ancestor TDocGenerator.

Searches all items in all units (given by field Units) for item with NameParts. Returns a pointer to the item on success, nil otherwise.

Source: source/component/PasDoc_Gen.pas (line 572).

Protected function FindGlobalPasItem(const NameParts: TNameParts): TPasItem; overload;

This item is declared in ancestor TDocGenerator.

Find a Pascal item, searching global namespace. Returns Nil if not found.

Source: source/component/PasDoc_Gen.pas (line 576).

Protected function FindGlobalPasItem(const ItemName: String): TPasItem; overload;

This item is declared in ancestor TDocGenerator.

Find a Pascal item, searching global namespace. Assumes that Name is only one component (not something with dots inside). Returns Nil if not found.

Source: source/component/PasDoc_Gen.pas (line 581).

Protected function GetClassDirectiveName(const Directive: TClassDirective): string;

This item is declared in ancestor TDocGenerator.

GetClassDirectiveName returns ' abstract', or ' sealed' for classes that abstract or sealed respectively. GetClassDirectiveName is used by TTexDocGenerator and TGenericHTMLDocGenerator in writing the declaration of the class.

Source: source/component/PasDoc_Gen.pas (line 586).

Protected function GetCIOTypeName(const MyType: TCIOType): string;

This item is declared in ancestor TDocGenerator.

GetCIOTypeName writes a translation of MyType based on the current language. However, 'record' and 'packed record' are not translated.

Source: source/component/PasDoc_Gen.pas (line 590).

Protected procedure LoadDescriptionFile(n: string);

This item is declared in ancestor TDocGenerator.

Loads descriptions from file N and replaces or fills the corresponding comment sections of items.

Source: source/component/PasDoc_Gen.pas (line 594).

Protected function SearchItem(s: string; const Item: TBaseItem; WarningIfNotSplittable: boolean): TBaseItem;

This item is declared in ancestor TDocGenerator.

Searches for item with name S.

If S is not splittable by SplitNameParts, returns nil. If WarningIfNotSplittable, additionally does DoMessage with appropriate warning.

Else (if S is "splittable"), seeks for S (first trying Item.FindName, if Item is not nil, then trying FindGlobal). Returns nil if not found.

Source: source/component/PasDoc_Gen.pas (line 604).

Protected function SearchLink(s: string; const Item: TBaseItem; const LinkDisplay: string; const WarningIfLinkNotFound: TLinkNotFoundAction; out FoundItem: TBaseItem): string; overload;

This item is declared in ancestor TDocGenerator.

Searches for an item of name S which was linked in the description of Item. Starts search within item, then does a search on all items in all units using FindGlobal. Returns a link as String on success.

If S is not splittable by SplitNameParts, it always does DoMessage with appropriate warning and returns something like 'UNKNOWN' (no matter what is the value of WarningIfLinkNotFound). FoundItem will be set to nil in this case.

When item will not be found then:

  • if WarningIfLinkNotFound is true then it returns CodeString(ConvertString(S)) and makes DoMessage with appropriate warning.

  • else it returns '' (and does not do any DoMessage)

If LinkDisplay is not '', then it specifies explicite the display text for link. Else how exactly link does look like is controlled by LinkLook property.

Parameters
FoundItem
is the found item instance or nil if not found.

Source: source/component/PasDoc_Gen.pas (line 631).

Protected function SearchLink(s: string; const Item: TBaseItem; const LinkDisplay: string; const WarningIfLinkNotFound: TLinkNotFoundAction): string; overload;

This item is declared in ancestor TDocGenerator.

Just like previous overloaded version, but this doesn't return FoundItem (in case you don't need it).

Source: source/component/PasDoc_Gen.pas (line 638).

Protected procedure StoreDescription(ItemName: string; var t: string);

This item is declared in ancestor TDocGenerator.

This item has no description.

Source: source/component/PasDoc_Gen.pas (line 642).

Protected procedure WriteConverted(const s: string; Newline: boolean); overload;

This item is declared in ancestor TDocGenerator.

Writes S to CurrentStream, converting it using ConvertString. Then optionally writes LineEnding.

Source: source/component/PasDoc_Gen.pas (line 646).

Protected procedure WriteConverted(const s: string); overload;

This item is declared in ancestor TDocGenerator.

Writes S to CurrentStream, converting it using ConvertString. No LineEnding at the end.

Source: source/component/PasDoc_Gen.pas (line 650).

Protected procedure WriteConvertedLine(const s: string);

This item is declared in ancestor TDocGenerator.

Writes S to CurrentStream, converting it using ConvertString. Then writes LineEnding.

Source: source/component/PasDoc_Gen.pas (line 654).

Protected procedure WriteDirect(const t: string; Newline: boolean); overload;

This item is declared in ancestor TDocGenerator.

Simply writes T to CurrentStream, with optional LineEnding.

Source: source/component/PasDoc_Gen.pas (line 657).

Protected procedure WriteDirect(const t: string); overload;

This item is declared in ancestor TDocGenerator.

Simply writes T to CurrentStream.

Source: source/component/PasDoc_Gen.pas (line 660).

Protected procedure WriteDirectLine(const t: string);

This item is declared in ancestor TDocGenerator.

Simply writes T followed by LineEnding to CurrentStream.

Source: source/component/PasDoc_Gen.pas (line 663).

Protected procedure WriteUnits(const HL: integer);

This item is declared in ancestor TDocGenerator.

Writes documentation for all units, calling WriteUnit for each unit.

Source: source/component/PasDoc_Gen.pas (line 674).

Protected procedure WriteGVUses;

This item is declared in ancestor TDocGenerator.

output graphviz uses tree

Source: source/component/PasDoc_Gen.pas (line 681).

Protected procedure WriteGVClasses;

This item is declared in ancestor TDocGenerator.

output graphviz class tree

Source: source/component/PasDoc_Gen.pas (line 683).

Protected procedure StartSpellChecking(const AMode: string);

This item is declared in ancestor TDocGenerator.

starts the spell checker

Source: source/component/PasDoc_Gen.pas (line 686).

Protected procedure CheckString(const AString: string; const AErrors: TSpellingErrorList);

This item is declared in ancestor TDocGenerator.

If CheckSpelling and spell checking was successfully started, this will run FAspellProcess.CheckString and will report all errors using DoMessage with mtWarning.

Otherwise this just clears AErrors, which means that no errors were found.

Source: source/component/PasDoc_Gen.pas (line 694).

Protected procedure EndSpellChecking;

This item is declared in ancestor TDocGenerator.

closes the spellchecker

Source: source/component/PasDoc_Gen.pas (line 697).

Protected function FormatNormalCode(AString: string): string; virtual;

This item is declared in ancestor TDocGenerator.

This will cause AString to be formatted in the way that normal Pascal statements (not keywords, strings, comments, etc.) look in Delphi.

Source: source/component/PasDoc_Gen.pas (line 709).

Protected function ShortDash: string; virtual;

This item is declared in ancestor TDocGenerator.

See TTagManager.ShortDash. Default implementation in this class returns '-'.

Source: source/component/PasDoc_Gen.pas (line 748).

Protected function LatexString(const S: string): string; virtual;

This item is declared in ancestor TDocGenerator.

Process LaTeX content, like provided by the @latex tag.

The default implementation is this class simply discards it, i.e. returns always ''. Generators that know what to do with raw LaTeX markup can override this with simple "Result := S".

Source: source/component/PasDoc_Gen.pas (line 775).

Protected procedure WriteExternal(const ExternalItem: TExternalItem; const Id: TTranslationID);

This item is declared in ancestor TDocGenerator.

Write the introduction and conclusion of the project.

Source: source/component/PasDoc_Gen.pas (line 809).

Protected procedure WriteConclusion;

This item is declared in ancestor TDocGenerator.

Writes a conclusion for the project. See WriteExternal.

Source: source/component/PasDoc_Gen.pas (line 825).

Protected procedure WriteIntroduction;

This item is declared in ancestor TDocGenerator.

Writes an introduction for the project. See WriteExternal.

Source: source/component/PasDoc_Gen.pas (line 829).

Protected procedure WriteAdditionalFiles;

This item is declared in ancestor TDocGenerator.

Writes the other files for the project. See WriteExternal.

Source: source/component/PasDoc_Gen.pas (line 833).

Public procedure BuildLinks;

This item is declared in ancestor TDocGenerator.

Creates anchors and links for all items in all units.

Source: source/component/PasDoc_Gen.pas (line 914).

Public procedure ResolveTypeAliasesDescriptions;

This item is declared in ancestor TDocGenerator.

For type aliases with empty RawDescription, copy the RawDescription from the aliased type. Do this only after BuildLinks to be able to follow type aliases.

Source: source/component/PasDoc_Gen.pas (line 920).

Public procedure ExpandDescriptions;

This item is declared in ancestor TDocGenerator.

Expands description for each item in each unit of Units. "Expands description" means that TTagManager.Execute is called, and item's DetailedDescription, AbstractDescription, AbstractDescriptionWasAutomatic (and many others, set by @-tags handlers) properties are calculated.

Source: source/component/PasDoc_Gen.pas (line 927).

Public procedure LoadDescriptionFiles(const c: TStringVector);

This item is declared in ancestor TDocGenerator.

Assumes C contains file names as PString variables. Calls LoadDescriptionFile with each file name.

Source: source/component/PasDoc_Gen.pas (line 935).

Public procedure ParseAbbreviationsFile(const AFileName: string);

This item is declared in ancestor TDocGenerator.

This item has no description.

Source: source/component/PasDoc_Gen.pas (line 947).

Protected function MakeHead: string; virtual;

This item is declared in ancestor TGenericHTMLDocGenerator.

Return common HTML content that goes inside <head>.

Source: source/component/PasDoc_GenHtml.pas (line 230).

Protected function ConvertString(const s: string): string; override;

This item is declared in ancestor TGenericHTMLDocGenerator.

This item has no description. Showing description inherited from TDocGenerator.ConvertString.

Converts for each character in S, thus assembling a String that is returned and can be written to the documentation file.

The @ character should not be converted, this will be done later on.

Source: source/component/PasDoc_GenHtml.pas (line 236).

Protected function ConvertChar(c: char): string; override;

This item is declared in ancestor TGenericHTMLDocGenerator.

Called by ConvertString to convert a character. Will convert special characters to their html escape sequence -> test

Source: source/component/PasDoc_GenHtml.pas (line 241).

Protected procedure WriteUnit(const HL: integer; const U: TPasUnit); override;

This item is declared in ancestor TGenericHTMLDocGenerator.

This item has no description. Showing description inherited from TDocGenerator.WriteUnit.

Abstract method that writes all documentation for a single unit U to output, starting at heading level HL. Implementation must be provided by descendant objects and is dependent on output format.

Source: source/component/PasDoc_GenHtml.pas (line 243).

Protected function HtmlString(const S: string): string; override;

This item is declared in ancestor TGenericHTMLDocGenerator.

overrides TDocGenerator.HtmlString.HtmlString to return the string verbatim (TDocGenerator.HtmlString discards those strings)

Source: source/component/PasDoc_GenHtml.pas (line 247).

Protected function FormatPascalCode(const Line: string): string; override;

This item is declared in ancestor TGenericHTMLDocGenerator.

FormatPascalCode will cause Line to be formatted in the way that Pascal code is formatted in Delphi.

Source: source/component/PasDoc_GenHtml.pas (line 251).

Protected function FormatComment(AString: string): string; override;

This item is declared in ancestor TGenericHTMLDocGenerator.

FormatComment will cause AString to be formatted in the way that comments other than compiler directives are formatted in Delphi. See: FormatCompilerComment.

Source: source/component/PasDoc_GenHtml.pas (line 256).

Protected function FormatHex(AString: string): string; override;

This item is declared in ancestor TGenericHTMLDocGenerator.

FormatHex will cause AString to be formatted in the way that Hex are formatted in Delphi.

Source: source/component/PasDoc_GenHtml.pas (line 260).

Protected function FormatNumeric(AString: string): string; override;

This item is declared in ancestor TGenericHTMLDocGenerator.

FormatNumeric will cause AString to be formatted in the way that Numeric are formatted in Delphi.

Source: source/component/PasDoc_GenHtml.pas (line 264).

Protected function FormatFloat(AString: string): string; override;

This item is declared in ancestor TGenericHTMLDocGenerator.

FormatFloat will cause AString to be formatted in the way that Float are formatted in Delphi.

Source: source/component/PasDoc_GenHtml.pas (line 268).

Protected function FormatString(AString: string): string; override;

This item is declared in ancestor TGenericHTMLDocGenerator.

FormatKeyWord will cause AString to be formatted in the way that strings are formatted in Delphi.

Source: source/component/PasDoc_GenHtml.pas (line 272).

Protected function FormatKeyWord(AString: string): string; override;

This item is declared in ancestor TGenericHTMLDocGenerator.

FormatKeyWord will cause AString to be formatted in the way that reserved words are formatted in Delphi.

Source: source/component/PasDoc_GenHtml.pas (line 276).

Protected function FormatCompilerComment(AString: string): string; override;

This item is declared in ancestor TGenericHTMLDocGenerator.

FormatCompilerComment will cause AString to be formatted in the way that compiler directives are formatted in Delphi.

Source: source/component/PasDoc_GenHtml.pas (line 280).

Protected function CodeString(const s: string): string; override;

This item is declared in ancestor TGenericHTMLDocGenerator.

Makes a String look like a coded String, i.e. <CODE>TheString</CODE> in Html.

Source: source/component/PasDoc_GenHtml.pas (line 284).

Protected function CreateLink(const Item: TBaseItem): string; override;

This item is declared in ancestor TGenericHTMLDocGenerator.

Returns a link to an anchor within a document. HTML simply concatenates the strings with a "#" character between them.

Source: source/component/PasDoc_GenHtml.pas (line 288).

Protected procedure WriteStartOfCode; override;

This item is declared in ancestor TGenericHTMLDocGenerator.

This item has no description.

Source: source/component/PasDoc_GenHtml.pas (line 290).

Protected procedure WriteEndOfCode; override;

This item is declared in ancestor TGenericHTMLDocGenerator.

This item has no description.

Source: source/component/PasDoc_GenHtml.pas (line 291).

Protected procedure WriteAnchor(const AName: string); overload;

This item is declared in ancestor TGenericHTMLDocGenerator.

This item has no description.

Source: source/component/PasDoc_GenHtml.pas (line 293).

Protected procedure WriteAnchor(const AName, Caption: string); overload;

This item is declared in ancestor TGenericHTMLDocGenerator.

Write an anchor. Note that the Caption is assumed to be already processed with the ConvertString.

Source: source/component/PasDoc_GenHtml.pas (line 296).

Protected function Paragraph: string; override;

This item is declared in ancestor TGenericHTMLDocGenerator.

This item has no description. Showing description inherited from TDocGenerator.Paragraph.

This is paragraph marker in output documentation.

Default implementation in this class simply returns ' ' (one space).

Source: source/component/PasDoc_GenHtml.pas (line 298).

Protected function EnDash: string; override;

This item is declared in ancestor TGenericHTMLDocGenerator.

This item has no description. Showing description inherited from TDocGenerator.EnDash.

See TTagManager.EnDash. Default implementation in this class returns '--'.

Source: source/component/PasDoc_GenHtml.pas (line 300).

Protected function EmDash: string; override;

This item is declared in ancestor TGenericHTMLDocGenerator.

This item has no description. Showing description inherited from TDocGenerator.EmDash.

See TTagManager.EmDash. Default implementation in this class returns '---'.

Source: source/component/PasDoc_GenHtml.pas (line 301).

Protected function LineBreak: string; override;

This item is declared in ancestor TGenericHTMLDocGenerator.

This item has no description. Showing description inherited from TDocGenerator.LineBreak.

Markup that forces line break in given output format (e.g. '<br>' in html or '\\' in LaTeX).

It is used on
tag (but may also be used on other occasions in the future).

In this class it returns '', because it's valid for an output generator to simply ignore
tags if linebreaks can't be expressed in given output format.

Source: source/component/PasDoc_GenHtml.pas (line 303).

Protected function URLLink(const URL: string): string; override;

This item is declared in ancestor TGenericHTMLDocGenerator.

This item has no description. Showing description inherited from TDocGenerator.URLLink.

Markup to display URL in a description. E.g. HTML generator will want to wrap this in <a href="...">...</a>.

Note that passed here URL is not processed by ConvertString (because sometimes it could be undesirable). If you want you can process URL with ConvertString when overriding this method.

Default implementation in this class simply returns ConvertString(URL). This is good if your documentation format does not support anything like URL links.

Source: source/component/PasDoc_GenHtml.pas (line 305).

Protected function URLLink(const URL, LinkDisplay: string): string; override;

This item is declared in ancestor TGenericHTMLDocGenerator.

This item has no description. Showing description inherited from TDocGenerator.URLLink.

Text which will be shown for an URL tag.

URL is a link to a website or e-mail address. LinkDisplay is an optional parameter which will be used as the display name of the URL.

Source: source/component/PasDoc_GenHtml.pas (line 306).

Protected procedure WriteExternalCore(const ExternalItem: TExternalItem; const Id: TTranslationID); override;

This item is declared in ancestor TGenericHTMLDocGenerator.

This item has no description. Showing description inherited from TDocGenerator.WriteExternalCore.

This is called from WriteExternal when ExternalItem.Title and ShortTitle are already set, message about generating appropriate item is printed etc. This should write ExternalItem, including ExternalItem.DetailedDescription, ExternalItem.Authors, ExternalItem.Created, ExternalItem.LastMod.

Source: source/component/PasDoc_GenHtml.pas (line 308).

Protected function MakeItemLink(const Item: TBaseItem; const LinkCaption: string; const LinkContext: TLinkContext): string; override;

This item is declared in ancestor TGenericHTMLDocGenerator.

This item has no description. Showing description inherited from TDocGenerator.MakeItemLink.

Return a link to item Item which will be displayed as LinkCaption. Returned string may be directly inserted inside output documentation. LinkCaption will be always converted using ConvertString before writing, so don't worry about doing this yourself when calling this method.

LinkContext may be used in some descendants to present the link differently, see TLinkContext for it's meaning.

If some output format doesn't support this feature, it can return simply ConvertString(LinkCaption). This is the default implementation of this method in this class.

Source: source/component/PasDoc_GenHtml.pas (line 311).

Protected function EscapeURL(const AString: string): string; virtual;

This item is declared in ancestor TGenericHTMLDocGenerator.

This item has no description.

Source: source/component/PasDoc_GenHtml.pas (line 315).

Protected function FormatSection(HL: integer; const Anchor: string; const Caption: string): string; override;

This item is declared in ancestor TGenericHTMLDocGenerator.

This item has no description. Showing description inherited from TDocGenerator.FormatSection.

Writes a section heading and a link-anchor.

Source: source/component/PasDoc_GenHtml.pas (line 317).

Protected function FormatAnchor(const Anchor: string): string; override;

This item is declared in ancestor TGenericHTMLDocGenerator.

This item has no description. Showing description inherited from TDocGenerator.FormatAnchor.

Writes a link-anchor.

Source: source/component/PasDoc_GenHtml.pas (line 319).

Protected function FormatBold(const Text: string): string; override;

This item is declared in ancestor TGenericHTMLDocGenerator.

This item has no description. Showing description inherited from TDocGenerator.FormatBold.

Return Text formatted using bold font.

Given Text is already in the final output format (with characters converted using ConvertString, @-tags expanded etc.).

Implementation of this method in this class simply returns Result := Text. Output generators that can somehow express bold formatting (or at least emphasis of some text) should override this.

Source: source/component/PasDoc_GenHtml.pas (line 321).

Protected function FormatItalic(const Text: string): string; override;

This item is declared in ancestor TGenericHTMLDocGenerator.

This item has no description. Showing description inherited from TDocGenerator.FormatItalic.

Return Text formatted using italic font. Analogous to FormatBold.

Source: source/component/PasDoc_GenHtml.pas (line 322).

Protected function FormatWarning(const Text: string): string; override;

This item is declared in ancestor TGenericHTMLDocGenerator.

This item has no description. Showing description inherited from TDocGenerator.FormatWarning.

Return Text using bold font by calling FormatBold(Text).

Source: source/component/PasDoc_GenHtml.pas (line 324).

Protected function FormatNote(const Text: string): string; override;

This item is declared in ancestor TGenericHTMLDocGenerator.

This item has no description. Showing description inherited from TDocGenerator.FormatNote.

Return Text using italic font by calling FormatItalic(Text).

Source: source/component/PasDoc_GenHtml.pas (line 325).

Protected function FormatPreformatted(const Text: string): string; override;

This item is declared in ancestor TGenericHTMLDocGenerator.

This item has no description. Showing description inherited from TDocGenerator.FormatPreformatted.

Return Text preserving spaces and line breaks. Note that Text passed here is not yet converted with ConvertString. The implementation of this method in this class just returns ConvertString(Text).

Source: source/component/PasDoc_GenHtml.pas (line 326).

Protected function FormatImage(FileNames: TStringList): string; override;

This item is declared in ancestor TGenericHTMLDocGenerator.

This item has no description. Showing description inherited from TDocGenerator.FormatImage.

Return markup to show an image. FileNames is a list of possible filenames of the image. FileNames always contains at least one item (i.e. FileNames.Count >= 1), never contains empty lines (i.e. Trim(FileNames[I]) <> ''), and contains only absolute filenames.

E.g. HTML generator will want to choose the best format for HTML, then somehow copy the image from FileNames[Chosen] and wrap this in <img src="...">.

Implementation of this method in this class simply shows FileNames[0]. Output generators should override this.

Source: source/component/PasDoc_GenHtml.pas (line 328).

Protected function FormatList(ListData: TListData): string; override;

This item is declared in ancestor TGenericHTMLDocGenerator.

This item has no description. Showing description inherited from TDocGenerator.FormatList.

Format a list from given ListData.

Source: source/component/PasDoc_GenHtml.pas (line 330).

Protected function FormatTable(Table: TTableData): string; override;

This item is declared in ancestor TGenericHTMLDocGenerator.

This item has no description. Showing description inherited from TDocGenerator.FormatTable.

Return appropriate content for given Table. It's guaranteed that the Table passed here will have at least one row and in each row there will be at least one cell, so you don't have to check it within descendants.

Source: source/component/PasDoc_GenHtml.pas (line 332).

Protected function FormatTableOfContents(Sections: TStringPairVector): string; override;

This item is declared in ancestor TGenericHTMLDocGenerator.

This item has no description. Showing description inherited from TDocGenerator.FormatTableOfContents.

Override this if you want to insert something on @tableOfContents tag. As a parameter you get already prepared tree of sections that your table of contents should show. Each item of Sections is a section on the level 1. Item's Name is section name, item's Value is section caption, item's Data is a TStringPairVector instance that describes subsections (on level 2) below this section. And so on, recursively.

Sections given here are never nil, and item's Data is never nil. But of course they may contain 0 items, and this should be a signal to you that given section doesn't have any subsections.

Default implementation of this method in this class just returns empty string.

Source: source/component/PasDoc_GenHtml.pas (line 334).

Public constructor Create(AOwner: TComponent); override;

This item is declared in ancestor TGenericHTMLDocGenerator.

This item has no description.

Source: source/component/PasDoc_GenHtml.pas (line 336).

Public destructor Destroy; override;

This item is declared in ancestor TGenericHTMLDocGenerator.

This item has no description.

Source: source/component/PasDoc_GenHtml.pas (line 337).

Public function GetFileExtension: string; override;

This item is declared in ancestor TGenericHTMLDocGenerator.

Returns HTML file extension ".htm".

Source: source/component/PasDoc_GenHtml.pas (line 340).

Public procedure WriteDocumentation; override;

This item is declared in ancestor TGenericHTMLDocGenerator.

The method that does everything - writes documentation for all units and creates overview files.

Source: source/component/PasDoc_GenHtml.pas (line 344).

Protected function MakeBodyBegin: string; override;

This item has no description. Showing description inherited from TGenericHTMLDocGenerator.MakeBodyBegin.

Return common HTML content that goes right after <body>.

Source: source/component/PasDoc_GenHtml.pas (line 382).

Protected function MakeBodyEnd: string; override;

This item has no description. Showing description inherited from TGenericHTMLDocGenerator.MakeBodyEnd.

Return common HTML content that goes right before </body>.

Source: source/component/PasDoc_GenHtml.pas (line 383).

Properties

Protected property CurrentStream: TStream read FCurrentStream;

This item is declared in ancestor TDocGenerator.

Output stream that is currently written to; depending on the output format, more than one output stream may be necessary to store all documentation.

Source: source/component/PasDoc_Gen.pas (line 472).

Public property Units: TPasUnits read FUnits write FUnits;

This item is declared in ancestor TDocGenerator.

This item has no description.

Source: source/component/PasDoc_Gen.pas (line 942).

Public property Introduction: TExternalItem read FIntroduction write FIntroduction;

This item is declared in ancestor TDocGenerator.

This item has no description.

Source: source/component/PasDoc_Gen.pas (line 949).

Public property Conclusion: TExternalItem read FConclusion write FConclusion;

This item is declared in ancestor TDocGenerator.

This item has no description.

Source: source/component/PasDoc_Gen.pas (line 951).

Public property AdditionalFiles: TExternalItemList read FAdditionalFiles write FAdditionalFiles;

This item is declared in ancestor TDocGenerator.

This item has no description.

Source: source/component/PasDoc_Gen.pas (line 952).

Public property OnMessage: TPasDocMessageEvent read FOnMessage write FOnMessage;

This item is declared in ancestor TDocGenerator.

Callback receiving messages from generator.

This is usually used internally by TPasDoc class, that assigns it's internal callback here when using this generator. Also, for the above reason, do not make this published.

See TPasDoc.OnMessage for something more useful for final programs.

Source: source/component/PasDoc_Gen.pas (line 961).

Published property Language: TLanguageID read GetLanguage write SetLanguage default DEFAULT_LANGUAGE;

This item is declared in ancestor TDocGenerator.

the (human) output language of the documentation file(s)

Source: source/component/PasDoc_Gen.pas (line 964).

Published property ProjectName: string read FProjectName write FProjectName;

This item is declared in ancestor TDocGenerator.

Name of the project to create.

Source: source/component/PasDoc_Gen.pas (line 967).

Published property ExcludeGenerator: Boolean read FExcludeGenerator write FExcludeGenerator default false;

This item is declared in ancestor TDocGenerator.

"Generator info" are things that can change with each invocation of pasdoc, with different pasdoc binary etc.

This includes

  • pasdoc's compiler name and version,

  • pasdoc's version and time of compilation

See --exclude-generator documentation. Default value is false (i.e. show them), as this information is generally considered useful.

Setting this to true is useful for automatically comparing two versions of pasdoc's output (e.g. when trying to automate pasdoc's tests).

Source: source/component/PasDoc_Gen.pas (line 985).

Published property IncludeCreationTime: Boolean read FIncludeCreationTime write FIncludeCreationTime default false;

This item is declared in ancestor TDocGenerator.

Show creation time in the output.

Source: source/component/PasDoc_Gen.pas (line 989).

Published property UseLowercaseKeywords: Boolean read FUseLowercaseKeywords write FUseLowercaseKeywords default false;

This item is declared in ancestor TDocGenerator.

Setting to define how literal tag keywords should appear in documentaion.

Source: source/component/PasDoc_Gen.pas (line 993).

Published property Title: string read FTitle write FTitle;

This item is declared in ancestor TDocGenerator.

Title of the documentation, supplied by user. May be empty. See TPasDoc.Title.

Source: source/component/PasDoc_Gen.pas (line 998).

Published property DestinationDirectory: string read FDestDir write SetDestDir;

This item is declared in ancestor TDocGenerator.

Destination directory for documentation. Must include terminating forward slash or backslash so that valid file names can be created by concatenating DestinationDirectory and a pathless file name.

Source: source/component/PasDoc_Gen.pas (line 1003).

Published property OutputGraphVizUses: boolean read FGraphVizUses write FGraphVizUses default false;

This item is declared in ancestor TDocGenerator.

generate a GraphViz diagram for the units dependencies

Source: source/component/PasDoc_Gen.pas (line 1006).

Published property OutputGraphVizClassHierarchy: boolean read FGraphVizClasses write FGraphVizClasses default false;

This item is declared in ancestor TDocGenerator.

generate a GraphViz diagram for the Class hierarchy

Source: source/component/PasDoc_Gen.pas (line 1009).

Published property LinkGraphVizUses: string read FLinkGraphVizUses write FLinkGraphVizUses;

This item is declared in ancestor TDocGenerator.

link the GraphViz uses diagram

Source: source/component/PasDoc_Gen.pas (line 1012).

Published property LinkGraphVizClasses: string read FLinkGraphVizClasses write FLinkGraphVizClasses;

This item is declared in ancestor TDocGenerator.

link the GraphViz classes diagram

Source: source/component/PasDoc_Gen.pas (line 1014).

Published property Abbreviations: TStringList read FAbbreviations write SetAbbreviations;

This item is declared in ancestor TDocGenerator.

This item has no description.

Source: source/component/PasDoc_Gen.pas (line 1016).

Published property CheckSpelling: boolean read FCheckSpelling write FCheckSpelling default false;

This item is declared in ancestor TDocGenerator.

This item has no description.

Source: source/component/PasDoc_Gen.pas (line 1018).

Published property AspellLanguage: string read FAspellLanguage write FAspellLanguage;

This item is declared in ancestor TDocGenerator.

This item has no description.

Source: source/component/PasDoc_Gen.pas (line 1021).

Published property SpellCheckIgnoreWords: TStringList read FSpellCheckIgnoreWords write SetSpellCheckIgnoreWords;

This item is declared in ancestor TDocGenerator.

This item has no description.

Source: source/component/PasDoc_Gen.pas (line 1023).

Published property AutoAbstract: boolean read FAutoAbstract write FAutoAbstract default DefaultAutoAbstract;

This item is declared in ancestor TDocGenerator.

Automatically detect abstract (summary) descriptions without @abstract tag. See --auto-abstract command-line option docs on https://pasdoc.github.io/Abstract . This is used in ExpandDescriptions.

Source: source/component/PasDoc_Gen.pas (line 1029).

Published property LinkLook: TLinkLook read FLinkLook write FLinkLook default llDefault;

This item is declared in ancestor TDocGenerator.

How SearchLink behaves. This meaning is described in --link-look documentation.

Source: source/component/PasDoc_Gen.pas (line 1034).

Published property WriteUsesClause: boolean read FWriteUsesClause write FWriteUsesClause default false;

This item is declared in ancestor TDocGenerator.

This item has no description.

Source: source/component/PasDoc_Gen.pas (line 1036).

Published property AutoLink: boolean read FAutoLink write FAutoLink default false;

This item is declared in ancestor TDocGenerator.

Automatically link identifiers to their documentation, even without @link tags. See --auto-link documentation.

Source: source/component/PasDoc_Gen.pas (line 1041).

Published property AutoLinkExclude: TStringList read FAutoLinkExclude;

This item is declared in ancestor TDocGenerator.

This item has no description.

Source: source/component/PasDoc_Gen.pas (line 1044).

Published property ExternalClassHierarchy: TStrings read FExternalClassHierarchy write SetExternalClassHierarchy stored StoredExternalClassHierarchy;

This item is declared in ancestor TDocGenerator.

This item has no description.

Source: source/component/PasDoc_Gen.pas (line 1046).

Published property Markdown: boolean read FMarkdown write FMarkdown default false;

This item is declared in ancestor TDocGenerator.

This item has no description.

Source: source/component/PasDoc_Gen.pas (line 1050).

Published property ShowSourcePosition: boolean read FShowSourcePosition write FShowSourcePosition default false;

This item is declared in ancestor TDocGenerator.

Show source filename and line number in documentation output.

Source: source/component/PasDoc_Gen.pas (line 1054).

Published property SourceRoot: string read FSourceRoot write FSourceRoot;

This item is declared in ancestor TDocGenerator.

Root path for source files. Used to make relative paths, shown by ShowSourcePosition and replaced by SourceUrlPattern. Leave empty to make ShowSourcePosition and SourceUrlPattern just take the final filename part to show / replace.

Source: source/component/PasDoc_Gen.pas (line 1063).

Published property SourceUrlPattern: string read FSourceUrlPattern write FSourceUrlPattern;

This item is declared in ancestor TDocGenerator.

URL pattern for linking source positions. Use {FILE} for filename and {LINE} for line number. When set, source positions in the output become clickable links. Example: https://github.com/owner/repo/blob/main/{FILE}#L{LINE}

Source: source/component/PasDoc_Gen.pas (line 1070).

Published property ToggleVisibilities: TVisibilities read FToggleVisibilities write FToggleVisibilities default [];

This item is declared in ancestor TDocGenerator.

Visibilities that should be included in output but hidden by default in HTML, with checkboxes to toggle their display.

Source: source/component/PasDoc_Gen.pas (line 1075).

Published property SortSettings: TSortSettings read FSortSettings write FSortSettings default [];

This item is declared in ancestor TDocGenerator.

How items should be sorted in output. See --sort documentation.

The TPasDoc sorts the items in Units before executing our WriteDocumentation, so TDocGenerator usually doesn't need to worry about sorting anymore... Except if output rearranges/sums items, like HTML output does for InheritedMembers<>imNever, in which case they need to be sorted again.

Source: source/component/PasDoc_Gen.pas (line 1087).

Published property Header: string read FHeader write FHeader;

This item is declared in ancestor TGenericHTMLDocGenerator.

some HTML code to be written as header for every page

Source: source/component/PasDoc_GenHtml.pas (line 347).

Published property Footer: string read FFooter write FFooter;

This item is declared in ancestor TGenericHTMLDocGenerator.

some HTML code to be written as footer for every page

Source: source/component/PasDoc_GenHtml.pas (line 349).

Published property HtmlBodyBegin: string read FHtmlBodyBegin write FHtmlBodyBegin;

This item is declared in ancestor TGenericHTMLDocGenerator.

This item has no description.

Source: source/component/PasDoc_GenHtml.pas (line 351).

Published property HtmlBodyEnd: string read FHtmlBodyEnd write FHtmlBodyEnd;

This item is declared in ancestor TGenericHTMLDocGenerator.

This item has no description.

Source: source/component/PasDoc_GenHtml.pas (line 352).

Published property HtmlHead: string read FHtmlHead write FHtmlHead;

This item is declared in ancestor TGenericHTMLDocGenerator.

This item has no description.

Source: source/component/PasDoc_GenHtml.pas (line 353).

Published property CSS: string read FCSS write FCSS stored StoredCss;

This item is declared in ancestor TGenericHTMLDocGenerator.

Contents of the main CSS file (pasdoc.css).

Source: source/component/PasDoc_GenHtml.pas (line 356).

Published property Bootstrap: boolean read FBootstrap write FBootstrap default true;

This item is declared in ancestor TGenericHTMLDocGenerator.

If true, add Bootstrap CSS and JS. Definitions in CSS will be evaluated after Bootstrap's ones.

Source: source/component/PasDoc_GenHtml.pas (line 360).

Published property NumericFilenames: boolean read FNumericFilenames write FNumericFilenames default false;

This item is declared in ancestor TGenericHTMLDocGenerator.

if set to true, numeric filenames will be used rather than names with multiple dots

Source: source/component/PasDoc_GenHtml.pas (line 363).

Published property UseTipueSearch: boolean read FUseTipueSearch write FUseTipueSearch default False;

This item is declared in ancestor TGenericHTMLDocGenerator.

Enable Tipue fulltext search. See --use-tipue-search documentation.

Source: source/component/PasDoc_GenHtml.pas (line 368).

Published property InheritedMembers: TInheritedMembers read FInheritedMembers write FInheritedMembers default imNever;

This item is declared in ancestor TGenericHTMLDocGenerator.

Show inherited members (in outputs that make it possible, which right now means only HTML output).

Source: source/component/PasDoc_GenHtml.pas (line 373).


PasDoc's autodoc: PasDoc_GenHtmlHelp

Unit PasDoc_GenHtmlHelp

Description
Uses
Classes, Interfaces, Objects and Records

Description

Generate HtmlHelp output.

Source: source/component/PasDoc_GenHtmlHelp.pas (line 24).

Uses

  • PasDoc_GenHtml
  • PasDoc_Utils
  • PasDoc_SortSettings

Overview

Classes, Interfaces, Objects and Records

Name | Description
Class THTMLHelpDocGenerator |


PasDoc's autodoc: PasDoc_GenHtmlHelp: Class THTMLHelpDocGenerator

Class THTMLHelpDocGenerator

Description
Hierarchy
Constants
Fields
Methods
Properties

Unit

PasDoc_GenHtmlHelp

Declaration

type THTMLHelpDocGenerator = class(TGenericHTMLDocGenerator)

Description

This item has no description. Showing description inherited from TGenericHTMLDocGenerator.

HTML documentation generator. Extends TDocGenerator and overwrites many of its methods to generate output in HTML format.

Source: source/component/PasDoc_GenHtmlHelp.pas (line 33).

Hierarchy

  • TObject
  • TPersistent
  • TComponent
  • TDocGenerator
  • TGenericHTMLDocGenerator
  • THTMLHelpDocGenerator
Show Additional Members:

Overview

Constants

Public DefaultAutoAbstract = true;

Fields

Protected | FLanguage: TPasDocLanguages;
Protected | FClassHierarchy: TStringCardinalTree;
Protected | FUnits: TPasUnits;

Methods

Protected | procedure DoError(const AMessage: string; const AArguments: array of const; const AExitCode: Word);
Protected | procedure DoMessage(const AVerbosity: Cardinal; const MessageType: TPasDocMessageType; const AMessage: string; const AArguments: array of const);
Protected | procedure CreateClassHierarchy;
Protected | procedure WriteCodeWithLinksCommon(const Item: TPasItem; const Code: string; WriteItemLink: boolean; const NameLinkBegin, NameLinkEnd: string);
Protected | function HasSourcePosition(const AItem: TPasItem; out ItemName, ItemFilenameInRoot, ItemUrl: string): boolean;
Protected | procedure CloseStream;
Protected | function CreateStream(const AName: string): Boolean;
Protected | function ExtractEmailAddress(s: string; out S1, S2, EmailAddress: string): Boolean;
Protected | function FixEmailaddressWithoutMailTo(const PossibleEmailAddress: String): String;
Protected | function ExtractWebAddress(s: string; out S1, S2, WebAddress: string): Boolean;
Protected | function FindGlobal(const NameParts: TNameParts): TBaseItem;
Protected | function FindGlobalPasItem(const NameParts: TNameParts): TPasItem; overload;
Protected | function FindGlobalPasItem(const ItemName: String): TPasItem; overload;
Protected | function GetClassDirectiveName(const Directive: TClassDirective): string;
Protected | function GetCIOTypeName(const MyType: TCIOType): string;
Protected | procedure LoadDescriptionFile(n: string);
Protected | function SearchItem(s: string; const Item: TBaseItem; WarningIfNotSplittable: boolean): TBaseItem;
Protected | function SearchLink(s: string; const Item: TBaseItem; const LinkDisplay: string; const WarningIfLinkNotFound: TLinkNotFoundAction; out FoundItem: TBaseItem): string; overload;
Protected | function SearchLink(s: string; const Item: TBaseItem; const LinkDisplay: string; const WarningIfLinkNotFound: TLinkNotFoundAction): string; overload;
Protected | procedure StoreDescription(ItemName: string; var t: string);
Protected | procedure WriteConverted(const s: string; Newline: boolean); overload;
Protected | procedure WriteConverted(const s: string); overload;
Protected | procedure WriteConvertedLine(const s: string);
Protected | procedure WriteDirect(const t: string; Newline: boolean); overload;
Protected | procedure WriteDirect(const t: string); overload;
Protected | procedure WriteDirectLine(const t: string);
Protected | procedure WriteUnits(const HL: integer);
Protected | procedure WriteGVUses;
Protected | procedure WriteGVClasses;
Protected | procedure StartSpellChecking(const AMode: string);
Protected | procedure CheckString(const AString: string; const AErrors: TSpellingErrorList);
Protected | procedure EndSpellChecking;
Protected | function FormatNormalCode(AString: string): string; virtual;
Protected | function ShortDash: string; virtual;
Protected | function LatexString(const S: string): string; virtual;
Protected | procedure WriteExternal(const ExternalItem: TExternalItem; const Id: TTranslationID);
Protected | procedure WriteConclusion;
Protected | procedure WriteIntroduction;
Protected | procedure WriteAdditionalFiles;
Public | procedure BuildLinks;
Public | procedure ResolveTypeAliasesDescriptions;
Public | procedure ExpandDescriptions;
Public | procedure LoadDescriptionFiles(const c: TStringVector);
Public | procedure ParseAbbreviationsFile(const AFileName: string);
Protected | function MakeBodyBegin: string; virtual;
Protected | function MakeBodyEnd: string; virtual;
Protected | function ConvertString(const s: string): string; override;
Protected | function ConvertChar(c: char): string; override;
Protected | procedure WriteUnit(const HL: integer; const U: TPasUnit); override;
Protected | function HtmlString(const S: string): string; override;
Protected | function FormatPascalCode(const Line: string): string; override;
Protected | function FormatComment(AString: string): string; override;
Protected | function FormatHex(AString: string): string; override;
Protected | function FormatNumeric(AString: string): string; override;
Protected | function FormatFloat(AString: string): string; override;
Protected | function FormatString(AString: string): string; override;
Protected | function FormatKeyWord(AString: string): string; override;
Protected | function FormatCompilerComment(AString: string): string; override;
Protected | function CodeString(const s: string): string; override;
Protected | function CreateLink(const Item: TBaseItem): string; override;
Protected | procedure WriteStartOfCode; override;
Protected | procedure WriteEndOfCode; override;
Protected | procedure WriteAnchor(const AName: string); overload;
Protected | procedure WriteAnchor(const AName, Caption: string); overload;
Protected | function Paragraph: string; override;
Protected | function EnDash: string; override;
Protected | function EmDash: string; override;
Protected | function LineBreak: string; override;
Protected | function URLLink(const URL: string): string; override;
Protected | function URLLink(const URL, LinkDisplay: string): string; override;
Protected | procedure WriteExternalCore(const ExternalItem: TExternalItem; const Id: TTranslationID); override;
Protected | function MakeItemLink(const Item: TBaseItem; const LinkCaption: string; const LinkContext: TLinkContext): string; override;
Protected | function EscapeURL(const AString: string): string; virtual;
Protected | function FormatSection(HL: integer; const Anchor: string; const Caption: string): string; override;
Protected | function FormatAnchor(const Anchor: string): string; override;
Protected | function FormatBold(const Text: string): string; override;
Protected | function FormatItalic(const Text: string): string; override;
Protected | function FormatWarning(const Text: string): string; override;
Protected | function FormatNote(const Text: string): string; override;
Protected | function FormatPreformatted(const Text: string): string; override;
Protected | function FormatImage(FileNames: TStringList): string; override;
Protected | function FormatList(ListData: TListData): string; override;
Protected | function FormatTable(Table: TTableData): string; override;
Protected | function FormatTableOfContents(Sections: TStringPairVector): string; override;
Public | constructor Create(AOwner: TComponent); override;
Public | destructor Destroy; override;
Public | function GetFileExtension: string; override;
Protected | function MakeHead: string; override;
Public | procedure WriteDocumentation; override;

Properties

Protected | property CurrentStream: TStream read FCurrentStream;
Public | property Units: TPasUnits read FUnits write FUnits;
Public | property Introduction: TExternalItem read FIntroduction write FIntroduction;
Public | property Conclusion: TExternalItem read FConclusion write FConclusion;
Public | property AdditionalFiles: TExternalItemList read FAdditionalFiles write FAdditionalFiles;
Public | property OnMessage: TPasDocMessageEvent read FOnMessage write FOnMessage;
Published | property Language: TLanguageID read GetLanguage write SetLanguage default DEFAULT_LANGUAGE;
Published | property ProjectName: string read FProjectName write FProjectName;
Published | property ExcludeGenerator: Boolean read FExcludeGenerator write FExcludeGenerator default false;
Published | property IncludeCreationTime: Boolean read FIncludeCreationTime write FIncludeCreationTime default false;
Published | property UseLowercaseKeywords: Boolean read FUseLowercaseKeywords write FUseLowercaseKeywords default false;
Published | property Title: string read FTitle write FTitle;
Published | property DestinationDirectory: string read FDestDir write SetDestDir;
Published | property OutputGraphVizUses: boolean read FGraphVizUses write FGraphVizUses default false;
Published | property OutputGraphVizClassHierarchy: boolean read FGraphVizClasses write FGraphVizClasses default false;
Published | property LinkGraphVizUses: string read FLinkGraphVizUses write FLinkGraphVizUses;
Published | property LinkGraphVizClasses: string read FLinkGraphVizClasses write FLinkGraphVizClasses;
Published | property Abbreviations: TStringList read FAbbreviations write SetAbbreviations;
Published | property CheckSpelling: boolean read FCheckSpelling write FCheckSpelling default false;
Published | property AspellLanguage: string read FAspellLanguage write FAspellLanguage;
Published | property SpellCheckIgnoreWords: TStringList read FSpellCheckIgnoreWords write SetSpellCheckIgnoreWords;
Published | property AutoAbstract: boolean read FAutoAbstract write FAutoAbstract default DefaultAutoAbstract;
Published | property LinkLook: TLinkLook read FLinkLook write FLinkLook default llDefault;
Published | property WriteUsesClause: boolean read FWriteUsesClause write FWriteUsesClause default false;
Published | property AutoLink: boolean read FAutoLink write FAutoLink default false;
Published | property AutoLinkExclude: TStringList read FAutoLinkExclude;
Published | property ExternalClassHierarchy: TStrings read FExternalClassHierarchy write SetExternalClassHierarchy stored StoredExternalClassHierarchy;
Published | property Markdown: boolean read FMarkdown write FMarkdown default false;
Published | property ShowSourcePosition: boolean read FShowSourcePosition write FShowSourcePosition default false;
Published | property SourceRoot: string read FSourceRoot write FSourceRoot;
Published | property SourceUrlPattern: string read FSourceUrlPattern write FSourceUrlPattern;
Published | property ToggleVisibilities: TVisibilities read FToggleVisibilities write FToggleVisibilities default [];
Published | property SortSettings: TSortSettings read FSortSettings write FSortSettings default [];
Published | property Header: string read FHeader write FHeader;
Published | property Footer: string read FFooter write FFooter;
Published | property HtmlBodyBegin: string read FHtmlBodyBegin write FHtmlBodyBegin;
Published | property HtmlBodyEnd: string read FHtmlBodyEnd write FHtmlBodyEnd;
Published | property HtmlHead: string read FHtmlHead write FHtmlHead;
Published | property CSS: string read FCSS write FCSS stored StoredCss;
Published | property Bootstrap: boolean read FBootstrap write FBootstrap default true;
Published | property NumericFilenames: boolean read FNumericFilenames write FNumericFilenames default false;
Published | property UseTipueSearch: boolean read FUseTipueSearch write FUseTipueSearch default False;
Published | property InheritedMembers: TInheritedMembers read FInheritedMembers write FInheritedMembers default imNever;
Published | property ContentsFile: string read FContentsFile write FContentsFile;

Description

Constants

Public DefaultAutoAbstract = true;

This item is declared in ancestor TDocGenerator.

This item has no description.

Source: source/component/PasDoc_Gen.pas (line 911).

Fields

Protected FLanguage: TPasDocLanguages;

This item is declared in ancestor TDocGenerator.

the (human) output language of the documentation file(s)

Source: source/component/PasDoc_Gen.pas (line 459).

Protected FClassHierarchy: TStringCardinalTree;

This item is declared in ancestor TDocGenerator.

This item has no description.

Source: source/component/PasDoc_Gen.pas (line 461).

Protected FUnits: TPasUnits;

This item is declared in ancestor TDocGenerator.

list of all units that were successfully parsed

Source: source/component/PasDoc_Gen.pas (line 511).

Methods

Protected procedure DoError(const AMessage: string; const AArguments: array of const; const AExitCode: Word);

This item is declared in ancestor TDocGenerator.

This item has no description.

Source: source/component/PasDoc_Gen.pas (line 463).

Protected procedure DoMessage(const AVerbosity: Cardinal; const MessageType: TPasDocMessageType; const AMessage: string; const AArguments: array of const);

This item is declared in ancestor TDocGenerator.

This item has no description.

Source: source/component/PasDoc_Gen.pas (line 465).

Protected procedure CreateClassHierarchy;

This item is declared in ancestor TDocGenerator.

This item has no description.

Source: source/component/PasDoc_Gen.pas (line 474).

Protected procedure WriteCodeWithLinksCommon(const Item: TPasItem; const Code: string; WriteItemLink: boolean; const NameLinkBegin, NameLinkEnd: string);

This item is declared in ancestor TDocGenerator.

This writes Code as a Pascal code. Links inside the code are resolved from Item. If WriteItemLink then Item.Name is made a link. Item.Name is printed between NameLinkBegin and NameLinkEnd.

Source: source/component/PasDoc_Gen.pas (line 495).

Protected function HasSourcePosition(const AItem: TPasItem; out ItemName, ItemFilenameInRoot, ItemUrl: string): boolean;

This item is declared in ancestor TDocGenerator.

Utility to process information from TPasItem.SourceAbsoluteFileName and TPasItem.SourceLine and decide whether to show it. If True, then we should show it.

Parameters
ItemName
is the name to show.
ItemFilenameInRoot
is the filename, relative to SourceRoot, using always / on any system (even on Windows).
ItemUrl
is the URL to link to, if any (don't make a link if this is '').

Source: source/component/PasDoc_Gen.pas (line 507).

Protected procedure CloseStream;

This item is declared in ancestor TDocGenerator.

If field CurrentStream is assigned, it is disposed and set to nil.

Source: source/component/PasDoc_Gen.pas (line 514).

Protected function CreateStream(const AName: string): Boolean;

This item is declared in ancestor TDocGenerator.

Open output stream in the destination directory. If CurrentStream still exists (<> nil), it is closed. Then, a new output stream in the destination directory is created and assigned to CurrentStream. The file is overwritten if exists.

Use this only for text files that you want to write using WriteXxx methods of this class (like WriteConverted). There's no point to use if for other files.

Returns True if creation was successful, False otherwise. When it returns False, the error message was already shown by DoMessage.

Source: source/component/PasDoc_Gen.pas (line 552).

Protected function ExtractEmailAddress(s: string; out S1, S2, EmailAddress: string): Boolean;

This item is declared in ancestor TDocGenerator.

Searches for an email address in String S. Searches for first appearance of the @ character

Source: source/component/PasDoc_Gen.pas (line 556).

Protected function FixEmailaddressWithoutMailTo(const PossibleEmailAddress: String): String;

This item is declared in ancestor TDocGenerator.

Searches for an email address in PossibleEmailAddress and appends mailto: if it's an email address and mailto: wasn't provided. Otherwise it simply returns the input.

Needed to link email addresses properly which doesn't start with mailto:

Source: source/component/PasDoc_Gen.pas (line 563).

Protected function ExtractWebAddress(s: string; out S1, S2, WebAddress: string): Boolean;

This item is declared in ancestor TDocGenerator.

Searches for a web address in String S. It must either contain a http:// or start with www.

Source: source/component/PasDoc_Gen.pas (line 567).

Protected function FindGlobal(const NameParts: TNameParts): TBaseItem;

This item is declared in ancestor TDocGenerator.

Searches all items in all units (given by field Units) for item with NameParts. Returns a pointer to the item on success, nil otherwise.

Source: source/component/PasDoc_Gen.pas (line 572).

Protected function FindGlobalPasItem(const NameParts: TNameParts): TPasItem; overload;

This item is declared in ancestor TDocGenerator.

Find a Pascal item, searching global namespace. Returns Nil if not found.

Source: source/component/PasDoc_Gen.pas (line 576).

Protected function FindGlobalPasItem(const ItemName: String): TPasItem; overload;

This item is declared in ancestor TDocGenerator.

Find a Pascal item, searching global namespace. Assumes that Name is only one component (not something with dots inside). Returns Nil if not found.

Source: source/component/PasDoc_Gen.pas (line 581).

Protected function GetClassDirectiveName(const Directive: TClassDirective): string;

This item is declared in ancestor TDocGenerator.

GetClassDirectiveName returns ' abstract', or ' sealed' for classes that abstract or sealed respectively. GetClassDirectiveName is used by TTexDocGenerator and TGenericHTMLDocGenerator in writing the declaration of the class.

Source: source/component/PasDoc_Gen.pas (line 586).

Protected function GetCIOTypeName(const MyType: TCIOType): string;

This item is declared in ancestor TDocGenerator.

GetCIOTypeName writes a translation of MyType based on the current language. However, 'record' and 'packed record' are not translated.

Source: source/component/PasDoc_Gen.pas (line 590).

Protected procedure LoadDescriptionFile(n: string);

This item is declared in ancestor TDocGenerator.

Loads descriptions from file N and replaces or fills the corresponding comment sections of items.

Source: source/component/PasDoc_Gen.pas (line 594).

Protected function SearchItem(s: string; const Item: TBaseItem; WarningIfNotSplittable: boolean): TBaseItem;

This item is declared in ancestor TDocGenerator.

Searches for item with name S.

If S is not splittable by SplitNameParts, returns nil. If WarningIfNotSplittable, additionally does DoMessage with appropriate warning.

Else (if S is "splittable"), seeks for S (first trying Item.FindName, if Item is not nil, then trying FindGlobal). Returns nil if not found.

Source: source/component/PasDoc_Gen.pas (line 604).

Protected function SearchLink(s: string; const Item: TBaseItem; const LinkDisplay: string; const WarningIfLinkNotFound: TLinkNotFoundAction; out FoundItem: TBaseItem): string; overload;

This item is declared in ancestor TDocGenerator.

Searches for an item of name S which was linked in the description of Item. Starts search within item, then does a search on all items in all units using FindGlobal. Returns a link as String on success.

If S is not splittable by SplitNameParts, it always does DoMessage with appropriate warning and returns something like 'UNKNOWN' (no matter what is the value of WarningIfLinkNotFound). FoundItem will be set to nil in this case.

When item will not be found then:

  • if WarningIfLinkNotFound is true then it returns CodeString(ConvertString(S)) and makes DoMessage with appropriate warning.

  • else it returns '' (and does not do any DoMessage)

If LinkDisplay is not '', then it specifies explicite the display text for link. Else how exactly link does look like is controlled by LinkLook property.

Parameters
FoundItem
is the found item instance or nil if not found.

Source: source/component/PasDoc_Gen.pas (line 631).

Protected function SearchLink(s: string; const Item: TBaseItem; const LinkDisplay: string; const WarningIfLinkNotFound: TLinkNotFoundAction): string; overload;

This item is declared in ancestor TDocGenerator.

Just like previous overloaded version, but this doesn't return FoundItem (in case you don't need it).

Source: source/component/PasDoc_Gen.pas (line 638).

Protected procedure StoreDescription(ItemName: string; var t: string);

This item is declared in ancestor TDocGenerator.

This item has no description.

Source: source/component/PasDoc_Gen.pas (line 642).

Protected procedure WriteConverted(const s: string; Newline: boolean); overload;

This item is declared in ancestor TDocGenerator.

Writes S to CurrentStream, converting it using ConvertString. Then optionally writes LineEnding.

Source: source/component/PasDoc_Gen.pas (line 646).

Protected procedure WriteConverted(const s: string); overload;

This item is declared in ancestor TDocGenerator.

Writes S to CurrentStream, converting it using ConvertString. No LineEnding at the end.

Source: source/component/PasDoc_Gen.pas (line 650).

Protected procedure WriteConvertedLine(const s: string);

This item is declared in ancestor TDocGenerator.

Writes S to CurrentStream, converting it using ConvertString. Then writes LineEnding.

Source: source/component/PasDoc_Gen.pas (line 654).

Protected procedure WriteDirect(const t: string; Newline: boolean); overload;

This item is declared in ancestor TDocGenerator.

Simply writes T to CurrentStream, with optional LineEnding.

Source: source/component/PasDoc_Gen.pas (line 657).

Protected procedure WriteDirect(const t: string); overload;

This item is declared in ancestor TDocGenerator.

Simply writes T to CurrentStream.

Source: source/component/PasDoc_Gen.pas (line 660).

Protected procedure WriteDirectLine(const t: string);

This item is declared in ancestor TDocGenerator.

Simply writes T followed by LineEnding to CurrentStream.

Source: source/component/PasDoc_Gen.pas (line 663).

Protected procedure WriteUnits(const HL: integer);

This item is declared in ancestor TDocGenerator.

Writes documentation for all units, calling WriteUnit for each unit.

Source: source/component/PasDoc_Gen.pas (line 674).

Protected procedure WriteGVUses;

This item is declared in ancestor TDocGenerator.

output graphviz uses tree

Source: source/component/PasDoc_Gen.pas (line 681).

Protected procedure WriteGVClasses;

This item is declared in ancestor TDocGenerator.

output graphviz class tree

Source: source/component/PasDoc_Gen.pas (line 683).

Protected procedure StartSpellChecking(const AMode: string);

This item is declared in ancestor TDocGenerator.

starts the spell checker

Source: source/component/PasDoc_Gen.pas (line 686).

Protected procedure CheckString(const AString: string; const AErrors: TSpellingErrorList);

This item is declared in ancestor TDocGenerator.

If CheckSpelling and spell checking was successfully started, this will run FAspellProcess.CheckString and will report all errors using DoMessage with mtWarning.

Otherwise this just clears AErrors, which means that no errors were found.

Source: source/component/PasDoc_Gen.pas (line 694).

Protected procedure EndSpellChecking;

This item is declared in ancestor TDocGenerator.

closes the spellchecker

Source: source/component/PasDoc_Gen.pas (line 697).

Protected function FormatNormalCode(AString: string): string; virtual;

This item is declared in ancestor TDocGenerator.

This will cause AString to be formatted in the way that normal Pascal statements (not keywords, strings, comments, etc.) look in Delphi.

Source: source/component/PasDoc_Gen.pas (line 709).

Protected function ShortDash: string; virtual;

This item is declared in ancestor TDocGenerator.

See TTagManager.ShortDash. Default implementation in this class returns '-'.

Source: source/component/PasDoc_Gen.pas (line 748).

Protected function LatexString(const S: string): string; virtual;

This item is declared in ancestor TDocGenerator.

Process LaTeX content, like provided by the @latex tag.

The default implementation is this class simply discards it, i.e. returns always ''. Generators that know what to do with raw LaTeX markup can override this with simple "Result := S".

Source: source/component/PasDoc_Gen.pas (line 775).

Protected procedure WriteExternal(const ExternalItem: TExternalItem; const Id: TTranslationID);

This item is declared in ancestor TDocGenerator.

Write the introduction and conclusion of the project.

Source: source/component/PasDoc_Gen.pas (line 809).

Protected procedure WriteConclusion;

This item is declared in ancestor TDocGenerator.

Writes a conclusion for the project. See WriteExternal.

Source: source/component/PasDoc_Gen.pas (line 825).

Protected procedure WriteIntroduction;

This item is declared in ancestor TDocGenerator.

Writes an introduction for the project. See WriteExternal.

Source: source/component/PasDoc_Gen.pas (line 829).

Protected procedure WriteAdditionalFiles;

This item is declared in ancestor TDocGenerator.

Writes the other files for the project. See WriteExternal.

Source: source/component/PasDoc_Gen.pas (line 833).

Public procedure BuildLinks;

This item is declared in ancestor TDocGenerator.

Creates anchors and links for all items in all units.

Source: source/component/PasDoc_Gen.pas (line 914).

Public procedure ResolveTypeAliasesDescriptions;

This item is declared in ancestor TDocGenerator.

For type aliases with empty RawDescription, copy the RawDescription from the aliased type. Do this only after BuildLinks to be able to follow type aliases.

Source: source/component/PasDoc_Gen.pas (line 920).

Public procedure ExpandDescriptions;

This item is declared in ancestor TDocGenerator.

Expands description for each item in each unit of Units. "Expands description" means that TTagManager.Execute is called, and item's DetailedDescription, AbstractDescription, AbstractDescriptionWasAutomatic (and many others, set by @-tags handlers) properties are calculated.

Source: source/component/PasDoc_Gen.pas (line 927).

Public procedure LoadDescriptionFiles(const c: TStringVector);

This item is declared in ancestor TDocGenerator.

Assumes C contains file names as PString variables. Calls LoadDescriptionFile with each file name.

Source: source/component/PasDoc_Gen.pas (line 935).

Public procedure ParseAbbreviationsFile(const AFileName: string);

This item is declared in ancestor TDocGenerator.

This item has no description.

Source: source/component/PasDoc_Gen.pas (line 947).

Protected function MakeBodyBegin: string; virtual;

This item is declared in ancestor TGenericHTMLDocGenerator.

Return common HTML content that goes right after <body>.

Source: source/component/PasDoc_GenHtml.pas (line 232).

Protected function MakeBodyEnd: string; virtual;

This item is declared in ancestor TGenericHTMLDocGenerator.

Return common HTML content that goes right before </body>.

Source: source/component/PasDoc_GenHtml.pas (line 234).

Protected function ConvertString(const s: string): string; override;

This item is declared in ancestor TGenericHTMLDocGenerator.

This item has no description. Showing description inherited from TDocGenerator.ConvertString.

Converts for each character in S, thus assembling a String that is returned and can be written to the documentation file.

The @ character should not be converted, this will be done later on.

Source: source/component/PasDoc_GenHtml.pas (line 236).

Protected function ConvertChar(c: char): string; override;

This item is declared in ancestor TGenericHTMLDocGenerator.

Called by ConvertString to convert a character. Will convert special characters to their html escape sequence -> test

Source: source/component/PasDoc_GenHtml.pas (line 241).

Protected procedure WriteUnit(const HL: integer; const U: TPasUnit); override;

This item is declared in ancestor TGenericHTMLDocGenerator.

This item has no description. Showing description inherited from TDocGenerator.WriteUnit.

Abstract method that writes all documentation for a single unit U to output, starting at heading level HL. Implementation must be provided by descendant objects and is dependent on output format.

Source: source/component/PasDoc_GenHtml.pas (line 243).

Protected function HtmlString(const S: string): string; override;

This item is declared in ancestor TGenericHTMLDocGenerator.

overrides TDocGenerator.HtmlString.HtmlString to return the string verbatim (TDocGenerator.HtmlString discards those strings)

Source: source/component/PasDoc_GenHtml.pas (line 247).

Protected function FormatPascalCode(const Line: string): string; override;

This item is declared in ancestor TGenericHTMLDocGenerator.

FormatPascalCode will cause Line to be formatted in the way that Pascal code is formatted in Delphi.

Source: source/component/PasDoc_GenHtml.pas (line 251).

Protected function FormatComment(AString: string): string; override;

This item is declared in ancestor TGenericHTMLDocGenerator.

FormatComment will cause AString to be formatted in the way that comments other than compiler directives are formatted in Delphi. See: FormatCompilerComment.

Source: source/component/PasDoc_GenHtml.pas (line 256).

Protected function FormatHex(AString: string): string; override;

This item is declared in ancestor TGenericHTMLDocGenerator.

FormatHex will cause AString to be formatted in the way that Hex are formatted in Delphi.

Source: source/component/PasDoc_GenHtml.pas (line 260).

Protected function FormatNumeric(AString: string): string; override;

This item is declared in ancestor TGenericHTMLDocGenerator.

FormatNumeric will cause AString to be formatted in the way that Numeric are formatted in Delphi.

Source: source/component/PasDoc_GenHtml.pas (line 264).

Protected function FormatFloat(AString: string): string; override;

This item is declared in ancestor TGenericHTMLDocGenerator.

FormatFloat will cause AString to be formatted in the way that Float are formatted in Delphi.

Source: source/component/PasDoc_GenHtml.pas (line 268).

Protected function FormatString(AString: string): string; override;

This item is declared in ancestor TGenericHTMLDocGenerator.

FormatKeyWord will cause AString to be formatted in the way that strings are formatted in Delphi.

Source: source/component/PasDoc_GenHtml.pas (line 272).

Protected function FormatKeyWord(AString: string): string; override;

This item is declared in ancestor TGenericHTMLDocGenerator.

FormatKeyWord will cause AString to be formatted in the way that reserved words are formatted in Delphi.

Source: source/component/PasDoc_GenHtml.pas (line 276).

Protected function FormatCompilerComment(AString: string): string; override;

This item is declared in ancestor TGenericHTMLDocGenerator.

FormatCompilerComment will cause AString to be formatted in the way that compiler directives are formatted in Delphi.

Source: source/component/PasDoc_GenHtml.pas (line 280).

Protected function CodeString(const s: string): string; override;

This item is declared in ancestor TGenericHTMLDocGenerator.

Makes a String look like a coded String, i.e. <CODE>TheString</CODE> in Html.

Source: source/component/PasDoc_GenHtml.pas (line 284).

Protected function CreateLink(const Item: TBaseItem): string; override;

This item is declared in ancestor TGenericHTMLDocGenerator.

Returns a link to an anchor within a document. HTML simply concatenates the strings with a "#" character between them.

Source: source/component/PasDoc_GenHtml.pas (line 288).

Protected procedure WriteStartOfCode; override;

This item is declared in ancestor TGenericHTMLDocGenerator.

This item has no description.

Source: source/component/PasDoc_GenHtml.pas (line 290).

Protected procedure WriteEndOfCode; override;

This item is declared in ancestor TGenericHTMLDocGenerator.

This item has no description.

Source: source/component/PasDoc_GenHtml.pas (line 291).

Protected procedure WriteAnchor(const AName: string); overload;

This item is declared in ancestor TGenericHTMLDocGenerator.

This item has no description.

Source: source/component/PasDoc_GenHtml.pas (line 293).

Protected procedure WriteAnchor(const AName, Caption: string); overload;

This item is declared in ancestor TGenericHTMLDocGenerator.

Write an anchor. Note that the Caption is assumed to be already processed with the ConvertString.

Source: source/component/PasDoc_GenHtml.pas (line 296).

Protected function Paragraph: string; override;

This item is declared in ancestor TGenericHTMLDocGenerator.

This item has no description. Showing description inherited from TDocGenerator.Paragraph.

This is paragraph marker in output documentation.

Default implementation in this class simply returns ' ' (one space).

Source: source/component/PasDoc_GenHtml.pas (line 298).

Protected function EnDash: string; override;

This item is declared in ancestor TGenericHTMLDocGenerator.

This item has no description. Showing description inherited from TDocGenerator.EnDash.

See TTagManager.EnDash. Default implementation in this class returns '--'.

Source: source/component/PasDoc_GenHtml.pas (line 300).

Protected function EmDash: string; override;

This item is declared in ancestor TGenericHTMLDocGenerator.

This item has no description. Showing description inherited from TDocGenerator.EmDash.

See TTagManager.EmDash. Default implementation in this class returns '---'.

Source: source/component/PasDoc_GenHtml.pas (line 301).

Protected function LineBreak: string; override;

This item is declared in ancestor TGenericHTMLDocGenerator.

This item has no description. Showing description inherited from TDocGenerator.LineBreak.

Markup that forces line break in given output format (e.g. '<br>' in html or '\\' in LaTeX).

It is used on
tag (but may also be used on other occasions in the future).

In this class it returns '', because it's valid for an output generator to simply ignore
tags if linebreaks can't be expressed in given output format.

Source: source/component/PasDoc_GenHtml.pas (line 303).

Protected function URLLink(const URL: string): string; override;

This item is declared in ancestor TGenericHTMLDocGenerator.

This item has no description. Showing description inherited from TDocGenerator.URLLink.

Markup to display URL in a description. E.g. HTML generator will want to wrap this in <a href="...">...</a>.

Note that passed here URL is not processed by ConvertString (because sometimes it could be undesirable). If you want you can process URL with ConvertString when overriding this method.

Default implementation in this class simply returns ConvertString(URL). This is good if your documentation format does not support anything like URL links.

Source: source/component/PasDoc_GenHtml.pas (line 305).

Protected function URLLink(const URL, LinkDisplay: string): string; override;

This item is declared in ancestor TGenericHTMLDocGenerator.

This item has no description. Showing description inherited from TDocGenerator.URLLink.

Text which will be shown for an URL tag.

URL is a link to a website or e-mail address. LinkDisplay is an optional parameter which will be used as the display name of the URL.

Source: source/component/PasDoc_GenHtml.pas (line 306).

Protected procedure WriteExternalCore(const ExternalItem: TExternalItem; const Id: TTranslationID); override;

This item is declared in ancestor TGenericHTMLDocGenerator.

This item has no description. Showing description inherited from TDocGenerator.WriteExternalCore.

This is called from WriteExternal when ExternalItem.Title and ShortTitle are already set, message about generating appropriate item is printed etc. This should write ExternalItem, including ExternalItem.DetailedDescription, ExternalItem.Authors, ExternalItem.Created, ExternalItem.LastMod.

Source: source/component/PasDoc_GenHtml.pas (line 308).

Protected function MakeItemLink(const Item: TBaseItem; const LinkCaption: string; const LinkContext: TLinkContext): string; override;

This item is declared in ancestor TGenericHTMLDocGenerator.

This item has no description. Showing description inherited from TDocGenerator.MakeItemLink.

Return a link to item Item which will be displayed as LinkCaption. Returned string may be directly inserted inside output documentation. LinkCaption will be always converted using ConvertString before writing, so don't worry about doing this yourself when calling this method.

LinkContext may be used in some descendants to present the link differently, see TLinkContext for it's meaning.

If some output format doesn't support this feature, it can return simply ConvertString(LinkCaption). This is the default implementation of this method in this class.

Source: source/component/PasDoc_GenHtml.pas (line 311).

Protected function EscapeURL(const AString: string): string; virtual;

This item is declared in ancestor TGenericHTMLDocGenerator.

This item has no description.

Source: source/component/PasDoc_GenHtml.pas (line 315).

Protected function FormatSection(HL: integer; const Anchor: string; const Caption: string): string; override;

This item is declared in ancestor TGenericHTMLDocGenerator.

This item has no description. Showing description inherited from TDocGenerator.FormatSection.

Writes a section heading and a link-anchor.

Source: source/component/PasDoc_GenHtml.pas (line 317).

Protected function FormatAnchor(const Anchor: string): string; override;

This item is declared in ancestor TGenericHTMLDocGenerator.

This item has no description. Showing description inherited from TDocGenerator.FormatAnchor.

Writes a link-anchor.

Source: source/component/PasDoc_GenHtml.pas (line 319).

Protected function FormatBold(const Text: string): string; override;

This item is declared in ancestor TGenericHTMLDocGenerator.

This item has no description. Showing description inherited from TDocGenerator.FormatBold.

Return Text formatted using bold font.

Given Text is already in the final output format (with characters converted using ConvertString, @-tags expanded etc.).

Implementation of this method in this class simply returns Result := Text. Output generators that can somehow express bold formatting (or at least emphasis of some text) should override this.

Source: source/component/PasDoc_GenHtml.pas (line 321).

Protected function FormatItalic(const Text: string): string; override;

This item is declared in ancestor TGenericHTMLDocGenerator.

This item has no description. Showing description inherited from TDocGenerator.FormatItalic.

Return Text formatted using italic font. Analogous to FormatBold.

Source: source/component/PasDoc_GenHtml.pas (line 322).

Protected function FormatWarning(const Text: string): string; override;

This item is declared in ancestor TGenericHTMLDocGenerator.

This item has no description. Showing description inherited from TDocGenerator.FormatWarning.

Return Text using bold font by calling FormatBold(Text).

Source: source/component/PasDoc_GenHtml.pas (line 324).

Protected function FormatNote(const Text: string): string; override;

This item is declared in ancestor TGenericHTMLDocGenerator.

This item has no description. Showing description inherited from TDocGenerator.FormatNote.

Return Text using italic font by calling FormatItalic(Text).

Source: source/component/PasDoc_GenHtml.pas (line 325).

Protected function FormatPreformatted(const Text: string): string; override;

This item is declared in ancestor TGenericHTMLDocGenerator.

This item has no description. Showing description inherited from TDocGenerator.FormatPreformatted.

Return Text preserving spaces and line breaks. Note that Text passed here is not yet converted with ConvertString. The implementation of this method in this class just returns ConvertString(Text).

Source: source/component/PasDoc_GenHtml.pas (line 326).

Protected function FormatImage(FileNames: TStringList): string; override;

This item is declared in ancestor TGenericHTMLDocGenerator.

This item has no description. Showing description inherited from TDocGenerator.FormatImage.

Return markup to show an image. FileNames is a list of possible filenames of the image. FileNames always contains at least one item (i.e. FileNames.Count >= 1), never contains empty lines (i.e. Trim(FileNames[I]) <> ''), and contains only absolute filenames.

E.g. HTML generator will want to choose the best format for HTML, then somehow copy the image from FileNames[Chosen] and wrap this in <img src="...">.

Implementation of this method in this class simply shows FileNames[0]. Output generators should override this.

Source: source/component/PasDoc_GenHtml.pas (line 328).

Protected function FormatList(ListData: TListData): string; override;

This item is declared in ancestor TGenericHTMLDocGenerator.

This item has no description. Showing description inherited from TDocGenerator.FormatList.

Format a list from given ListData.

Source: source/component/PasDoc_GenHtml.pas (line 330).

Protected function FormatTable(Table: TTableData): string; override;

This item is declared in ancestor TGenericHTMLDocGenerator.

This item has no description. Showing description inherited from TDocGenerator.FormatTable.

Return appropriate content for given Table. It's guaranteed that the Table passed here will have at least one row and in each row there will be at least one cell, so you don't have to check it within descendants.

Source: source/component/PasDoc_GenHtml.pas (line 332).

Protected function FormatTableOfContents(Sections: TStringPairVector): string; override;

This item is declared in ancestor TGenericHTMLDocGenerator.

This item has no description. Showing description inherited from TDocGenerator.FormatTableOfContents.

Override this if you want to insert something on @tableOfContents tag. As a parameter you get already prepared tree of sections that your table of contents should show. Each item of Sections is a section on the level 1. Item's Name is section name, item's Value is section caption, item's Data is a TStringPairVector instance that describes subsections (on level 2) below this section. And so on, recursively.

Sections given here are never nil, and item's Data is never nil. But of course they may contain 0 items, and this should be a signal to you that given section doesn't have any subsections.

Default implementation of this method in this class just returns empty string.

Source: source/component/PasDoc_GenHtml.pas (line 334).

Public constructor Create(AOwner: TComponent); override;

This item is declared in ancestor TGenericHTMLDocGenerator.

This item has no description.

Source: source/component/PasDoc_GenHtml.pas (line 336).

Public destructor Destroy; override;

This item is declared in ancestor TGenericHTMLDocGenerator.

This item has no description.

Source: source/component/PasDoc_GenHtml.pas (line 337).

Public function GetFileExtension: string; override;

This item is declared in ancestor TGenericHTMLDocGenerator.

Returns HTML file extension ".htm".

Source: source/component/PasDoc_GenHtml.pas (line 340).

Protected function MakeHead: string; override;

This item has no description. Showing description inherited from TGenericHTMLDocGenerator.MakeHead.

Return common HTML content that goes inside <head>.

Source: source/component/PasDoc_GenHtmlHelp.pas (line 40).

Public procedure WriteDocumentation; override;

This item has no description. Showing description inherited from TGenericHTMLDocGenerator.WriteDocumentation.

The method that does everything - writes documentation for all units and creates overview files.

Source: source/component/PasDoc_GenHtmlHelp.pas (line 42).

Properties

Protected property CurrentStream: TStream read FCurrentStream;

This item is declared in ancestor TDocGenerator.

Output stream that is currently written to; depending on the output format, more than one output stream may be necessary to store all documentation.

Source: source/component/PasDoc_Gen.pas (line 472).

Public property Units: TPasUnits read FUnits write FUnits;

This item is declared in ancestor TDocGenerator.

This item has no description.

Source: source/component/PasDoc_Gen.pas (line 942).

Public property Introduction: TExternalItem read FIntroduction write FIntroduction;

This item is declared in ancestor TDocGenerator.

This item has no description.

Source: source/component/PasDoc_Gen.pas (line 949).

Public property Conclusion: TExternalItem read FConclusion write FConclusion;

This item is declared in ancestor TDocGenerator.

This item has no description.

Source: source/component/PasDoc_Gen.pas (line 951).

Public property AdditionalFiles: TExternalItemList read FAdditionalFiles write FAdditionalFiles;

This item is declared in ancestor TDocGenerator.

This item has no description.

Source: source/component/PasDoc_Gen.pas (line 952).

Public property OnMessage: TPasDocMessageEvent read FOnMessage write FOnMessage;

This item is declared in ancestor TDocGenerator.

Callback receiving messages from generator.

This is usually used internally by TPasDoc class, that assigns it's internal callback here when using this generator. Also, for the above reason, do not make this published.

See TPasDoc.OnMessage for something more useful for final programs.

Source: source/component/PasDoc_Gen.pas (line 961).

Published property Language: TLanguageID read GetLanguage write SetLanguage default DEFAULT_LANGUAGE;

This item is declared in ancestor TDocGenerator.

the (human) output language of the documentation file(s)

Source: source/component/PasDoc_Gen.pas (line 964).

Published property ProjectName: string read FProjectName write FProjectName;

This item is declared in ancestor TDocGenerator.

Name of the project to create.

Source: source/component/PasDoc_Gen.pas (line 967).

Published property ExcludeGenerator: Boolean read FExcludeGenerator write FExcludeGenerator default false;

This item is declared in ancestor TDocGenerator.

"Generator info" are things that can change with each invocation of pasdoc, with different pasdoc binary etc.

This includes

  • pasdoc's compiler name and version,

  • pasdoc's version and time of compilation

See --exclude-generator documentation. Default value is false (i.e. show them), as this information is generally considered useful.

Setting this to true is useful for automatically comparing two versions of pasdoc's output (e.g. when trying to automate pasdoc's tests).

Source: source/component/PasDoc_Gen.pas (line 985).

Published property IncludeCreationTime: Boolean read FIncludeCreationTime write FIncludeCreationTime default false;

This item is declared in ancestor TDocGenerator.

Show creation time in the output.

Source: source/component/PasDoc_Gen.pas (line 989).

Published property UseLowercaseKeywords: Boolean read FUseLowercaseKeywords write FUseLowercaseKeywords default false;

This item is declared in ancestor TDocGenerator.

Setting to define how literal tag keywords should appear in documentaion.

Source: source/component/PasDoc_Gen.pas (line 993).

Published property Title: string read FTitle write FTitle;

This item is declared in ancestor TDocGenerator.

Title of the documentation, supplied by user. May be empty. See TPasDoc.Title.

Source: source/component/PasDoc_Gen.pas (line 998).

Published property DestinationDirectory: string read FDestDir write SetDestDir;

This item is declared in ancestor TDocGenerator.

Destination directory for documentation. Must include terminating forward slash or backslash so that valid file names can be created by concatenating DestinationDirectory and a pathless file name.

Source: source/component/PasDoc_Gen.pas (line 1003).

Published property OutputGraphVizUses: boolean read FGraphVizUses write FGraphVizUses default false;

This item is declared in ancestor TDocGenerator.

generate a GraphViz diagram for the units dependencies

Source: source/component/PasDoc_Gen.pas (line 1006).

Published property OutputGraphVizClassHierarchy: boolean read FGraphVizClasses write FGraphVizClasses default false;

This item is declared in ancestor TDocGenerator.

generate a GraphViz diagram for the Class hierarchy

Source: source/component/PasDoc_Gen.pas (line 1009).

Published property LinkGraphVizUses: string read FLinkGraphVizUses write FLinkGraphVizUses;

This item is declared in ancestor TDocGenerator.

link the GraphViz uses diagram

Source: source/component/PasDoc_Gen.pas (line 1012).

Published property LinkGraphVizClasses: string read FLinkGraphVizClasses write FLinkGraphVizClasses;

This item is declared in ancestor TDocGenerator.

link the GraphViz classes diagram

Source: source/component/PasDoc_Gen.pas (line 1014).

Published property Abbreviations: TStringList read FAbbreviations write SetAbbreviations;

This item is declared in ancestor TDocGenerator.

This item has no description.

Source: source/component/PasDoc_Gen.pas (line 1016).

Published property CheckSpelling: boolean read FCheckSpelling write FCheckSpelling default false;

This item is declared in ancestor TDocGenerator.

This item has no description.

Source: source/component/PasDoc_Gen.pas (line 1018).

Published property AspellLanguage: string read FAspellLanguage write FAspellLanguage;

This item is declared in ancestor TDocGenerator.

This item has no description.

Source: source/component/PasDoc_Gen.pas (line 1021).

Published property SpellCheckIgnoreWords: TStringList read FSpellCheckIgnoreWords write SetSpellCheckIgnoreWords;

This item is declared in ancestor TDocGenerator.

This item has no description.

Source: source/component/PasDoc_Gen.pas (line 1023).

Published property AutoAbstract: boolean read FAutoAbstract write FAutoAbstract default DefaultAutoAbstract;

This item is declared in ancestor TDocGenerator.

Automatically detect abstract (summary) descriptions without @abstract tag. See --auto-abstract command-line option docs on https://pasdoc.github.io/Abstract . This is used in ExpandDescriptions.

Source: source/component/PasDoc_Gen.pas (line 1029).

Published property LinkLook: TLinkLook read FLinkLook write FLinkLook default llDefault;

This item is declared in ancestor TDocGenerator.

How SearchLink behaves. This meaning is described in --link-look documentation.

Source: source/component/PasDoc_Gen.pas (line 1034).

Published property WriteUsesClause: boolean read FWriteUsesClause write FWriteUsesClause default false;

This item is declared in ancestor TDocGenerator.

This item has no description.

Source: source/component/PasDoc_Gen.pas (line 1036).

Published property AutoLink: boolean read FAutoLink write FAutoLink default false;

This item is declared in ancestor TDocGenerator.

Automatically link identifiers to their documentation, even without @link tags. See --auto-link documentation.

Source: source/component/PasDoc_Gen.pas (line 1041).

Published property AutoLinkExclude: TStringList read FAutoLinkExclude;

This item is declared in ancestor TDocGenerator.

This item has no description.

Source: source/component/PasDoc_Gen.pas (line 1044).

Published property ExternalClassHierarchy: TStrings read FExternalClassHierarchy write SetExternalClassHierarchy stored StoredExternalClassHierarchy;

This item is declared in ancestor TDocGenerator.

This item has no description.

Source: source/component/PasDoc_Gen.pas (line 1046).

Published property Markdown: boolean read FMarkdown write FMarkdown default false;

This item is declared in ancestor TDocGenerator.

This item has no description.

Source: source/component/PasDoc_Gen.pas (line 1050).

Published property ShowSourcePosition: boolean read FShowSourcePosition write FShowSourcePosition default false;

This item is declared in ancestor TDocGenerator.

Show source filename and line number in documentation output.

Source: source/component/PasDoc_Gen.pas (line 1054).

Published property SourceRoot: string read FSourceRoot write FSourceRoot;

This item is declared in ancestor TDocGenerator.

Root path for source files. Used to make relative paths, shown by ShowSourcePosition and replaced by SourceUrlPattern. Leave empty to make ShowSourcePosition and SourceUrlPattern just take the final filename part to show / replace.

Source: source/component/PasDoc_Gen.pas (line 1063).

Published property SourceUrlPattern: string read FSourceUrlPattern write FSourceUrlPattern;

This item is declared in ancestor TDocGenerator.

URL pattern for linking source positions. Use {FILE} for filename and {LINE} for line number. When set, source positions in the output become clickable links. Example: https://github.com/owner/repo/blob/main/{FILE}#L{LINE}

Source: source/component/PasDoc_Gen.pas (line 1070).

Published property ToggleVisibilities: TVisibilities read FToggleVisibilities write FToggleVisibilities default [];

This item is declared in ancestor TDocGenerator.

Visibilities that should be included in output but hidden by default in HTML, with checkboxes to toggle their display.

Source: source/component/PasDoc_Gen.pas (line 1075).

Published property SortSettings: TSortSettings read FSortSettings write FSortSettings default [];

This item is declared in ancestor TDocGenerator.

How items should be sorted in output. See --sort documentation.

The TPasDoc sorts the items in Units before executing our WriteDocumentation, so TDocGenerator usually doesn't need to worry about sorting anymore... Except if output rearranges/sums items, like HTML output does for InheritedMembers<>imNever, in which case they need to be sorted again.

Source: source/component/PasDoc_Gen.pas (line 1087).

Published property Header: string read FHeader write FHeader;

This item is declared in ancestor TGenericHTMLDocGenerator.

some HTML code to be written as header for every page

Source: source/component/PasDoc_GenHtml.pas (line 347).

Published property Footer: string read FFooter write FFooter;

This item is declared in ancestor TGenericHTMLDocGenerator.

some HTML code to be written as footer for every page

Source: source/component/PasDoc_GenHtml.pas (line 349).

Published property HtmlBodyBegin: string read FHtmlBodyBegin write FHtmlBodyBegin;

This item is declared in ancestor TGenericHTMLDocGenerator.

This item has no description.

Source: source/component/PasDoc_GenHtml.pas (line 351).

Published property HtmlBodyEnd: string read FHtmlBodyEnd write FHtmlBodyEnd;

This item is declared in ancestor TGenericHTMLDocGenerator.

This item has no description.

Source: source/component/PasDoc_GenHtml.pas (line 352).

Published property HtmlHead: string read FHtmlHead write FHtmlHead;

This item is declared in ancestor TGenericHTMLDocGenerator.

This item has no description.

Source: source/component/PasDoc_GenHtml.pas (line 353).

Published property CSS: string read FCSS write FCSS stored StoredCss;

This item is declared in ancestor TGenericHTMLDocGenerator.

Contents of the main CSS file (pasdoc.css).

Source: source/component/PasDoc_GenHtml.pas (line 356).

Published property Bootstrap: boolean read FBootstrap write FBootstrap default true;

This item is declared in ancestor TGenericHTMLDocGenerator.

If true, add Bootstrap CSS and JS. Definitions in CSS will be evaluated after Bootstrap's ones.

Source: source/component/PasDoc_GenHtml.pas (line 360).

Published property NumericFilenames: boolean read FNumericFilenames write FNumericFilenames default false;

This item is declared in ancestor TGenericHTMLDocGenerator.

if set to true, numeric filenames will be used rather than names with multiple dots

Source: source/component/PasDoc_GenHtml.pas (line 363).

Published property UseTipueSearch: boolean read FUseTipueSearch write FUseTipueSearch default False;

This item is declared in ancestor TGenericHTMLDocGenerator.

Enable Tipue fulltext search. See --use-tipue-search documentation.

Source: source/component/PasDoc_GenHtml.pas (line 368).

Published property InheritedMembers: TInheritedMembers read FInheritedMembers write FInheritedMembers default imNever;

This item is declared in ancestor TGenericHTMLDocGenerator.

Show inherited members (in outputs that make it possible, which right now means only HTML output).

Source: source/component/PasDoc_GenHtml.pas (line 373).

Published property ContentsFile: string read FContentsFile write FContentsFile;

Contains Name of a file to read HtmlHelp Contents from. If empty, create default contents file.

Source: source/component/PasDoc_GenHtmlHelp.pas (line 46).


PasDoc's autodoc: PasDoc_GenLatex

Unit PasDoc_GenLatex

Description
Uses
Classes, Interfaces, Objects and Records

Description

LaTeX documentation generator TTexDocGenerator.

Source: source/component/PasDoc_GenLatex.pas (line 24).

Uses

  • PasDoc_Gen
  • PasDoc_Items
  • PasDoc_Languages
  • PasDoc_StringVector
  • PasDoc_Types
  • Classes
  • Contnrs

Overview

Classes, Interfaces, Objects and Records

Name | Description
Class TTexDocGenerator | LaTeX documentation generator.


PasDoc's autodoc: PasDoc_GenLatex: Class TTexDocGenerator

Class TTexDocGenerator

Description
Hierarchy
Constants
Fields
Methods
Properties

Unit

PasDoc_GenLatex

Declaration

type TTexDocGenerator = class(TDocGenerator)

Description

LaTeX documentation generator.

Extends TDocGenerator and overwrites many of its methods to generate output in LaTex format.

Source: source/component/PasDoc_GenLatex.pas (line 42).

Hierarchy

  • TObject
  • TPersistent
  • TComponent
  • TDocGenerator
  • TTexDocGenerator
Show Additional Members:

Overview

Constants

Public DefaultAutoAbstract = true;

Fields

Protected | FLanguage: TPasDocLanguages;
Protected | FClassHierarchy: TStringCardinalTree;
Protected | FUnits: TPasUnits;

Methods

Protected | procedure DoError(const AMessage: string; const AArguments: array of const; const AExitCode: Word);
Protected | procedure DoMessage(const AVerbosity: Cardinal; const MessageType: TPasDocMessageType; const AMessage: string; const AArguments: array of const);
Protected | procedure CreateClassHierarchy;
Protected | procedure WriteCodeWithLinksCommon(const Item: TPasItem; const Code: string; WriteItemLink: boolean; const NameLinkBegin, NameLinkEnd: string);
Protected | function HasSourcePosition(const AItem: TPasItem; out ItemName, ItemFilenameInRoot, ItemUrl: string): boolean;
Protected | procedure CloseStream;
Protected | function CreateStream(const AName: string): Boolean;
Protected | function ExtractEmailAddress(s: string; out S1, S2, EmailAddress: string): Boolean;
Protected | function FixEmailaddressWithoutMailTo(const PossibleEmailAddress: String): String;
Protected | function ExtractWebAddress(s: string; out S1, S2, WebAddress: string): Boolean;
Protected | function FindGlobal(const NameParts: TNameParts): TBaseItem;
Protected | function FindGlobalPasItem(const NameParts: TNameParts): TPasItem; overload;
Protected | function FindGlobalPasItem(const ItemName: String): TPasItem; overload;
Protected | function GetClassDirectiveName(const Directive: TClassDirective): string;
Protected | function GetCIOTypeName(const MyType: TCIOType): string;
Protected | procedure LoadDescriptionFile(n: string);
Protected | function SearchItem(s: string; const Item: TBaseItem; WarningIfNotSplittable: boolean): TBaseItem;
Protected | function SearchLink(s: string; const Item: TBaseItem; const LinkDisplay: string; const WarningIfLinkNotFound: TLinkNotFoundAction; out FoundItem: TBaseItem): string; overload;
Protected | function SearchLink(s: string; const Item: TBaseItem; const LinkDisplay: string; const WarningIfLinkNotFound: TLinkNotFoundAction): string; overload;
Protected | procedure StoreDescription(ItemName: string; var t: string);
Protected | procedure WriteConverted(const s: string; Newline: boolean); overload;
Protected | procedure WriteConverted(const s: string); overload;
Protected | procedure WriteConvertedLine(const s: string);
Protected | procedure WriteDirect(const t: string; Newline: boolean); overload;
Protected | procedure WriteDirect(const t: string); overload;
Protected | procedure WriteDirectLine(const t: string);
Protected | procedure WriteUnits(const HL: integer);
Protected | procedure WriteGVUses;
Protected | procedure WriteGVClasses;
Protected | procedure StartSpellChecking(const AMode: string);
Protected | procedure CheckString(const AString: string; const AErrors: TSpellingErrorList);
Protected | procedure EndSpellChecking;
Protected | function FormatNormalCode(AString: string): string; virtual;
Protected | function FormatHex(AString: string): string; virtual;
Protected | function FormatNumeric(AString: string): string; virtual;
Protected | function FormatFloat(AString: string): string; virtual;
Protected | function FormatString(AString: string): string; virtual;
Protected | function EnDash: string; virtual;
Protected | function EmDash: string; virtual;
Protected | function HtmlString(const S: string): string; virtual;
Protected | procedure WriteExternal(const ExternalItem: TExternalItem; const Id: TTranslationID);
Protected | procedure WriteConclusion;
Protected | procedure WriteIntroduction;
Protected | procedure WriteAdditionalFiles;
Protected | function FormatTableOfContents(Sections: TStringPairVector): string; virtual;
Public | procedure BuildLinks;
Public | procedure ResolveTypeAliasesDescriptions;
Public | procedure ExpandDescriptions;
Public | procedure LoadDescriptionFiles(const c: TStringVector);
Public | procedure ParseAbbreviationsFile(const AFileName: string);
Protected | function ConvertString(const s: string): string; override;
Protected | function ConvertChar(c: char): String; override;
Protected | procedure WriteUnit(const HL: integer; const U: TPasUnit); override;
Protected | function LatexString(const S: string): string; override;
Protected | function CodeString(const s: string): string; override;
Protected | function CreateLink(const Item: TBaseItem): string; override;
Protected | procedure WriteStartOfCode; override;
Protected | procedure WriteEndOfCode; override;
Protected | function Paragraph: string; override;
Protected | function ShortDash: string; override;
Protected | function LineBreak: string; override;
Protected | function URLLink(const URL: string): string; override;
Protected | function URLLink(const URL, LinkDisplay: string): string; override;
Protected | procedure WriteExternalCore(const ExternalItem: TExternalItem; const Id: TTranslationID); override;
Protected | function FormatKeyWord(AString: string): string; override;
Protected | function FormatCompilerComment(AString: string): string; override;
Protected | function FormatComment(AString: string): string; override;
Protected | function FormatAnchor(const Anchor: string): string; override;
Protected | function MakeItemLink(const Item: TBaseItem; const LinkCaption: string; const LinkContext: TLinkContext): string; override;
Protected | function FormatBold(const Text: string): string; override;
Protected | function FormatItalic(const Text: string): string; override;
Protected | function FormatWarning(const Text: string): string; override;
Protected | function FormatNote(const Text: string): string; override;
Protected | function FormatPreformatted(const Text: string): string; override;
Protected | function FormatImage(FileNames: TStringList): string; override;
Protected | function FormatList(ListData: TListData): string; override;
Protected | function FormatTable(Table: TTableData): string; override;
Public | function FormatPascalCode(const Line: string): string; override;
Public | function GetFileExtension: string; override;
Public | procedure WriteDocumentation; override;
Public | constructor Create(AOwner: TComponent); override;
Public | destructor Destroy; override;
Public | function EscapeURL(const AString: string): string; virtual;
Public | function FormatSection(HL: integer; const Anchor: string; const Caption: string): string; override;

Properties

Protected | property CurrentStream: TStream read FCurrentStream;
Public | property Units: TPasUnits read FUnits write FUnits;
Public | property Introduction: TExternalItem read FIntroduction write FIntroduction;
Public | property Conclusion: TExternalItem read FConclusion write FConclusion;
Public | property AdditionalFiles: TExternalItemList read FAdditionalFiles write FAdditionalFiles;
Public | property OnMessage: TPasDocMessageEvent read FOnMessage write FOnMessage;
Published | property Language: TLanguageID read GetLanguage write SetLanguage default DEFAULT_LANGUAGE;
Published | property ProjectName: string read FProjectName write FProjectName;
Published | property ExcludeGenerator: Boolean read FExcludeGenerator write FExcludeGenerator default false;
Published | property IncludeCreationTime: Boolean read FIncludeCreationTime write FIncludeCreationTime default false;
Published | property UseLowercaseKeywords: Boolean read FUseLowercaseKeywords write FUseLowercaseKeywords default false;
Published | property Title: string read FTitle write FTitle;
Published | property DestinationDirectory: string read FDestDir write SetDestDir;
Published | property OutputGraphVizUses: boolean read FGraphVizUses write FGraphVizUses default false;
Published | property OutputGraphVizClassHierarchy: boolean read FGraphVizClasses write FGraphVizClasses default false;
Published | property LinkGraphVizUses: string read FLinkGraphVizUses write FLinkGraphVizUses;
Published | property LinkGraphVizClasses: string read FLinkGraphVizClasses write FLinkGraphVizClasses;
Published | property Abbreviations: TStringList read FAbbreviations write SetAbbreviations;
Published | property CheckSpelling: boolean read FCheckSpelling write FCheckSpelling default false;
Published | property AspellLanguage: string read FAspellLanguage write FAspellLanguage;
Published | property SpellCheckIgnoreWords: TStringList read FSpellCheckIgnoreWords write SetSpellCheckIgnoreWords;
Published | property AutoAbstract: boolean read FAutoAbstract write FAutoAbstract default DefaultAutoAbstract;
Published | property LinkLook: TLinkLook read FLinkLook write FLinkLook default llDefault;
Published | property WriteUsesClause: boolean read FWriteUsesClause write FWriteUsesClause default false;
Published | property AutoLink: boolean read FAutoLink write FAutoLink default false;
Published | property AutoLinkExclude: TStringList read FAutoLinkExclude;
Published | property ExternalClassHierarchy: TStrings read FExternalClassHierarchy write SetExternalClassHierarchy stored StoredExternalClassHierarchy;
Published | property Markdown: boolean read FMarkdown write FMarkdown default false;
Published | property ShowSourcePosition: boolean read FShowSourcePosition write FShowSourcePosition default false;
Published | property SourceRoot: string read FSourceRoot write FSourceRoot;
Published | property SourceUrlPattern: string read FSourceUrlPattern write FSourceUrlPattern;
Published | property ToggleVisibilities: TVisibilities read FToggleVisibilities write FToggleVisibilities default [];
Published | property SortSettings: TSortSettings read FSortSettings write FSortSettings default [];
Published | property Latex2rtf: boolean read FLatex2rtf write FLatex2rtf default false;
Published | property LatexHead: TStrings read FLatexHead write SetLatexHead;

Description

Constants

Public DefaultAutoAbstract = true;

This item is declared in ancestor TDocGenerator.

This item has no description.

Source: source/component/PasDoc_Gen.pas (line 911).

Fields

Protected FLanguage: TPasDocLanguages;

This item is declared in ancestor TDocGenerator.

the (human) output language of the documentation file(s)

Source: source/component/PasDoc_Gen.pas (line 459).

Protected FClassHierarchy: TStringCardinalTree;

This item is declared in ancestor TDocGenerator.

This item has no description.

Source: source/component/PasDoc_Gen.pas (line 461).

Protected FUnits: TPasUnits;

This item is declared in ancestor TDocGenerator.

list of all units that were successfully parsed

Source: source/component/PasDoc_Gen.pas (line 511).

Methods

Protected procedure DoError(const AMessage: string; const AArguments: array of const; const AExitCode: Word);

This item is declared in ancestor TDocGenerator.

This item has no description.

Source: source/component/PasDoc_Gen.pas (line 463).

Protected procedure DoMessage(const AVerbosity: Cardinal; const MessageType: TPasDocMessageType; const AMessage: string; const AArguments: array of const);

This item is declared in ancestor TDocGenerator.

This item has no description.

Source: source/component/PasDoc_Gen.pas (line 465).

Protected procedure CreateClassHierarchy;

This item is declared in ancestor TDocGenerator.

This item has no description.

Source: source/component/PasDoc_Gen.pas (line 474).

Protected procedure WriteCodeWithLinksCommon(const Item: TPasItem; const Code: string; WriteItemLink: boolean; const NameLinkBegin, NameLinkEnd: string);

This item is declared in ancestor TDocGenerator.

This writes Code as a Pascal code. Links inside the code are resolved from Item. If WriteItemLink then Item.Name is made a link. Item.Name is printed between NameLinkBegin and NameLinkEnd.

Source: source/component/PasDoc_Gen.pas (line 495).

Protected function HasSourcePosition(const AItem: TPasItem; out ItemName, ItemFilenameInRoot, ItemUrl: string): boolean;

This item is declared in ancestor TDocGenerator.

Utility to process information from TPasItem.SourceAbsoluteFileName and TPasItem.SourceLine and decide whether to show it. If True, then we should show it.

Parameters
ItemName
is the name to show.
ItemFilenameInRoot
is the filename, relative to SourceRoot, using always / on any system (even on Windows).
ItemUrl
is the URL to link to, if any (don't make a link if this is '').

Source: source/component/PasDoc_Gen.pas (line 507).

Protected procedure CloseStream;

This item is declared in ancestor TDocGenerator.

If field CurrentStream is assigned, it is disposed and set to nil.

Source: source/component/PasDoc_Gen.pas (line 514).

Protected function CreateStream(const AName: string): Boolean;

This item is declared in ancestor TDocGenerator.

Open output stream in the destination directory. If CurrentStream still exists (<> nil), it is closed. Then, a new output stream in the destination directory is created and assigned to CurrentStream. The file is overwritten if exists.

Use this only for text files that you want to write using WriteXxx methods of this class (like WriteConverted). There's no point to use if for other files.

Returns True if creation was successful, False otherwise. When it returns False, the error message was already shown by DoMessage.

Source: source/component/PasDoc_Gen.pas (line 552).

Protected function ExtractEmailAddress(s: string; out S1, S2, EmailAddress: string): Boolean;

This item is declared in ancestor TDocGenerator.

Searches for an email address in String S. Searches for first appearance of the @ character

Source: source/component/PasDoc_Gen.pas (line 556).

Protected function FixEmailaddressWithoutMailTo(const PossibleEmailAddress: String): String;

This item is declared in ancestor TDocGenerator.

Searches for an email address in PossibleEmailAddress and appends mailto: if it's an email address and mailto: wasn't provided. Otherwise it simply returns the input.

Needed to link email addresses properly which doesn't start with mailto:

Source: source/component/PasDoc_Gen.pas (line 563).

Protected function ExtractWebAddress(s: string; out S1, S2, WebAddress: string): Boolean;

This item is declared in ancestor TDocGenerator.

Searches for a web address in String S. It must either contain a http:// or start with www.

Source: source/component/PasDoc_Gen.pas (line 567).

Protected function FindGlobal(const NameParts: TNameParts): TBaseItem;

This item is declared in ancestor TDocGenerator.

Searches all items in all units (given by field Units) for item with NameParts. Returns a pointer to the item on success, nil otherwise.

Source: source/component/PasDoc_Gen.pas (line 572).

Protected function FindGlobalPasItem(const NameParts: TNameParts): TPasItem; overload;

This item is declared in ancestor TDocGenerator.

Find a Pascal item, searching global namespace. Returns Nil if not found.

Source: source/component/PasDoc_Gen.pas (line 576).

Protected function FindGlobalPasItem(const ItemName: String): TPasItem; overload;

This item is declared in ancestor TDocGenerator.

Find a Pascal item, searching global namespace. Assumes that Name is only one component (not something with dots inside). Returns Nil if not found.

Source: source/component/PasDoc_Gen.pas (line 581).

Protected function GetClassDirectiveName(const Directive: TClassDirective): string;

This item is declared in ancestor TDocGenerator.

GetClassDirectiveName returns ' abstract', or ' sealed' for classes that abstract or sealed respectively. GetClassDirectiveName is used by TTexDocGenerator and TGenericHTMLDocGenerator in writing the declaration of the class.

Source: source/component/PasDoc_Gen.pas (line 586).

Protected function GetCIOTypeName(const MyType: TCIOType): string;

This item is declared in ancestor TDocGenerator.

GetCIOTypeName writes a translation of MyType based on the current language. However, 'record' and 'packed record' are not translated.

Source: source/component/PasDoc_Gen.pas (line 590).

Protected procedure LoadDescriptionFile(n: string);

This item is declared in ancestor TDocGenerator.

Loads descriptions from file N and replaces or fills the corresponding comment sections of items.

Source: source/component/PasDoc_Gen.pas (line 594).

Protected function SearchItem(s: string; const Item: TBaseItem; WarningIfNotSplittable: boolean): TBaseItem;

This item is declared in ancestor TDocGenerator.

Searches for item with name S.

If S is not splittable by SplitNameParts, returns nil. If WarningIfNotSplittable, additionally does DoMessage with appropriate warning.

Else (if S is "splittable"), seeks for S (first trying Item.FindName, if Item is not nil, then trying FindGlobal). Returns nil if not found.

Source: source/component/PasDoc_Gen.pas (line 604).

Protected function SearchLink(s: string; const Item: TBaseItem; const LinkDisplay: string; const WarningIfLinkNotFound: TLinkNotFoundAction; out FoundItem: TBaseItem): string; overload;

This item is declared in ancestor TDocGenerator.

Searches for an item of name S which was linked in the description of Item. Starts search within item, then does a search on all items in all units using FindGlobal. Returns a link as String on success.

If S is not splittable by SplitNameParts, it always does DoMessage with appropriate warning and returns something like 'UNKNOWN' (no matter what is the value of WarningIfLinkNotFound). FoundItem will be set to nil in this case.

When item will not be found then:

  • if WarningIfLinkNotFound is true then it returns CodeString(ConvertString(S)) and makes DoMessage with appropriate warning.

  • else it returns '' (and does not do any DoMessage)

If LinkDisplay is not '', then it specifies explicite the display text for link. Else how exactly link does look like is controlled by LinkLook property.

Parameters
FoundItem
is the found item instance or nil if not found.

Source: source/component/PasDoc_Gen.pas (line 631).

Protected function SearchLink(s: string; const Item: TBaseItem; const LinkDisplay: string; const WarningIfLinkNotFound: TLinkNotFoundAction): string; overload;

This item is declared in ancestor TDocGenerator.

Just like previous overloaded version, but this doesn't return FoundItem (in case you don't need it).

Source: source/component/PasDoc_Gen.pas (line 638).

Protected procedure StoreDescription(ItemName: string; var t: string);

This item is declared in ancestor TDocGenerator.

This item has no description.

Source: source/component/PasDoc_Gen.pas (line 642).

Protected procedure WriteConverted(const s: string; Newline: boolean); overload;

This item is declared in ancestor TDocGenerator.

Writes S to CurrentStream, converting it using ConvertString. Then optionally writes LineEnding.

Source: source/component/PasDoc_Gen.pas (line 646).

Protected procedure WriteConverted(const s: string); overload;

This item is declared in ancestor TDocGenerator.

Writes S to CurrentStream, converting it using ConvertString. No LineEnding at the end.

Source: source/component/PasDoc_Gen.pas (line 650).

Protected procedure WriteConvertedLine(const s: string);

This item is declared in ancestor TDocGenerator.

Writes S to CurrentStream, converting it using ConvertString. Then writes LineEnding.

Source: source/component/PasDoc_Gen.pas (line 654).

Protected procedure WriteDirect(const t: string; Newline: boolean); overload;

This item is declared in ancestor TDocGenerator.

Simply writes T to CurrentStream, with optional LineEnding.

Source: source/component/PasDoc_Gen.pas (line 657).

Protected procedure WriteDirect(const t: string); overload;

This item is declared in ancestor TDocGenerator.

Simply writes T to CurrentStream.

Source: source/component/PasDoc_Gen.pas (line 660).

Protected procedure WriteDirectLine(const t: string);

This item is declared in ancestor TDocGenerator.

Simply writes T followed by LineEnding to CurrentStream.

Source: source/component/PasDoc_Gen.pas (line 663).

Protected procedure WriteUnits(const HL: integer);

This item is declared in ancestor TDocGenerator.

Writes documentation for all units, calling WriteUnit for each unit.

Source: source/component/PasDoc_Gen.pas (line 674).

Protected procedure WriteGVUses;

This item is declared in ancestor TDocGenerator.

output graphviz uses tree

Source: source/component/PasDoc_Gen.pas (line 681).

Protected procedure WriteGVClasses;

This item is declared in ancestor TDocGenerator.

output graphviz class tree

Source: source/component/PasDoc_Gen.pas (line 683).

Protected procedure StartSpellChecking(const AMode: string);

This item is declared in ancestor TDocGenerator.

starts the spell checker

Source: source/component/PasDoc_Gen.pas (line 686).

Protected procedure CheckString(const AString: string; const AErrors: TSpellingErrorList);

This item is declared in ancestor TDocGenerator.

If CheckSpelling and spell checking was successfully started, this will run FAspellProcess.CheckString and will report all errors using DoMessage with mtWarning.

Otherwise this just clears AErrors, which means that no errors were found.

Source: source/component/PasDoc_Gen.pas (line 694).

Protected procedure EndSpellChecking;

This item is declared in ancestor TDocGenerator.

closes the spellchecker

Source: source/component/PasDoc_Gen.pas (line 697).

Protected function FormatNormalCode(AString: string): string; virtual;

This item is declared in ancestor TDocGenerator.

This will cause AString to be formatted in the way that normal Pascal statements (not keywords, strings, comments, etc.) look in Delphi.

Source: source/component/PasDoc_Gen.pas (line 709).

Protected function FormatHex(AString: string): string; virtual;

This item is declared in ancestor TDocGenerator.

FormatHex will cause AString to be formatted in the way that Hex are formatted in Delphi.

Source: source/component/PasDoc_Gen.pas (line 718).

Protected function FormatNumeric(AString: string): string; virtual;

This item is declared in ancestor TDocGenerator.

FormatNumeric will cause AString to be formatted in the way that Numeric are formatted in Delphi.

Source: source/component/PasDoc_Gen.pas (line 722).

Protected function FormatFloat(AString: string): string; virtual;

This item is declared in ancestor TDocGenerator.

FormatFloat will cause AString to be formatted in the way that Float are formatted in Delphi.

Source: source/component/PasDoc_Gen.pas (line 726).

Protected function FormatString(AString: string): string; virtual;

This item is declared in ancestor TDocGenerator.

FormatString will cause AString to be formatted in the way that strings are formatted in Delphi.

Source: source/component/PasDoc_Gen.pas (line 730).

Protected function EnDash: string; virtual;

This item is declared in ancestor TDocGenerator.

See TTagManager.EnDash. Default implementation in this class returns '--'.

Source: source/component/PasDoc_Gen.pas (line 752).

Protected function EmDash: string; virtual;

This item is declared in ancestor TDocGenerator.

See TTagManager.EmDash. Default implementation in this class returns '---'.

Source: source/component/PasDoc_Gen.pas (line 756).

Protected function HtmlString(const S: string): string; virtual;

This item is declared in ancestor TDocGenerator.

Process HTML content, like provided by the @html tag. Override this function to decide what to put in output on such thing.

Note that S is not processed in any way, even with ConvertString. So you're able to copy user's input inside @html() verbatim to the output.

The default implementation is this class simply discards it, i.e. returns always ''. Generators that know what to do with HTML can override this with simple "Result := S".

Source: source/component/PasDoc_Gen.pas (line 768).

Protected procedure WriteExternal(const ExternalItem: TExternalItem; const Id: TTranslationID);

This item is declared in ancestor TDocGenerator.

Write the introduction and conclusion of the project.

Source: source/component/PasDoc_Gen.pas (line 809).

Protected procedure WriteConclusion;

This item is declared in ancestor TDocGenerator.

Writes a conclusion for the project. See WriteExternal.

Source: source/component/PasDoc_Gen.pas (line 825).

Protected procedure WriteIntroduction;

This item is declared in ancestor TDocGenerator.

Writes an introduction for the project. See WriteExternal.

Source: source/component/PasDoc_Gen.pas (line 829).

Protected procedure WriteAdditionalFiles;

This item is declared in ancestor TDocGenerator.

Writes the other files for the project. See WriteExternal.

Source: source/component/PasDoc_Gen.pas (line 833).

Protected function FormatTableOfContents(Sections: TStringPairVector): string; virtual;

This item is declared in ancestor TDocGenerator.

Override this if you want to insert something on @tableOfContents tag. As a parameter you get already prepared tree of sections that your table of contents should show. Each item of Sections is a section on the level 1. Item's Name is section name, item's Value is section caption, item's Data is a TStringPairVector instance that describes subsections (on level 2) below this section. And so on, recursively.

Sections given here are never nil, and item's Data is never nil. But of course they may contain 0 items, and this should be a signal to you that given section doesn't have any subsections.

Default implementation of this method in this class just returns empty string.

Source: source/component/PasDoc_Gen.pas (line 908).

Public procedure BuildLinks;

This item is declared in ancestor TDocGenerator.

Creates anchors and links for all items in all units.

Source: source/component/PasDoc_Gen.pas (line 914).

Public procedure ResolveTypeAliasesDescriptions;

This item is declared in ancestor TDocGenerator.

For type aliases with empty RawDescription, copy the RawDescription from the aliased type. Do this only after BuildLinks to be able to follow type aliases.

Source: source/component/PasDoc_Gen.pas (line 920).

Public procedure ExpandDescriptions;

This item is declared in ancestor TDocGenerator.

Expands description for each item in each unit of Units. "Expands description" means that TTagManager.Execute is called, and item's DetailedDescription, AbstractDescription, AbstractDescriptionWasAutomatic (and many others, set by @-tags handlers) properties are calculated.

Source: source/component/PasDoc_Gen.pas (line 927).

Public procedure LoadDescriptionFiles(const c: TStringVector);

This item is declared in ancestor TDocGenerator.

Assumes C contains file names as PString variables. Calls LoadDescriptionFile with each file name.

Source: source/component/PasDoc_Gen.pas (line 935).

Public procedure ParseAbbreviationsFile(const AFileName: string);

This item is declared in ancestor TDocGenerator.

This item has no description.

Source: source/component/PasDoc_Gen.pas (line 947).

Protected function ConvertString(const s: string): string; override;

This item has no description. Showing description inherited from TDocGenerator.ConvertString.

Converts for each character in S, thus assembling a String that is returned and can be written to the documentation file.

The @ character should not be converted, this will be done later on.

Source: source/component/PasDoc_GenLatex.pas (line 167).

Protected function ConvertChar(c: char): String; override;

Called by ConvertString to convert a character. Will convert special characters to their html escape sequence -> test

Source: source/component/PasDoc_GenLatex.pas (line 172).

Protected procedure WriteUnit(const HL: integer; const U: TPasUnit); override;

This item has no description. Showing description inherited from TDocGenerator.WriteUnit.

Abstract method that writes all documentation for a single unit U to output, starting at heading level HL. Implementation must be provided by descendant objects and is dependent on output format.

Source: source/component/PasDoc_GenLatex.pas (line 174).

Protected function LatexString(const S: string): string; override;

This item has no description. Showing description inherited from TDocGenerator.LatexString.

Process LaTeX content, like provided by the @latex tag.

The default implementation is this class simply discards it, i.e. returns always ''. Generators that know what to do with raw LaTeX markup can override this with simple "Result := S".

Source: source/component/PasDoc_GenLatex.pas (line 176).

Protected function CodeString(const s: string): string; override;

Makes a String look like a coded String, i.e. '\begin{ttfamily}TheString\end{ttfamily}' in LaTeX. }

Source: source/component/PasDoc_GenLatex.pas (line 181).

Protected function CreateLink(const Item: TBaseItem): string; override;

Returns a link to an anchor within a document. LaTeX simply concatenates the strings with either a "-" or "." character between them.

Source: source/component/PasDoc_GenLatex.pas (line 185).

Protected procedure WriteStartOfCode; override;

This item has no description.

Source: source/component/PasDoc_GenLatex.pas (line 187).

Protected procedure WriteEndOfCode; override;

This item has no description.

Source: source/component/PasDoc_GenLatex.pas (line 188).

Protected function Paragraph: string; override;

This item has no description. Showing description inherited from TDocGenerator.Paragraph.

This is paragraph marker in output documentation.

Default implementation in this class simply returns ' ' (one space).

Source: source/component/PasDoc_GenLatex.pas (line 190).

Protected function ShortDash: string; override;

This item has no description. Showing description inherited from TDocGenerator.ShortDash.

See TTagManager.ShortDash. Default implementation in this class returns '-'.

Source: source/component/PasDoc_GenLatex.pas (line 192).

Protected function LineBreak: string; override;

This item has no description. Showing description inherited from TDocGenerator.LineBreak.

Markup that forces line break in given output format (e.g. '<br>' in html or '\\' in LaTeX).

It is used on
tag (but may also be used on other occasions in the future).

In this class it returns '', because it's valid for an output generator to simply ignore
tags if linebreaks can't be expressed in given output format.

Source: source/component/PasDoc_GenLatex.pas (line 194).

Protected function URLLink(const URL: string): string; override;

This item has no description. Showing description inherited from TDocGenerator.URLLink.

Markup to display URL in a description. E.g. HTML generator will want to wrap this in <a href="...">...</a>.

Note that passed here URL is not processed by ConvertString (because sometimes it could be undesirable). If you want you can process URL with ConvertString when overriding this method.

Default implementation in this class simply returns ConvertString(URL). This is good if your documentation format does not support anything like URL links.

Source: source/component/PasDoc_GenLatex.pas (line 196).

Protected function URLLink(const URL, LinkDisplay: string): string; override;

This item has no description. Showing description inherited from TDocGenerator.URLLink.

Text which will be shown for an URL tag.

URL is a link to a website or e-mail address. LinkDisplay is an optional parameter which will be used as the display name of the URL.

Source: source/component/PasDoc_GenLatex.pas (line 197).

Protected procedure WriteExternalCore(const ExternalItem: TExternalItem; const Id: TTranslationID); override;

This item has no description. Showing description inherited from TDocGenerator.WriteExternalCore.

This is called from WriteExternal when ExternalItem.Title and ShortTitle are already set, message about generating appropriate item is printed etc. This should write ExternalItem, including ExternalItem.DetailedDescription, ExternalItem.Authors, ExternalItem.Created, ExternalItem.LastMod.

Source: source/component/PasDoc_GenLatex.pas (line 199).

Protected function FormatKeyWord(AString: string): string; override;

FormatKeyWord is called from within FormatPascalCode to return AString in a bold font.

Source: source/component/PasDoc_GenLatex.pas (line 210).

Protected function FormatCompilerComment(AString: string): string; override;

FormatCompilerComment is called from within FormatPascalCode to return AString in italics.

Source: source/component/PasDoc_GenLatex.pas (line 214).

Protected function FormatComment(AString: string): string; override;

FormatComment is called from within FormatPascalCode to return AString in italics.

Source: source/component/PasDoc_GenLatex.pas (line 218).

Protected function FormatAnchor(const Anchor: string): string; override;

This item has no description. Showing description inherited from TDocGenerator.FormatAnchor.

Writes a link-anchor.

Source: source/component/PasDoc_GenLatex.pas (line 220).

Protected function MakeItemLink(const Item: TBaseItem; const LinkCaption: string; const LinkContext: TLinkContext): string; override;

This item has no description. Showing description inherited from TDocGenerator.MakeItemLink.

Return a link to item Item which will be displayed as LinkCaption. Returned string may be directly inserted inside output documentation. LinkCaption will be always converted using ConvertString before writing, so don't worry about doing this yourself when calling this method.

LinkContext may be used in some descendants to present the link differently, see TLinkContext for it's meaning.

If some output format doesn't support this feature, it can return simply ConvertString(LinkCaption). This is the default implementation of this method in this class.

Source: source/component/PasDoc_GenLatex.pas (line 222).

Protected function FormatBold(const Text: string): string; override;

This item has no description. Showing description inherited from TDocGenerator.FormatBold.

Return Text formatted using bold font.

Given Text is already in the final output format (with characters converted using ConvertString, @-tags expanded etc.).

Implementation of this method in this class simply returns Result := Text. Output generators that can somehow express bold formatting (or at least emphasis of some text) should override this.

Source: source/component/PasDoc_GenLatex.pas (line 226).

Protected function FormatItalic(const Text: string): string; override;

This item has no description. Showing description inherited from TDocGenerator.FormatItalic.

Return Text formatted using italic font. Analogous to FormatBold.

Source: source/component/PasDoc_GenLatex.pas (line 227).

Protected function FormatWarning(const Text: string): string; override;

This item has no description. Showing description inherited from TDocGenerator.FormatWarning.

Return Text using bold font by calling FormatBold(Text).

Source: source/component/PasDoc_GenLatex.pas (line 229).

Protected function FormatNote(const Text: string): string; override;

This item has no description. Showing description inherited from TDocGenerator.FormatNote.

Return Text using italic font by calling FormatItalic(Text).

Source: source/component/PasDoc_GenLatex.pas (line 230).

Protected function FormatPreformatted(const Text: string): string; override;

This item has no description. Showing description inherited from TDocGenerator.FormatPreformatted.

Return Text preserving spaces and line breaks. Note that Text passed here is not yet converted with ConvertString. The implementation of this method in this class just returns ConvertString(Text).

Source: source/component/PasDoc_GenLatex.pas (line 231).

Protected function FormatImage(FileNames: TStringList): string; override;

This item has no description. Showing description inherited from TDocGenerator.FormatImage.

Return markup to show an image. FileNames is a list of possible filenames of the image. FileNames always contains at least one item (i.e. FileNames.Count >= 1), never contains empty lines (i.e. Trim(FileNames[I]) <> ''), and contains only absolute filenames.

E.g. HTML generator will want to choose the best format for HTML, then somehow copy the image from FileNames[Chosen] and wrap this in <img src="...">.

Implementation of this method in this class simply shows FileNames[0]. Output generators should override this.

Source: source/component/PasDoc_GenLatex.pas (line 233).

Protected function FormatList(ListData: TListData): string; override;

This item has no description. Showing description inherited from TDocGenerator.FormatList.

Format a list from given ListData.

Source: source/component/PasDoc_GenLatex.pas (line 235).

Protected function FormatTable(Table: TTableData): string; override;

This item has no description. Showing description inherited from TDocGenerator.FormatTable.

Return appropriate content for given Table. It's guaranteed that the Table passed here will have at least one row and in each row there will be at least one cell, so you don't have to check it within descendants.

Source: source/component/PasDoc_GenLatex.pas (line 237).

Public function FormatPascalCode(const Line: string): string; override;

FormatPascalCode is intended to format Line as if it were Object Pascal code in Delphi or Lazarus. However, unlike Lazarus and Delphi, colored text is not used because printing colored text tends to be much more expensive than printing all black text.

Source: source/component/PasDoc_GenLatex.pas (line 243).

Public function GetFileExtension: string; override;

Returns Latex file extension ".tex".

Source: source/component/PasDoc_GenLatex.pas (line 246).

Public procedure WriteDocumentation; override;

The method that does everything — writes documentation for all units and creates overview files.

Source: source/component/PasDoc_GenLatex.pas (line 249).

Public constructor Create(AOwner: TComponent); override;

This item has no description.

Source: source/component/PasDoc_GenLatex.pas (line 250).

Public destructor Destroy; override;

This item has no description.

Source: source/component/PasDoc_GenLatex.pas (line 251).

Public function EscapeURL(const AString: string): string; virtual;

This item has no description.

Source: source/component/PasDoc_GenLatex.pas (line 252).

Public function FormatSection(HL: integer; const Anchor: string; const Caption: string): string; override;

This item has no description. Showing description inherited from TDocGenerator.FormatSection.

Writes a section heading and a link-anchor.

Source: source/component/PasDoc_GenLatex.pas (line 254).

Properties

Protected property CurrentStream: TStream read FCurrentStream;

This item is declared in ancestor TDocGenerator.

Output stream that is currently written to; depending on the output format, more than one output stream may be necessary to store all documentation.

Source: source/component/PasDoc_Gen.pas (line 472).

Public property Units: TPasUnits read FUnits write FUnits;

This item is declared in ancestor TDocGenerator.

This item has no description.

Source: source/component/PasDoc_Gen.pas (line 942).

Public property Introduction: TExternalItem read FIntroduction write FIntroduction;

This item is declared in ancestor TDocGenerator.

This item has no description.

Source: source/component/PasDoc_Gen.pas (line 949).

Public property Conclusion: TExternalItem read FConclusion write FConclusion;

This item is declared in ancestor TDocGenerator.

This item has no description.

Source: source/component/PasDoc_Gen.pas (line 951).

Public property AdditionalFiles: TExternalItemList read FAdditionalFiles write FAdditionalFiles;

This item is declared in ancestor TDocGenerator.

This item has no description.

Source: source/component/PasDoc_Gen.pas (line 952).

Public property OnMessage: TPasDocMessageEvent read FOnMessage write FOnMessage;

This item is declared in ancestor TDocGenerator.

Callback receiving messages from generator.

This is usually used internally by TPasDoc class, that assigns it's internal callback here when using this generator. Also, for the above reason, do not make this published.

See TPasDoc.OnMessage for something more useful for final programs.

Source: source/component/PasDoc_Gen.pas (line 961).

Published property Language: TLanguageID read GetLanguage write SetLanguage default DEFAULT_LANGUAGE;

This item is declared in ancestor TDocGenerator.

the (human) output language of the documentation file(s)

Source: source/component/PasDoc_Gen.pas (line 964).

Published property ProjectName: string read FProjectName write FProjectName;

This item is declared in ancestor TDocGenerator.

Name of the project to create.

Source: source/component/PasDoc_Gen.pas (line 967).

Published property ExcludeGenerator: Boolean read FExcludeGenerator write FExcludeGenerator default false;

This item is declared in ancestor TDocGenerator.

"Generator info" are things that can change with each invocation of pasdoc, with different pasdoc binary etc.

This includes

  • pasdoc's compiler name and version,

  • pasdoc's version and time of compilation

See --exclude-generator documentation. Default value is false (i.e. show them), as this information is generally considered useful.

Setting this to true is useful for automatically comparing two versions of pasdoc's output (e.g. when trying to automate pasdoc's tests).

Source: source/component/PasDoc_Gen.pas (line 985).

Published property IncludeCreationTime: Boolean read FIncludeCreationTime write FIncludeCreationTime default false;

This item is declared in ancestor TDocGenerator.

Show creation time in the output.

Source: source/component/PasDoc_Gen.pas (line 989).

Published property UseLowercaseKeywords: Boolean read FUseLowercaseKeywords write FUseLowercaseKeywords default false;

This item is declared in ancestor TDocGenerator.

Setting to define how literal tag keywords should appear in documentaion.

Source: source/component/PasDoc_Gen.pas (line 993).

Published property Title: string read FTitle write FTitle;

This item is declared in ancestor TDocGenerator.

Title of the documentation, supplied by user. May be empty. See TPasDoc.Title.

Source: source/component/PasDoc_Gen.pas (line 998).

Published property DestinationDirectory: string read FDestDir write SetDestDir;

This item is declared in ancestor TDocGenerator.

Destination directory for documentation. Must include terminating forward slash or backslash so that valid file names can be created by concatenating DestinationDirectory and a pathless file name.

Source: source/component/PasDoc_Gen.pas (line 1003).

Published property OutputGraphVizUses: boolean read FGraphVizUses write FGraphVizUses default false;

This item is declared in ancestor TDocGenerator.

generate a GraphViz diagram for the units dependencies

Source: source/component/PasDoc_Gen.pas (line 1006).

Published property OutputGraphVizClassHierarchy: boolean read FGraphVizClasses write FGraphVizClasses default false;

This item is declared in ancestor TDocGenerator.

generate a GraphViz diagram for the Class hierarchy

Source: source/component/PasDoc_Gen.pas (line 1009).

Published property LinkGraphVizUses: string read FLinkGraphVizUses write FLinkGraphVizUses;

This item is declared in ancestor TDocGenerator.

link the GraphViz uses diagram

Source: source/component/PasDoc_Gen.pas (line 1012).

Published property LinkGraphVizClasses: string read FLinkGraphVizClasses write FLinkGraphVizClasses;

This item is declared in ancestor TDocGenerator.

link the GraphViz classes diagram

Source: source/component/PasDoc_Gen.pas (line 1014).

Published property Abbreviations: TStringList read FAbbreviations write SetAbbreviations;

This item is declared in ancestor TDocGenerator.

This item has no description.

Source: source/component/PasDoc_Gen.pas (line 1016).

Published property CheckSpelling: boolean read FCheckSpelling write FCheckSpelling default false;

This item is declared in ancestor TDocGenerator.

This item has no description.

Source: source/component/PasDoc_Gen.pas (line 1018).

Published property AspellLanguage: string read FAspellLanguage write FAspellLanguage;

This item is declared in ancestor TDocGenerator.

This item has no description.

Source: source/component/PasDoc_Gen.pas (line 1021).

Published property SpellCheckIgnoreWords: TStringList read FSpellCheckIgnoreWords write SetSpellCheckIgnoreWords;

This item is declared in ancestor TDocGenerator.

This item has no description.

Source: source/component/PasDoc_Gen.pas (line 1023).

Published property AutoAbstract: boolean read FAutoAbstract write FAutoAbstract default DefaultAutoAbstract;

This item is declared in ancestor TDocGenerator.

Automatically detect abstract (summary) descriptions without @abstract tag. See --auto-abstract command-line option docs on https://pasdoc.github.io/Abstract . This is used in ExpandDescriptions.

Source: source/component/PasDoc_Gen.pas (line 1029).

Published property LinkLook: TLinkLook read FLinkLook write FLinkLook default llDefault;

This item is declared in ancestor TDocGenerator.

How SearchLink behaves. This meaning is described in --link-look documentation.

Source: source/component/PasDoc_Gen.pas (line 1034).

Published property WriteUsesClause: boolean read FWriteUsesClause write FWriteUsesClause default false;

This item is declared in ancestor TDocGenerator.

This item has no description.

Source: source/component/PasDoc_Gen.pas (line 1036).

Published property AutoLink: boolean read FAutoLink write FAutoLink default false;

This item is declared in ancestor TDocGenerator.

Automatically link identifiers to their documentation, even without @link tags. See --auto-link documentation.

Source: source/component/PasDoc_Gen.pas (line 1041).

Published property AutoLinkExclude: TStringList read FAutoLinkExclude;

This item is declared in ancestor TDocGenerator.

This item has no description.

Source: source/component/PasDoc_Gen.pas (line 1044).

Published property ExternalClassHierarchy: TStrings read FExternalClassHierarchy write SetExternalClassHierarchy stored StoredExternalClassHierarchy;

This item is declared in ancestor TDocGenerator.

This item has no description.

Source: source/component/PasDoc_Gen.pas (line 1046).

Published property Markdown: boolean read FMarkdown write FMarkdown default false;

This item is declared in ancestor TDocGenerator.

This item has no description.

Source: source/component/PasDoc_Gen.pas (line 1050).

Published property ShowSourcePosition: boolean read FShowSourcePosition write FShowSourcePosition default false;

This item is declared in ancestor TDocGenerator.

Show source filename and line number in documentation output.

Source: source/component/PasDoc_Gen.pas (line 1054).

Published property SourceRoot: string read FSourceRoot write FSourceRoot;

This item is declared in ancestor TDocGenerator.

Root path for source files. Used to make relative paths, shown by ShowSourcePosition and replaced by SourceUrlPattern. Leave empty to make ShowSourcePosition and SourceUrlPattern just take the final filename part to show / replace.

Source: source/component/PasDoc_Gen.pas (line 1063).

Published property SourceUrlPattern: string read FSourceUrlPattern write FSourceUrlPattern;

This item is declared in ancestor TDocGenerator.

URL pattern for linking source positions. Use {FILE} for filename and {LINE} for line number. When set, source positions in the output become clickable links. Example: https://github.com/owner/repo/blob/main/{FILE}#L{LINE}

Source: source/component/PasDoc_Gen.pas (line 1070).

Published property ToggleVisibilities: TVisibilities read FToggleVisibilities write FToggleVisibilities default [];

This item is declared in ancestor TDocGenerator.

Visibilities that should be included in output but hidden by default in HTML, with checkboxes to toggle their display.

Source: source/component/PasDoc_Gen.pas (line 1075).

Published property SortSettings: TSortSettings read FSortSettings write FSortSettings default [];

This item is declared in ancestor TDocGenerator.

How items should be sorted in output. See --sort documentation.

The TPasDoc sorts the items in Units before executing our WriteDocumentation, so TDocGenerator usually doesn't need to worry about sorting anymore... Except if output rearranges/sums items, like HTML output does for InheritedMembers<>imNever, in which case they need to be sorted again.

Source: source/component/PasDoc_Gen.pas (line 1087).

Published property Latex2rtf: boolean read FLatex2rtf write FLatex2rtf default false;

Indicate if the output must be simplified for latex2rtf

Source: source/component/PasDoc_GenLatex.pas (line 258).

Published property LatexHead: TStrings read FLatexHead write SetLatexHead;

The strings in LatexHead are inserted directly into the preamble of the LaTeX document. Therefore they must be valid LaTeX code.

Source: source/component/PasDoc_GenLatex.pas (line 261).


PasDoc's autodoc: PasDoc_GenPHP

Unit PasDoc_GenPHP

Description
Uses
Classes, Interfaces, Objects and Records

Description

PHP output generator.

Source: source/component/PasDoc_GenPHP.pas (line 24).

Uses

  • PasDoc_Utils
  • PasDoc_Gen
  • PasDoc_Items
  • PasDoc_Types
  • PasDoc_Languages
  • PasDoc_StringVector

Overview

Classes, Interfaces, Objects and Records

Name | Description
Class TPHPDocGenerator | PHP output generator.


PasDoc's autodoc: PasDoc_GenPHP: Class TPHPDocGenerator

Class TPHPDocGenerator

Description
Hierarchy
Constants
Fields
Methods
Properties

Unit

PasDoc_GenPHP

Declaration

type TPHPDocGenerator = class(TDocGenerator)

Description

PHP output generator.

Source: source/component/PasDoc_GenPHP.pas (line 35).

Hierarchy

  • TObject
  • TPersistent
  • TComponent
  • TDocGenerator
  • TPHPDocGenerator
Show Additional Members:

Overview

Constants

Public DefaultAutoAbstract = true;

Fields

Protected | FLanguage: TPasDocLanguages;
Protected | FClassHierarchy: TStringCardinalTree;
Protected | FUnits: TPasUnits;

Methods

Protected | procedure DoError(const AMessage: string; const AArguments: array of const; const AExitCode: Word);
Protected | procedure DoMessage(const AVerbosity: Cardinal; const MessageType: TPasDocMessageType; const AMessage: string; const AArguments: array of const);
Protected | procedure CreateClassHierarchy;
Protected | function MakeItemLink(const Item: TBaseItem; const LinkCaption: string; const LinkContext: TLinkContext): string; virtual;
Protected | procedure WriteCodeWithLinksCommon(const Item: TPasItem; const Code: string; WriteItemLink: boolean; const NameLinkBegin, NameLinkEnd: string);
Protected | function HasSourcePosition(const AItem: TPasItem; out ItemName, ItemFilenameInRoot, ItemUrl: string): boolean;
Protected | procedure CloseStream;
Protected | function CreateLink(const Item: TBaseItem): string; virtual;
Protected | function CreateStream(const AName: string): Boolean;
Protected | function ExtractEmailAddress(s: string; out S1, S2, EmailAddress: string): Boolean;
Protected | function FixEmailaddressWithoutMailTo(const PossibleEmailAddress: String): String;
Protected | function ExtractWebAddress(s: string; out S1, S2, WebAddress: string): Boolean;
Protected | function FindGlobal(const NameParts: TNameParts): TBaseItem;
Protected | function FindGlobalPasItem(const NameParts: TNameParts): TPasItem; overload;
Protected | function FindGlobalPasItem(const ItemName: String): TPasItem; overload;
Protected | function GetClassDirectiveName(const Directive: TClassDirective): string;
Protected | function GetCIOTypeName(const MyType: TCIOType): string;
Protected | procedure LoadDescriptionFile(n: string);
Protected | function SearchItem(s: string; const Item: TBaseItem; WarningIfNotSplittable: boolean): TBaseItem;
Protected | function SearchLink(s: string; const Item: TBaseItem; const LinkDisplay: string; const WarningIfLinkNotFound: TLinkNotFoundAction; out FoundItem: TBaseItem): string; overload;
Protected | function SearchLink(s: string; const Item: TBaseItem; const LinkDisplay: string; const WarningIfLinkNotFound: TLinkNotFoundAction): string; overload;
Protected | procedure StoreDescription(ItemName: string; var t: string);
Protected | procedure WriteConverted(const s: string; Newline: boolean); overload;
Protected | procedure WriteConverted(const s: string); overload;
Protected | procedure WriteConvertedLine(const s: string);
Protected | procedure WriteDirect(const t: string; Newline: boolean); overload;
Protected | procedure WriteDirect(const t: string); overload;
Protected | procedure WriteDirectLine(const t: string);
Protected | procedure WriteUnits(const HL: integer);
Protected | procedure WriteStartOfCode; virtual;
Protected | procedure WriteEndOfCode; virtual;
Protected | procedure WriteGVUses;
Protected | procedure WriteGVClasses;
Protected | procedure StartSpellChecking(const AMode: string);
Protected | procedure CheckString(const AString: string; const AErrors: TSpellingErrorList);
Protected | procedure EndSpellChecking;
Protected | function FormatPascalCode(const Line: string): string; virtual;
Protected | function FormatNormalCode(AString: string): string; virtual;
Protected | function FormatComment(AString: string): string; virtual;
Protected | function FormatHex(AString: string): string; virtual;
Protected | function FormatNumeric(AString: string): string; virtual;
Protected | function FormatFloat(AString: string): string; virtual;
Protected | function FormatString(AString: string): string; virtual;
Protected | function FormatKeyWord(AString: string): string; virtual;
Protected | function FormatCompilerComment(AString: string): string; virtual;
Protected | function Paragraph: string; virtual;
Protected | function ShortDash: string; virtual;
Protected | function EnDash: string; virtual;
Protected | function EmDash: string; virtual;
Protected | function HtmlString(const S: string): string; virtual;
Protected | function LatexString(const S: string): string; virtual;
Protected | function LineBreak: string; virtual;
Protected | function URLLink(const URL: string): string; overload; virtual;
Protected | function URLLink(const URL, LinkDisplay: string): string; overload; virtual;
Protected | procedure WriteExternal(const ExternalItem: TExternalItem; const Id: TTranslationID);
Protected | procedure WriteConclusion;
Protected | procedure WriteIntroduction;
Protected | procedure WriteAdditionalFiles;
Protected | function FormatBold(const Text: string): string; virtual;
Protected | function FormatItalic(const Text: string): string; virtual;
Protected | function FormatWarning(const Text: string): string; virtual;
Protected | function FormatNote(const Text: string): string; virtual;
Protected | function FormatPreformatted(const Text: string): string; virtual;
Protected | function FormatImage(FileNames: TStringList): string; virtual;
Protected | function FormatTableOfContents(Sections: TStringPairVector): string; virtual;
Public | procedure BuildLinks;
Public | procedure ResolveTypeAliasesDescriptions;
Public | procedure ExpandDescriptions;
Public | procedure LoadDescriptionFiles(const c: TStringVector);
Public | constructor Create(AOwner: TComponent); override;
Public | destructor Destroy; override;
Public | procedure ParseAbbreviationsFile(const AFileName: string);
Protected | function CodeString(const s: string): string; override;
Protected | procedure WriteExternalCore(const ExternalItem: TExternalItem; const Id: TTranslationID); override;
Protected | function FormatSection(HL: integer; const Anchor: string; const Caption: string): string; override;
Protected | function FormatAnchor(const Anchor: string): string; override;
Protected | function FormatList(ListData: TListData): string; override;
Protected | function FormatTable(Table: TTableData): string; override;
Protected | function ConvertString(const s: string): string; override;
Protected | function ConvertChar(c: char): string; override;
Protected | procedure WriteUnit(const HL: integer; const U: TPasUnit); override;
Public | procedure WriteDocumentation; override;
Public | function GetFileExtension: String; override;

Properties

Protected | property CurrentStream: TStream read FCurrentStream;
Public | property Units: TPasUnits read FUnits write FUnits;
Public | property Introduction: TExternalItem read FIntroduction write FIntroduction;
Public | property Conclusion: TExternalItem read FConclusion write FConclusion;
Public | property AdditionalFiles: TExternalItemList read FAdditionalFiles write FAdditionalFiles;
Public | property OnMessage: TPasDocMessageEvent read FOnMessage write FOnMessage;
Published | property Language: TLanguageID read GetLanguage write SetLanguage default DEFAULT_LANGUAGE;
Published | property ProjectName: string read FProjectName write FProjectName;
Published | property ExcludeGenerator: Boolean read FExcludeGenerator write FExcludeGenerator default false;
Published | property IncludeCreationTime: Boolean read FIncludeCreationTime write FIncludeCreationTime default false;
Published | property UseLowercaseKeywords: Boolean read FUseLowercaseKeywords write FUseLowercaseKeywords default false;
Published | property Title: string read FTitle write FTitle;
Published | property DestinationDirectory: string read FDestDir write SetDestDir;
Published | property OutputGraphVizUses: boolean read FGraphVizUses write FGraphVizUses default false;
Published | property OutputGraphVizClassHierarchy: boolean read FGraphVizClasses write FGraphVizClasses default false;
Published | property LinkGraphVizUses: string read FLinkGraphVizUses write FLinkGraphVizUses;
Published | property LinkGraphVizClasses: string read FLinkGraphVizClasses write FLinkGraphVizClasses;
Published | property Abbreviations: TStringList read FAbbreviations write SetAbbreviations;
Published | property CheckSpelling: boolean read FCheckSpelling write FCheckSpelling default false;
Published | property AspellLanguage: string read FAspellLanguage write FAspellLanguage;
Published | property SpellCheckIgnoreWords: TStringList read FSpellCheckIgnoreWords write SetSpellCheckIgnoreWords;
Published | property AutoAbstract: boolean read FAutoAbstract write FAutoAbstract default DefaultAutoAbstract;
Published | property LinkLook: TLinkLook read FLinkLook write FLinkLook default llDefault;
Published | property WriteUsesClause: boolean read FWriteUsesClause write FWriteUsesClause default false;
Published | property AutoLink: boolean read FAutoLink write FAutoLink default false;
Published | property AutoLinkExclude: TStringList read FAutoLinkExclude;
Published | property ExternalClassHierarchy: TStrings read FExternalClassHierarchy write SetExternalClassHierarchy stored StoredExternalClassHierarchy;
Published | property Markdown: boolean read FMarkdown write FMarkdown default false;
Published | property ShowSourcePosition: boolean read FShowSourcePosition write FShowSourcePosition default false;
Published | property SourceRoot: string read FSourceRoot write FSourceRoot;
Published | property SourceUrlPattern: string read FSourceUrlPattern write FSourceUrlPattern;
Published | property ToggleVisibilities: TVisibilities read FToggleVisibilities write FToggleVisibilities default [];
Published | property SortSettings: TSortSettings read FSortSettings write FSortSettings default [];

Description

Constants

Public DefaultAutoAbstract = true;

This item is declared in ancestor TDocGenerator.

This item has no description.

Source: source/component/PasDoc_Gen.pas (line 911).

Fields

Protected FLanguage: TPasDocLanguages;

This item is declared in ancestor TDocGenerator.

the (human) output language of the documentation file(s)

Source: source/component/PasDoc_Gen.pas (line 459).

Protected FClassHierarchy: TStringCardinalTree;

This item is declared in ancestor TDocGenerator.

This item has no description.

Source: source/component/PasDoc_Gen.pas (line 461).

Protected FUnits: TPasUnits;

This item is declared in ancestor TDocGenerator.

list of all units that were successfully parsed

Source: source/component/PasDoc_Gen.pas (line 511).

Methods

Protected procedure DoError(const AMessage: string; const AArguments: array of const; const AExitCode: Word);

This item is declared in ancestor TDocGenerator.

This item has no description.

Source: source/component/PasDoc_Gen.pas (line 463).

Protected procedure DoMessage(const AVerbosity: Cardinal; const MessageType: TPasDocMessageType; const AMessage: string; const AArguments: array of const);

This item is declared in ancestor TDocGenerator.

This item has no description.

Source: source/component/PasDoc_Gen.pas (line 465).

Protected procedure CreateClassHierarchy;

This item is declared in ancestor TDocGenerator.

This item has no description.

Source: source/component/PasDoc_Gen.pas (line 474).

Protected function MakeItemLink(const Item: TBaseItem; const LinkCaption: string; const LinkContext: TLinkContext): string; virtual;

This item is declared in ancestor TDocGenerator.

Return a link to item Item which will be displayed as LinkCaption. Returned string may be directly inserted inside output documentation. LinkCaption will be always converted using ConvertString before writing, so don't worry about doing this yourself when calling this method.

LinkContext may be used in some descendants to present the link differently, see TLinkContext for it's meaning.

If some output format doesn't support this feature, it can return simply ConvertString(LinkCaption). This is the default implementation of this method in this class.

Source: source/component/PasDoc_Gen.pas (line 487).

Protected procedure WriteCodeWithLinksCommon(const Item: TPasItem; const Code: string; WriteItemLink: boolean; const NameLinkBegin, NameLinkEnd: string);

This item is declared in ancestor TDocGenerator.

This writes Code as a Pascal code. Links inside the code are resolved from Item. If WriteItemLink then Item.Name is made a link. Item.Name is printed between NameLinkBegin and NameLinkEnd.

Source: source/component/PasDoc_Gen.pas (line 495).

Protected function HasSourcePosition(const AItem: TPasItem; out ItemName, ItemFilenameInRoot, ItemUrl: string): boolean;

This item is declared in ancestor TDocGenerator.

Utility to process information from TPasItem.SourceAbsoluteFileName and TPasItem.SourceLine and decide whether to show it. If True, then we should show it.

Parameters
ItemName
is the name to show.
ItemFilenameInRoot
is the filename, relative to SourceRoot, using always / on any system (even on Windows).
ItemUrl
is the URL to link to, if any (don't make a link if this is '').

Source: source/component/PasDoc_Gen.pas (line 507).

Protected procedure CloseStream;

This item is declared in ancestor TDocGenerator.

If field CurrentStream is assigned, it is disposed and set to nil.

Source: source/component/PasDoc_Gen.pas (line 514).

Protected function CreateLink(const Item: TBaseItem): string; virtual;

This item is declared in ancestor TDocGenerator.

This function is supposed to return a reference to an item, that is the name combined with some linking information like a hyperlink element in HTML or a page number in Tex.

Source: source/component/PasDoc_Gen.pas (line 539).

Protected function CreateStream(const AName: string): Boolean;

This item is declared in ancestor TDocGenerator.

Open output stream in the destination directory. If CurrentStream still exists (<> nil), it is closed. Then, a new output stream in the destination directory is created and assigned to CurrentStream. The file is overwritten if exists.

Use this only for text files that you want to write using WriteXxx methods of this class (like WriteConverted). There's no point to use if for other files.

Returns True if creation was successful, False otherwise. When it returns False, the error message was already shown by DoMessage.

Source: source/component/PasDoc_Gen.pas (line 552).

Protected function ExtractEmailAddress(s: string; out S1, S2, EmailAddress: string): Boolean;

This item is declared in ancestor TDocGenerator.

Searches for an email address in String S. Searches for first appearance of the @ character

Source: source/component/PasDoc_Gen.pas (line 556).

Protected function FixEmailaddressWithoutMailTo(const PossibleEmailAddress: String): String;

This item is declared in ancestor TDocGenerator.

Searches for an email address in PossibleEmailAddress and appends mailto: if it's an email address and mailto: wasn't provided. Otherwise it simply returns the input.

Needed to link email addresses properly which doesn't start with mailto:

Source: source/component/PasDoc_Gen.pas (line 563).

Protected function ExtractWebAddress(s: string; out S1, S2, WebAddress: string): Boolean;

This item is declared in ancestor TDocGenerator.

Searches for a web address in String S. It must either contain a http:// or start with www.

Source: source/component/PasDoc_Gen.pas (line 567).

Protected function FindGlobal(const NameParts: TNameParts): TBaseItem;

This item is declared in ancestor TDocGenerator.

Searches all items in all units (given by field Units) for item with NameParts. Returns a pointer to the item on success, nil otherwise.

Source: source/component/PasDoc_Gen.pas (line 572).

Protected function FindGlobalPasItem(const NameParts: TNameParts): TPasItem; overload;

This item is declared in ancestor TDocGenerator.

Find a Pascal item, searching global namespace. Returns Nil if not found.

Source: source/component/PasDoc_Gen.pas (line 576).

Protected function FindGlobalPasItem(const ItemName: String): TPasItem; overload;

This item is declared in ancestor TDocGenerator.

Find a Pascal item, searching global namespace. Assumes that Name is only one component (not something with dots inside). Returns Nil if not found.

Source: source/component/PasDoc_Gen.pas (line 581).

Protected function GetClassDirectiveName(const Directive: TClassDirective): string;

This item is declared in ancestor TDocGenerator.

GetClassDirectiveName returns ' abstract', or ' sealed' for classes that abstract or sealed respectively. GetClassDirectiveName is used by TTexDocGenerator and TGenericHTMLDocGenerator in writing the declaration of the class.

Source: source/component/PasDoc_Gen.pas (line 586).

Protected function GetCIOTypeName(const MyType: TCIOType): string;

This item is declared in ancestor TDocGenerator.

GetCIOTypeName writes a translation of MyType based on the current language. However, 'record' and 'packed record' are not translated.

Source: source/component/PasDoc_Gen.pas (line 590).

Protected procedure LoadDescriptionFile(n: string);

This item is declared in ancestor TDocGenerator.

Loads descriptions from file N and replaces or fills the corresponding comment sections of items.

Source: source/component/PasDoc_Gen.pas (line 594).

Protected function SearchItem(s: string; const Item: TBaseItem; WarningIfNotSplittable: boolean): TBaseItem;

This item is declared in ancestor TDocGenerator.

Searches for item with name S.

If S is not splittable by SplitNameParts, returns nil. If WarningIfNotSplittable, additionally does DoMessage with appropriate warning.

Else (if S is "splittable"), seeks for S (first trying Item.FindName, if Item is not nil, then trying FindGlobal). Returns nil if not found.

Source: source/component/PasDoc_Gen.pas (line 604).

Protected function SearchLink(s: string; const Item: TBaseItem; const LinkDisplay: string; const WarningIfLinkNotFound: TLinkNotFoundAction; out FoundItem: TBaseItem): string; overload;

This item is declared in ancestor TDocGenerator.

Searches for an item of name S which was linked in the description of Item. Starts search within item, then does a search on all items in all units using FindGlobal. Returns a link as String on success.

If S is not splittable by SplitNameParts, it always does DoMessage with appropriate warning and returns something like 'UNKNOWN' (no matter what is the value of WarningIfLinkNotFound). FoundItem will be set to nil in this case.

When item will not be found then:

  • if WarningIfLinkNotFound is true then it returns CodeString(ConvertString(S)) and makes DoMessage with appropriate warning.

  • else it returns '' (and does not do any DoMessage)

If LinkDisplay is not '', then it specifies explicite the display text for link. Else how exactly link does look like is controlled by LinkLook property.

Parameters
FoundItem
is the found item instance or nil if not found.

Source: source/component/PasDoc_Gen.pas (line 631).

Protected function SearchLink(s: string; const Item: TBaseItem; const LinkDisplay: string; const WarningIfLinkNotFound: TLinkNotFoundAction): string; overload;

This item is declared in ancestor TDocGenerator.

Just like previous overloaded version, but this doesn't return FoundItem (in case you don't need it).

Source: source/component/PasDoc_Gen.pas (line 638).

Protected procedure StoreDescription(ItemName: string; var t: string);

This item is declared in ancestor TDocGenerator.

This item has no description.

Source: source/component/PasDoc_Gen.pas (line 642).

Protected procedure WriteConverted(const s: string; Newline: boolean); overload;

This item is declared in ancestor TDocGenerator.

Writes S to CurrentStream, converting it using ConvertString. Then optionally writes LineEnding.

Source: source/component/PasDoc_Gen.pas (line 646).

Protected procedure WriteConverted(const s: string); overload;

This item is declared in ancestor TDocGenerator.

Writes S to CurrentStream, converting it using ConvertString. No LineEnding at the end.

Source: source/component/PasDoc_Gen.pas (line 650).

Protected procedure WriteConvertedLine(const s: string);

This item is declared in ancestor TDocGenerator.

Writes S to CurrentStream, converting it using ConvertString. Then writes LineEnding.

Source: source/component/PasDoc_Gen.pas (line 654).

Protected procedure WriteDirect(const t: string; Newline: boolean); overload;

This item is declared in ancestor TDocGenerator.

Simply writes T to CurrentStream, with optional LineEnding.

Source: source/component/PasDoc_Gen.pas (line 657).

Protected procedure WriteDirect(const t: string); overload;

This item is declared in ancestor TDocGenerator.

Simply writes T to CurrentStream.

Source: source/component/PasDoc_Gen.pas (line 660).

Protected procedure WriteDirectLine(const t: string);

This item is declared in ancestor TDocGenerator.

Simply writes T followed by LineEnding to CurrentStream.

Source: source/component/PasDoc_Gen.pas (line 663).

Protected procedure WriteUnits(const HL: integer);

This item is declared in ancestor TDocGenerator.

Writes documentation for all units, calling WriteUnit for each unit.

Source: source/component/PasDoc_Gen.pas (line 674).

Protected procedure WriteStartOfCode; virtual;

This item is declared in ancestor TDocGenerator.

This item has no description.

Source: source/component/PasDoc_Gen.pas (line 676).

Protected procedure WriteEndOfCode; virtual;

This item is declared in ancestor TDocGenerator.

This item has no description.

Source: source/component/PasDoc_Gen.pas (line 678).

Protected procedure WriteGVUses;

This item is declared in ancestor TDocGenerator.

output graphviz uses tree

Source: source/component/PasDoc_Gen.pas (line 681).

Protected procedure WriteGVClasses;

This item is declared in ancestor TDocGenerator.

output graphviz class tree

Source: source/component/PasDoc_Gen.pas (line 683).

Protected procedure StartSpellChecking(const AMode: string);

This item is declared in ancestor TDocGenerator.

starts the spell checker

Source: source/component/PasDoc_Gen.pas (line 686).

Protected procedure CheckString(const AString: string; const AErrors: TSpellingErrorList);

This item is declared in ancestor TDocGenerator.

If CheckSpelling and spell checking was successfully started, this will run FAspellProcess.CheckString and will report all errors using DoMessage with mtWarning.

Otherwise this just clears AErrors, which means that no errors were found.

Source: source/component/PasDoc_Gen.pas (line 694).

Protected procedure EndSpellChecking;

This item is declared in ancestor TDocGenerator.

closes the spellchecker

Source: source/component/PasDoc_Gen.pas (line 697).

Protected function FormatPascalCode(const Line: string): string; virtual;

This item is declared in ancestor TDocGenerator.

FormatPascalCode will cause Line to be formatted in the way that Pascal code is formatted in Delphi. Note that given Line is taken directly from what user put inside

, it is not even processed by ConvertString. You should process it with ConvertString if you want.

Source: source/component/PasDoc_Gen.pas (line 704).

Protected
function FormatNormalCode(AString: string): string; virtual;

This item is declared in ancestor TDocGenerator.

This will cause AString to be formatted in the way that normal Pascal statements (not keywords, strings, comments, etc.) look in Delphi.

Source: source/component/PasDoc_Gen.pas (line 709).

Protected
function FormatComment(AString: string): string; virtual;

This item is declared in ancestor TDocGenerator.

FormatComment will cause AString to be formatted in the way that comments other than compiler directives are formatted in Delphi. See: FormatCompilerComment.

Source: source/component/PasDoc_Gen.pas (line 714).

Protected
function FormatHex(AString: string): string; virtual;

This item is declared in ancestor TDocGenerator.

FormatHex will cause AString to be formatted in the way that Hex are formatted in Delphi.

Source: source/component/PasDoc_Gen.pas (line 718).

Protected
function FormatNumeric(AString: string): string; virtual;

This item is declared in ancestor TDocGenerator.

FormatNumeric will cause AString to be formatted in the way that Numeric are formatted in Delphi.

Source: source/component/PasDoc_Gen.pas (line 722).

Protected
function FormatFloat(AString: string): string; virtual;

This item is declared in ancestor TDocGenerator.

FormatFloat will cause AString to be formatted in the way that Float are formatted in Delphi.

Source: source/component/PasDoc_Gen.pas (line 726).

Protected
function FormatString(AString: string): string; virtual;

This item is declared in ancestor TDocGenerator.

FormatString will cause AString to be formatted in the way that strings are formatted in Delphi.

Source: source/component/PasDoc_Gen.pas (line 730).

Protected
function FormatKeyWord(AString: string): string; virtual;

This item is declared in ancestor TDocGenerator.

FormatKeyWord will cause AString to be formatted in the way that reserved words are formatted in Delphi.

Source: source/component/PasDoc_Gen.pas (line 734).

Protected
function FormatCompilerComment(AString: string): string; virtual;

This item is declared in ancestor TDocGenerator.

FormatCompilerComment will cause AString to be formatted in the way that compiler directives are formatted in Delphi.

Source: source/component/PasDoc_Gen.pas (line 738).

Protected
function Paragraph: string; virtual;

This item is declared in ancestor TDocGenerator.

This is paragraph marker in output documentation.

Default implementation in this class simply returns ' ' (one space).

Source: source/component/PasDoc_Gen.pas (line 744).

Protected
function ShortDash: string; virtual;

This item is declared in ancestor TDocGenerator.

See TTagManager.ShortDash. Default implementation in this class returns '-'.

Source: source/component/PasDoc_Gen.pas (line 748).

Protected
function EnDash: string; virtual;

This item is declared in ancestor TDocGenerator.

See TTagManager.EnDash. Default implementation in this class returns '--'.

Source: source/component/PasDoc_Gen.pas (line 752).

Protected
function EmDash: string; virtual;

This item is declared in ancestor TDocGenerator.

See TTagManager.EmDash. Default implementation in this class returns '---'.

Source: source/component/PasDoc_Gen.pas (line 756).

Protected
function HtmlString(const S: string): string; virtual;

This item is declared in ancestor TDocGenerator.

Process HTML content, like provided by the @html tag. Override this function to decide what to put in output on such thing.

Note that S is not processed in any way, even with ConvertString. So you're able to copy user's input inside @html() verbatim to the output.

The default implementation is this class simply discards it, i.e. returns always ''. Generators that know what to do with HTML can override this with simple "Result := S".

Source: source/component/PasDoc_Gen.pas (line 768).

Protected
function LatexString(const S: string): string; virtual;

This item is declared in ancestor TDocGenerator.

Process LaTeX content, like provided by the @latex tag.

The default implementation is this class simply discards it, i.e. returns always ''. Generators that know what to do with raw LaTeX markup can override this with simple "Result := S".

Source: source/component/PasDoc_Gen.pas (line 775).

Protected
function LineBreak: string; virtual;

This item is declared in ancestor TDocGenerator.

Markup that forces line break in given output format (e.g. '<br>' in html or '\\' in LaTeX).

It is used on
 tag (but may also be used on other occasions in the future).

In this class it returns '', because it's valid for an output generator to simply ignore
 tags if linebreaks can't be expressed in given output format.

Source: source/component/PasDoc_Gen.pas (line 786).

Protected
function URLLink(const URL: string): string; overload; virtual;

This item is declared in ancestor TDocGenerator.

Markup to display URL in a description. E.g. HTML generator will want to wrap this in <a href="...">...</a>.

Note that passed here URL is not processed by ConvertString (because sometimes it could be undesirable). If you want you can process URL with ConvertString when overriding this method.

Default implementation in this class simply returns ConvertString(URL). This is good if your documentation format does not support anything like URL links.

Source: source/component/PasDoc_Gen.pas (line 800).

Protected
function URLLink(const URL, LinkDisplay: string): string; overload; virtual;

This item is declared in ancestor TDocGenerator.

Text which will be shown for an URL tag.

URL is a link to a website or e-mail address. LinkDisplay is an optional parameter which will be used as the display name of the URL.

Source: source/component/PasDoc_Gen.pas (line 806).

Protected
procedure WriteExternal(const ExternalItem: TExternalItem; const Id: TTranslationID);

This item is declared in ancestor TDocGenerator.

Write the introduction and conclusion of the project.

Source: source/component/PasDoc_Gen.pas (line 809).

Protected
procedure WriteConclusion;

This item is declared in ancestor TDocGenerator.

Writes a conclusion for the project. See WriteExternal.

Source: source/component/PasDoc_Gen.pas (line 825).

Protected
procedure WriteIntroduction;

This item is declared in ancestor TDocGenerator.

Writes an introduction for the project. See WriteExternal.

Source: source/component/PasDoc_Gen.pas (line 829).

Protected
procedure WriteAdditionalFiles;

This item is declared in ancestor TDocGenerator.

Writes the other files for the project. See WriteExternal.

Source: source/component/PasDoc_Gen.pas (line 833).

Protected
function FormatBold(const Text: string): string; virtual;

This item is declared in ancestor TDocGenerator.

Return Text formatted using bold font.

Given Text is already in the final output format (with characters converted using ConvertString, @-tags expanded etc.).

Implementation of this method in this class simply returns Result := Text. Output generators that can somehow express bold formatting (or at least emphasis of some text) should override this.

See also

FormatItalic

Return Text formatted using italic font.

Source: source/component/PasDoc_Gen.pas (line 853).

Protected
function FormatItalic(const Text: string): string; virtual;

This item is declared in ancestor TDocGenerator.

Return Text formatted using italic font. Analogous to FormatBold.

Source: source/component/PasDoc_Gen.pas (line 857).

Protected
function FormatWarning(const Text: string): string; virtual;

This item is declared in ancestor TDocGenerator.

Return Text using bold font by calling FormatBold(Text).

Source: source/component/PasDoc_Gen.pas (line 860).

Protected
function FormatNote(const Text: string): string; virtual;

This item is declared in ancestor TDocGenerator.

Return Text using italic font by calling FormatItalic(Text).

Source: source/component/PasDoc_Gen.pas (line 863).

Protected
function FormatPreformatted(const Text: string): string; virtual;

This item is declared in ancestor TDocGenerator.

Return Text preserving spaces and line breaks. Note that Text passed here is not yet converted with ConvertString. The implementation of this method in this class just returns ConvertString(Text).

Source: source/component/PasDoc_Gen.pas (line 869).

Protected
function FormatImage(FileNames: TStringList): string; virtual;

This item is declared in ancestor TDocGenerator.

Return markup to show an image. FileNames is a list of possible filenames of the image. FileNames always contains at least one item (i.e. FileNames.Count >= 1), never contains empty lines (i.e. Trim(FileNames[I]) <> ''), and contains only absolute filenames.

E.g. HTML generator will want to choose the best format for HTML, then somehow copy the image from FileNames[Chosen] and wrap this in <img src="...">.

Implementation of this method in this class simply shows FileNames[0]. Output generators should override this.

Source: source/component/PasDoc_Gen.pas (line 883).

Protected
function FormatTableOfContents(Sections: TStringPairVector): string; virtual;

This item is declared in ancestor TDocGenerator.

Override this if you want to insert something on @tableOfContents tag. As a parameter you get already prepared tree of sections that your table of contents should show. Each item of Sections is a section on the level 1. Item's Name is section name, item's Value is section caption, item's Data is a TStringPairVector instance that describes subsections (on level 2) below this section. And so on, recursively.

Sections given here are never nil, and item's Data is never nil. But of course they may contain 0 items, and this should be a signal to you that given section doesn't have any subsections.

Default implementation of this method in this class just returns empty string.

Source: source/component/PasDoc_Gen.pas (line 908).

Public
procedure BuildLinks;

This item is declared in ancestor TDocGenerator.

Creates anchors and links for all items in all units.

Source: source/component/PasDoc_Gen.pas (line 914).

Public
procedure ResolveTypeAliasesDescriptions;

This item is declared in ancestor TDocGenerator.

For type aliases with empty RawDescription, copy the RawDescription from the aliased type. Do this only after BuildLinks to be able to follow type aliases.

Source: source/component/PasDoc_Gen.pas (line 920).

Public
procedure ExpandDescriptions;

This item is declared in ancestor TDocGenerator.

Expands description for each item in each unit of Units. "Expands description" means that TTagManager.Execute is called, and item's DetailedDescription, AbstractDescription, AbstractDescriptionWasAutomatic (and many others, set by @-tags handlers) properties are calculated.

Source: source/component/PasDoc_Gen.pas (line 927).

Public
procedure LoadDescriptionFiles(const c: TStringVector);

This item is declared in ancestor TDocGenerator.

Assumes C contains file names as PString variables. Calls LoadDescriptionFile with each file name.

Source: source/component/PasDoc_Gen.pas (line 935).

Public
constructor Create(AOwner: TComponent); override;

This item is declared in ancestor TDocGenerator.
This item has no description.
Source: source/component/PasDoc_Gen.pas (line 944).

Public
destructor Destroy; override;

This item is declared in ancestor TDocGenerator.
This item has no description.
Source: source/component/PasDoc_Gen.pas (line 945).

Public
procedure ParseAbbreviationsFile(const AFileName: string);

This item is declared in ancestor TDocGenerator.
This item has no description.
Source: source/component/PasDoc_Gen.pas (line 947).

Protected
function CodeString(const s: string): string; override;

Overrides of ancestor abstract methods, not really used by PHP generation. As we output only a simple map (name->html_filename) for PHP now, we don't really use most of these methods. But we override them, as they are absract in ancestor.

Source: source/component/PasDoc_GenPHP.pas (line 56).

Protected
procedure WriteExternalCore(const ExternalItem: TExternalItem; const Id: TTranslationID); override;

This item has no description. Showing description inherited from TDocGenerator.WriteExternalCore.

This is called from WriteExternal when ExternalItem.Title and ShortTitle are already set, message about generating appropriate item is printed etc. This should write ExternalItem, including ExternalItem.DetailedDescription, ExternalItem.Authors, ExternalItem.Created, ExternalItem.LastMod.

Source: source/component/PasDoc_GenPHP.pas (line 57).

Protected
function FormatSection(HL: integer; const Anchor: string; const Caption: string): string; override;

This item has no description. Showing description inherited from TDocGenerator.FormatSection.

Writes a section heading and a link-anchor.

Source: source/component/PasDoc_GenPHP.pas (line 59).

Protected
function FormatAnchor(const Anchor: string): string; override;

This item has no description. Showing description inherited from TDocGenerator.FormatAnchor.

Writes a link-anchor.

Source: source/component/PasDoc_GenPHP.pas (line 61).

Protected
function FormatList(ListData: TListData): string; override;

This item has no description. Showing description inherited from TDocGenerator.FormatList.

Format a list from given ListData.

Source: source/component/PasDoc_GenPHP.pas (line 62).

Protected
function FormatTable(Table: TTableData): string; override;

This item has no description. Showing description inherited from TDocGenerator.FormatTable.

Return appropriate content for given Table. It's guaranteed that the Table passed here will have at least one row and in each row there will be at least one cell, so you don't have to check it within descendants.

Source: source/component/PasDoc_GenPHP.pas (line 63).

Protected
function ConvertString(const s: string): string; override;

Overrides actually used.

Source: source/component/PasDoc_GenPHP.pas (line 66).

Protected
function ConvertChar(c: char): string; override;

This item has no description. Showing description inherited from TDocGenerator.ConvertChar.

Converts a character to its converted form. This method should always be called to add characters to a string.

@ should also be converted by this routine.

Source: source/component/PasDoc_GenPHP.pas (line 67).

Protected
procedure WriteUnit(const HL: integer; const U: TPasUnit); override;

This item has no description. Showing description inherited from TDocGenerator.WriteUnit.

Abstract method that writes all documentation for a single unit U to output, starting at heading level HL. Implementation must be provided by descendant objects and is dependent on output format.

Source: source/component/PasDoc_GenPHP.pas (line 68).

Public
procedure WriteDocumentation; override;

This item has no description. Showing description inherited from TDocGenerator.WriteDocumentation.

Must be overwritten, writes all documentation. Will create either a single file or one file for each unit and each class, interface or object, depending on output format.

Source: source/component/PasDoc_GenPHP.pas (line 70).

Public
function GetFileExtension: String; override;

This item has no description. Showing description inherited from TDocGenerator.GetFileExtension.

Abstract function that provides file extension for documentation format. Must be overwritten by descendants.

Source: source/component/PasDoc_GenPHP.pas (line 71).

Properties

Protected
property CurrentStream: TStream  read FCurrentStream;

This item is declared in ancestor TDocGenerator.

Output stream that is currently written to; depending on the output format, more than one output stream may be necessary to store all documentation.

Source: source/component/PasDoc_Gen.pas (line 472).

Public
property Units: TPasUnits read FUnits write FUnits;

This item is declared in ancestor TDocGenerator.
This item has no description.
Source: source/component/PasDoc_Gen.pas (line 942).

Public
property Introduction: TExternalItem read FIntroduction
      write FIntroduction;

This item is declared in ancestor TDocGenerator.
This item has no description.
Source: source/component/PasDoc_Gen.pas (line 949).

Public
property Conclusion: TExternalItem read FConclusion write FConclusion;

This item is declared in ancestor TDocGenerator.
This item has no description.
Source: source/component/PasDoc_Gen.pas (line 951).

Public
property AdditionalFiles: TExternalItemList read FAdditionalFiles write FAdditionalFiles;

This item is declared in ancestor TDocGenerator.
This item has no description.
Source: source/component/PasDoc_Gen.pas (line 952).

Public
property OnMessage: TPasDocMessageEvent read FOnMessage write FOnMessage;

This item is declared in ancestor TDocGenerator.

Callback receiving messages from generator.

This is usually used internally by TPasDoc class, that assigns it's internal callback here when using this generator. Also, for the above reason, do not make this published.

See TPasDoc.OnMessage for something more useful for final programs.

Source: source/component/PasDoc_Gen.pas (line 961).

Published
property Language: TLanguageID read GetLanguage write SetLanguage
      default DEFAULT_LANGUAGE;

This item is declared in ancestor TDocGenerator.

the (human) output language of the documentation file(s)

Source: source/component/PasDoc_Gen.pas (line 964).

Published
property ProjectName: string read FProjectName write FProjectName;

This item is declared in ancestor TDocGenerator.

Name of the project to create.

Source: source/component/PasDoc_Gen.pas (line 967).

Published
property ExcludeGenerator: Boolean
      read FExcludeGenerator write FExcludeGenerator default false;

This item is declared in ancestor TDocGenerator.

"Generator info" are things that can change with each invocation of pasdoc, with different pasdoc binary etc.

This includes

  • pasdoc's compiler name and version,
    •

  • pasdoc's version and time of compilation
    •

 See --exclude-generator documentation. Default value is false (i.e. show them), as this information is generally considered useful.

Setting this to true is useful for automatically comparing two versions of pasdoc's output (e.g. when trying to automate pasdoc's tests).

Source: source/component/PasDoc_Gen.pas (line 985).

Published
property IncludeCreationTime: Boolean
      read FIncludeCreationTime write FIncludeCreationTime default false;

This item is declared in ancestor TDocGenerator.

Show creation time in the output.

Source: source/component/PasDoc_Gen.pas (line 989).

Published
property UseLowercaseKeywords: Boolean
      read FUseLowercaseKeywords write FUseLowercaseKeywords default false;

This item is declared in ancestor TDocGenerator.

Setting to define how literal tag keywords should appear in documentaion.

Source: source/component/PasDoc_Gen.pas (line 993).

Published
property Title: string read FTitle write FTitle;

This item is declared in ancestor TDocGenerator.

Title of the documentation, supplied by user. May be empty. See TPasDoc.Title.

Source: source/component/PasDoc_Gen.pas (line 998).

Published
property DestinationDirectory: string read FDestDir write SetDestDir;

This item is declared in ancestor TDocGenerator.

Destination directory for documentation. Must include terminating forward slash or backslash so that valid file names can be created by concatenating DestinationDirectory and a pathless file name.

Source: source/component/PasDoc_Gen.pas (line 1003).

Published
property OutputGraphVizUses: boolean read FGraphVizUses write FGraphVizUses
      default false;

This item is declared in ancestor TDocGenerator.

generate a GraphViz diagram for the units dependencies

Source: source/component/PasDoc_Gen.pas (line 1006).

Published
property OutputGraphVizClassHierarchy: boolean
      read FGraphVizClasses write FGraphVizClasses default false;

This item is declared in ancestor TDocGenerator.

generate a GraphViz diagram for the Class hierarchy

Source: source/component/PasDoc_Gen.pas (line 1009).

Published
property LinkGraphVizUses: string read FLinkGraphVizUses write FLinkGraphVizUses;

This item is declared in ancestor TDocGenerator.

link the GraphViz uses diagram

Source: source/component/PasDoc_Gen.pas (line 1012).

Published
property LinkGraphVizClasses: string read FLinkGraphVizClasses write FLinkGraphVizClasses;

This item is declared in ancestor TDocGenerator.

link the GraphViz classes diagram

Source: source/component/PasDoc_Gen.pas (line 1014).

Published
property Abbreviations: TStringList read FAbbreviations write SetAbbreviations;

This item is declared in ancestor TDocGenerator.
This item has no description.
Source: source/component/PasDoc_Gen.pas (line 1016).

Published
property CheckSpelling: boolean read FCheckSpelling write FCheckSpelling
      default false;

This item is declared in ancestor TDocGenerator.
This item has no description.
Source: source/component/PasDoc_Gen.pas (line 1018).

Published
property AspellLanguage: string read FAspellLanguage write FAspellLanguage;

This item is declared in ancestor TDocGenerator.
This item has no description.
Source: source/component/PasDoc_Gen.pas (line 1021).

Published
property SpellCheckIgnoreWords: TStringList
      read FSpellCheckIgnoreWords write SetSpellCheckIgnoreWords;

This item is declared in ancestor TDocGenerator.
This item has no description.
Source: source/component/PasDoc_Gen.pas (line 1023).

Published
property AutoAbstract: boolean
      read FAutoAbstract write FAutoAbstract default DefaultAutoAbstract;

This item is declared in ancestor TDocGenerator.

Automatically detect abstract (summary) descriptions without @abstract tag. See --auto-abstract command-line option docs on https://pasdoc.github.io/Abstract . This is used in ExpandDescriptions.

Source: source/component/PasDoc_Gen.pas (line 1029).

Published
property LinkLook: TLinkLook read FLinkLook write FLinkLook default llDefault;

This item is declared in ancestor TDocGenerator.

How SearchLink behaves. This meaning is described in --link-look documentation.

Source: source/component/PasDoc_Gen.pas (line 1034).

Published
property WriteUsesClause: boolean
      read FWriteUsesClause write FWriteUsesClause default false;

This item is declared in ancestor TDocGenerator.
This item has no description.
Source: source/component/PasDoc_Gen.pas (line 1036).

Published
property AutoLink: boolean
      read FAutoLink write FAutoLink default false;

This item is declared in ancestor TDocGenerator.

Automatically link identifiers to their documentation, even without @link tags. See --auto-link documentation.

Source: source/component/PasDoc_Gen.pas (line 1041).

Published
property AutoLinkExclude: TStringList read FAutoLinkExclude;

This item is declared in ancestor TDocGenerator.
This item has no description.
Source: source/component/PasDoc_Gen.pas (line 1044).

Published
property ExternalClassHierarchy: TStrings
      read FExternalClassHierarchy write SetExternalClassHierarchy
      stored StoredExternalClassHierarchy;

This item is declared in ancestor TDocGenerator.
This item has no description.
Source: source/component/PasDoc_Gen.pas (line 1046).

Published
property Markdown: boolean
      read FMarkdown write FMarkdown default false;

This item is declared in ancestor TDocGenerator.
This item has no description.
Source: source/component/PasDoc_Gen.pas (line 1050).

Published
property ShowSourcePosition: boolean
      read FShowSourcePosition write FShowSourcePosition default false;

This item is declared in ancestor TDocGenerator.

Show source filename and line number in documentation output.

Source: source/component/PasDoc_Gen.pas (line 1054).

Published
property SourceRoot: string
      read FSourceRoot write FSourceRoot;

This item is declared in ancestor TDocGenerator.

Root path for source files. Used to make relative paths, shown by ShowSourcePosition and replaced by SourceUrlPattern. Leave empty to make ShowSourcePosition and SourceUrlPattern just take the final filename part to show / replace.

Source: source/component/PasDoc_Gen.pas (line 1063).

Published
property SourceUrlPattern: string
      read FSourceUrlPattern write FSourceUrlPattern;

This item is declared in ancestor TDocGenerator.

URL pattern for linking source positions. Use {FILE} for filename and {LINE} for line number. When set, source positions in the output become clickable links. Example: https://github.com/owner/repo/blob/main/{FILE}#L{LINE}

Source: source/component/PasDoc_Gen.pas (line 1070).

Published
property ToggleVisibilities: TVisibilities
      read FToggleVisibilities write FToggleVisibilities
      default [];

This item is declared in ancestor TDocGenerator.

Visibilities that should be included in output but hidden by default in HTML, with checkboxes to toggle their display.

Source: source/component/PasDoc_Gen.pas (line 1075).

Published
property SortSettings: TSortSettings
      read FSortSettings write FSortSettings default [];

This item is declared in ancestor TDocGenerator.

How items should be sorted in output. See --sort documentation.

The TPasDoc sorts the items in Units before executing our WriteDocumentation, so TDocGenerator usually doesn't need to worry about sorting anymore... Except if output rearranges/sums items, like HTML output does for InheritedMembers<>imNever, in which case they need to be sorted again.

Source: source/component/PasDoc_Gen.pas (line 1087).


PasDoc's autodoc: PasDoc_GenSimpleXML

Unit PasDoc_GenSimpleXML

Description
Uses
Classes, Interfaces, Objects and Records

Description

SimpleXML documentation generator TSimpleXMLDocGenerator.

Source: source/component/PasDoc_GenSimpleXML.pas (line 24).

Uses

  • PasDoc_Utils
  • PasDoc_Gen
  • PasDoc_Items
  • PasDoc_Languages
  • PasDoc_StringVector
  • PasDoc_Types
  • Classes
  • Contnrs
  • PasDoc_StringPairVector

Overview

Classes, Interfaces, Objects and Records

Name | Description
Class TSimpleXMLDocGenerator |


PasDoc's autodoc: PasDoc_GenSimpleXML: Class TSimpleXMLDocGenerator

Class TSimpleXMLDocGenerator

Description
Hierarchy
Constants
Fields
Methods
Properties

Unit

PasDoc_GenSimpleXML

Declaration

type TSimpleXMLDocGenerator = class(TDocGenerator)

Description

This item has no description. Showing description inherited from TDocGenerator.

Base generator class, to be specialized for specific output formats. This abstract object will do the complete process of writing documentation files. It will be given the collection of units that was the result of the parsing process and a configuration object that was created from default values and program parameters. Depending on the output format, one or more files may be created (HTML will create several, Tex only one).

Source: source/component/PasDoc_GenSimpleXML.pas (line 41).

Hierarchy

  • TObject
  • TPersistent
  • TComponent
  • TDocGenerator
  • TSimpleXMLDocGenerator
Show Additional Members:

Overview

Constants

Public DefaultAutoAbstract = true;

Fields

Protected | FLanguage: TPasDocLanguages;
Protected | FClassHierarchy: TStringCardinalTree;
Protected | FUnits: TPasUnits;

Methods

Protected | procedure DoError(const AMessage: string; const AArguments: array of const; const AExitCode: Word);
Protected | procedure DoMessage(const AVerbosity: Cardinal; const MessageType: TPasDocMessageType; const AMessage: string; const AArguments: array of const);
Protected | procedure CreateClassHierarchy;
Protected | function MakeItemLink(const Item: TBaseItem; const LinkCaption: string; const LinkContext: TLinkContext): string; virtual;
Protected | procedure WriteCodeWithLinksCommon(const Item: TPasItem; const Code: string; WriteItemLink: boolean; const NameLinkBegin, NameLinkEnd: string);
Protected | function HasSourcePosition(const AItem: TPasItem; out ItemName, ItemFilenameInRoot, ItemUrl: string): boolean;
Protected | procedure CloseStream;
Protected | function CreateLink(const Item: TBaseItem): string; virtual;
Protected | function CreateStream(const AName: string): Boolean;
Protected | function ExtractEmailAddress(s: string; out S1, S2, EmailAddress: string): Boolean;
Protected | function FixEmailaddressWithoutMailTo(const PossibleEmailAddress: String): String;
Protected | function ExtractWebAddress(s: string; out S1, S2, WebAddress: string): Boolean;
Protected | function FindGlobal(const NameParts: TNameParts): TBaseItem;
Protected | function FindGlobalPasItem(const NameParts: TNameParts): TPasItem; overload;
Protected | function FindGlobalPasItem(const ItemName: String): TPasItem; overload;
Protected | function GetClassDirectiveName(const Directive: TClassDirective): string;
Protected | function GetCIOTypeName(const MyType: TCIOType): string;
Protected | procedure LoadDescriptionFile(n: string);
Protected | function SearchItem(s: string; const Item: TBaseItem; WarningIfNotSplittable: boolean): TBaseItem;
Protected | function SearchLink(s: string; const Item: TBaseItem; const LinkDisplay: string; const WarningIfLinkNotFound: TLinkNotFoundAction; out FoundItem: TBaseItem): string; overload;
Protected | function SearchLink(s: string; const Item: TBaseItem; const LinkDisplay: string; const WarningIfLinkNotFound: TLinkNotFoundAction): string; overload;
Protected | procedure StoreDescription(ItemName: string; var t: string);
Protected | procedure WriteConverted(const s: string; Newline: boolean); overload;
Protected | procedure WriteConverted(const s: string); overload;
Protected | procedure WriteConvertedLine(const s: string);
Protected | procedure WriteDirect(const t: string; Newline: boolean); overload;
Protected | procedure WriteDirect(const t: string); overload;
Protected | procedure WriteDirectLine(const t: string);
Protected | procedure WriteUnits(const HL: integer);
Protected | procedure WriteStartOfCode; virtual;
Protected | procedure WriteEndOfCode; virtual;
Protected | procedure WriteGVUses;
Protected | procedure WriteGVClasses;
Protected | procedure StartSpellChecking(const AMode: string);
Protected | procedure CheckString(const AString: string; const AErrors: TSpellingErrorList);
Protected | procedure EndSpellChecking;
Protected | function FormatPascalCode(const Line: string): string; virtual;
Protected | function FormatNormalCode(AString: string): string; virtual;
Protected | function FormatComment(AString: string): string; virtual;
Protected | function FormatHex(AString: string): string; virtual;
Protected | function FormatNumeric(AString: string): string; virtual;
Protected | function FormatFloat(AString: string): string; virtual;
Protected | function FormatString(AString: string): string; virtual;
Protected | function FormatKeyWord(AString: string): string; virtual;
Protected | function FormatCompilerComment(AString: string): string; virtual;
Protected | function Paragraph: string; virtual;
Protected | function ShortDash: string; virtual;
Protected | function EnDash: string; virtual;
Protected | function EmDash: string; virtual;
Protected | function HtmlString(const S: string): string; virtual;
Protected | function LatexString(const S: string): string; virtual;
Protected | function LineBreak: string; virtual;
Protected | function URLLink(const URL: string): string; overload; virtual;
Protected | function URLLink(const URL, LinkDisplay: string): string; overload; virtual;
Protected | procedure WriteExternal(const ExternalItem: TExternalItem; const Id: TTranslationID);
Protected | procedure WriteConclusion;
Protected | procedure WriteIntroduction;
Protected | procedure WriteAdditionalFiles;
Protected | function FormatWarning(const Text: string): string; virtual;
Protected | function FormatNote(const Text: string): string; virtual;
Protected | function FormatPreformatted(const Text: string): string; virtual;
Protected | function FormatImage(FileNames: TStringList): string; virtual;
Protected | function FormatTableOfContents(Sections: TStringPairVector): string; virtual;
Public | procedure BuildLinks;
Public | procedure ResolveTypeAliasesDescriptions;
Public | procedure ExpandDescriptions;
Public | procedure LoadDescriptionFiles(const c: TStringVector);
Public | constructor Create(AOwner: TComponent); override;
Public | destructor Destroy; override;
Public | procedure ParseAbbreviationsFile(const AFileName: string);
Protected | function CodeString(const s: string): string; override;
Protected | function ConvertString(const s: string): string; override;
Protected | function ConvertChar(c: char): string; override;
Protected | procedure WriteUnit(const HL: integer; const U: TPasUnit); override;
Protected | procedure WriteExternalCore(const ExternalItem: TExternalItem; const Id: TTranslationID); override;
Protected | function FormatSection(HL: integer; const Anchor: string; const Caption: string): string; override;
Protected | function FormatAnchor(const Anchor: string): string; override;
Protected | function FormatTable(Table: TTableData): string; override;
Protected | function FormatList(ListData: TListData): string; override;
Protected | function FormatBold(const Text: string): string; override;
Protected | function FormatItalic(const Text: string): string; override;
Public | procedure WriteDocumentation; override;
Public | function GetFileExtension: string; override;

Properties

Protected | property CurrentStream: TStream read FCurrentStream;
Public | property Units: TPasUnits read FUnits write FUnits;
Public | property Introduction: TExternalItem read FIntroduction write FIntroduction;
Public | property Conclusion: TExternalItem read FConclusion write FConclusion;
Public | property AdditionalFiles: TExternalItemList read FAdditionalFiles write FAdditionalFiles;
Public | property OnMessage: TPasDocMessageEvent read FOnMessage write FOnMessage;
Published | property Language: TLanguageID read GetLanguage write SetLanguage default DEFAULT_LANGUAGE;
Published | property ProjectName: string read FProjectName write FProjectName;
Published | property ExcludeGenerator: Boolean read FExcludeGenerator write FExcludeGenerator default false;
Published | property IncludeCreationTime: Boolean read FIncludeCreationTime write FIncludeCreationTime default false;
Published | property UseLowercaseKeywords: Boolean read FUseLowercaseKeywords write FUseLowercaseKeywords default false;
Published | property Title: string read FTitle write FTitle;
Published | property DestinationDirectory: string read FDestDir write SetDestDir;
Published | property OutputGraphVizUses: boolean read FGraphVizUses write FGraphVizUses default false;
Published | property OutputGraphVizClassHierarchy: boolean read FGraphVizClasses write FGraphVizClasses default false;
Published | property LinkGraphVizUses: string read FLinkGraphVizUses write FLinkGraphVizUses;
Published | property LinkGraphVizClasses: string read FLinkGraphVizClasses write FLinkGraphVizClasses;
Published | property Abbreviations: TStringList read FAbbreviations write SetAbbreviations;
Published | property CheckSpelling: boolean read FCheckSpelling write FCheckSpelling default false;
Published | property AspellLanguage: string read FAspellLanguage write FAspellLanguage;
Published | property SpellCheckIgnoreWords: TStringList read FSpellCheckIgnoreWords write SetSpellCheckIgnoreWords;
Published | property AutoAbstract: boolean read FAutoAbstract write FAutoAbstract default DefaultAutoAbstract;
Published | property LinkLook: TLinkLook read FLinkLook write FLinkLook default llDefault;
Published | property WriteUsesClause: boolean read FWriteUsesClause write FWriteUsesClause default false;
Published | property AutoLink: boolean read FAutoLink write FAutoLink default false;
Published | property AutoLinkExclude: TStringList read FAutoLinkExclude;
Published | property ExternalClassHierarchy: TStrings read FExternalClassHierarchy write SetExternalClassHierarchy stored StoredExternalClassHierarchy;
Published | property Markdown: boolean read FMarkdown write FMarkdown default false;
Published | property ShowSourcePosition: boolean read FShowSourcePosition write FShowSourcePosition default false;
Published | property SourceRoot: string read FSourceRoot write FSourceRoot;
Published | property SourceUrlPattern: string read FSourceUrlPattern write FSourceUrlPattern;
Published | property ToggleVisibilities: TVisibilities read FToggleVisibilities write FToggleVisibilities default [];
Published | property SortSettings: TSortSettings read FSortSettings write FSortSettings default [];

Description

Constants

Public DefaultAutoAbstract = true;

This item is declared in ancestor TDocGenerator.

This item has no description.

Source: source/component/PasDoc_Gen.pas (line 911).

Fields

Protected FLanguage: TPasDocLanguages;

This item is declared in ancestor TDocGenerator.

the (human) output language of the documentation file(s)

Source: source/component/PasDoc_Gen.pas (line 459).

Protected FClassHierarchy: TStringCardinalTree;

This item is declared in ancestor TDocGenerator.

This item has no description.

Source: source/component/PasDoc_Gen.pas (line 461).

Protected FUnits: TPasUnits;

This item is declared in ancestor TDocGenerator.

list of all units that were successfully parsed

Source: source/component/PasDoc_Gen.pas (line 511).

Methods

Protected procedure DoError(const AMessage: string; const AArguments: array of const; const AExitCode: Word);

This item is declared in ancestor TDocGenerator.

This item has no description.

Source: source/component/PasDoc_Gen.pas (line 463).

Protected procedure DoMessage(const AVerbosity: Cardinal; const MessageType: TPasDocMessageType; const AMessage: string; const AArguments: array of const);

This item is declared in ancestor TDocGenerator.

This item has no description.

Source: source/component/PasDoc_Gen.pas (line 465).

Protected procedure CreateClassHierarchy;

This item is declared in ancestor TDocGenerator.

This item has no description.

Source: source/component/PasDoc_Gen.pas (line 474).

Protected function MakeItemLink(const Item: TBaseItem; const LinkCaption: string; const LinkContext: TLinkContext): string; virtual;

This item is declared in ancestor TDocGenerator.

Return a link to item Item which will be displayed as LinkCaption. Returned string may be directly inserted inside output documentation. LinkCaption will be always converted using ConvertString before writing, so don't worry about doing this yourself when calling this method.

LinkContext may be used in some descendants to present the link differently, see TLinkContext for it's meaning.

If some output format doesn't support this feature, it can return simply ConvertString(LinkCaption). This is the default implementation of this method in this class.

Source: source/component/PasDoc_Gen.pas (line 487).

Protected procedure WriteCodeWithLinksCommon(const Item: TPasItem; const Code: string; WriteItemLink: boolean; const NameLinkBegin, NameLinkEnd: string);

This item is declared in ancestor TDocGenerator.

This writes Code as a Pascal code. Links inside the code are resolved from Item. If WriteItemLink then Item.Name is made a link. Item.Name is printed between NameLinkBegin and NameLinkEnd.

Source: source/component/PasDoc_Gen.pas (line 495).

Protected function HasSourcePosition(const AItem: TPasItem; out ItemName, ItemFilenameInRoot, ItemUrl: string): boolean;

This item is declared in ancestor TDocGenerator.

Utility to process information from TPasItem.SourceAbsoluteFileName and TPasItem.SourceLine and decide whether to show it. If True, then we should show it.

Parameters
ItemName
is the name to show.
ItemFilenameInRoot
is the filename, relative to SourceRoot, using always / on any system (even on Windows).
ItemUrl
is the URL to link to, if any (don't make a link if this is '').

Source: source/component/PasDoc_Gen.pas (line 507).

Protected procedure CloseStream;

This item is declared in ancestor TDocGenerator.

If field CurrentStream is assigned, it is disposed and set to nil.

Source: source/component/PasDoc_Gen.pas (line 514).

Protected function CreateLink(const Item: TBaseItem): string; virtual;

This item is declared in ancestor TDocGenerator.

This function is supposed to return a reference to an item, that is the name combined with some linking information like a hyperlink element in HTML or a page number in Tex.

Source: source/component/PasDoc_Gen.pas (line 539).

Protected function CreateStream(const AName: string): Boolean;

This item is declared in ancestor TDocGenerator.

Open output stream in the destination directory. If CurrentStream still exists (<> nil), it is closed. Then, a new output stream in the destination directory is created and assigned to CurrentStream. The file is overwritten if exists.

Use this only for text files that you want to write using WriteXxx methods of this class (like WriteConverted). There's no point to use if for other files.

Returns True if creation was successful, False otherwise. When it returns False, the error message was already shown by DoMessage.

Source: source/component/PasDoc_Gen.pas (line 552).

Protected function ExtractEmailAddress(s: string; out S1, S2, EmailAddress: string): Boolean;

This item is declared in ancestor TDocGenerator.

Searches for an email address in String S. Searches for first appearance of the @ character

Source: source/component/PasDoc_Gen.pas (line 556).

Protected function FixEmailaddressWithoutMailTo(const PossibleEmailAddress: String): String;

This item is declared in ancestor TDocGenerator.

Searches for an email address in PossibleEmailAddress and appends mailto: if it's an email address and mailto: wasn't provided. Otherwise it simply returns the input.

Needed to link email addresses properly which doesn't start with mailto:

Source: source/component/PasDoc_Gen.pas (line 563).

Protected function ExtractWebAddress(s: string; out S1, S2, WebAddress: string): Boolean;

This item is declared in ancestor TDocGenerator.

Searches for a web address in String S. It must either contain a http:// or start with www.

Source: source/component/PasDoc_Gen.pas (line 567).

Protected function FindGlobal(const NameParts: TNameParts): TBaseItem;

This item is declared in ancestor TDocGenerator.

Searches all items in all units (given by field Units) for item with NameParts. Returns a pointer to the item on success, nil otherwise.

Source: source/component/PasDoc_Gen.pas (line 572).

Protected function FindGlobalPasItem(const NameParts: TNameParts): TPasItem; overload;

This item is declared in ancestor TDocGenerator.

Find a Pascal item, searching global namespace. Returns Nil if not found.

Source: source/component/PasDoc_Gen.pas (line 576).

Protected function FindGlobalPasItem(const ItemName: String): TPasItem; overload;

This item is declared in ancestor TDocGenerator.

Find a Pascal item, searching global namespace. Assumes that Name is only one component (not something with dots inside). Returns Nil if not found.

Source: source/component/PasDoc_Gen.pas (line 581).

Protected function GetClassDirectiveName(const Directive: TClassDirective): string;

This item is declared in ancestor TDocGenerator.

GetClassDirectiveName returns ' abstract', or ' sealed' for classes that abstract or sealed respectively. GetClassDirectiveName is used by TTexDocGenerator and TGenericHTMLDocGenerator in writing the declaration of the class.

Source: source/component/PasDoc_Gen.pas (line 586).

Protected function GetCIOTypeName(const MyType: TCIOType): string;

This item is declared in ancestor TDocGenerator.

GetCIOTypeName writes a translation of MyType based on the current language. However, 'record' and 'packed record' are not translated.

Source: source/component/PasDoc_Gen.pas (line 590).

Protected procedure LoadDescriptionFile(n: string);

This item is declared in ancestor TDocGenerator.

Loads descriptions from file N and replaces or fills the corresponding comment sections of items.

Source: source/component/PasDoc_Gen.pas (line 594).

Protected function SearchItem(s: string; const Item: TBaseItem; WarningIfNotSplittable: boolean): TBaseItem;

This item is declared in ancestor TDocGenerator.

Searches for item with name S.

If S is not splittable by SplitNameParts, returns nil. If WarningIfNotSplittable, additionally does DoMessage with appropriate warning.

Else (if S is "splittable"), seeks for S (first trying Item.FindName, if Item is not nil, then trying FindGlobal). Returns nil if not found.

Source: source/component/PasDoc_Gen.pas (line 604).

Protected function SearchLink(s: string; const Item: TBaseItem; const LinkDisplay: string; const WarningIfLinkNotFound: TLinkNotFoundAction; out FoundItem: TBaseItem): string; overload;

This item is declared in ancestor TDocGenerator.

Searches for an item of name S which was linked in the description of Item. Starts search within item, then does a search on all items in all units using FindGlobal. Returns a link as String on success.

If S is not splittable by SplitNameParts, it always does DoMessage with appropriate warning and returns something like 'UNKNOWN' (no matter what is the value of WarningIfLinkNotFound). FoundItem will be set to nil in this case.

When item will not be found then:

  • if WarningIfLinkNotFound is true then it returns CodeString(ConvertString(S)) and makes DoMessage with appropriate warning.

  • else it returns '' (and does not do any DoMessage)

If LinkDisplay is not '', then it specifies explicite the display text for link. Else how exactly link does look like is controlled by LinkLook property.

Parameters
FoundItem
is the found item instance or nil if not found.

Source: source/component/PasDoc_Gen.pas (line 631).

Protected function SearchLink(s: string; const Item: TBaseItem; const LinkDisplay: string; const WarningIfLinkNotFound: TLinkNotFoundAction): string; overload;

This item is declared in ancestor TDocGenerator.

Just like previous overloaded version, but this doesn't return FoundItem (in case you don't need it).

Source: source/component/PasDoc_Gen.pas (line 638).

Protected procedure StoreDescription(ItemName: string; var t: string);

This item is declared in ancestor TDocGenerator.

This item has no description.

Source: source/component/PasDoc_Gen.pas (line 642).

Protected procedure WriteConverted(const s: string; Newline: boolean); overload;

This item is declared in ancestor TDocGenerator.

Writes S to CurrentStream, converting it using ConvertString. Then optionally writes LineEnding.

Source: source/component/PasDoc_Gen.pas (line 646).

Protected procedure WriteConverted(const s: string); overload;

This item is declared in ancestor TDocGenerator.

Writes S to CurrentStream, converting it using ConvertString. No LineEnding at the end.

Source: source/component/PasDoc_Gen.pas (line 650).

Protected procedure WriteConvertedLine(const s: string);

This item is declared in ancestor TDocGenerator.

Writes S to CurrentStream, converting it using ConvertString. Then writes LineEnding.

Source: source/component/PasDoc_Gen.pas (line 654).

Protected procedure WriteDirect(const t: string; Newline: boolean); overload;

This item is declared in ancestor TDocGenerator.

Simply writes T to CurrentStream, with optional LineEnding.

Source: source/component/PasDoc_Gen.pas (line 657).

Protected procedure WriteDirect(const t: string); overload;

This item is declared in ancestor TDocGenerator.

Simply writes T to CurrentStream.

Source: source/component/PasDoc_Gen.pas (line 660).

Protected procedure WriteDirectLine(const t: string);

This item is declared in ancestor TDocGenerator.

Simply writes T followed by LineEnding to CurrentStream.

Source: source/component/PasDoc_Gen.pas (line 663).

Protected procedure WriteUnits(const HL: integer);

This item is declared in ancestor TDocGenerator.

Writes documentation for all units, calling WriteUnit for each unit.

Source: source/component/PasDoc_Gen.pas (line 674).

Protected procedure WriteStartOfCode; virtual;

This item is declared in ancestor TDocGenerator.

This item has no description.

Source: source/component/PasDoc_Gen.pas (line 676).

Protected procedure WriteEndOfCode; virtual;

This item is declared in ancestor TDocGenerator.

This item has no description.

Source: source/component/PasDoc_Gen.pas (line 678).

Protected procedure WriteGVUses;

This item is declared in ancestor TDocGenerator.

output graphviz uses tree

Source: source/component/PasDoc_Gen.pas (line 681).

Protected procedure WriteGVClasses;

This item is declared in ancestor TDocGenerator.

output graphviz class tree

Source: source/component/PasDoc_Gen.pas (line 683).

Protected procedure StartSpellChecking(const AMode: string);

This item is declared in ancestor TDocGenerator.

starts the spell checker

Source: source/component/PasDoc_Gen.pas (line 686).

Protected procedure CheckString(const AString: string; const AErrors: TSpellingErrorList);

This item is declared in ancestor TDocGenerator.

If CheckSpelling and spell checking was successfully started, this will run FAspellProcess.CheckString and will report all errors using DoMessage with mtWarning.

Otherwise this just clears AErrors, which means that no errors were found.

Source: source/component/PasDoc_Gen.pas (line 694).

Protected procedure EndSpellChecking;

This item is declared in ancestor TDocGenerator.

closes the spellchecker

Source: source/component/PasDoc_Gen.pas (line 697).

Protected function FormatPascalCode(const Line: string): string; virtual;

This item is declared in ancestor TDocGenerator.

FormatPascalCode will cause Line to be formatted in the way that Pascal code is formatted in Delphi. Note that given Line is taken directly from what user put inside

, it is not even processed by ConvertString. You should process it with ConvertString if you want.

Source: source/component/PasDoc_Gen.pas (line 704).

Protected
function FormatNormalCode(AString: string): string; virtual;

This item is declared in ancestor TDocGenerator.

This will cause AString to be formatted in the way that normal Pascal statements (not keywords, strings, comments, etc.) look in Delphi.

Source: source/component/PasDoc_Gen.pas (line 709).

Protected
function FormatComment(AString: string): string; virtual;

This item is declared in ancestor TDocGenerator.

FormatComment will cause AString to be formatted in the way that comments other than compiler directives are formatted in Delphi. See: FormatCompilerComment.

Source: source/component/PasDoc_Gen.pas (line 714).

Protected
function FormatHex(AString: string): string; virtual;

This item is declared in ancestor TDocGenerator.

FormatHex will cause AString to be formatted in the way that Hex are formatted in Delphi.

Source: source/component/PasDoc_Gen.pas (line 718).

Protected
function FormatNumeric(AString: string): string; virtual;

This item is declared in ancestor TDocGenerator.

FormatNumeric will cause AString to be formatted in the way that Numeric are formatted in Delphi.

Source: source/component/PasDoc_Gen.pas (line 722).

Protected
function FormatFloat(AString: string): string; virtual;

This item is declared in ancestor TDocGenerator.

FormatFloat will cause AString to be formatted in the way that Float are formatted in Delphi.

Source: source/component/PasDoc_Gen.pas (line 726).

Protected
function FormatString(AString: string): string; virtual;

This item is declared in ancestor TDocGenerator.

FormatString will cause AString to be formatted in the way that strings are formatted in Delphi.

Source: source/component/PasDoc_Gen.pas (line 730).

Protected
function FormatKeyWord(AString: string): string; virtual;

This item is declared in ancestor TDocGenerator.

FormatKeyWord will cause AString to be formatted in the way that reserved words are formatted in Delphi.

Source: source/component/PasDoc_Gen.pas (line 734).

Protected
function FormatCompilerComment(AString: string): string; virtual;

This item is declared in ancestor TDocGenerator.

FormatCompilerComment will cause AString to be formatted in the way that compiler directives are formatted in Delphi.

Source: source/component/PasDoc_Gen.pas (line 738).

Protected
function Paragraph: string; virtual;

This item is declared in ancestor TDocGenerator.

This is paragraph marker in output documentation.

Default implementation in this class simply returns ' ' (one space).

Source: source/component/PasDoc_Gen.pas (line 744).

Protected
function ShortDash: string; virtual;

This item is declared in ancestor TDocGenerator.

See TTagManager.ShortDash. Default implementation in this class returns '-'.

Source: source/component/PasDoc_Gen.pas (line 748).

Protected
function EnDash: string; virtual;

This item is declared in ancestor TDocGenerator.

See TTagManager.EnDash. Default implementation in this class returns '--'.

Source: source/component/PasDoc_Gen.pas (line 752).

Protected
function EmDash: string; virtual;

This item is declared in ancestor TDocGenerator.

See TTagManager.EmDash. Default implementation in this class returns '---'.

Source: source/component/PasDoc_Gen.pas (line 756).

Protected
function HtmlString(const S: string): string; virtual;

This item is declared in ancestor TDocGenerator.

Process HTML content, like provided by the @html tag. Override this function to decide what to put in output on such thing.

Note that S is not processed in any way, even with ConvertString. So you're able to copy user's input inside @html() verbatim to the output.

The default implementation is this class simply discards it, i.e. returns always ''. Generators that know what to do with HTML can override this with simple "Result := S".

Source: source/component/PasDoc_Gen.pas (line 768).

Protected
function LatexString(const S: string): string; virtual;

This item is declared in ancestor TDocGenerator.

Process LaTeX content, like provided by the @latex tag.

The default implementation is this class simply discards it, i.e. returns always ''. Generators that know what to do with raw LaTeX markup can override this with simple "Result := S".

Source: source/component/PasDoc_Gen.pas (line 775).

Protected
function LineBreak: string; virtual;

This item is declared in ancestor TDocGenerator.

Markup that forces line break in given output format (e.g. '<br>' in html or '\\' in LaTeX).

It is used on
 tag (but may also be used on other occasions in the future).

In this class it returns '', because it's valid for an output generator to simply ignore
 tags if linebreaks can't be expressed in given output format.

Source: source/component/PasDoc_Gen.pas (line 786).

Protected
function URLLink(const URL: string): string; overload; virtual;

This item is declared in ancestor TDocGenerator.

Markup to display URL in a description. E.g. HTML generator will want to wrap this in <a href="...">...</a>.

Note that passed here URL is not processed by ConvertString (because sometimes it could be undesirable). If you want you can process URL with ConvertString when overriding this method.

Default implementation in this class simply returns ConvertString(URL). This is good if your documentation format does not support anything like URL links.

Source: source/component/PasDoc_Gen.pas (line 800).

Protected
function URLLink(const URL, LinkDisplay: string): string; overload; virtual;

This item is declared in ancestor TDocGenerator.

Text which will be shown for an URL tag.

URL is a link to a website or e-mail address. LinkDisplay is an optional parameter which will be used as the display name of the URL.

Source: source/component/PasDoc_Gen.pas (line 806).

Protected
procedure WriteExternal(const ExternalItem: TExternalItem; const Id: TTranslationID);

This item is declared in ancestor TDocGenerator.

Write the introduction and conclusion of the project.

Source: source/component/PasDoc_Gen.pas (line 809).

Protected
procedure WriteConclusion;

This item is declared in ancestor TDocGenerator.

Writes a conclusion for the project. See WriteExternal.

Source: source/component/PasDoc_Gen.pas (line 825).

Protected
procedure WriteIntroduction;

This item is declared in ancestor TDocGenerator.

Writes an introduction for the project. See WriteExternal.

Source: source/component/PasDoc_Gen.pas (line 829).

Protected
procedure WriteAdditionalFiles;

This item is declared in ancestor TDocGenerator.

Writes the other files for the project. See WriteExternal.

Source: source/component/PasDoc_Gen.pas (line 833).

Protected
function FormatWarning(const Text: string): string; virtual;

This item is declared in ancestor TDocGenerator.

Return Text using bold font by calling FormatBold(Text).

Source: source/component/PasDoc_Gen.pas (line 860).

Protected
function FormatNote(const Text: string): string; virtual;

This item is declared in ancestor TDocGenerator.

Return Text using italic font by calling FormatItalic(Text).

Source: source/component/PasDoc_Gen.pas (line 863).

Protected
function FormatPreformatted(const Text: string): string; virtual;

This item is declared in ancestor TDocGenerator.

Return Text preserving spaces and line breaks. Note that Text passed here is not yet converted with ConvertString. The implementation of this method in this class just returns ConvertString(Text).

Source: source/component/PasDoc_Gen.pas (line 869).

Protected
function FormatImage(FileNames: TStringList): string; virtual;

This item is declared in ancestor TDocGenerator.

Return markup to show an image. FileNames is a list of possible filenames of the image. FileNames always contains at least one item (i.e. FileNames.Count >= 1), never contains empty lines (i.e. Trim(FileNames[I]) <> ''), and contains only absolute filenames.

E.g. HTML generator will want to choose the best format for HTML, then somehow copy the image from FileNames[Chosen] and wrap this in <img src="...">.

Implementation of this method in this class simply shows FileNames[0]. Output generators should override this.

Source: source/component/PasDoc_Gen.pas (line 883).

Protected
function FormatTableOfContents(Sections: TStringPairVector): string; virtual;

This item is declared in ancestor TDocGenerator.

Override this if you want to insert something on @tableOfContents tag. As a parameter you get already prepared tree of sections that your table of contents should show. Each item of Sections is a section on the level 1. Item's Name is section name, item's Value is section caption, item's Data is a TStringPairVector instance that describes subsections (on level 2) below this section. And so on, recursively.

Sections given here are never nil, and item's Data is never nil. But of course they may contain 0 items, and this should be a signal to you that given section doesn't have any subsections.

Default implementation of this method in this class just returns empty string.

Source: source/component/PasDoc_Gen.pas (line 908).

Public
procedure BuildLinks;

This item is declared in ancestor TDocGenerator.

Creates anchors and links for all items in all units.

Source: source/component/PasDoc_Gen.pas (line 914).

Public
procedure ResolveTypeAliasesDescriptions;

This item is declared in ancestor TDocGenerator.

For type aliases with empty RawDescription, copy the RawDescription from the aliased type. Do this only after BuildLinks to be able to follow type aliases.

Source: source/component/PasDoc_Gen.pas (line 920).

Public
procedure ExpandDescriptions;

This item is declared in ancestor TDocGenerator.

Expands description for each item in each unit of Units. "Expands description" means that TTagManager.Execute is called, and item's DetailedDescription, AbstractDescription, AbstractDescriptionWasAutomatic (and many others, set by @-tags handlers) properties are calculated.

Source: source/component/PasDoc_Gen.pas (line 927).

Public
procedure LoadDescriptionFiles(const c: TStringVector);

This item is declared in ancestor TDocGenerator.

Assumes C contains file names as PString variables. Calls LoadDescriptionFile with each file name.

Source: source/component/PasDoc_Gen.pas (line 935).

Public
constructor Create(AOwner: TComponent); override;

This item is declared in ancestor TDocGenerator.
This item has no description.
Source: source/component/PasDoc_Gen.pas (line 944).

Public
destructor Destroy; override;

This item is declared in ancestor TDocGenerator.
This item has no description.
Source: source/component/PasDoc_Gen.pas (line 945).

Public
procedure ParseAbbreviationsFile(const AFileName: string);

This item is declared in ancestor TDocGenerator.
This item has no description.
Source: source/component/PasDoc_Gen.pas (line 947).

Protected
function CodeString(const s: string): string; override;

This item has no description. Showing description inherited from TDocGenerator.CodeString.

Return S formatted to look like code, e.g. <code>xxx</code> in HTML.

Given S is already in the final output format (with characters converted using ConvertString, @-tags expanded etc.).

Source: source/component/PasDoc_GenSimpleXML.pas (line 43).

Protected
function ConvertString(const s: string): string; override;

This item has no description. Showing description inherited from TDocGenerator.ConvertString.

Converts for each character in S, thus assembling a String that is returned and can be written to the documentation file.

The @ character should not be converted, this will be done later on.

Source: source/component/PasDoc_GenSimpleXML.pas (line 44).

Protected
function ConvertChar(c: char): string; override;

This item has no description. Showing description inherited from TDocGenerator.ConvertChar.

Converts a character to its converted form. This method should always be called to add characters to a string.

@ should also be converted by this routine.

Source: source/component/PasDoc_GenSimpleXML.pas (line 45).

Protected
procedure WriteUnit(const HL: integer; const U: TPasUnit); override;

This item has no description. Showing description inherited from TDocGenerator.WriteUnit.

Abstract method that writes all documentation for a single unit U to output, starting at heading level HL. Implementation must be provided by descendant objects and is dependent on output format.

Source: source/component/PasDoc_GenSimpleXML.pas (line 46).

Protected
procedure WriteExternalCore(const ExternalItem: TExternalItem; const Id: TTranslationID); override;

This item has no description. Showing description inherited from TDocGenerator.WriteExternalCore.

This is called from WriteExternal when ExternalItem.Title and ShortTitle are already set, message about generating appropriate item is printed etc. This should write ExternalItem, including ExternalItem.DetailedDescription, ExternalItem.Authors, ExternalItem.Created, ExternalItem.LastMod.

Source: source/component/PasDoc_GenSimpleXML.pas (line 48).

Protected
function FormatSection(HL: integer; const Anchor: string; const Caption: string): string; override;

This item has no description. Showing description inherited from TDocGenerator.FormatSection.

Writes a section heading and a link-anchor.

Source: source/component/PasDoc_GenSimpleXML.pas (line 50).

Protected
function FormatAnchor(const Anchor: string): string; override;

This item has no description. Showing description inherited from TDocGenerator.FormatAnchor.

Writes a link-anchor.

Source: source/component/PasDoc_GenSimpleXML.pas (line 52).

Protected
function FormatTable(Table: TTableData): string; override;

This item has no description. Showing description inherited from TDocGenerator.FormatTable.

Return appropriate content for given Table. It's guaranteed that the Table passed here will have at least one row and in each row there will be at least one cell, so you don't have to check it within descendants.

Source: source/component/PasDoc_GenSimpleXML.pas (line 53).

Protected
function FormatList(ListData: TListData): string; override;

This item has no description. Showing description inherited from TDocGenerator.FormatList.

Format a list from given ListData.

Source: source/component/PasDoc_GenSimpleXML.pas (line 54).

Protected
function FormatBold(const Text: string): string; override;

This item has no description. Showing description inherited from TDocGenerator.FormatBold.

Return Text formatted using bold font.

Given Text is already in the final output format (with characters converted using ConvertString, @-tags expanded etc.).

Implementation of this method in this class simply returns Result := Text. Output generators that can somehow express bold formatting (or at least emphasis of some text) should override this.

Source: source/component/PasDoc_GenSimpleXML.pas (line 55).

Protected
function FormatItalic(const Text: string): string; override;

This item has no description. Showing description inherited from TDocGenerator.FormatItalic.

Return Text formatted using italic font. Analogous to FormatBold.

Source: source/component/PasDoc_GenSimpleXML.pas (line 56).

Public
procedure WriteDocumentation; override;

This item has no description. Showing description inherited from TDocGenerator.WriteDocumentation.

Must be overwritten, writes all documentation. Will create either a single file or one file for each unit and each class, interface or object, depending on output format.

Source: source/component/PasDoc_GenSimpleXML.pas (line 81).

Public
function GetFileExtension: string; override;

This item has no description. Showing description inherited from TDocGenerator.GetFileExtension.

Abstract function that provides file extension for documentation format. Must be overwritten by descendants.

Source: source/component/PasDoc_GenSimpleXML.pas (line 82).

Properties

Protected
property CurrentStream: TStream  read FCurrentStream;

This item is declared in ancestor TDocGenerator.

Output stream that is currently written to; depending on the output format, more than one output stream may be necessary to store all documentation.

Source: source/component/PasDoc_Gen.pas (line 472).

Public
property Units: TPasUnits read FUnits write FUnits;

This item is declared in ancestor TDocGenerator.
This item has no description.
Source: source/component/PasDoc_Gen.pas (line 942).

Public
property Introduction: TExternalItem read FIntroduction
      write FIntroduction;

This item is declared in ancestor TDocGenerator.
This item has no description.
Source: source/component/PasDoc_Gen.pas (line 949).

Public
property Conclusion: TExternalItem read FConclusion write FConclusion;

This item is declared in ancestor TDocGenerator.
This item has no description.
Source: source/component/PasDoc_Gen.pas (line 951).

Public
property AdditionalFiles: TExternalItemList read FAdditionalFiles write FAdditionalFiles;

This item is declared in ancestor TDocGenerator.
This item has no description.
Source: source/component/PasDoc_Gen.pas (line 952).

Public
property OnMessage: TPasDocMessageEvent read FOnMessage write FOnMessage;

This item is declared in ancestor TDocGenerator.

Callback receiving messages from generator.

This is usually used internally by TPasDoc class, that assigns it's internal callback here when using this generator. Also, for the above reason, do not make this published.

See TPasDoc.OnMessage for something more useful for final programs.

Source: source/component/PasDoc_Gen.pas (line 961).

Published
property Language: TLanguageID read GetLanguage write SetLanguage
      default DEFAULT_LANGUAGE;

This item is declared in ancestor TDocGenerator.

the (human) output language of the documentation file(s)

Source: source/component/PasDoc_Gen.pas (line 964).

Published
property ProjectName: string read FProjectName write FProjectName;

This item is declared in ancestor TDocGenerator.

Name of the project to create.

Source: source/component/PasDoc_Gen.pas (line 967).

Published
property ExcludeGenerator: Boolean
      read FExcludeGenerator write FExcludeGenerator default false;

This item is declared in ancestor TDocGenerator.

"Generator info" are things that can change with each invocation of pasdoc, with different pasdoc binary etc.

This includes

  • pasdoc's compiler name and version,
    •

  • pasdoc's version and time of compilation
    •

 See --exclude-generator documentation. Default value is false (i.e. show them), as this information is generally considered useful.

Setting this to true is useful for automatically comparing two versions of pasdoc's output (e.g. when trying to automate pasdoc's tests).

Source: source/component/PasDoc_Gen.pas (line 985).

Published
property IncludeCreationTime: Boolean
      read FIncludeCreationTime write FIncludeCreationTime default false;

This item is declared in ancestor TDocGenerator.

Show creation time in the output.

Source: source/component/PasDoc_Gen.pas (line 989).

Published
property UseLowercaseKeywords: Boolean
      read FUseLowercaseKeywords write FUseLowercaseKeywords default false;

This item is declared in ancestor TDocGenerator.

Setting to define how literal tag keywords should appear in documentaion.

Source: source/component/PasDoc_Gen.pas (line 993).

Published
property Title: string read FTitle write FTitle;

This item is declared in ancestor TDocGenerator.

Title of the documentation, supplied by user. May be empty. See TPasDoc.Title.

Source: source/component/PasDoc_Gen.pas (line 998).

Published
property DestinationDirectory: string read FDestDir write SetDestDir;

This item is declared in ancestor TDocGenerator.

Destination directory for documentation. Must include terminating forward slash or backslash so that valid file names can be created by concatenating DestinationDirectory and a pathless file name.

Source: source/component/PasDoc_Gen.pas (line 1003).

Published
property OutputGraphVizUses: boolean read FGraphVizUses write FGraphVizUses
      default false;

This item is declared in ancestor TDocGenerator.

generate a GraphViz diagram for the units dependencies

Source: source/component/PasDoc_Gen.pas (line 1006).

Published
property OutputGraphVizClassHierarchy: boolean
      read FGraphVizClasses write FGraphVizClasses default false;

This item is declared in ancestor TDocGenerator.

generate a GraphViz diagram for the Class hierarchy

Source: source/component/PasDoc_Gen.pas (line 1009).

Published
property LinkGraphVizUses: string read FLinkGraphVizUses write FLinkGraphVizUses;

This item is declared in ancestor TDocGenerator.

link the GraphViz uses diagram

Source: source/component/PasDoc_Gen.pas (line 1012).

Published
property LinkGraphVizClasses: string read FLinkGraphVizClasses write FLinkGraphVizClasses;

This item is declared in ancestor TDocGenerator.

link the GraphViz classes diagram

Source: source/component/PasDoc_Gen.pas (line 1014).

Published
property Abbreviations: TStringList read FAbbreviations write SetAbbreviations;

This item is declared in ancestor TDocGenerator.
This item has no description.
Source: source/component/PasDoc_Gen.pas (line 1016).

Published
property CheckSpelling: boolean read FCheckSpelling write FCheckSpelling
      default false;

This item is declared in ancestor TDocGenerator.
This item has no description.
Source: source/component/PasDoc_Gen.pas (line 1018).

Published
property AspellLanguage: string read FAspellLanguage write FAspellLanguage;

This item is declared in ancestor TDocGenerator.
This item has no description.
Source: source/component/PasDoc_Gen.pas (line 1021).

Published
property SpellCheckIgnoreWords: TStringList
      read FSpellCheckIgnoreWords write SetSpellCheckIgnoreWords;

This item is declared in ancestor TDocGenerator.
This item has no description.
Source: source/component/PasDoc_Gen.pas (line 1023).

Published
property AutoAbstract: boolean
      read FAutoAbstract write FAutoAbstract default DefaultAutoAbstract;

This item is declared in ancestor TDocGenerator.

Automatically detect abstract (summary) descriptions without @abstract tag. See --auto-abstract command-line option docs on https://pasdoc.github.io/Abstract . This is used in ExpandDescriptions.

Source: source/component/PasDoc_Gen.pas (line 1029).

Published
property LinkLook: TLinkLook read FLinkLook write FLinkLook default llDefault;

This item is declared in ancestor TDocGenerator.

How SearchLink behaves. This meaning is described in --link-look documentation.

Source: source/component/PasDoc_Gen.pas (line 1034).

Published
property WriteUsesClause: boolean
      read FWriteUsesClause write FWriteUsesClause default false;

This item is declared in ancestor TDocGenerator.
This item has no description.
Source: source/component/PasDoc_Gen.pas (line 1036).

Published
property AutoLink: boolean
      read FAutoLink write FAutoLink default false;

This item is declared in ancestor TDocGenerator.

Automatically link identifiers to their documentation, even without @link tags. See --auto-link documentation.

Source: source/component/PasDoc_Gen.pas (line 1041).

Published
property AutoLinkExclude: TStringList read FAutoLinkExclude;

This item is declared in ancestor TDocGenerator.
This item has no description.
Source: source/component/PasDoc_Gen.pas (line 1044).

Published
property ExternalClassHierarchy: TStrings
      read FExternalClassHierarchy write SetExternalClassHierarchy
      stored StoredExternalClassHierarchy;

This item is declared in ancestor TDocGenerator.
This item has no description.
Source: source/component/PasDoc_Gen.pas (line 1046).

Published
property Markdown: boolean
      read FMarkdown write FMarkdown default false;

This item is declared in ancestor TDocGenerator.
This item has no description.
Source: source/component/PasDoc_Gen.pas (line 1050).

Published
property ShowSourcePosition: boolean
      read FShowSourcePosition write FShowSourcePosition default false;

This item is declared in ancestor TDocGenerator.

Show source filename and line number in documentation output.

Source: source/component/PasDoc_Gen.pas (line 1054).

Published
property SourceRoot: string
      read FSourceRoot write FSourceRoot;

This item is declared in ancestor TDocGenerator.

Root path for source files. Used to make relative paths, shown by ShowSourcePosition and replaced by SourceUrlPattern. Leave empty to make ShowSourcePosition and SourceUrlPattern just take the final filename part to show / replace.

Source: source/component/PasDoc_Gen.pas (line 1063).

Published
property SourceUrlPattern: string
      read FSourceUrlPattern write FSourceUrlPattern;

This item is declared in ancestor TDocGenerator.

URL pattern for linking source positions. Use {FILE} for filename and {LINE} for line number. When set, source positions in the output become clickable links. Example: https://github.com/owner/repo/blob/main/{FILE}#L{LINE}

Source: source/component/PasDoc_Gen.pas (line 1070).

Published
property ToggleVisibilities: TVisibilities
      read FToggleVisibilities write FToggleVisibilities
      default [];

This item is declared in ancestor TDocGenerator.

Visibilities that should be included in output but hidden by default in HTML, with checkboxes to toggle their display.

Source: source/component/PasDoc_Gen.pas (line 1075).

Published
property SortSettings: TSortSettings
      read FSortSettings write FSortSettings default [];

This item is declared in ancestor TDocGenerator.

How items should be sorted in output. See --sort documentation.

The TPasDoc sorts the items in Units before executing our WriteDocumentation, so TDocGenerator usually doesn't need to worry about sorting anymore... Except if output rearranges/sums items, like HTML output does for InheritedMembers<>imNever, in which case they need to be sorted again.

Source: source/component/PasDoc_Gen.pas (line 1087).


PasDoc's autodoc: PasDoc_HierarchyTree

Unit PasDoc_HierarchyTree

Description
Uses
Classes, Interfaces, Objects and Records
Functions and Procedures

Description

a n-ary tree for PasItems — for use in Class Hierarchy

Source: source/component/PasDoc_HierarchyTree.pas (line 27).

Uses

  • Classes
  • PasDoc_Items

Overview

Classes, Interfaces, Objects and Records

Name | Description
Class TPasItemNode |
Class TStringCardinalTree |

Functions and Procedures

function NewStringCardinalTree: TStringCardinalTree;

Description

Functions and Procedures

function NewStringCardinalTree: TStringCardinalTree;

This item has no description.

Source: source/component/PasDoc_HierarchyTree.pas (line 90).

Author

  • Johannes Berg <johannes@sipsolutions.de>


PasDoc's autodoc: PasDoc_HierarchyTree: Class TPasItemNode

Class TPasItemNode

Description
Hierarchy
Fields
Methods
Properties

Unit

PasDoc_HierarchyTree

Declaration

type TPasItemNode = class(TObject)

Description

This item has no description.

Source: source/component/PasDoc_HierarchyTree.pas (line 38).

Hierarchy

  • TObject
  • TPasItemNode
Show Additional Members:

Overview

Fields

Protected | FChildren: TList;
Protected | FParent: TPasItemNode;
Protected | FItem: TPasItem;
Protected | FName: string;

Methods

Protected | function GetName: string;
Protected | procedure AddChild(const Child: TPasItemNode); overload;
Protected | function AddChild(const AName: string): TPasItemNode; overload;
Protected | function AddChild(const AItem: TPasItem): TPasItemNode; overload;
Protected | function FindItem(const AName: string): TPasItemNode;
Protected | procedure Adopt(const AChild: TPasItemNode);
Protected | function Orphan(const AChild: TPasItemNode): boolean;
Protected | procedure Sort;
Public | constructor Create;
Public | destructor Destroy; override;
Public | function Level: Integer;

Properties

Public | property Name: string read GetName;
Public | property Item: TPasItem read FItem;
Public | property Parent: TPasItemNode read FParent;

Description

Fields

Protected FChildren: TList;

This item has no description.

Source: source/component/PasDoc_HierarchyTree.pas (line 40).

Protected FParent: TPasItemNode;

This item has no description.

Source: source/component/PasDoc_HierarchyTree.pas (line 41).

Protected FItem: TPasItem;

This item has no description.

Source: source/component/PasDoc_HierarchyTree.pas (line 42).

Protected FName: string;

This item has no description.

Source: source/component/PasDoc_HierarchyTree.pas (line 43).

Methods

Protected function GetName: string;

This item has no description.

Source: source/component/PasDoc_HierarchyTree.pas (line 44).

Protected procedure AddChild(const Child: TPasItemNode); overload;

This item has no description.

Source: source/component/PasDoc_HierarchyTree.pas (line 46).

Protected function AddChild(const AName: string): TPasItemNode; overload;

This item has no description.

Source: source/component/PasDoc_HierarchyTree.pas (line 47).

Protected function AddChild(const AItem: TPasItem): TPasItemNode; overload;

This item has no description.

Source: source/component/PasDoc_HierarchyTree.pas (line 48).

Protected function FindItem(const AName: string): TPasItemNode;

This item has no description.

Source: source/component/PasDoc_HierarchyTree.pas (line 49).

Protected procedure Adopt(const AChild: TPasItemNode);

This item has no description.

Source: source/component/PasDoc_HierarchyTree.pas (line 50).

Protected function Orphan(const AChild: TPasItemNode): boolean;

This item has no description.

Source: source/component/PasDoc_HierarchyTree.pas (line 51).

Protected procedure Sort;

This item has no description.

Source: source/component/PasDoc_HierarchyTree.pas (line 52).

Public constructor Create;

This item has no description.

Source: source/component/PasDoc_HierarchyTree.pas (line 54).

Public destructor Destroy; override;

This item has no description.

Source: source/component/PasDoc_HierarchyTree.pas (line 55).

Public function Level: Integer;

This item has no description.

Source: source/component/PasDoc_HierarchyTree.pas (line 56).

Properties

Public property Name: string read GetName;

This item has no description.

Source: source/component/PasDoc_HierarchyTree.pas (line 57).

Public property Item: TPasItem read FItem;

This item has no description.

Source: source/component/PasDoc_HierarchyTree.pas (line 58).

Public property Parent: TPasItemNode read FParent;

This item has no description.

Source: source/component/PasDoc_HierarchyTree.pas (line 59).


PasDoc's autodoc: PasDoc_HierarchyTree: Class TStringCardinalTree

Class TStringCardinalTree

Description
Hierarchy
Fields
Methods
Properties

Unit

PasDoc_HierarchyTree

Declaration

type TStringCardinalTree = class(TObject)

Description

This item has no description.

Source: source/component/PasDoc_HierarchyTree.pas (line 62).

Hierarchy

  • TObject
  • TStringCardinalTree
Show Additional Members:

Overview

Fields

Protected FRoot: TPasItemNode;

Methods

Protected | function GetIsEmpty: boolean;
Protected | function GetFirstItem: TPasItemNode;
Protected | procedure NeedRoot;
Public | function ItemOfName(const AName: string): TPasItemNode;
Public | function InsertName(const AName: string): TPasItemNode; overload;
Public | function InsertItem(const AItem: TPasItem): TPasItemNode; overload;
Public | function InsertParented(const AParent: TPasItemNode; const AItem: TPasItem): TPasItemNode; overload;
Public | function InsertParented(const AParent: TPasItemNode; const AName: string): TPasItemNode; overload;
Public | procedure MoveChildLast(const Child, Parent: TPasItemNode);
Public | function Level(const ANode: TPasItemNode): Integer;
Public | function NextItem(const ANode: TPasItemNode): TPasItemNode;
Public | procedure Sort;
Public | constructor Create;
Public | destructor Destroy; override;

Properties

Public | property IsEmpty: boolean read GetIsEmpty;
Public | property FirstItem: TPasItemNode read GetFirstItem;

Description

Fields

Protected FRoot: TPasItemNode;

This item has no description.

Source: source/component/PasDoc_HierarchyTree.pas (line 64).

Methods

Protected function GetIsEmpty: boolean;

This item has no description.

Source: source/component/PasDoc_HierarchyTree.pas (line 65).

Protected function GetFirstItem: TPasItemNode;

This item has no description.

Source: source/component/PasDoc_HierarchyTree.pas (line 66).

Protected procedure NeedRoot;

This item has no description.

Source: source/component/PasDoc_HierarchyTree.pas (line 67).

Public function ItemOfName(const AName: string): TPasItemNode;

This item has no description.

Source: source/component/PasDoc_HierarchyTree.pas (line 69).

Public function InsertName(const AName: string): TPasItemNode; overload;

This item has no description.

Source: source/component/PasDoc_HierarchyTree.pas (line 70).

Public function InsertItem(const AItem: TPasItem): TPasItemNode; overload;

This item has no description.

Source: source/component/PasDoc_HierarchyTree.pas (line 71).

Public function InsertParented(const AParent: TPasItemNode; const AItem: TPasItem): TPasItemNode; overload;

This item has no description.

Source: source/component/PasDoc_HierarchyTree.pas (line 72).

Public function InsertParented(const AParent: TPasItemNode; const AName: string): TPasItemNode; overload;

This item has no description.

Source: source/component/PasDoc_HierarchyTree.pas (line 74).

Public procedure MoveChildLast(const Child, Parent: TPasItemNode);

This item has no description.

Source: source/component/PasDoc_HierarchyTree.pas (line 76).

Public function Level(const ANode: TPasItemNode): Integer;

This item has no description.

Source: source/component/PasDoc_HierarchyTree.pas (line 81).

Public function NextItem(const ANode: TPasItemNode): TPasItemNode;

This item has no description.

Source: source/component/PasDoc_HierarchyTree.pas (line 82).

Public procedure Sort;

This item has no description.

Source: source/component/PasDoc_HierarchyTree.pas (line 84).

Public constructor Create;

This item has no description.

Source: source/component/PasDoc_HierarchyTree.pas (line 86).

Public destructor Destroy; override;

This item has no description.

Source: source/component/PasDoc_HierarchyTree.pas (line 87).

Properties

Public property IsEmpty: boolean read GetIsEmpty;

This item has no description.

Source: source/component/PasDoc_HierarchyTree.pas (line 78).

Public property FirstItem: TPasItemNode read GetFirstItem;

This item has no description.

Source: source/component/PasDoc_HierarchyTree.pas (line 79).


PasDoc's autodoc: PasDoc_Items

Unit PasDoc_Items

Description
Uses
Classes, Interfaces, Objects and Records
Functions and Procedures
Types
Constants

Description

All items that can appear within Pascal source code.

For each item (type, variable, class etc.) that may appear in a Pascal source code file and can thus be taken into the documentation, this unit provides an object type which will store name, unit, description and more on this item.

Source: source/component/PasDoc_Items.pas (line 38).

Uses

  • SysUtils
  • Classes
  • Contnrs
  • Generics.Collections
  • Generics.Defaults
  • PasDoc_Types
  • PasDoc_StringVector
  • PasDoc_TagManager
  • PasDoc_Serialize
  • PasDoc_SortSettings
  • PasDoc_StringPairVector
  • PasDoc_Tokenizer

Overview

Classes, Interfaces, Objects and Records

Name | Description
Record TRawDescriptionInfo | Raw description, in other words: the contents of comment before given item.
Class TBaseItem | This is a basic item class, that is linkable, and has some RawDescription.
Class TPasItem | This is a TBaseItem descendant that is always declared inside some Pascal source file.
Class TPasConstant | Pascal constant.
Class TPasFieldVariable | Global variable or a field in CIO.
Class TPasType | Pascal type (but not a procedural type — these are expressed as TPasRoutine.)
Class TPasAliasType | Alias type
Class TPasEnum | Enumerated type.
Class TPasRoutine This represents:

  1. global function/procedure,

  2. method (function/procedure of a structure (TPasCio)),

  3. type (pointer to one of the above) (in this case Name is the type name).
Class TPasProperty
Class TPasCio | Extends TPasItem to store all items in a class / an object, e.g. fields.
Class EAnchorAlreadyExists
Class TExternalItem | TExternalItem extends TBaseItem to store extra information about a project.
Class TAnchorItem
Class TPasUnit | extends TPasItem to store anything about a unit, its constants, types etc.; also provides methods for parsing a complete unit.
Class TBaseItems | Container class to store a list of TBaseItems.
Class TPasItems | Container class to store a list of TPasItems.
Class TPasRoutines | Collection of methods.
Class TPasProperties | Collection of properties.
Class TPasTypes | List of types.
Class TPasNestedCios | Collection of CIOs (classes, records, interfaces...) nested in outer CIO.
Class TPasUnits | Collection of units.

Functions and Procedures

function RoutineTypeToString(const RoutineType: TRoutineType): string;
function CioTypeToString(const CioType: TCIOType): String;
function VisibilitiesToStr(const Visibilities: TVisibilities): string;
function VisToStr(const Vis: TVisibility): string;
function ObjectVectorIsNilOrEmpty(const List: TBaseItems): boolean; overload;

Types

TVisibility = (...);
TVisibilities = set of TVisibility;
TInfoMergeType = (...);
PRawDescriptionInfo = ˆTRawDescriptionInfo;
THintDirective = (...);
THintDirectives = set of THintDirective;
TRoutineType = (...);
TCIOType = (...);
TClassDirective = (...);
TExternalItemList = specialize TObjectList<TExternalItem>;
TBaseItemDictionary = specialize TDictionary<String, TBaseItem>;
TStringStringDictionary = specialize TDictionary<String, String>;

Constants

VisibilityStr: array[TVisibility] of string[16] = ( 'published', 'public', 'protected', 'strict protected', 'private', 'strict private', 'automated', 'implicit' );
AllVisibilities = [Low(TVisibility) .. High(TVisibility)];
DefaultVisibilities = [Low(TVisibility) .. High(TVisibility)] - [viPrivate, viStrictPrivate, viImplicit];
InfoMergeTypeStr: array[TInfoMergeType] of string = ( 'none', 'prefer-interface', 'prefer-implementation', 'join' );
CIORecordType = [CIO_RECORD, CIO_PACKEDRECORD];
CIONonHierarchy = CIORecordType;
EmptyRawDescriptionInfo: TRawDescriptionInfo = ( Content: ''; StreamName: ''; BeginPosition: -1; EndPosition: -1; );

Description

Functions and Procedures

function RoutineTypeToString(const RoutineType: TRoutineType): string;

Returns lowercased keyword associated with given method type.

Source: source/component/PasDoc_Items.pas (line 1327).

function CioTypeToString(const CioType: TCIOType): String;

Returns lowercased keyword(s) associated with given structure type.

Source: source/component/PasDoc_Items.pas (line 1330).

function VisibilitiesToStr(const Visibilities: TVisibilities): string;

Returns VisibilityStr for each value in Visibilities, delimited by commas.

Source: source/component/PasDoc_Items.pas (line 1334).

function VisToStr(const Vis: TVisibility): string;

This item has no description.

Source: source/component/PasDoc_Items.pas (line 1336).

function ObjectVectorIsNilOrEmpty(const List: TBaseItems): boolean; overload;

Is List nil or empty.

Source: source/component/PasDoc_Items.pas (line 1339).

Types

TVisibility = (...);

Visibility of a field/method.

Values
  • viPublished: indicates field or method is published
  • viPublic: indicates field or method is public
  • viProtected: indicates field or method is protected
  • viStrictProtected: indicates field or method is strict protected
  • viPrivate: indicates field or method is private
  • viStrictPrivate: indicates field or method is strict private
  • viAutomated: indicates field or method is automated
  • viImplicit: implicit visibility, marks the implicit members if user used --implicit-visibility=implicit command-line option.

Source: source/component/PasDoc_Items.pas (line 56).

TVisibilities = set of TVisibility;

This item has no description.

Source: source/component/PasDoc_Items.pas (line 76).

TInfoMergeType = (...);

Type of merging interface and implementation comments. See --implementation-comments documentation.

Values
  • imtNone: Implementation not parsed.
  • imtPreferIntf: Read both, prefer interface.
  • imtPreferImpl: Read both, prefer implementation.
  • imtJoin: Read both, concatenate.

Source: source/component/PasDoc_Items.pas (line 100).

PRawDescriptionInfo = ˆTRawDescriptionInfo;

This item has no description.

Source: source/component/PasDoc_Items.pas (line 153).

THintDirective = (...);

This item has no description.

Values
  • hdDeprecated
  • hdPlatform
  • hdLibrary
  • hdExperimental
  • hdUnimplemented

Source: source/component/PasDoc_Items.pas (line 342).

THintDirectives = set of THintDirective;

This item has no description.

Source: source/component/PasDoc_Items.pas (line 343).

TRoutineType = (...);

Routine type for TPasRoutine.What

Values
  • ROUTINE_CONSTRUCTOR
  • ROUTINE_DESTRUCTOR
  • ROUTINE_FUNCTION
  • ROUTINE_PROCEDURE
  • ROUTINE_OPERATOR

Source: source/component/PasDoc_Items.pas (line 701).

TCIOType = (...);

Determine type of TPasCio item, like a class or record.

Values
  • CIO_CLASS
  • CIO_PACKEDCLASS
  • CIO_OBJCCLASS
  • CIO_PACKEDOBJCCLASS
  • CIO_DISPINTERFACE
  • CIO_INTERFACE
  • CIO_OBJECT
  • CIO_PACKEDOBJECT
  • CIO_RECORD
  • CIO_PACKEDRECORD
  • CIO_TYPE: CIO_TYPE is used only when CIO is a type helper, designed by CIO.ClassDirective = CT_HELPER.

Source: source/component/PasDoc_Items.pas (line 802).

TClassDirective = (...);

This item has no description.

Values
  • CT_NONE
  • CT_ABSTRACT
  • CT_SEALED
  • CT_HELPER
  • CT_EXTERNAL: external can be used with objcclass (see FPC PasCocoa)

Source: source/component/PasDoc_Items.pas (line 813).

TExternalItemList = specialize TObjectList<TExternalItem>;

This item has no description.

Source: source/component/PasDoc_Items.pas (line 1033).

TBaseItemDictionary = specialize TDictionary<String, TBaseItem>;

This item has no description.

Source: source/component/PasDoc_Items.pas (line 1156).

TStringStringDictionary = specialize TDictionary<String, String>;

This item has no description.

Source: source/component/PasDoc_Items.pas (line 1270).

Constants

VisibilityStr: array[TVisibility] of string[16] = ( 'published', 'public', 'protected', 'strict protected', 'private', 'strict private', 'automated', 'implicit' );

This item has no description.

Source: source/component/PasDoc_Items.pas (line 79).

AllVisibilities = [Low(TVisibility) .. High(TVisibility)];

This item has no description.

Source: source/component/PasDoc_Items.pas (line 91).

DefaultVisibilities = [Low(TVisibility) .. High(TVisibility)] - [viPrivate, viStrictPrivate, viImplicit];

Default visibility, as documented on https://pasdoc.github.io/VisibleMembers

Source: source/component/PasDoc_Items.pas (line 94).

InfoMergeTypeStr: array[TInfoMergeType] of string = ( 'none', 'prefer-interface', 'prefer-implementation', 'join' );

This item has no description.

Source: source/component/PasDoc_Items.pas (line 112).

CIORecordType = [CIO_RECORD, CIO_PACKEDRECORD];

This item has no description.

Source: source/component/PasDoc_Items.pas (line 1320).

CIONonHierarchy = CIORecordType;

This item has no description.

Source: source/component/PasDoc_Items.pas (line 1321).

EmptyRawDescriptionInfo: TRawDescriptionInfo = ( Content: ''; StreamName: ''; BeginPosition: -1; EndPosition: -1; );

This item has no description.

Source: source/component/PasDoc_Items.pas (line 1323).

Authors

  • Johannes Berg <johannes@sipsolutions.de>
  • Ralf Junker (delphi@zeitungsjunge.de)
  • Marco Schmidt (marcoschmidt@geocities.com)
  • Michalis Kamburelis
  • Richard B. Winston <rbwinst@usgs.gov>
  • Damien Honeyford
  • Arno Garrels <first name.name@nospamgmx.de>

Created

11 Mar 1999


PasDoc's autodoc: PasDoc_Items: Record TRawDescriptionInfo

Record TRawDescriptionInfo

Description
Fields

Unit

PasDoc_Items

Declaration

type TRawDescriptionInfo = record

Description

Raw description, in other words: the contents of comment before given item. Besides the content, this also specifies filename, begin and end positions of given comment.

Source: source/component/PasDoc_Items.pas (line 137).

Show Additional Members:

Overview

Fields

Public | Content: string;
Public | StreamName: string;
Public | BeginPosition: Int64;
Public | EndPosition: Int64;

Description

Fields

Public Content: string;

This is the actual content the comment.

Source: source/component/PasDoc_Items.pas (line 139).

Public StreamName: string;

StreamName is the name of the TStream from which this comment was read. Will be '' if no comment was found. It will be ' ' if the comment was somehow read from more than one stream.

Source: source/component/PasDoc_Items.pas (line 144).

Public BeginPosition: Int64;

BeginPosition is the position in the stream of the start of the comment.

Source: source/component/PasDoc_Items.pas (line 147).

Public EndPosition: Int64;

EndPosition is the position in the stream of the character immediately after the end of the comment describing the item.

Source: source/component/PasDoc_Items.pas (line 151).


PasDoc's autodoc: PasDoc_Items: Class TBaseItem

Class TBaseItem

Description
Hierarchy
Methods
Properties

Unit

PasDoc_Items

Declaration

type TBaseItem = class(TSerializable)

Description

This is a basic item class, that is linkable, and has some RawDescription.

Source: source/component/PasDoc_Items.pas (line 157).

Hierarchy

  • TObject
  • TSerializable
  • TBaseItem
Show Additional Members:

Overview

Methods

Public | class function Read7BitEncodedInt(const ASource: TStream): Integer;
Public | class procedure Write7BitEncodedInt(Value: Integer; const ADestination: TStream);
Public | class function LoadStringFromStream(const ASource: TStream): string;
Public | class procedure SaveStringToStream(const AValue: string; const ADestination: TStream);
Public | class function LoadDoubleFromStream(const ASource: TStream): double;
Public | class procedure SaveDoubleToStream(const AValue: double; const ADestination: TStream);
Public | class function LoadIntegerFromStream(const ASource: TStream): Longint;
Public | class procedure SaveIntegerToStream(const AValue: Longint; const ADestination: TStream);
Public | class procedure SerializeObject(const AObject: TSerializable; const ADestination: TStream);
Public | class function DeserializeObject(const ASource: TStream): TSerializable;
Public | class procedure Register(const AClass: TSerializableClass);
Public | procedure SerializeToFile(const AFileName: string);
Public | class function DeserializeFromFile(const AFileName: string): TSerializable;
Protected | procedure Serialize(const ADestination: TStream); override;
Protected | procedure Deserialize(const ASource: TStream); override;
Public | constructor Create; override;
Public | destructor Destroy; override;
Public | procedure RegisterTags(TagManager: TTagManager); virtual;
Public | function FindItem(const NameParts: TNameParts): TBaseItem; virtual;
Public | function FindItemMaybeInAncestors(const NameParts: TNameParts): TBaseItem; virtual;
Public | function FindName(const NameParts: TNameParts): TBaseItem; virtual;
Public | function RawDescriptionInfo: PRawDescriptionInfo;
Public | function QualifiedName: String; virtual;
Public | function BasePath: string; virtual;
Public | function Signature: string; virtual;

Properties

Public | property WasDeserialized: boolean read FWasDeserialized;
Public | property DetailedDescription: string read FDetailedDescription write FDetailedDescription;
Public | property RawDescription: string read GetRawDescription write WriteRawDescription;
Public | property FullLink: string read FFullLink write FFullLink;
Public | property LastMod: string read FLastMod write FLastMod;
Public | property Name: string read FName write FName;
Public | property Authors: TStringVector read FAuthors write SetAuthors;
Public | property Created: string read FCreated;
Public | property AutoLinkHereAllowed: boolean read FAutoLinkHereAllowed write FAutoLinkHereAllowed default true;

Description

Methods

Public class function Read7BitEncodedInt(const ASource: TStream): Integer;

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 49).

Public class procedure Write7BitEncodedInt(Value: Integer; const ADestination: TStream);

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 50).

Public class function LoadStringFromStream(const ASource: TStream): string;

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 52).

Public class procedure SaveStringToStream(const AValue: string; const ADestination: TStream);

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 53).

Public class function LoadDoubleFromStream(const ASource: TStream): double;

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 54).

Public class procedure SaveDoubleToStream(const AValue: double; const ADestination: TStream);

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 55).

Public class function LoadIntegerFromStream(const ASource: TStream): Longint;

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 56).

Public class procedure SaveIntegerToStream(const AValue: Longint; const ADestination: TStream);

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 57).

Public class procedure SerializeObject(const AObject: TSerializable; const ADestination: TStream);

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 60).

Public class function DeserializeObject(const ASource: TStream): TSerializable;

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 61).

Public class procedure Register(const AClass: TSerializableClass);

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 62).

Public procedure SerializeToFile(const AFileName: string);

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 63).

Public class function DeserializeFromFile(const AFileName: string): TSerializable;

This item is declared in ancestor TSerializable.

Read back from file.

Exceptions raised
EInvalidCacheFileVersion
When the cached file contents are from an old pasdoc version (or invalid).

Source: source/component/PasDoc_Serialize.pas (line 67).

Protected procedure Serialize(const ADestination: TStream); override;

Serialization of TPasItem need to store in stream only data that is generated by parser. That's because current approach treats "loading from cache" as equivalent to parsing a unit and stores to cache right after parsing a unit. So what is generated by parser must be written to cache.

That said,

  1. It will not break anything if you will accidentally store in cache something that is not generated by parser. That's because saving to cache will be done anyway right after doing parsing, so properties not initialized by parser will have their initial values anyway. You're just wasting memory for cache, and some cache saving/loading time.

  2. For now, in implementation of serialize/deserialize we try to add even things not generated by parser in a commented out code. This way if approach to cache will change some day, we will be able to use this code.

Source: source/component/PasDoc_Items.pas (line 215).

Protected procedure Deserialize(const ASource: TStream); override;

This item has no description.

Source: source/component/PasDoc_Items.pas (line 216).

Public constructor Create; override;

This item has no description.

Source: source/component/PasDoc_Items.pas (line 218).

Public destructor Destroy; override;

This item has no description.

Source: source/component/PasDoc_Items.pas (line 219).

Public procedure RegisterTags(TagManager: TTagManager); virtual;

It registers TTags that init Authors, Created, LastMod and remove relevant tags from description. You can override it to add more handlers.

Source: source/component/PasDoc_Items.pas (line 224).

Public function FindItem(const NameParts: TNameParts): TBaseItem; virtual;

Search for an item with name NameParts inside this Pascal item. For units, it searches for items declared inside this unit (like a procedure, or a class in this unit). For classes it searches for items declared within this class (like a method or a property). For an enumerated type, it searches for members of this enumerated type.

All normal rules of ObjectPascal scope apply, which means that e.g. classes have their separate namespace. When searching for Foo from the unit level, we do not "look into" class namespaces.

Returns nil if not found.

Note that it never compares NameParts with Self.Name. You may want to check this yourself if you want.

Note that for TPasItem descendants, it always returns also some TPasItem descendant (so if you use this method with some TPasItem instance, you can safely cast result of this method to TPasItem).

Implementation in this class always returns nil. Override as necessary.

Source: source/component/PasDoc_Items.pas (line 249).

Public function FindItemMaybeInAncestors(const NameParts: TNameParts): TBaseItem; virtual;

This is just like FindItem, but in case of classes or such it should also search within ancestors. In this class, the default implementation just calls FindItem.

Source: source/component/PasDoc_Items.pas (line 254).

Public function FindName(const NameParts: TNameParts): TBaseItem; virtual;

Do all you can to find link specified by NameParts.

While searching this tries to mimic ObjectPascal identifier scope as much as it can. It seaches within this item, but also within class enclosing this item, within ancestors of this class, within unit enclosing this item, then within units used by unit of this item.

Source: source/component/PasDoc_Items.pas (line 265).

Public function RawDescriptionInfo: PRawDescriptionInfo;

Full info about RawDescription of this item, including it's filename and position.

This is intended to be initialized by parser.

This returns PRawDescriptionInfo instead of just TRawDescriptionInfo to allow natural setting of properties of this record (otherwise

Item.RawDescriptionInfo.StreamName := 'foo';

would not work as expected) .

Source: source/component/PasDoc_Items.pas (line 296).

Public function QualifiedName: String; virtual;

Returns the qualified name of the item. This is intended to return a concise and not ambigous name. E.g. in case of TPasItem it is overridden to return Name qualified by class name and unit name.

In this class this simply returns Name.

Source: source/component/PasDoc_Items.pas (line 315).

Public function BasePath: string; virtual;

The full (absolute) path used to resolve filenames in this item's descriptions. Must always end with PathDelim. In this class, this simply returns GetCurrentDir (with PathDelim added if needed).

Source: source/component/PasDoc_Items.pas (line 333).

Public function Signature: string; virtual;

Just like Name but optionally with added routine parameter types, to be unique when overloading is used. For example, for routines it may be like MyMethod(String) or MyMethod(Integer).

Source: source/component/PasDoc_Items.pas (line 339).

Properties

Public property WasDeserialized: boolean read FWasDeserialized;

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 68).

Public property DetailedDescription: string read FDetailedDescription write FDetailedDescription;

Detailed description of this item.

In case of TPasItem, this is something more elaborate than TPasItem.AbstractDescription.

This is already in the form suitable for final output, ready to be put inside final documentation.

Source: source/component/PasDoc_Items.pas (line 274).

Public property RawDescription: string read GetRawDescription write WriteRawDescription;

This stores unexpanded version (as specified in user's comment in source code of parsed units) of description of this item.

Actually, this is just a shortcut to RawDescriptionInfo.Content

Source: source/component/PasDoc_Items.pas (line 283).

Public property FullLink: string read FFullLink write FFullLink;

a full link that should be enough to link this item from anywhere else

Source: source/component/PasDoc_Items.pas (line 299).

Public property LastMod: string read FLastMod write FLastMod;

Contains '' or string with date of last modification. This string is already in the form suitable for final output format (i.e. already processed by TDocGenerator.ConvertString).

Source: source/component/PasDoc_Items.pas (line 304).

Public property Name: string read FName write FName;

name of the item

Source: source/component/PasDoc_Items.pas (line 307).

Public property Authors: TStringVector read FAuthors write SetAuthors;

list of strings, each representing one author of this item

Source: source/component/PasDoc_Items.pas (line 318).

Public property Created: string read FCreated;

Contains '' or string with date of creation. This string is already in the form suitable for final output format (i.e. already processed by TDocGenerator.ConvertString).

Source: source/component/PasDoc_Items.pas (line 323).

Public property AutoLinkHereAllowed: boolean read FAutoLinkHereAllowed write FAutoLinkHereAllowed default true;

Is auto-link mechanism allowed to create link to this item ? This may be set to False by @noAutoLinkHere tag in item's description.

Source: source/component/PasDoc_Items.pas (line 327).


PasDoc's autodoc: PasDoc_Items: Class TPasItem

Class TPasItem

Description
Hierarchy
Methods
Properties

Unit

PasDoc_Items

Declaration

type TPasItem = class(TBaseItem)

Description

This is a TBaseItem descendant that is always declared inside some Pascal source file.

Parser creates only items of this class (e.g. never some basic TBaseItem instance). This class introduces properties and methods pointing to parent unit (MyUnit) and parent class/interface/object/record (MyObject). Also many other things not needed at TBaseItem level are introduced here: things related to handling @abstract tag, @seealso tag, used to sorting items inside (Sort) and some more.

Source: source/component/PasDoc_Items.pas (line 355).

Hierarchy

  • TObject
  • TSerializable
  • TBaseItem
  • TPasItem
Show Additional Members:

Overview

Methods

Public | class function Read7BitEncodedInt(const ASource: TStream): Integer;
Public | class procedure Write7BitEncodedInt(Value: Integer; const ADestination: TStream);
Public | class function LoadStringFromStream(const ASource: TStream): string;
Public | class procedure SaveStringToStream(const AValue: string; const ADestination: TStream);
Public | class function LoadDoubleFromStream(const ASource: TStream): double;
Public | class procedure SaveDoubleToStream(const AValue: double; const ADestination: TStream);
Public | class function LoadIntegerFromStream(const ASource: TStream): Longint;
Public | class procedure SaveIntegerToStream(const AValue: Longint; const ADestination: TStream);
Public | class procedure SerializeObject(const AObject: TSerializable; const ADestination: TStream);
Public | class function DeserializeObject(const ASource: TStream): TSerializable;
Public | class procedure Register(const AClass: TSerializableClass);
Public | procedure SerializeToFile(const AFileName: string);
Public | class function DeserializeFromFile(const AFileName: string): TSerializable;
Public | function FindItem(const NameParts: TNameParts): TBaseItem; virtual;
Public | function FindItemMaybeInAncestors(const NameParts: TNameParts): TBaseItem; virtual;
Public | function RawDescriptionInfo: PRawDescriptionInfo;
Public | function Signature: string; virtual;
Protected | procedure Serialize(const ADestination: TStream); override;
Protected | procedure Deserialize(const ASource: TStream); override;
Protected | function FindNameWithinUnit(const NameParts: TNameParts): TBaseItem; virtual;
Public | constructor Create; override;
Public | destructor Destroy; override;
Public | function FindName(const NameParts: TNameParts): TBaseItem; override;
Public | procedure RegisterTags(TagManager: TTagManager); override;
Public | function MyUnitName: String;
Public | function HasDescription: Boolean;
Public | function HasRawDescription: Boolean;
Public | function QualifiedName: String; override;
Public | function UnitRelativeQualifiedName: string; virtual;
Public | procedure Sort(const SortSettings: TSortSettings); virtual;
Public | procedure SetAttributes(var Value: TStringPairVector);
Public | function InheritedItem: TPasItem; virtual;
Public | function GetInheritedItemDescriptions: TStringPairVector; virtual;
Public | function BasePath: string; override;
Public | function HasOptionalInfo: boolean; virtual;
Public | function IsOverride: Boolean; virtual;

Properties

Public | property WasDeserialized: boolean read FWasDeserialized;
Public | property DetailedDescription: string read FDetailedDescription write FDetailedDescription;
Public | property RawDescription: string read GetRawDescription write WriteRawDescription;
Public | property FullLink: string read FFullLink write FFullLink;
Public | property LastMod: string read FLastMod write FLastMod;
Public | property Name: string read FName write FName;
Public | property Authors: TStringVector read FAuthors write SetAuthors;
Public | property Created: string read FCreated;
Public | property AutoLinkHereAllowed: boolean read FAutoLinkHereAllowed write FAutoLinkHereAllowed default true;
Public | property AbstractDescription: string read FAbstractDescription write FAbstractDescription;
Public | property AbstractDescriptionWasAutomatic: boolean read FAbstractDescriptionWasAutomatic write FAbstractDescriptionWasAutomatic;
Public | property MyUnit: TPasUnit read FMyUnit write FMyUnit;
Public | property MyObject: TPasCio read FMyObject write FMyObject;
Public | property MyEnum: TPasEnum read FMyEnum write FMyEnum;
Public | property Visibility: TVisibility read FVisibility write FVisibility;
Public | property HintDirectives: THintDirectives read FHintDirectives write FHintDirectives;
Public | property DeprecatedNote: string read FDeprecatedNote write FDeprecatedNote;
Public | property FullDeclaration: string read FFullDeclaration write FFullDeclaration;
Public | property SeeAlso: TStringPairVector read FSeeAlso;
Public | property Attributes: TStringPairVector read FAttributes;
Public | property Params: TStringPairVector read FParams;
Public | property Raises: TStringPairVector read FRaises;
Public | property SourceAbsoluteFileName: string read FSourceAbsoluteFileName write FSourceAbsoluteFileName;
Public | property SourceLine: Integer read FSourceLine write FSourceLine;

Description

Methods

Public class function Read7BitEncodedInt(const ASource: TStream): Integer;

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 49).

Public class procedure Write7BitEncodedInt(Value: Integer; const ADestination: TStream);

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 50).

Public class function LoadStringFromStream(const ASource: TStream): string;

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 52).

Public class procedure SaveStringToStream(const AValue: string; const ADestination: TStream);

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 53).

Public class function LoadDoubleFromStream(const ASource: TStream): double;

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 54).

Public class procedure SaveDoubleToStream(const AValue: double; const ADestination: TStream);

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 55).

Public class function LoadIntegerFromStream(const ASource: TStream): Longint;

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 56).

Public class procedure SaveIntegerToStream(const AValue: Longint; const ADestination: TStream);

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 57).

Public class procedure SerializeObject(const AObject: TSerializable; const ADestination: TStream);

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 60).

Public class function DeserializeObject(const ASource: TStream): TSerializable;

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 61).

Public class procedure Register(const AClass: TSerializableClass);

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 62).

Public procedure SerializeToFile(const AFileName: string);

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 63).

Public class function DeserializeFromFile(const AFileName: string): TSerializable;

This item is declared in ancestor TSerializable.

Read back from file.

Exceptions raised
EInvalidCacheFileVersion
When the cached file contents are from an old pasdoc version (or invalid).

Source: source/component/PasDoc_Serialize.pas (line 67).

Public function FindItem(const NameParts: TNameParts): TBaseItem; virtual;

This item is declared in ancestor TBaseItem.

Search for an item with name NameParts inside this Pascal item. For units, it searches for items declared inside this unit (like a procedure, or a class in this unit). For classes it searches for items declared within this class (like a method or a property). For an enumerated type, it searches for members of this enumerated type.

All normal rules of ObjectPascal scope apply, which means that e.g. classes have their separate namespace. When searching for Foo from the unit level, we do not "look into" class namespaces.

Returns nil if not found.

Note that it never compares NameParts with Self.Name. You may want to check this yourself if you want.

Note that for TPasItem descendants, it always returns also some TPasItem descendant (so if you use this method with some TPasItem instance, you can safely cast result of this method to TPasItem).

Implementation in this class always returns nil. Override as necessary.

Source: source/component/PasDoc_Items.pas (line 249).

Public function FindItemMaybeInAncestors(const NameParts: TNameParts): TBaseItem; virtual;

This item is declared in ancestor TBaseItem.

This is just like FindItem, but in case of classes or such it should also search within ancestors. In this class, the default implementation just calls FindItem.

Source: source/component/PasDoc_Items.pas (line 254).

Public function RawDescriptionInfo: PRawDescriptionInfo;

This item is declared in ancestor TBaseItem.

Full info about RawDescription of this item, including it's filename and position.

This is intended to be initialized by parser.

This returns PRawDescriptionInfo instead of just TRawDescriptionInfo to allow natural setting of properties of this record (otherwise

Item.RawDescriptionInfo.StreamName := 'foo';

would not work as expected) .

Source: source/component/PasDoc_Items.pas (line 296).

Public function Signature: string; virtual;

This item is declared in ancestor TBaseItem.

Just like Name but optionally with added routine parameter types, to be unique when overloading is used. For example, for routines it may be like MyMethod(String) or MyMethod(Integer).

Source: source/component/PasDoc_Items.pas (line 339).

Protected procedure Serialize(const ADestination: TStream); override;

This item has no description. Showing description inherited from TBaseItem.Serialize.

Serialization of TPasItem need to store in stream only data that is generated by parser. That's because current approach treats "loading from cache" as equivalent to parsing a unit and stores to cache right after parsing a unit. So what is generated by parser must be written to cache.

That said,

  1. It will not break anything if you will accidentally store in cache something that is not generated by parser. That's because saving to cache will be done anyway right after doing parsing, so properties not initialized by parser will have their initial values anyway. You're just wasting memory for cache, and some cache saving/loading time.

  2. For now, in implementation of serialize/deserialize we try to add even things not generated by parser in a commented out code. This way if approach to cache will change some day, we will be able to use this code.

Source: source/component/PasDoc_Items.pas (line 390).

Protected procedure Deserialize(const ASource: TStream); override;

This item has no description.

Source: source/component/PasDoc_Items.pas (line 391).

Protected function FindNameWithinUnit(const NameParts: TNameParts): TBaseItem; virtual;

This does the same thing as FindName but it doesn't scan other units. If this item is a unit, it searches only inside this unit, else it searches only inside MyUnit unit.

Actually FindName uses this function.

Source: source/component/PasDoc_Items.pas (line 399).

Public constructor Create; override;

This item has no description.

Source: source/component/PasDoc_Items.pas (line 401).

Public destructor Destroy; override;

This item has no description.

Source: source/component/PasDoc_Items.pas (line 402).

Public function FindName(const NameParts: TNameParts): TBaseItem; override;

This item has no description. Showing description inherited from TBaseItem.FindName.

Do all you can to find link specified by NameParts.

While searching this tries to mimic ObjectPascal identifier scope as much as it can. It seaches within this item, but also within class enclosing this item, within ancestors of this class, within unit enclosing this item, then within units used by unit of this item.

Source: source/component/PasDoc_Items.pas (line 404).

Public procedure RegisterTags(TagManager: TTagManager); override;

This item has no description. Showing description inherited from TBaseItem.RegisterTags.

It registers TTags that init Authors, Created, LastMod and remove relevant tags from description. You can override it to add more handlers.

Source: source/component/PasDoc_Items.pas (line 406).

Public function MyUnitName: String;

Name MyUnit or empty string if MyUnit is nil.

Source: source/component/PasDoc_Items.pas (line 409).

Public function HasDescription: Boolean;

Returns true if there is a DetailedDescription or AbstractDescription available.

Source: source/component/PasDoc_Items.pas (line 464).

Public function HasRawDescription: Boolean;

Is RawDescription not empty.

Source: source/component/PasDoc_Items.pas (line 467).

Public function QualifiedName: String; override;

This item has no description. Showing description inherited from TBaseItem.QualifiedName.

Returns the qualified name of the item. This is intended to return a concise and not ambigous name. E.g. in case of TPasItem it is overridden to return Name qualified by class name and unit name.

In this class this simply returns Name.

Source: source/component/PasDoc_Items.pas (line 469).

Public function UnitRelativeQualifiedName: string; virtual;

This item has no description.

Source: source/component/PasDoc_Items.pas (line 470).

Public procedure Sort(const SortSettings: TSortSettings); virtual;

Sort items inside (recursively, so it sorts within the items too). E.g. in case of TPasUnit, we can sort variables, constants, CIOs in the unit, and then we call Sort(SortSettings) for every CIO.

Only the thigns listed in SortSettings will be sorted, the rest will be left unsorted.

Note that some things are never sorted, e.g. members of TPasEnum are never sorted (since their order affects the code logic, so we should not misrepresent it in the output doc).

Source: source/component/PasDoc_Items.pas (line 506).

Public procedure SetAttributes(var Value: TStringPairVector);

This item has no description.

Source: source/component/PasDoc_Items.pas (line 553).

Public function InheritedItem: TPasItem; virtual;

Get the closest item that this item inherits from.

Source: source/component/PasDoc_Items.pas (line 556).

Public function GetInheritedItemDescriptions: TStringPairVector; virtual;

Generate a list of descriptions defined on this item in base classes.

This stops at the first class ancestor to have a description defined for an ancestor of this item. Along the way it will also collect descriptions of this item from any implemented interfaces.

If there is no description in any ancestor, it will return an empty vector.

Source: source/component/PasDoc_Items.pas (line 565).

Public function BasePath: string; override;

This item has no description. Showing description inherited from TBaseItem.BasePath.

The full (absolute) path used to resolve filenames in this item's descriptions. Must always end with PathDelim. In this class, this simply returns GetCurrentDir (with PathDelim added if needed).

Source: source/component/PasDoc_Items.pas (line 567).

Public function HasOptionalInfo: boolean; virtual;

Is optional information (that may be empty for after parsing unit and expanding tags) specified. Currently this checks Params and Raises and TPasRoutine.Returns.

Source: source/component/PasDoc_Items.pas (line 599).

Public function IsOverride: Boolean; virtual;

Whether this item overrides an item in an ancestor.

Source: source/component/PasDoc_Items.pas (line 602).

Properties

Public property WasDeserialized: boolean read FWasDeserialized;

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 68).

Public property DetailedDescription: string read FDetailedDescription write FDetailedDescription;

This item is declared in ancestor TBaseItem.

Detailed description of this item.

In case of TPasItem, this is something more elaborate than TPasItem.AbstractDescription.

This is already in the form suitable for final output, ready to be put inside final documentation.

Source: source/component/PasDoc_Items.pas (line 274).

Public property RawDescription: string read GetRawDescription write WriteRawDescription;

This item is declared in ancestor TBaseItem.

This stores unexpanded version (as specified in user's comment in source code of parsed units) of description of this item.

Actually, this is just a shortcut to RawDescriptionInfo.Content

Source: source/component/PasDoc_Items.pas (line 283).

Public property FullLink: string read FFullLink write FFullLink;

This item is declared in ancestor TBaseItem.

a full link that should be enough to link this item from anywhere else

Source: source/component/PasDoc_Items.pas (line 299).

Public property LastMod: string read FLastMod write FLastMod;

This item is declared in ancestor TBaseItem.

Contains '' or string with date of last modification. This string is already in the form suitable for final output format (i.e. already processed by TDocGenerator.ConvertString).

Source: source/component/PasDoc_Items.pas (line 304).

Public property Name: string read FName write FName;

This item is declared in ancestor TBaseItem.

name of the item

Source: source/component/PasDoc_Items.pas (line 307).

Public property Authors: TStringVector read FAuthors write SetAuthors;

This item is declared in ancestor TBaseItem.

list of strings, each representing one author of this item

Source: source/component/PasDoc_Items.pas (line 318).

Public property Created: string read FCreated;

This item is declared in ancestor TBaseItem.

Contains '' or string with date of creation. This string is already in the form suitable for final output format (i.e. already processed by TDocGenerator.ConvertString).

Source: source/component/PasDoc_Items.pas (line 323).

Public property AutoLinkHereAllowed: boolean read FAutoLinkHereAllowed write FAutoLinkHereAllowed default true;

This item is declared in ancestor TBaseItem.

Is auto-link mechanism allowed to create link to this item ? This may be set to False by @noAutoLinkHere tag in item's description.

Source: source/component/PasDoc_Items.pas (line 327).

Public property AbstractDescription: string read FAbstractDescription write FAbstractDescription;

Abstract description of this item. This is intended to be short (e.g. one sentence) description of this object.

This will be inited from @abstract tag in RawDescription, or cutted out from first sentence in RawDescription if --auto-abstract was used.

Note that this is already in the form suitable for final output, with tags expanded, chars converted etc.

Source: source/component/PasDoc_Items.pas (line 421).

Public property AbstractDescriptionWasAutomatic: boolean read FAbstractDescriptionWasAutomatic write FAbstractDescriptionWasAutomatic;

TDocGenerator.ExpandDescriptions sets this property to true if AutoAbstract was used and AbstractDescription of this item was automatically deduced from the 1st sentence of RawDescription.

Otherwise (if @abstract was specified explicitly, or there was no @abstract and AutoAbstract was false) this is set to false.

This is a useful hint for generators: it tells them that when they are printing both AbstractDescription and DetailedDescription of the item in one place (e.g. TTexDocGenerator.WriteItemLongDescription and TGenericHTMLDocGenerator.WriteItemLongDescription both do this) then they should not put any additional space between AbstractDescription and DetailedDescription.

This way when user will specify description like

{ First sentence. Second sentence. }
procedure Foo;

and --auto-abstract was on, then "First sentence." is the AbstractDescription, " Second sentence." is DetailedDescription, AbstractDescriptionWasAutomatic is true and and TGenericHTMLDocGenerator.WriteItemLongDescription can print them as "First sentence. Second sentence."

Without this property, TGenericHTMLDocGenerator.WriteItemLongDescription would not be able to say that this abstract was deduced automatically and would print additional paragraph break that was not present in desscription, i.e. "First sentence.<p> Second sentence."

Source: source/component/PasDoc_Items.pas (line 458).

Public property MyUnit: TPasUnit read FMyUnit write FMyUnit;

Unit of this item.

Source: source/component/PasDoc_Items.pas (line 473).

Public property MyObject: TPasCio read FMyObject write FMyObject;

If this item is part of a class (or record, object., interface...), the corresponding class is stored here. Nil otherwise.

Source: source/component/PasDoc_Items.pas (line 477).

Public property MyEnum: TPasEnum read FMyEnum write FMyEnum;

If this item is a member of an enumerated type, then the enclosing enumerated type is stored here. Nil otherwise.

Source: source/component/PasDoc_Items.pas (line 481).

Public property Visibility: TVisibility read FVisibility write FVisibility;

This item has no description.

Source: source/component/PasDoc_Items.pas (line 483).

Public property HintDirectives: THintDirectives read FHintDirectives write FHintDirectives;

Hint directives specify is this item deprecated, platform-specific, library-specific, experimental, or unimplemented.

Source: source/component/PasDoc_Items.pas (line 487).

Public property DeprecatedNote: string read FDeprecatedNote write FDeprecatedNote;

Deprecation note, specified as a string after "deprecated" directive. Empty if none, always empty if HintDirectives does not contain hdDeprecated.

Source: source/component/PasDoc_Items.pas (line 492).

Public property FullDeclaration: string read FFullDeclaration write FFullDeclaration;

Full declaration of the item, similar to how it appears in the Pascal source code.

Note that that this is not used for some descendants. Right now it's used only with

  • TPasConstant

  • TPasFieldVariable (includes type, default values, etc.)

  • TPasType

  • TPasRoutine (includes parameter list, procedural directives, etc.)

  • TPasProperty (includes read/write and storage specifiers, etc.)

  • TPasEnum

    But in this special case, '...' is used instead of listing individual members, e.g. 'TEnumName = (...)'. You can get list of Members using TPasEnum.Members. Eventual specifics of each member should be also specified somewhere inside Members items, e.g.

    TMyEnum = (meOne, meTwo = 3);

    and

    TMyEnum = (meOne, meTwo);

    will both result in TPasEnum with equal FullDeclaration (just 'TMyEnum = (...)') but this '= 3' should be marked somewhere inside Members[1] properties.

  • TPasItem when it's a CIO's field.

The intention is that in the future all TPasItem descendants will always have appropriate FullDeclaration set. It all requires adjusting appropriate places in PasDoc_Parser to generate appropriate FullDeclaration.

Source: source/component/PasDoc_Items.pas (line 543).

Public property SeeAlso: TStringPairVector read FSeeAlso;

Items here are collected from @seealso tags.

Name of each item is the 1st part of @seealso parameter. Value is the 2nd part of @seealso parameter.

Source: source/component/PasDoc_Items.pas (line 549).

Public property Attributes: TStringPairVector read FAttributes;

List of attributes defined for this item

Source: source/component/PasDoc_Items.pas (line 552).

Public property Params: TStringPairVector read FParams;

Parameters of method or property.

Name of each item is the name of parameter (without any surrounding whitespace), Value of each item is users description for this item (in already-expanded form).

This is already in the form processed by TTagManager.Execute, i.e. with links resolved, html characters escaped etc. So don't convert them (e.g. before writing to the final docs) once again (by some ExpandDescription or ConvertString or anything like that).

Source: source/component/PasDoc_Items.pas (line 580).

Public property Raises: TStringPairVector read FRaises;

Exceptions raised by the method, or by property getter/setter.

Name of each item is the name of exception class (without any surrounding whitespace), Value of each item is users description for this item (in already-expanded form).

This is already in the form processed by TTagManager.Execute, i.e. with links resolved, html characters escaped etc. So don't convert them (e.g. before writing to the final docs) once again (by some ExpandDescription or ConvertString or anything like that).

Source: source/component/PasDoc_Items.pas (line 593).

Public property SourceAbsoluteFileName: string read FSourceAbsoluteFileName write FSourceAbsoluteFileName;

Source (absolute) file name where this item is declared. Set by the parser when parsing the item's declaration.

Source: source/component/PasDoc_Items.pas (line 606).

Public property SourceLine: Integer read FSourceLine write FSourceLine;

Source line number (1-based) where this item is declared. Set by the parser when parsing the item's declaration.

Source: source/component/PasDoc_Items.pas (line 611).


PasDoc's autodoc: PasDoc_Items: Class TPasConstant

Class TPasConstant

Description
Hierarchy
Methods
Properties

Unit

PasDoc_Items

Declaration

type TPasConstant = class(TPasItem)

Description

Pascal constant.

Precise definition of "constant" for pasdoc purposes is "a name associated with a value". Optionally, constant type may also be specified in declaration. Well, Pascal constant always has some type, but pasdoc is too weak to determine the implicit type of a constant, i.e. to understand that constant const A = 1 is of type Integer.

Source: source/component/PasDoc_Items.pas (line 622).

Hierarchy

  • TObject
  • TSerializable
  • TBaseItem
  • TPasItem
  • TPasConstant
Show Additional Members:

Overview

Methods

Public | class function Read7BitEncodedInt(const ASource: TStream): Integer;
Public | class procedure Write7BitEncodedInt(Value: Integer; const ADestination: TStream);
Public | class function LoadStringFromStream(const ASource: TStream): string;
Public | class procedure SaveStringToStream(const AValue: string; const ADestination: TStream);
Public | class function LoadDoubleFromStream(const ASource: TStream): double;
Public | class procedure SaveDoubleToStream(const AValue: double; const ADestination: TStream);
Public | class function LoadIntegerFromStream(const ASource: TStream): Longint;
Public | class procedure SaveIntegerToStream(const AValue: Longint; const ADestination: TStream);
Public | class procedure SerializeObject(const AObject: TSerializable; const ADestination: TStream);
Public | class function DeserializeObject(const ASource: TStream): TSerializable;
Public | class procedure Register(const AClass: TSerializableClass);
Public | procedure SerializeToFile(const AFileName: string);
Public | class function DeserializeFromFile(const AFileName: string): TSerializable;
Public | function FindItem(const NameParts: TNameParts): TBaseItem; virtual;
Public | function FindItemMaybeInAncestors(const NameParts: TNameParts): TBaseItem; virtual;
Public | function RawDescriptionInfo: PRawDescriptionInfo;
Public | function Signature: string; virtual;
Protected | procedure Serialize(const ADestination: TStream); override;
Protected | procedure Deserialize(const ASource: TStream); override;
Protected | function FindNameWithinUnit(const NameParts: TNameParts): TBaseItem; virtual;
Public | constructor Create; override;
Public | destructor Destroy; override;
Public | function FindName(const NameParts: TNameParts): TBaseItem; override;
Public | procedure RegisterTags(TagManager: TTagManager); override;
Public | function MyUnitName: String;
Public | function HasDescription: Boolean;
Public | function HasRawDescription: Boolean;
Public | function QualifiedName: String; override;
Public | function UnitRelativeQualifiedName: string; virtual;
Public | procedure Sort(const SortSettings: TSortSettings); virtual;
Public | procedure SetAttributes(var Value: TStringPairVector);
Public | function InheritedItem: TPasItem; virtual;
Public | function GetInheritedItemDescriptions: TStringPairVector; virtual;
Public | function BasePath: string; override;
Public | function HasOptionalInfo: boolean; virtual;
Public | function IsOverride: Boolean; virtual;

Properties

Public | property WasDeserialized: boolean read FWasDeserialized;
Public | property DetailedDescription: string read FDetailedDescription write FDetailedDescription;
Public | property RawDescription: string read GetRawDescription write WriteRawDescription;
Public | property FullLink: string read FFullLink write FFullLink;
Public | property LastMod: string read FLastMod write FLastMod;
Public | property Name: string read FName write FName;
Public | property Authors: TStringVector read FAuthors write SetAuthors;
Public | property Created: string read FCreated;
Public | property AutoLinkHereAllowed: boolean read FAutoLinkHereAllowed write FAutoLinkHereAllowed default true;
Public | property AbstractDescription: string read FAbstractDescription write FAbstractDescription;
Public | property AbstractDescriptionWasAutomatic: boolean read FAbstractDescriptionWasAutomatic write FAbstractDescriptionWasAutomatic;
Public | property MyUnit: TPasUnit read FMyUnit write FMyUnit;
Public | property MyObject: TPasCio read FMyObject write FMyObject;
Public | property MyEnum: TPasEnum read FMyEnum write FMyEnum;
Public | property Visibility: TVisibility read FVisibility write FVisibility;
Public | property HintDirectives: THintDirectives read FHintDirectives write FHintDirectives;
Public | property DeprecatedNote: string read FDeprecatedNote write FDeprecatedNote;
Public | property FullDeclaration: string read FFullDeclaration write FFullDeclaration;
Public | property SeeAlso: TStringPairVector read FSeeAlso;
Public | property Attributes: TStringPairVector read FAttributes;
Public | property Params: TStringPairVector read FParams;
Public | property Raises: TStringPairVector read FRaises;
Public | property SourceAbsoluteFileName: string read FSourceAbsoluteFileName write FSourceAbsoluteFileName;
Public | property SourceLine: Integer read FSourceLine write FSourceLine;

Description

Methods

Public class function Read7BitEncodedInt(const ASource: TStream): Integer;

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 49).

Public class procedure Write7BitEncodedInt(Value: Integer; const ADestination: TStream);

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 50).

Public class function LoadStringFromStream(const ASource: TStream): string;

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 52).

Public class procedure SaveStringToStream(const AValue: string; const ADestination: TStream);

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 53).

Public class function LoadDoubleFromStream(const ASource: TStream): double;

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 54).

Public class procedure SaveDoubleToStream(const AValue: double; const ADestination: TStream);

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 55).

Public class function LoadIntegerFromStream(const ASource: TStream): Longint;

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 56).

Public class procedure SaveIntegerToStream(const AValue: Longint; const ADestination: TStream);

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 57).

Public class procedure SerializeObject(const AObject: TSerializable; const ADestination: TStream);

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 60).

Public class function DeserializeObject(const ASource: TStream): TSerializable;

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 61).

Public class procedure Register(const AClass: TSerializableClass);

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 62).

Public procedure SerializeToFile(const AFileName: string);

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 63).

Public class function DeserializeFromFile(const AFileName: string): TSerializable;

This item is declared in ancestor TSerializable.

Read back from file.

Exceptions raised
EInvalidCacheFileVersion
When the cached file contents are from an old pasdoc version (or invalid).

Source: source/component/PasDoc_Serialize.pas (line 67).

Public function FindItem(const NameParts: TNameParts): TBaseItem; virtual;

This item is declared in ancestor TBaseItem.

Search for an item with name NameParts inside this Pascal item. For units, it searches for items declared inside this unit (like a procedure, or a class in this unit). For classes it searches for items declared within this class (like a method or a property). For an enumerated type, it searches for members of this enumerated type.

All normal rules of ObjectPascal scope apply, which means that e.g. classes have their separate namespace. When searching for Foo from the unit level, we do not "look into" class namespaces.

Returns nil if not found.

Note that it never compares NameParts with Self.Name. You may want to check this yourself if you want.

Note that for TPasItem descendants, it always returns also some TPasItem descendant (so if you use this method with some TPasItem instance, you can safely cast result of this method to TPasItem).

Implementation in this class always returns nil. Override as necessary.

Source: source/component/PasDoc_Items.pas (line 249).

Public function FindItemMaybeInAncestors(const NameParts: TNameParts): TBaseItem; virtual;

This item is declared in ancestor TBaseItem.

This is just like FindItem, but in case of classes or such it should also search within ancestors. In this class, the default implementation just calls FindItem.

Source: source/component/PasDoc_Items.pas (line 254).

Public function RawDescriptionInfo: PRawDescriptionInfo;

This item is declared in ancestor TBaseItem.

Full info about RawDescription of this item, including it's filename and position.

This is intended to be initialized by parser.

This returns PRawDescriptionInfo instead of just TRawDescriptionInfo to allow natural setting of properties of this record (otherwise

Item.RawDescriptionInfo.StreamName := 'foo';

would not work as expected) .

Source: source/component/PasDoc_Items.pas (line 296).

Public function Signature: string; virtual;

This item is declared in ancestor TBaseItem.

Just like Name but optionally with added routine parameter types, to be unique when overloading is used. For example, for routines it may be like MyMethod(String) or MyMethod(Integer).

Source: source/component/PasDoc_Items.pas (line 339).

Protected procedure Serialize(const ADestination: TStream); override;

This item is declared in ancestor TPasItem.

This item has no description. Showing description inherited from TBaseItem.Serialize.

Serialization of TPasItem need to store in stream only data that is generated by parser. That's because current approach treats "loading from cache" as equivalent to parsing a unit and stores to cache right after parsing a unit. So what is generated by parser must be written to cache.

That said,

  1. It will not break anything if you will accidentally store in cache something that is not generated by parser. That's because saving to cache will be done anyway right after doing parsing, so properties not initialized by parser will have their initial values anyway. You're just wasting memory for cache, and some cache saving/loading time.

  2. For now, in implementation of serialize/deserialize we try to add even things not generated by parser in a commented out code. This way if approach to cache will change some day, we will be able to use this code.

Source: source/component/PasDoc_Items.pas (line 390).

Protected procedure Deserialize(const ASource: TStream); override;

This item is declared in ancestor TPasItem.

This item has no description.

Source: source/component/PasDoc_Items.pas (line 391).

Protected function FindNameWithinUnit(const NameParts: TNameParts): TBaseItem; virtual;

This item is declared in ancestor TPasItem.

This does the same thing as FindName but it doesn't scan other units. If this item is a unit, it searches only inside this unit, else it searches only inside MyUnit unit.

Actually FindName uses this function.

Source: source/component/PasDoc_Items.pas (line 399).

Public constructor Create; override;

This item is declared in ancestor TPasItem.

This item has no description.

Source: source/component/PasDoc_Items.pas (line 401).

Public destructor Destroy; override;

This item is declared in ancestor TPasItem.

This item has no description.

Source: source/component/PasDoc_Items.pas (line 402).

Public function FindName(const NameParts: TNameParts): TBaseItem; override;

This item is declared in ancestor TPasItem.

This item has no description. Showing description inherited from TBaseItem.FindName.

Do all you can to find link specified by NameParts.

While searching this tries to mimic ObjectPascal identifier scope as much as it can. It seaches within this item, but also within class enclosing this item, within ancestors of this class, within unit enclosing this item, then within units used by unit of this item.

Source: source/component/PasDoc_Items.pas (line 404).

Public procedure RegisterTags(TagManager: TTagManager); override;

This item is declared in ancestor TPasItem.

This item has no description. Showing description inherited from TBaseItem.RegisterTags.

It registers TTags that init Authors, Created, LastMod and remove relevant tags from description. You can override it to add more handlers.

Source: source/component/PasDoc_Items.pas (line 406).

Public function MyUnitName: String;

This item is declared in ancestor TPasItem.

Name MyUnit or empty string if MyUnit is nil.

Source: source/component/PasDoc_Items.pas (line 409).

Public function HasDescription: Boolean;

This item is declared in ancestor TPasItem.

Returns true if there is a DetailedDescription or AbstractDescription available.

Source: source/component/PasDoc_Items.pas (line 464).

Public function HasRawDescription: Boolean;

This item is declared in ancestor TPasItem.

Is RawDescription not empty.

Source: source/component/PasDoc_Items.pas (line 467).

Public function QualifiedName: String; override;

This item is declared in ancestor TPasItem.

This item has no description. Showing description inherited from TBaseItem.QualifiedName.

Returns the qualified name of the item. This is intended to return a concise and not ambigous name. E.g. in case of TPasItem it is overridden to return Name qualified by class name and unit name.

In this class this simply returns Name.

Source: source/component/PasDoc_Items.pas (line 469).

Public function UnitRelativeQualifiedName: string; virtual;

This item is declared in ancestor TPasItem.

This item has no description.

Source: source/component/PasDoc_Items.pas (line 470).

Public procedure Sort(const SortSettings: TSortSettings); virtual;

This item is declared in ancestor TPasItem.

Sort items inside (recursively, so it sorts within the items too). E.g. in case of TPasUnit, we can sort variables, constants, CIOs in the unit, and then we call Sort(SortSettings) for every CIO.

Only the thigns listed in SortSettings will be sorted, the rest will be left unsorted.

Note that some things are never sorted, e.g. members of TPasEnum are never sorted (since their order affects the code logic, so we should not misrepresent it in the output doc).

Source: source/component/PasDoc_Items.pas (line 506).

Public procedure SetAttributes(var Value: TStringPairVector);

This item is declared in ancestor TPasItem.

This item has no description.

Source: source/component/PasDoc_Items.pas (line 553).

Public function InheritedItem: TPasItem; virtual;

This item is declared in ancestor TPasItem.

Get the closest item that this item inherits from.

Source: source/component/PasDoc_Items.pas (line 556).

Public function GetInheritedItemDescriptions: TStringPairVector; virtual;

This item is declared in ancestor TPasItem.

Generate a list of descriptions defined on this item in base classes.

This stops at the first class ancestor to have a description defined for an ancestor of this item. Along the way it will also collect descriptions of this item from any implemented interfaces.

If there is no description in any ancestor, it will return an empty vector.

Source: source/component/PasDoc_Items.pas (line 565).

Public function BasePath: string; override;

This item is declared in ancestor TPasItem.

This item has no description. Showing description inherited from TBaseItem.BasePath.

The full (absolute) path used to resolve filenames in this item's descriptions. Must always end with PathDelim. In this class, this simply returns GetCurrentDir (with PathDelim added if needed).

Source: source/component/PasDoc_Items.pas (line 567).

Public function HasOptionalInfo: boolean; virtual;

This item is declared in ancestor TPasItem.

Is optional information (that may be empty for after parsing unit and expanding tags) specified. Currently this checks Params and Raises and TPasRoutine.Returns.

Source: source/component/PasDoc_Items.pas (line 599).

Public function IsOverride: Boolean; virtual;

This item is declared in ancestor TPasItem.

Whether this item overrides an item in an ancestor.

Source: source/component/PasDoc_Items.pas (line 602).

Properties

Public property WasDeserialized: boolean read FWasDeserialized;

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 68).

Public property DetailedDescription: string read FDetailedDescription write FDetailedDescription;

This item is declared in ancestor TBaseItem.

Detailed description of this item.

In case of TPasItem, this is something more elaborate than TPasItem.AbstractDescription.

This is already in the form suitable for final output, ready to be put inside final documentation.

Source: source/component/PasDoc_Items.pas (line 274).

Public property RawDescription: string read GetRawDescription write WriteRawDescription;

This item is declared in ancestor TBaseItem.

This stores unexpanded version (as specified in user's comment in source code of parsed units) of description of this item.

Actually, this is just a shortcut to RawDescriptionInfo.Content

Source: source/component/PasDoc_Items.pas (line 283).

Public property FullLink: string read FFullLink write FFullLink;

This item is declared in ancestor TBaseItem.

a full link that should be enough to link this item from anywhere else

Source: source/component/PasDoc_Items.pas (line 299).

Public property LastMod: string read FLastMod write FLastMod;

This item is declared in ancestor TBaseItem.

Contains '' or string with date of last modification. This string is already in the form suitable for final output format (i.e. already processed by TDocGenerator.ConvertString).

Source: source/component/PasDoc_Items.pas (line 304).

Public property Name: string read FName write FName;

This item is declared in ancestor TBaseItem.

name of the item

Source: source/component/PasDoc_Items.pas (line 307).

Public property Authors: TStringVector read FAuthors write SetAuthors;

This item is declared in ancestor TBaseItem.

list of strings, each representing one author of this item

Source: source/component/PasDoc_Items.pas (line 318).

Public property Created: string read FCreated;

This item is declared in ancestor TBaseItem.

Contains '' or string with date of creation. This string is already in the form suitable for final output format (i.e. already processed by TDocGenerator.ConvertString).

Source: source/component/PasDoc_Items.pas (line 323).

Public property AutoLinkHereAllowed: boolean read FAutoLinkHereAllowed write FAutoLinkHereAllowed default true;

This item is declared in ancestor TBaseItem.

Is auto-link mechanism allowed to create link to this item ? This may be set to False by @noAutoLinkHere tag in item's description.

Source: source/component/PasDoc_Items.pas (line 327).

Public property AbstractDescription: string read FAbstractDescription write FAbstractDescription;

This item is declared in ancestor TPasItem.

Abstract description of this item. This is intended to be short (e.g. one sentence) description of this object.

This will be inited from @abstract tag in RawDescription, or cutted out from first sentence in RawDescription if --auto-abstract was used.

Note that this is already in the form suitable for final output, with tags expanded, chars converted etc.

Source: source/component/PasDoc_Items.pas (line 421).

Public property AbstractDescriptionWasAutomatic: boolean read FAbstractDescriptionWasAutomatic write FAbstractDescriptionWasAutomatic;

This item is declared in ancestor TPasItem.

TDocGenerator.ExpandDescriptions sets this property to true if AutoAbstract was used and AbstractDescription of this item was automatically deduced from the 1st sentence of RawDescription.

Otherwise (if @abstract was specified explicitly, or there was no @abstract and AutoAbstract was false) this is set to false.

This is a useful hint for generators: it tells them that when they are printing both AbstractDescription and DetailedDescription of the item in one place (e.g. TTexDocGenerator.WriteItemLongDescription and TGenericHTMLDocGenerator.WriteItemLongDescription both do this) then they should not put any additional space between AbstractDescription and DetailedDescription.

This way when user will specify description like

{ First sentence. Second sentence. }
procedure Foo;

and --auto-abstract was on, then "First sentence." is the AbstractDescription, " Second sentence." is DetailedDescription, AbstractDescriptionWasAutomatic is true and and TGenericHTMLDocGenerator.WriteItemLongDescription can print them as "First sentence. Second sentence."

Without this property, TGenericHTMLDocGenerator.WriteItemLongDescription would not be able to say that this abstract was deduced automatically and would print additional paragraph break that was not present in desscription, i.e. "First sentence.<p> Second sentence."

Source: source/component/PasDoc_Items.pas (line 458).

Public property MyUnit: TPasUnit read FMyUnit write FMyUnit;

This item is declared in ancestor TPasItem.

Unit of this item.

Source: source/component/PasDoc_Items.pas (line 473).

Public property MyObject: TPasCio read FMyObject write FMyObject;

This item is declared in ancestor TPasItem.

If this item is part of a class (or record, object., interface...), the corresponding class is stored here. Nil otherwise.

Source: source/component/PasDoc_Items.pas (line 477).

Public property MyEnum: TPasEnum read FMyEnum write FMyEnum;

This item is declared in ancestor TPasItem.

If this item is a member of an enumerated type, then the enclosing enumerated type is stored here. Nil otherwise.

Source: source/component/PasDoc_Items.pas (line 481).

Public property Visibility: TVisibility read FVisibility write FVisibility;

This item is declared in ancestor TPasItem.

This item has no description.

Source: source/component/PasDoc_Items.pas (line 483).

Public property HintDirectives: THintDirectives read FHintDirectives write FHintDirectives;

This item is declared in ancestor TPasItem.

Hint directives specify is this item deprecated, platform-specific, library-specific, experimental, or unimplemented.

Source: source/component/PasDoc_Items.pas (line 487).

Public property DeprecatedNote: string read FDeprecatedNote write FDeprecatedNote;

This item is declared in ancestor TPasItem.

Deprecation note, specified as a string after "deprecated" directive. Empty if none, always empty if HintDirectives does not contain hdDeprecated.

Source: source/component/PasDoc_Items.pas (line 492).

Public property FullDeclaration: string read FFullDeclaration write FFullDeclaration;

This item is declared in ancestor TPasItem.

Full declaration of the item, similar to how it appears in the Pascal source code.

Note that that this is not used for some descendants. Right now it's used only with

  • TPasConstant

  • TPasFieldVariable (includes type, default values, etc.)

  • TPasType

  • TPasRoutine (includes parameter list, procedural directives, etc.)

  • TPasProperty (includes read/write and storage specifiers, etc.)

  • TPasEnum

    But in this special case, '...' is used instead of listing individual members, e.g. 'TEnumName = (...)'. You can get list of Members using TPasEnum.Members. Eventual specifics of each member should be also specified somewhere inside Members items, e.g.

    TMyEnum = (meOne, meTwo = 3);

    and

    TMyEnum = (meOne, meTwo);

    will both result in TPasEnum with equal FullDeclaration (just 'TMyEnum = (...)') but this '= 3' should be marked somewhere inside Members[1] properties.

  • TPasItem when it's a CIO's field.

The intention is that in the future all TPasItem descendants will always have appropriate FullDeclaration set. It all requires adjusting appropriate places in PasDoc_Parser to generate appropriate FullDeclaration.

Source: source/component/PasDoc_Items.pas (line 543).

Public property SeeAlso: TStringPairVector read FSeeAlso;

This item is declared in ancestor TPasItem.

Items here are collected from @seealso tags.

Name of each item is the 1st part of @seealso parameter. Value is the 2nd part of @seealso parameter.

Source: source/component/PasDoc_Items.pas (line 549).

Public property Attributes: TStringPairVector read FAttributes;

This item is declared in ancestor TPasItem.

List of attributes defined for this item

Source: source/component/PasDoc_Items.pas (line 552).

Public property Params: TStringPairVector read FParams;

This item is declared in ancestor TPasItem.

Parameters of method or property.

Name of each item is the name of parameter (without any surrounding whitespace), Value of each item is users description for this item (in already-expanded form).

This is already in the form processed by TTagManager.Execute, i.e. with links resolved, html characters escaped etc. So don't convert them (e.g. before writing to the final docs) once again (by some ExpandDescription or ConvertString or anything like that).

Source: source/component/PasDoc_Items.pas (line 580).

Public property Raises: TStringPairVector read FRaises;

This item is declared in ancestor TPasItem.

Exceptions raised by the method, or by property getter/setter.

Name of each item is the name of exception class (without any surrounding whitespace), Value of each item is users description for this item (in already-expanded form).

This is already in the form processed by TTagManager.Execute, i.e. with links resolved, html characters escaped etc. So don't convert them (e.g. before writing to the final docs) once again (by some ExpandDescription or ConvertString or anything like that).

Source: source/component/PasDoc_Items.pas (line 593).

Public property SourceAbsoluteFileName: string read FSourceAbsoluteFileName write FSourceAbsoluteFileName;

This item is declared in ancestor TPasItem.

Source (absolute) file name where this item is declared. Set by the parser when parsing the item's declaration.

Source: source/component/PasDoc_Items.pas (line 606).

Public property SourceLine: Integer read FSourceLine write FSourceLine;

This item is declared in ancestor TPasItem.

Source line number (1-based) where this item is declared. Set by the parser when parsing the item's declaration.

Source: source/component/PasDoc_Items.pas (line 611).


PasDoc's autodoc: PasDoc_Items: Class TPasFieldVariable

Class TPasFieldVariable

Description
Hierarchy
Methods
Properties

Unit

PasDoc_Items

Declaration

type TPasFieldVariable = class(TPasItem)

Description

Global variable or a field in CIO.

Source: source/component/PasDoc_Items.pas (line 626).

Hierarchy

  • TObject
  • TSerializable
  • TBaseItem
  • TPasItem
  • TPasFieldVariable
Show Additional Members:

Overview

Methods

Public | class function Read7BitEncodedInt(const ASource: TStream): Integer;
Public | class procedure Write7BitEncodedInt(Value: Integer; const ADestination: TStream);
Public | class function LoadStringFromStream(const ASource: TStream): string;
Public | class procedure SaveStringToStream(const AValue: string; const ADestination: TStream);
Public | class function LoadDoubleFromStream(const ASource: TStream): double;
Public | class procedure SaveDoubleToStream(const AValue: double; const ADestination: TStream);
Public | class function LoadIntegerFromStream(const ASource: TStream): Longint;
Public | class procedure SaveIntegerToStream(const AValue: Longint; const ADestination: TStream);
Public | class procedure SerializeObject(const AObject: TSerializable; const ADestination: TStream);
Public | class function DeserializeObject(const ASource: TStream): TSerializable;
Public | class procedure Register(const AClass: TSerializableClass);
Public | procedure SerializeToFile(const AFileName: string);
Public | class function DeserializeFromFile(const AFileName: string): TSerializable;
Public | function FindItem(const NameParts: TNameParts): TBaseItem; virtual;
Public | function FindItemMaybeInAncestors(const NameParts: TNameParts): TBaseItem; virtual;
Public | function RawDescriptionInfo: PRawDescriptionInfo;
Public | function Signature: string; virtual;
Protected | procedure Serialize(const ADestination: TStream); override;
Protected | procedure Deserialize(const ASource: TStream); override;
Protected | function FindNameWithinUnit(const NameParts: TNameParts): TBaseItem; virtual;
Public | constructor Create; override;
Public | destructor Destroy; override;
Public | function FindName(const NameParts: TNameParts): TBaseItem; override;
Public | procedure RegisterTags(TagManager: TTagManager); override;
Public | function MyUnitName: String;
Public | function HasDescription: Boolean;
Public | function HasRawDescription: Boolean;
Public | function QualifiedName: String; override;
Public | function UnitRelativeQualifiedName: string; virtual;
Public | procedure Sort(const SortSettings: TSortSettings); virtual;
Public | procedure SetAttributes(var Value: TStringPairVector);
Public | function InheritedItem: TPasItem; virtual;
Public | function GetInheritedItemDescriptions: TStringPairVector; virtual;
Public | function BasePath: string; override;
Public | function HasOptionalInfo: boolean; virtual;
Public | function IsOverride: Boolean; virtual;

Properties

Public | property WasDeserialized: boolean read FWasDeserialized;
Public | property DetailedDescription: string read FDetailedDescription write FDetailedDescription;
Public | property RawDescription: string read GetRawDescription write WriteRawDescription;
Public | property FullLink: string read FFullLink write FFullLink;
Public | property LastMod: string read FLastMod write FLastMod;
Public | property Name: string read FName write FName;
Public | property Authors: TStringVector read FAuthors write SetAuthors;
Public | property Created: string read FCreated;
Public | property AutoLinkHereAllowed: boolean read FAutoLinkHereAllowed write FAutoLinkHereAllowed default true;
Public | property AbstractDescription: string read FAbstractDescription write FAbstractDescription;
Public | property AbstractDescriptionWasAutomatic: boolean read FAbstractDescriptionWasAutomatic write FAbstractDescriptionWasAutomatic;
Public | property MyUnit: TPasUnit read FMyUnit write FMyUnit;
Public | property MyObject: TPasCio read FMyObject write FMyObject;
Public | property MyEnum: TPasEnum read FMyEnum write FMyEnum;
Public | property Visibility: TVisibility read FVisibility write FVisibility;
Public | property HintDirectives: THintDirectives read FHintDirectives write FHintDirectives;
Public | property DeprecatedNote: string read FDeprecatedNote write FDeprecatedNote;
Public | property FullDeclaration: string read FFullDeclaration write FFullDeclaration;
Public | property SeeAlso: TStringPairVector read FSeeAlso;
Public | property Attributes: TStringPairVector read FAttributes;
Public | property Params: TStringPairVector read FParams;
Public | property Raises: TStringPairVector read FRaises;
Public | property SourceAbsoluteFileName: string read FSourceAbsoluteFileName write FSourceAbsoluteFileName;
Public | property SourceLine: Integer read FSourceLine write FSourceLine;

Description

Methods

Public class function Read7BitEncodedInt(const ASource: TStream): Integer;

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 49).

Public class procedure Write7BitEncodedInt(Value: Integer; const ADestination: TStream);

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 50).

Public class function LoadStringFromStream(const ASource: TStream): string;

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 52).

Public class procedure SaveStringToStream(const AValue: string; const ADestination: TStream);

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 53).

Public class function LoadDoubleFromStream(const ASource: TStream): double;

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 54).

Public class procedure SaveDoubleToStream(const AValue: double; const ADestination: TStream);

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 55).

Public class function LoadIntegerFromStream(const ASource: TStream): Longint;

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 56).

Public class procedure SaveIntegerToStream(const AValue: Longint; const ADestination: TStream);

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 57).

Public class procedure SerializeObject(const AObject: TSerializable; const ADestination: TStream);

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 60).

Public class function DeserializeObject(const ASource: TStream): TSerializable;

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 61).

Public class procedure Register(const AClass: TSerializableClass);

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 62).

Public procedure SerializeToFile(const AFileName: string);

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 63).

Public class function DeserializeFromFile(const AFileName: string): TSerializable;

This item is declared in ancestor TSerializable.

Read back from file.

Exceptions raised
EInvalidCacheFileVersion
When the cached file contents are from an old pasdoc version (or invalid).

Source: source/component/PasDoc_Serialize.pas (line 67).

Public function FindItem(const NameParts: TNameParts): TBaseItem; virtual;

This item is declared in ancestor TBaseItem.

Search for an item with name NameParts inside this Pascal item. For units, it searches for items declared inside this unit (like a procedure, or a class in this unit). For classes it searches for items declared within this class (like a method or a property). For an enumerated type, it searches for members of this enumerated type.

All normal rules of ObjectPascal scope apply, which means that e.g. classes have their separate namespace. When searching for Foo from the unit level, we do not "look into" class namespaces.

Returns nil if not found.

Note that it never compares NameParts with Self.Name. You may want to check this yourself if you want.

Note that for TPasItem descendants, it always returns also some TPasItem descendant (so if you use this method with some TPasItem instance, you can safely cast result of this method to TPasItem).

Implementation in this class always returns nil. Override as necessary.

Source: source/component/PasDoc_Items.pas (line 249).

Public function FindItemMaybeInAncestors(const NameParts: TNameParts): TBaseItem; virtual;

This item is declared in ancestor TBaseItem.

This is just like FindItem, but in case of classes or such it should also search within ancestors. In this class, the default implementation just calls FindItem.

Source: source/component/PasDoc_Items.pas (line 254).

Public function RawDescriptionInfo: PRawDescriptionInfo;

This item is declared in ancestor TBaseItem.

Full info about RawDescription of this item, including it's filename and position.

This is intended to be initialized by parser.

This returns PRawDescriptionInfo instead of just TRawDescriptionInfo to allow natural setting of properties of this record (otherwise

Item.RawDescriptionInfo.StreamName := 'foo';

would not work as expected) .

Source: source/component/PasDoc_Items.pas (line 296).

Public function Signature: string; virtual;

This item is declared in ancestor TBaseItem.

Just like Name but optionally with added routine parameter types, to be unique when overloading is used. For example, for routines it may be like MyMethod(String) or MyMethod(Integer).

Source: source/component/PasDoc_Items.pas (line 339).

Protected procedure Serialize(const ADestination: TStream); override;

This item is declared in ancestor TPasItem.

This item has no description. Showing description inherited from TBaseItem.Serialize.

Serialization of TPasItem need to store in stream only data that is generated by parser. That's because current approach treats "loading from cache" as equivalent to parsing a unit and stores to cache right after parsing a unit. So what is generated by parser must be written to cache.

That said,

  1. It will not break anything if you will accidentally store in cache something that is not generated by parser. That's because saving to cache will be done anyway right after doing parsing, so properties not initialized by parser will have their initial values anyway. You're just wasting memory for cache, and some cache saving/loading time.

  2. For now, in implementation of serialize/deserialize we try to add even things not generated by parser in a commented out code. This way if approach to cache will change some day, we will be able to use this code.

Source: source/component/PasDoc_Items.pas (line 390).

Protected procedure Deserialize(const ASource: TStream); override;

This item is declared in ancestor TPasItem.

This item has no description.

Source: source/component/PasDoc_Items.pas (line 391).

Protected function FindNameWithinUnit(const NameParts: TNameParts): TBaseItem; virtual;

This item is declared in ancestor TPasItem.

This does the same thing as FindName but it doesn't scan other units. If this item is a unit, it searches only inside this unit, else it searches only inside MyUnit unit.

Actually FindName uses this function.

Source: source/component/PasDoc_Items.pas (line 399).

Public constructor Create; override;

This item is declared in ancestor TPasItem.

This item has no description.

Source: source/component/PasDoc_Items.pas (line 401).

Public destructor Destroy; override;

This item is declared in ancestor TPasItem.

This item has no description.

Source: source/component/PasDoc_Items.pas (line 402).

Public function FindName(const NameParts: TNameParts): TBaseItem; override;

This item is declared in ancestor TPasItem.

This item has no description. Showing description inherited from TBaseItem.FindName.

Do all you can to find link specified by NameParts.

While searching this tries to mimic ObjectPascal identifier scope as much as it can. It seaches within this item, but also within class enclosing this item, within ancestors of this class, within unit enclosing this item, then within units used by unit of this item.

Source: source/component/PasDoc_Items.pas (line 404).

Public procedure RegisterTags(TagManager: TTagManager); override;

This item is declared in ancestor TPasItem.

This item has no description. Showing description inherited from TBaseItem.RegisterTags.

It registers TTags that init Authors, Created, LastMod and remove relevant tags from description. You can override it to add more handlers.

Source: source/component/PasDoc_Items.pas (line 406).

Public function MyUnitName: String;

This item is declared in ancestor TPasItem.

Name MyUnit or empty string if MyUnit is nil.

Source: source/component/PasDoc_Items.pas (line 409).

Public function HasDescription: Boolean;

This item is declared in ancestor TPasItem.

Returns true if there is a DetailedDescription or AbstractDescription available.

Source: source/component/PasDoc_Items.pas (line 464).

Public function HasRawDescription: Boolean;

This item is declared in ancestor TPasItem.

Is RawDescription not empty.

Source: source/component/PasDoc_Items.pas (line 467).

Public function QualifiedName: String; override;

This item is declared in ancestor TPasItem.

This item has no description. Showing description inherited from TBaseItem.QualifiedName.

Returns the qualified name of the item. This is intended to return a concise and not ambigous name. E.g. in case of TPasItem it is overridden to return Name qualified by class name and unit name.

In this class this simply returns Name.

Source: source/component/PasDoc_Items.pas (line 469).

Public function UnitRelativeQualifiedName: string; virtual;

This item is declared in ancestor TPasItem.

This item has no description.

Source: source/component/PasDoc_Items.pas (line 470).

Public procedure Sort(const SortSettings: TSortSettings); virtual;

This item is declared in ancestor TPasItem.

Sort items inside (recursively, so it sorts within the items too). E.g. in case of TPasUnit, we can sort variables, constants, CIOs in the unit, and then we call Sort(SortSettings) for every CIO.

Only the thigns listed in SortSettings will be sorted, the rest will be left unsorted.

Note that some things are never sorted, e.g. members of TPasEnum are never sorted (since their order affects the code logic, so we should not misrepresent it in the output doc).

Source: source/component/PasDoc_Items.pas (line 506).

Public procedure SetAttributes(var Value: TStringPairVector);

This item is declared in ancestor TPasItem.

This item has no description.

Source: source/component/PasDoc_Items.pas (line 553).

Public function InheritedItem: TPasItem; virtual;

This item is declared in ancestor TPasItem.

Get the closest item that this item inherits from.

Source: source/component/PasDoc_Items.pas (line 556).

Public function GetInheritedItemDescriptions: TStringPairVector; virtual;

This item is declared in ancestor TPasItem.

Generate a list of descriptions defined on this item in base classes.

This stops at the first class ancestor to have a description defined for an ancestor of this item. Along the way it will also collect descriptions of this item from any implemented interfaces.

If there is no description in any ancestor, it will return an empty vector.

Source: source/component/PasDoc_Items.pas (line 565).

Public function BasePath: string; override;

This item is declared in ancestor TPasItem.

This item has no description. Showing description inherited from TBaseItem.BasePath.

The full (absolute) path used to resolve filenames in this item's descriptions. Must always end with PathDelim. In this class, this simply returns GetCurrentDir (with PathDelim added if needed).

Source: source/component/PasDoc_Items.pas (line 567).

Public function HasOptionalInfo: boolean; virtual;

This item is declared in ancestor TPasItem.

Is optional information (that may be empty for after parsing unit and expanding tags) specified. Currently this checks Params and Raises and TPasRoutine.Returns.

Source: source/component/PasDoc_Items.pas (line 599).

Public function IsOverride: Boolean; virtual;

This item is declared in ancestor TPasItem.

Whether this item overrides an item in an ancestor.

Source: source/component/PasDoc_Items.pas (line 602).

Properties

Public property WasDeserialized: boolean read FWasDeserialized;

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 68).

Public property DetailedDescription: string read FDetailedDescription write FDetailedDescription;

This item is declared in ancestor TBaseItem.

Detailed description of this item.

In case of TPasItem, this is something more elaborate than TPasItem.AbstractDescription.

This is already in the form suitable for final output, ready to be put inside final documentation.

Source: source/component/PasDoc_Items.pas (line 274).

Public property RawDescription: string read GetRawDescription write WriteRawDescription;

This item is declared in ancestor TBaseItem.

This stores unexpanded version (as specified in user's comment in source code of parsed units) of description of this item.

Actually, this is just a shortcut to RawDescriptionInfo.Content

Source: source/component/PasDoc_Items.pas (line 283).

Public property FullLink: string read FFullLink write FFullLink;

This item is declared in ancestor TBaseItem.

a full link that should be enough to link this item from anywhere else

Source: source/component/PasDoc_Items.pas (line 299).

Public property LastMod: string read FLastMod write FLastMod;

This item is declared in ancestor TBaseItem.

Contains '' or string with date of last modification. This string is already in the form suitable for final output format (i.e. already processed by TDocGenerator.ConvertString).

Source: source/component/PasDoc_Items.pas (line 304).

Public property Name: string read FName write FName;

This item is declared in ancestor TBaseItem.

name of the item

Source: source/component/PasDoc_Items.pas (line 307).

Public property Authors: TStringVector read FAuthors write SetAuthors;

This item is declared in ancestor TBaseItem.

list of strings, each representing one author of this item

Source: source/component/PasDoc_Items.pas (line 318).

Public property Created: string read FCreated;

This item is declared in ancestor TBaseItem.

Contains '' or string with date of creation. This string is already in the form suitable for final output format (i.e. already processed by TDocGenerator.ConvertString).

Source: source/component/PasDoc_Items.pas (line 323).

Public property AutoLinkHereAllowed: boolean read FAutoLinkHereAllowed write FAutoLinkHereAllowed default true;

This item is declared in ancestor TBaseItem.

Is auto-link mechanism allowed to create link to this item ? This may be set to False by @noAutoLinkHere tag in item's description.

Source: source/component/PasDoc_Items.pas (line 327).

Public property AbstractDescription: string read FAbstractDescription write FAbstractDescription;

This item is declared in ancestor TPasItem.

Abstract description of this item. This is intended to be short (e.g. one sentence) description of this object.

This will be inited from @abstract tag in RawDescription, or cutted out from first sentence in RawDescription if --auto-abstract was used.

Note that this is already in the form suitable for final output, with tags expanded, chars converted etc.

Source: source/component/PasDoc_Items.pas (line 421).

Public property AbstractDescriptionWasAutomatic: boolean read FAbstractDescriptionWasAutomatic write FAbstractDescriptionWasAutomatic;

This item is declared in ancestor TPasItem.

TDocGenerator.ExpandDescriptions sets this property to true if AutoAbstract was used and AbstractDescription of this item was automatically deduced from the 1st sentence of RawDescription.

Otherwise (if @abstract was specified explicitly, or there was no @abstract and AutoAbstract was false) this is set to false.

This is a useful hint for generators: it tells them that when they are printing both AbstractDescription and DetailedDescription of the item in one place (e.g. TTexDocGenerator.WriteItemLongDescription and TGenericHTMLDocGenerator.WriteItemLongDescription both do this) then they should not put any additional space between AbstractDescription and DetailedDescription.

This way when user will specify description like

{ First sentence. Second sentence. }
procedure Foo;

and --auto-abstract was on, then "First sentence." is the AbstractDescription, " Second sentence." is DetailedDescription, AbstractDescriptionWasAutomatic is true and and TGenericHTMLDocGenerator.WriteItemLongDescription can print them as "First sentence. Second sentence."

Without this property, TGenericHTMLDocGenerator.WriteItemLongDescription would not be able to say that this abstract was deduced automatically and would print additional paragraph break that was not present in desscription, i.e. "First sentence.<p> Second sentence."

Source: source/component/PasDoc_Items.pas (line 458).

Public property MyUnit: TPasUnit read FMyUnit write FMyUnit;

This item is declared in ancestor TPasItem.

Unit of this item.

Source: source/component/PasDoc_Items.pas (line 473).

Public property MyObject: TPasCio read FMyObject write FMyObject;

This item is declared in ancestor TPasItem.

If this item is part of a class (or record, object., interface...), the corresponding class is stored here. Nil otherwise.

Source: source/component/PasDoc_Items.pas (line 477).

Public property MyEnum: TPasEnum read FMyEnum write FMyEnum;

This item is declared in ancestor TPasItem.

If this item is a member of an enumerated type, then the enclosing enumerated type is stored here. Nil otherwise.

Source: source/component/PasDoc_Items.pas (line 481).

Public property Visibility: TVisibility read FVisibility write FVisibility;

This item is declared in ancestor TPasItem.

This item has no description.

Source: source/component/PasDoc_Items.pas (line 483).

Public property HintDirectives: THintDirectives read FHintDirectives write FHintDirectives;

This item is declared in ancestor TPasItem.

Hint directives specify is this item deprecated, platform-specific, library-specific, experimental, or unimplemented.

Source: source/component/PasDoc_Items.pas (line 487).

Public property DeprecatedNote: string read FDeprecatedNote write FDeprecatedNote;

This item is declared in ancestor TPasItem.

Deprecation note, specified as a string after "deprecated" directive. Empty if none, always empty if HintDirectives does not contain hdDeprecated.

Source: source/component/PasDoc_Items.pas (line 492).

Public property FullDeclaration: string read FFullDeclaration write FFullDeclaration;

This item is declared in ancestor TPasItem.

Full declaration of the item, similar to how it appears in the Pascal source code.

Note that that this is not used for some descendants. Right now it's used only with

  • TPasConstant

  • TPasFieldVariable (includes type, default values, etc.)

  • TPasType

  • TPasRoutine (includes parameter list, procedural directives, etc.)

  • TPasProperty (includes read/write and storage specifiers, etc.)

  • TPasEnum

    But in this special case, '...' is used instead of listing individual members, e.g. 'TEnumName = (...)'. You can get list of Members using TPasEnum.Members. Eventual specifics of each member should be also specified somewhere inside Members items, e.g.

    TMyEnum = (meOne, meTwo = 3);

    and

    TMyEnum = (meOne, meTwo);

    will both result in TPasEnum with equal FullDeclaration (just 'TMyEnum = (...)') but this '= 3' should be marked somewhere inside Members[1] properties.

  • TPasItem when it's a CIO's field.

The intention is that in the future all TPasItem descendants will always have appropriate FullDeclaration set. It all requires adjusting appropriate places in PasDoc_Parser to generate appropriate FullDeclaration.

Source: source/component/PasDoc_Items.pas (line 543).

Public property SeeAlso: TStringPairVector read FSeeAlso;

This item is declared in ancestor TPasItem.

Items here are collected from @seealso tags.

Name of each item is the 1st part of @seealso parameter. Value is the 2nd part of @seealso parameter.

Source: source/component/PasDoc_Items.pas (line 549).

Public property Attributes: TStringPairVector read FAttributes;

This item is declared in ancestor TPasItem.

List of attributes defined for this item

Source: source/component/PasDoc_Items.pas (line 552).

Public property Params: TStringPairVector read FParams;

This item is declared in ancestor TPasItem.

Parameters of method or property.

Name of each item is the name of parameter (without any surrounding whitespace), Value of each item is users description for this item (in already-expanded form).

This is already in the form processed by TTagManager.Execute, i.e. with links resolved, html characters escaped etc. So don't convert them (e.g. before writing to the final docs) once again (by some ExpandDescription or ConvertString or anything like that).

Source: source/component/PasDoc_Items.pas (line 580).

Public property Raises: TStringPairVector read FRaises;

This item is declared in ancestor TPasItem.

Exceptions raised by the method, or by property getter/setter.

Name of each item is the name of exception class (without any surrounding whitespace), Value of each item is users description for this item (in already-expanded form).

This is already in the form processed by TTagManager.Execute, i.e. with links resolved, html characters escaped etc. So don't convert them (e.g. before writing to the final docs) once again (by some ExpandDescription or ConvertString or anything like that).

Source: source/component/PasDoc_Items.pas (line 593).

Public property SourceAbsoluteFileName: string read FSourceAbsoluteFileName write FSourceAbsoluteFileName;

This item is declared in ancestor TPasItem.

Source (absolute) file name where this item is declared. Set by the parser when parsing the item's declaration.

Source: source/component/PasDoc_Items.pas (line 606).

Public property SourceLine: Integer read FSourceLine write FSourceLine;

This item is declared in ancestor TPasItem.

Source line number (1-based) where this item is declared. Set by the parser when parsing the item's declaration.

Source: source/component/PasDoc_Items.pas (line 611).


PasDoc's autodoc: PasDoc_Items: Class TPasType

Class TPasType

Description
Hierarchy
Methods
Properties

Unit

PasDoc_Items

Declaration

type TPasType = class(TPasItem)

Description

Pascal type (but not a procedural type — these are expressed as TPasRoutine.)

Source: source/component/PasDoc_Items.pas (line 631).

Hierarchy

  • TObject
  • TSerializable
  • TBaseItem
  • TPasItem
  • TPasType
Show Additional Members:

Overview

Methods

Public | class function Read7BitEncodedInt(const ASource: TStream): Integer;
Public | class procedure Write7BitEncodedInt(Value: Integer; const ADestination: TStream);
Public | class function LoadStringFromStream(const ASource: TStream): string;
Public | class procedure SaveStringToStream(const AValue: string; const ADestination: TStream);
Public | class function LoadDoubleFromStream(const ASource: TStream): double;
Public | class procedure SaveDoubleToStream(const AValue: double; const ADestination: TStream);
Public | class function LoadIntegerFromStream(const ASource: TStream): Longint;
Public | class procedure SaveIntegerToStream(const AValue: Longint; const ADestination: TStream);
Public | class procedure SerializeObject(const AObject: TSerializable; const ADestination: TStream);
Public | class function DeserializeObject(const ASource: TStream): TSerializable;
Public | class procedure Register(const AClass: TSerializableClass);
Public | procedure SerializeToFile(const AFileName: string);
Public | class function DeserializeFromFile(const AFileName: string): TSerializable;
Public | function FindItem(const NameParts: TNameParts): TBaseItem; virtual;
Public | function FindItemMaybeInAncestors(const NameParts: TNameParts): TBaseItem; virtual;
Public | function RawDescriptionInfo: PRawDescriptionInfo;
Public | function Signature: string; virtual;
Protected | procedure Serialize(const ADestination: TStream); override;
Protected | procedure Deserialize(const ASource: TStream); override;
Protected | function FindNameWithinUnit(const NameParts: TNameParts): TBaseItem; virtual;
Public | constructor Create; override;
Public | destructor Destroy; override;
Public | function FindName(const NameParts: TNameParts): TBaseItem; override;
Public | procedure RegisterTags(TagManager: TTagManager); override;
Public | function MyUnitName: String;
Public | function HasDescription: Boolean;
Public | function HasRawDescription: Boolean;
Public | function QualifiedName: String; override;
Public | function UnitRelativeQualifiedName: string; virtual;
Public | procedure Sort(const SortSettings: TSortSettings); virtual;
Public | procedure SetAttributes(var Value: TStringPairVector);
Public | function InheritedItem: TPasItem; virtual;
Public | function GetInheritedItemDescriptions: TStringPairVector; virtual;
Public | function BasePath: string; override;
Public | function HasOptionalInfo: boolean; virtual;
Public | function IsOverride: Boolean; virtual;

Properties

Public | property WasDeserialized: boolean read FWasDeserialized;
Public | property DetailedDescription: string read FDetailedDescription write FDetailedDescription;
Public | property RawDescription: string read GetRawDescription write WriteRawDescription;
Public | property FullLink: string read FFullLink write FFullLink;
Public | property LastMod: string read FLastMod write FLastMod;
Public | property Name: string read FName write FName;
Public | property Authors: TStringVector read FAuthors write SetAuthors;
Public | property Created: string read FCreated;
Public | property AutoLinkHereAllowed: boolean read FAutoLinkHereAllowed write FAutoLinkHereAllowed default true;
Public | property AbstractDescription: string read FAbstractDescription write FAbstractDescription;
Public | property AbstractDescriptionWasAutomatic: boolean read FAbstractDescriptionWasAutomatic write FAbstractDescriptionWasAutomatic;
Public | property MyUnit: TPasUnit read FMyUnit write FMyUnit;
Public | property MyObject: TPasCio read FMyObject write FMyObject;
Public | property MyEnum: TPasEnum read FMyEnum write FMyEnum;
Public | property Visibility: TVisibility read FVisibility write FVisibility;
Public | property HintDirectives: THintDirectives read FHintDirectives write FHintDirectives;
Public | property DeprecatedNote: string read FDeprecatedNote write FDeprecatedNote;
Public | property FullDeclaration: string read FFullDeclaration write FFullDeclaration;
Public | property SeeAlso: TStringPairVector read FSeeAlso;
Public | property Attributes: TStringPairVector read FAttributes;
Public | property Params: TStringPairVector read FParams;
Public | property Raises: TStringPairVector read FRaises;
Public | property SourceAbsoluteFileName: string read FSourceAbsoluteFileName write FSourceAbsoluteFileName;
Public | property SourceLine: Integer read FSourceLine write FSourceLine;

Description

Methods

Public class function Read7BitEncodedInt(const ASource: TStream): Integer;

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 49).

Public class procedure Write7BitEncodedInt(Value: Integer; const ADestination: TStream);

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 50).

Public class function LoadStringFromStream(const ASource: TStream): string;

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 52).

Public class procedure SaveStringToStream(const AValue: string; const ADestination: TStream);

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 53).

Public class function LoadDoubleFromStream(const ASource: TStream): double;

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 54).

Public class procedure SaveDoubleToStream(const AValue: double; const ADestination: TStream);

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 55).

Public class function LoadIntegerFromStream(const ASource: TStream): Longint;

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 56).

Public class procedure SaveIntegerToStream(const AValue: Longint; const ADestination: TStream);

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 57).

Public class procedure SerializeObject(const AObject: TSerializable; const ADestination: TStream);

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 60).

Public class function DeserializeObject(const ASource: TStream): TSerializable;

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 61).

Public class procedure Register(const AClass: TSerializableClass);

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 62).

Public procedure SerializeToFile(const AFileName: string);

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 63).

Public class function DeserializeFromFile(const AFileName: string): TSerializable;

This item is declared in ancestor TSerializable.

Read back from file.

Exceptions raised
EInvalidCacheFileVersion
When the cached file contents are from an old pasdoc version (or invalid).

Source: source/component/PasDoc_Serialize.pas (line 67).

Public function FindItem(const NameParts: TNameParts): TBaseItem; virtual;

This item is declared in ancestor TBaseItem.

Search for an item with name NameParts inside this Pascal item. For units, it searches for items declared inside this unit (like a procedure, or a class in this unit). For classes it searches for items declared within this class (like a method or a property). For an enumerated type, it searches for members of this enumerated type.

All normal rules of ObjectPascal scope apply, which means that e.g. classes have their separate namespace. When searching for Foo from the unit level, we do not "look into" class namespaces.

Returns nil if not found.

Note that it never compares NameParts with Self.Name. You may want to check this yourself if you want.

Note that for TPasItem descendants, it always returns also some TPasItem descendant (so if you use this method with some TPasItem instance, you can safely cast result of this method to TPasItem).

Implementation in this class always returns nil. Override as necessary.

Source: source/component/PasDoc_Items.pas (line 249).

Public function FindItemMaybeInAncestors(const NameParts: TNameParts): TBaseItem; virtual;

This item is declared in ancestor TBaseItem.

This is just like FindItem, but in case of classes or such it should also search within ancestors. In this class, the default implementation just calls FindItem.

Source: source/component/PasDoc_Items.pas (line 254).

Public function RawDescriptionInfo: PRawDescriptionInfo;

This item is declared in ancestor TBaseItem.

Full info about RawDescription of this item, including it's filename and position.

This is intended to be initialized by parser.

This returns PRawDescriptionInfo instead of just TRawDescriptionInfo to allow natural setting of properties of this record (otherwise

Item.RawDescriptionInfo.StreamName := 'foo';

would not work as expected) .

Source: source/component/PasDoc_Items.pas (line 296).

Public function Signature: string; virtual;

This item is declared in ancestor TBaseItem.

Just like Name but optionally with added routine parameter types, to be unique when overloading is used. For example, for routines it may be like MyMethod(String) or MyMethod(Integer).

Source: source/component/PasDoc_Items.pas (line 339).

Protected procedure Serialize(const ADestination: TStream); override;

This item is declared in ancestor TPasItem.

This item has no description. Showing description inherited from TBaseItem.Serialize.

Serialization of TPasItem need to store in stream only data that is generated by parser. That's because current approach treats "loading from cache" as equivalent to parsing a unit and stores to cache right after parsing a unit. So what is generated by parser must be written to cache.

That said,

  1. It will not break anything if you will accidentally store in cache something that is not generated by parser. That's because saving to cache will be done anyway right after doing parsing, so properties not initialized by parser will have their initial values anyway. You're just wasting memory for cache, and some cache saving/loading time.

  2. For now, in implementation of serialize/deserialize we try to add even things not generated by parser in a commented out code. This way if approach to cache will change some day, we will be able to use this code.

Source: source/component/PasDoc_Items.pas (line 390).

Protected procedure Deserialize(const ASource: TStream); override;

This item is declared in ancestor TPasItem.

This item has no description.

Source: source/component/PasDoc_Items.pas (line 391).

Protected function FindNameWithinUnit(const NameParts: TNameParts): TBaseItem; virtual;

This item is declared in ancestor TPasItem.

This does the same thing as FindName but it doesn't scan other units. If this item is a unit, it searches only inside this unit, else it searches only inside MyUnit unit.

Actually FindName uses this function.

Source: source/component/PasDoc_Items.pas (line 399).

Public constructor Create; override;

This item is declared in ancestor TPasItem.

This item has no description.

Source: source/component/PasDoc_Items.pas (line 401).

Public destructor Destroy; override;

This item is declared in ancestor TPasItem.

This item has no description.

Source: source/component/PasDoc_Items.pas (line 402).

Public function FindName(const NameParts: TNameParts): TBaseItem; override;

This item is declared in ancestor TPasItem.

This item has no description. Showing description inherited from TBaseItem.FindName.

Do all you can to find link specified by NameParts.

While searching this tries to mimic ObjectPascal identifier scope as much as it can. It seaches within this item, but also within class enclosing this item, within ancestors of this class, within unit enclosing this item, then within units used by unit of this item.

Source: source/component/PasDoc_Items.pas (line 404).

Public procedure RegisterTags(TagManager: TTagManager); override;

This item is declared in ancestor TPasItem.

This item has no description. Showing description inherited from TBaseItem.RegisterTags.

It registers TTags that init Authors, Created, LastMod and remove relevant tags from description. You can override it to add more handlers.

Source: source/component/PasDoc_Items.pas (line 406).

Public function MyUnitName: String;

This item is declared in ancestor TPasItem.

Name MyUnit or empty string if MyUnit is nil.

Source: source/component/PasDoc_Items.pas (line 409).

Public function HasDescription: Boolean;

This item is declared in ancestor TPasItem.

Returns true if there is a DetailedDescription or AbstractDescription available.

Source: source/component/PasDoc_Items.pas (line 464).

Public function HasRawDescription: Boolean;

This item is declared in ancestor TPasItem.

Is RawDescription not empty.

Source: source/component/PasDoc_Items.pas (line 467).

Public function QualifiedName: String; override;

This item is declared in ancestor TPasItem.

This item has no description. Showing description inherited from TBaseItem.QualifiedName.

Returns the qualified name of the item. This is intended to return a concise and not ambigous name. E.g. in case of TPasItem it is overridden to return Name qualified by class name and unit name.

In this class this simply returns Name.

Source: source/component/PasDoc_Items.pas (line 469).

Public function UnitRelativeQualifiedName: string; virtual;

This item is declared in ancestor TPasItem.

This item has no description.

Source: source/component/PasDoc_Items.pas (line 470).

Public procedure Sort(const SortSettings: TSortSettings); virtual;

This item is declared in ancestor TPasItem.

Sort items inside (recursively, so it sorts within the items too). E.g. in case of TPasUnit, we can sort variables, constants, CIOs in the unit, and then we call Sort(SortSettings) for every CIO.

Only the thigns listed in SortSettings will be sorted, the rest will be left unsorted.

Note that some things are never sorted, e.g. members of TPasEnum are never sorted (since their order affects the code logic, so we should not misrepresent it in the output doc).

Source: source/component/PasDoc_Items.pas (line 506).

Public procedure SetAttributes(var Value: TStringPairVector);

This item is declared in ancestor TPasItem.

This item has no description.

Source: source/component/PasDoc_Items.pas (line 553).

Public function InheritedItem: TPasItem; virtual;

This item is declared in ancestor TPasItem.

Get the closest item that this item inherits from.

Source: source/component/PasDoc_Items.pas (line 556).

Public function GetInheritedItemDescriptions: TStringPairVector; virtual;

This item is declared in ancestor TPasItem.

Generate a list of descriptions defined on this item in base classes.

This stops at the first class ancestor to have a description defined for an ancestor of this item. Along the way it will also collect descriptions of this item from any implemented interfaces.

If there is no description in any ancestor, it will return an empty vector.

Source: source/component/PasDoc_Items.pas (line 565).

Public function BasePath: string; override;

This item is declared in ancestor TPasItem.

This item has no description. Showing description inherited from TBaseItem.BasePath.

The full (absolute) path used to resolve filenames in this item's descriptions. Must always end with PathDelim. In this class, this simply returns GetCurrentDir (with PathDelim added if needed).

Source: source/component/PasDoc_Items.pas (line 567).

Public function HasOptionalInfo: boolean; virtual;

This item is declared in ancestor TPasItem.

Is optional information (that may be empty for after parsing unit and expanding tags) specified. Currently this checks Params and Raises and TPasRoutine.Returns.

Source: source/component/PasDoc_Items.pas (line 599).

Public function IsOverride: Boolean; virtual;

This item is declared in ancestor TPasItem.

Whether this item overrides an item in an ancestor.

Source: source/component/PasDoc_Items.pas (line 602).

Properties

Public property WasDeserialized: boolean read FWasDeserialized;

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 68).

Public property DetailedDescription: string read FDetailedDescription write FDetailedDescription;

This item is declared in ancestor TBaseItem.

Detailed description of this item.

In case of TPasItem, this is something more elaborate than TPasItem.AbstractDescription.

This is already in the form suitable for final output, ready to be put inside final documentation.

Source: source/component/PasDoc_Items.pas (line 274).

Public property RawDescription: string read GetRawDescription write WriteRawDescription;

This item is declared in ancestor TBaseItem.

This stores unexpanded version (as specified in user's comment in source code of parsed units) of description of this item.

Actually, this is just a shortcut to RawDescriptionInfo.Content

Source: source/component/PasDoc_Items.pas (line 283).

Public property FullLink: string read FFullLink write FFullLink;

This item is declared in ancestor TBaseItem.

a full link that should be enough to link this item from anywhere else

Source: source/component/PasDoc_Items.pas (line 299).

Public property LastMod: string read FLastMod write FLastMod;

This item is declared in ancestor TBaseItem.

Contains '' or string with date of last modification. This string is already in the form suitable for final output format (i.e. already processed by TDocGenerator.ConvertString).

Source: source/component/PasDoc_Items.pas (line 304).

Public property Name: string read FName write FName;

This item is declared in ancestor TBaseItem.

name of the item

Source: source/component/PasDoc_Items.pas (line 307).

Public property Authors: TStringVector read FAuthors write SetAuthors;

This item is declared in ancestor TBaseItem.

list of strings, each representing one author of this item

Source: source/component/PasDoc_Items.pas (line 318).

Public property Created: string read FCreated;

This item is declared in ancestor TBaseItem.

Contains '' or string with date of creation. This string is already in the form suitable for final output format (i.e. already processed by TDocGenerator.ConvertString).

Source: source/component/PasDoc_Items.pas (line 323).

Public property AutoLinkHereAllowed: boolean read FAutoLinkHereAllowed write FAutoLinkHereAllowed default true;

This item is declared in ancestor TBaseItem.

Is auto-link mechanism allowed to create link to this item ? This may be set to False by @noAutoLinkHere tag in item's description.

Source: source/component/PasDoc_Items.pas (line 327).

Public property AbstractDescription: string read FAbstractDescription write FAbstractDescription;

This item is declared in ancestor TPasItem.

Abstract description of this item. This is intended to be short (e.g. one sentence) description of this object.

This will be inited from @abstract tag in RawDescription, or cutted out from first sentence in RawDescription if --auto-abstract was used.

Note that this is already in the form suitable for final output, with tags expanded, chars converted etc.

Source: source/component/PasDoc_Items.pas (line 421).

Public property AbstractDescriptionWasAutomatic: boolean read FAbstractDescriptionWasAutomatic write FAbstractDescriptionWasAutomatic;

This item is declared in ancestor TPasItem.

TDocGenerator.ExpandDescriptions sets this property to true if AutoAbstract was used and AbstractDescription of this item was automatically deduced from the 1st sentence of RawDescription.

Otherwise (if @abstract was specified explicitly, or there was no @abstract and AutoAbstract was false) this is set to false.

This is a useful hint for generators: it tells them that when they are printing both AbstractDescription and DetailedDescription of the item in one place (e.g. TTexDocGenerator.WriteItemLongDescription and TGenericHTMLDocGenerator.WriteItemLongDescription both do this) then they should not put any additional space between AbstractDescription and DetailedDescription.

This way when user will specify description like

{ First sentence. Second sentence. }
procedure Foo;

and --auto-abstract was on, then "First sentence." is the AbstractDescription, " Second sentence." is DetailedDescription, AbstractDescriptionWasAutomatic is true and and TGenericHTMLDocGenerator.WriteItemLongDescription can print them as "First sentence. Second sentence."

Without this property, TGenericHTMLDocGenerator.WriteItemLongDescription would not be able to say that this abstract was deduced automatically and would print additional paragraph break that was not present in desscription, i.e. "First sentence.<p> Second sentence."

Source: source/component/PasDoc_Items.pas (line 458).

Public property MyUnit: TPasUnit read FMyUnit write FMyUnit;

This item is declared in ancestor TPasItem.

Unit of this item.

Source: source/component/PasDoc_Items.pas (line 473).

Public property MyObject: TPasCio read FMyObject write FMyObject;

This item is declared in ancestor TPasItem.

If this item is part of a class (or record, object., interface...), the corresponding class is stored here. Nil otherwise.

Source: source/component/PasDoc_Items.pas (line 477).

Public property MyEnum: TPasEnum read FMyEnum write FMyEnum;

This item is declared in ancestor TPasItem.

If this item is a member of an enumerated type, then the enclosing enumerated type is stored here. Nil otherwise.

Source: source/component/PasDoc_Items.pas (line 481).

Public property Visibility: TVisibility read FVisibility write FVisibility;

This item is declared in ancestor TPasItem.

This item has no description.

Source: source/component/PasDoc_Items.pas (line 483).

Public property HintDirectives: THintDirectives read FHintDirectives write FHintDirectives;

This item is declared in ancestor TPasItem.

Hint directives specify is this item deprecated, platform-specific, library-specific, experimental, or unimplemented.

Source: source/component/PasDoc_Items.pas (line 487).

Public property DeprecatedNote: string read FDeprecatedNote write FDeprecatedNote;

This item is declared in ancestor TPasItem.

Deprecation note, specified as a string after "deprecated" directive. Empty if none, always empty if HintDirectives does not contain hdDeprecated.

Source: source/component/PasDoc_Items.pas (line 492).

Public property FullDeclaration: string read FFullDeclaration write FFullDeclaration;

This item is declared in ancestor TPasItem.

Full declaration of the item, similar to how it appears in the Pascal source code.

Note that that this is not used for some descendants. Right now it's used only with

  • TPasConstant

  • TPasFieldVariable (includes type, default values, etc.)

  • TPasType

  • TPasRoutine (includes parameter list, procedural directives, etc.)

  • TPasProperty (includes read/write and storage specifiers, etc.)

  • TPasEnum

    But in this special case, '...' is used instead of listing individual members, e.g. 'TEnumName = (...)'. You can get list of Members using TPasEnum.Members. Eventual specifics of each member should be also specified somewhere inside Members items, e.g.

    TMyEnum = (meOne, meTwo = 3);

    and

    TMyEnum = (meOne, meTwo);

    will both result in TPasEnum with equal FullDeclaration (just 'TMyEnum = (...)') but this '= 3' should be marked somewhere inside Members[1] properties.

  • TPasItem when it's a CIO's field.

The intention is that in the future all TPasItem descendants will always have appropriate FullDeclaration set. It all requires adjusting appropriate places in PasDoc_Parser to generate appropriate FullDeclaration.

Source: source/component/PasDoc_Items.pas (line 543).

Public property SeeAlso: TStringPairVector read FSeeAlso;

This item is declared in ancestor TPasItem.

Items here are collected from @seealso tags.

Name of each item is the 1st part of @seealso parameter. Value is the 2nd part of @seealso parameter.

Source: source/component/PasDoc_Items.pas (line 549).

Public property Attributes: TStringPairVector read FAttributes;

This item is declared in ancestor TPasItem.

List of attributes defined for this item

Source: source/component/PasDoc_Items.pas (line 552).

Public property Params: TStringPairVector read FParams;

This item is declared in ancestor TPasItem.

Parameters of method or property.

Name of each item is the name of parameter (without any surrounding whitespace), Value of each item is users description for this item (in already-expanded form).

This is already in the form processed by TTagManager.Execute, i.e. with links resolved, html characters escaped etc. So don't convert them (e.g. before writing to the final docs) once again (by some ExpandDescription or ConvertString or anything like that).

Source: source/component/PasDoc_Items.pas (line 580).

Public property Raises: TStringPairVector read FRaises;

This item is declared in ancestor TPasItem.

Exceptions raised by the method, or by property getter/setter.

Name of each item is the name of exception class (without any surrounding whitespace), Value of each item is users description for this item (in already-expanded form).

This is already in the form processed by TTagManager.Execute, i.e. with links resolved, html characters escaped etc. So don't convert them (e.g. before writing to the final docs) once again (by some ExpandDescription or ConvertString or anything like that).

Source: source/component/PasDoc_Items.pas (line 593).

Public property SourceAbsoluteFileName: string read FSourceAbsoluteFileName write FSourceAbsoluteFileName;

This item is declared in ancestor TPasItem.

Source (absolute) file name where this item is declared. Set by the parser when parsing the item's declaration.

Source: source/component/PasDoc_Items.pas (line 606).

Public property SourceLine: Integer read FSourceLine write FSourceLine;

This item is declared in ancestor TPasItem.

Source line number (1-based) where this item is declared. Set by the parser when parsing the item's declaration.

Source: source/component/PasDoc_Items.pas (line 611).


PasDoc's autodoc: PasDoc_Items: Class TPasAliasType

Class TPasAliasType

Description
Hierarchy
Methods
Properties

Unit

PasDoc_Items

Declaration

type TPasAliasType = class(TPasType)

Description

Alias type

Source: source/component/PasDoc_Items.pas (line 635).

Hierarchy

  • TObject
  • TSerializable
  • TBaseItem
  • TPasItem
  • TPasType
  • TPasAliasType
Show Additional Members:

Overview

Methods

Public | class function Read7BitEncodedInt(const ASource: TStream): Integer;
Public | class procedure Write7BitEncodedInt(Value: Integer; const ADestination: TStream);
Public | class function LoadStringFromStream(const ASource: TStream): string;
Public | class procedure SaveStringToStream(const AValue: string; const ADestination: TStream);
Public | class function LoadDoubleFromStream(const ASource: TStream): double;
Public | class procedure SaveDoubleToStream(const AValue: double; const ADestination: TStream);
Public | class function LoadIntegerFromStream(const ASource: TStream): Longint;
Public | class procedure SaveIntegerToStream(const AValue: Longint; const ADestination: TStream);
Public | class procedure SerializeObject(const AObject: TSerializable; const ADestination: TStream);
Public | class function DeserializeObject(const ASource: TStream): TSerializable;
Public | class procedure Register(const AClass: TSerializableClass);
Public | procedure SerializeToFile(const AFileName: string);
Public | class function DeserializeFromFile(const AFileName: string): TSerializable;
Public | function FindItemMaybeInAncestors(const NameParts: TNameParts): TBaseItem; virtual;
Public | function RawDescriptionInfo: PRawDescriptionInfo;
Public | function Signature: string; virtual;
Protected | function FindNameWithinUnit(const NameParts: TNameParts): TBaseItem; virtual;
Public | constructor Create; override;
Public | destructor Destroy; override;
Public | function FindName(const NameParts: TNameParts): TBaseItem; override;
Public | procedure RegisterTags(TagManager: TTagManager); override;
Public | function MyUnitName: String;
Public | function HasDescription: Boolean;
Public | function HasRawDescription: Boolean;
Public | function QualifiedName: String; override;
Public | function UnitRelativeQualifiedName: string; virtual;
Public | procedure Sort(const SortSettings: TSortSettings); virtual;
Public | procedure SetAttributes(var Value: TStringPairVector);
Public | function InheritedItem: TPasItem; virtual;
Public | function GetInheritedItemDescriptions: TStringPairVector; virtual;
Public | function BasePath: string; override;
Public | function HasOptionalInfo: boolean; virtual;
Public | function IsOverride: Boolean; virtual;
Protected | procedure Serialize(const ADestination: TStream); override;
Protected | procedure Deserialize(const ASource: TStream); override;
Public | function FindItem(const NameParts: TNameParts): TBaseItem; override;
Public | function AliasedTypeWithRawDescription: TPasType;

Properties

Public | property WasDeserialized: boolean read FWasDeserialized;
Public | property DetailedDescription: string read FDetailedDescription write FDetailedDescription;
Public | property RawDescription: string read GetRawDescription write WriteRawDescription;
Public | property FullLink: string read FFullLink write FFullLink;
Public | property LastMod: string read FLastMod write FLastMod;
Public | property Name: string read FName write FName;
Public | property Authors: TStringVector read FAuthors write SetAuthors;
Public | property Created: string read FCreated;
Public | property AutoLinkHereAllowed: boolean read FAutoLinkHereAllowed write FAutoLinkHereAllowed default true;
Public | property AbstractDescription: string read FAbstractDescription write FAbstractDescription;
Public | property AbstractDescriptionWasAutomatic: boolean read FAbstractDescriptionWasAutomatic write FAbstractDescriptionWasAutomatic;
Public | property MyUnit: TPasUnit read FMyUnit write FMyUnit;
Public | property MyObject: TPasCio read FMyObject write FMyObject;
Public | property MyEnum: TPasEnum read FMyEnum write FMyEnum;
Public | property Visibility: TVisibility read FVisibility write FVisibility;
Public | property HintDirectives: THintDirectives read FHintDirectives write FHintDirectives;
Public | property DeprecatedNote: string read FDeprecatedNote write FDeprecatedNote;
Public | property FullDeclaration: string read FFullDeclaration write FFullDeclaration;
Public | property SeeAlso: TStringPairVector read FSeeAlso;
Public | property Attributes: TStringPairVector read FAttributes;
Public | property Params: TStringPairVector read FParams;
Public | property Raises: TStringPairVector read FRaises;
Public | property SourceAbsoluteFileName: string read FSourceAbsoluteFileName write FSourceAbsoluteFileName;
Public | property SourceLine: Integer read FSourceLine write FSourceLine;
Public | property IsStrongAlias: boolean read FIsStrongAlias write FIsStrongAlias;
Public | property AliasedName: string read FAliasedName write FAliasedName;
Public | property AliasedType: TPasType read FAliasedType write FAliasedType;
Public | property ResolveDescriptionFromAliasedType: Boolean read FResolveDescriptionFromAliasedType write FResolveDescriptionFromAliasedType default false;

Description

Methods

Public class function Read7BitEncodedInt(const ASource: TStream): Integer;

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 49).

Public class procedure Write7BitEncodedInt(Value: Integer; const ADestination: TStream);

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 50).

Public class function LoadStringFromStream(const ASource: TStream): string;

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 52).

Public class procedure SaveStringToStream(const AValue: string; const ADestination: TStream);

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 53).

Public class function LoadDoubleFromStream(const ASource: TStream): double;

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 54).

Public class procedure SaveDoubleToStream(const AValue: double; const ADestination: TStream);

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 55).

Public class function LoadIntegerFromStream(const ASource: TStream): Longint;

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 56).

Public class procedure SaveIntegerToStream(const AValue: Longint; const ADestination: TStream);

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 57).

Public class procedure SerializeObject(const AObject: TSerializable; const ADestination: TStream);

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 60).

Public class function DeserializeObject(const ASource: TStream): TSerializable;

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 61).

Public class procedure Register(const AClass: TSerializableClass);

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 62).

Public procedure SerializeToFile(const AFileName: string);

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 63).

Public class function DeserializeFromFile(const AFileName: string): TSerializable;

This item is declared in ancestor TSerializable.

Read back from file.

Exceptions raised
EInvalidCacheFileVersion
When the cached file contents are from an old pasdoc version (or invalid).

Source: source/component/PasDoc_Serialize.pas (line 67).

Public function FindItemMaybeInAncestors(const NameParts: TNameParts): TBaseItem; virtual;

This item is declared in ancestor TBaseItem.

This is just like FindItem, but in case of classes or such it should also search within ancestors. In this class, the default implementation just calls FindItem.

Source: source/component/PasDoc_Items.pas (line 254).

Public function RawDescriptionInfo: PRawDescriptionInfo;

This item is declared in ancestor TBaseItem.

Full info about RawDescription of this item, including it's filename and position.

This is intended to be initialized by parser.

This returns PRawDescriptionInfo instead of just TRawDescriptionInfo to allow natural setting of properties of this record (otherwise

Item.RawDescriptionInfo.StreamName := 'foo';

would not work as expected) .

Source: source/component/PasDoc_Items.pas (line 296).

Public function Signature: string; virtual;

This item is declared in ancestor TBaseItem.

Just like Name but optionally with added routine parameter types, to be unique when overloading is used. For example, for routines it may be like MyMethod(String) or MyMethod(Integer).

Source: source/component/PasDoc_Items.pas (line 339).

Protected function FindNameWithinUnit(const NameParts: TNameParts): TBaseItem; virtual;

This item is declared in ancestor TPasItem.

This does the same thing as FindName but it doesn't scan other units. If this item is a unit, it searches only inside this unit, else it searches only inside MyUnit unit.

Actually FindName uses this function.

Source: source/component/PasDoc_Items.pas (line 399).

Public constructor Create; override;

This item is declared in ancestor TPasItem.

This item has no description.

Source: source/component/PasDoc_Items.pas (line 401).

Public destructor Destroy; override;

This item is declared in ancestor TPasItem.

This item has no description.

Source: source/component/PasDoc_Items.pas (line 402).

Public function FindName(const NameParts: TNameParts): TBaseItem; override;

This item is declared in ancestor TPasItem.

This item has no description. Showing description inherited from TBaseItem.FindName.

Do all you can to find link specified by NameParts.

While searching this tries to mimic ObjectPascal identifier scope as much as it can. It seaches within this item, but also within class enclosing this item, within ancestors of this class, within unit enclosing this item, then within units used by unit of this item.

Source: source/component/PasDoc_Items.pas (line 404).

Public procedure RegisterTags(TagManager: TTagManager); override;

This item is declared in ancestor TPasItem.

This item has no description. Showing description inherited from TBaseItem.RegisterTags.

It registers TTags that init Authors, Created, LastMod and remove relevant tags from description. You can override it to add more handlers.

Source: source/component/PasDoc_Items.pas (line 406).

Public function MyUnitName: String;

This item is declared in ancestor TPasItem.

Name MyUnit or empty string if MyUnit is nil.

Source: source/component/PasDoc_Items.pas (line 409).

Public function HasDescription: Boolean;

This item is declared in ancestor TPasItem.

Returns true if there is a DetailedDescription or AbstractDescription available.

Source: source/component/PasDoc_Items.pas (line 464).

Public function HasRawDescription: Boolean;

This item is declared in ancestor TPasItem.

Is RawDescription not empty.

Source: source/component/PasDoc_Items.pas (line 467).

Public function QualifiedName: String; override;

This item is declared in ancestor TPasItem.

This item has no description. Showing description inherited from TBaseItem.QualifiedName.

Returns the qualified name of the item. This is intended to return a concise and not ambigous name. E.g. in case of TPasItem it is overridden to return Name qualified by class name and unit name.

In this class this simply returns Name.

Source: source/component/PasDoc_Items.pas (line 469).

Public function UnitRelativeQualifiedName: string; virtual;

This item is declared in ancestor TPasItem.

This item has no description.

Source: source/component/PasDoc_Items.pas (line 470).

Public procedure Sort(const SortSettings: TSortSettings); virtual;

This item is declared in ancestor TPasItem.

Sort items inside (recursively, so it sorts within the items too). E.g. in case of TPasUnit, we can sort variables, constants, CIOs in the unit, and then we call Sort(SortSettings) for every CIO.

Only the thigns listed in SortSettings will be sorted, the rest will be left unsorted.

Note that some things are never sorted, e.g. members of TPasEnum are never sorted (since their order affects the code logic, so we should not misrepresent it in the output doc).

Source: source/component/PasDoc_Items.pas (line 506).

Public procedure SetAttributes(var Value: TStringPairVector);

This item is declared in ancestor TPasItem.

This item has no description.

Source: source/component/PasDoc_Items.pas (line 553).

Public function InheritedItem: TPasItem; virtual;

This item is declared in ancestor TPasItem.

Get the closest item that this item inherits from.

Source: source/component/PasDoc_Items.pas (line 556).

Public function GetInheritedItemDescriptions: TStringPairVector; virtual;

This item is declared in ancestor TPasItem.

Generate a list of descriptions defined on this item in base classes.

This stops at the first class ancestor to have a description defined for an ancestor of this item. Along the way it will also collect descriptions of this item from any implemented interfaces.

If there is no description in any ancestor, it will return an empty vector.

Source: source/component/PasDoc_Items.pas (line 565).

Public function BasePath: string; override;

This item is declared in ancestor TPasItem.

This item has no description. Showing description inherited from TBaseItem.BasePath.

The full (absolute) path used to resolve filenames in this item's descriptions. Must always end with PathDelim. In this class, this simply returns GetCurrentDir (with PathDelim added if needed).

Source: source/component/PasDoc_Items.pas (line 567).

Public function HasOptionalInfo: boolean; virtual;

This item is declared in ancestor TPasItem.

Is optional information (that may be empty for after parsing unit and expanding tags) specified. Currently this checks Params and Raises and TPasRoutine.Returns.

Source: source/component/PasDoc_Items.pas (line 599).

Public function IsOverride: Boolean; virtual;

This item is declared in ancestor TPasItem.

Whether this item overrides an item in an ancestor.

Source: source/component/PasDoc_Items.pas (line 602).

Protected procedure Serialize(const ADestination: TStream); override;

This item has no description. Showing description inherited from TBaseItem.Serialize.

Serialization of TPasItem need to store in stream only data that is generated by parser. That's because current approach treats "loading from cache" as equivalent to parsing a unit and stores to cache right after parsing a unit. So what is generated by parser must be written to cache.

That said,

  1. It will not break anything if you will accidentally store in cache something that is not generated by parser. That's because saving to cache will be done anyway right after doing parsing, so properties not initialized by parser will have their initial values anyway. You're just wasting memory for cache, and some cache saving/loading time.

  2. For now, in implementation of serialize/deserialize we try to add even things not generated by parser in a commented out code. This way if approach to cache will change some day, we will be able to use this code.

Source: source/component/PasDoc_Items.pas (line 642).

Protected procedure Deserialize(const ASource: TStream); override;

This item has no description.

Source: source/component/PasDoc_Items.pas (line 643).

Public function FindItem(const NameParts: TNameParts): TBaseItem; override;

This item has no description. Showing description inherited from TBaseItem.FindItem.

Search for an item with name NameParts inside this Pascal item. For units, it searches for items declared inside this unit (like a procedure, or a class in this unit). For classes it searches for items declared within this class (like a method or a property). For an enumerated type, it searches for members of this enumerated type.

All normal rules of ObjectPascal scope apply, which means that e.g. classes have their separate namespace. When searching for Foo from the unit level, we do not "look into" class namespaces.

Returns nil if not found.

Note that it never compares NameParts with Self.Name. You may want to check this yourself if you want.

Note that for TPasItem descendants, it always returns also some TPasItem descendant (so if you use this method with some TPasItem instance, you can safely cast result of this method to TPasItem).

Implementation in this class always returns nil. Override as necessary.

Source: source/component/PasDoc_Items.pas (line 645).

Public function AliasedTypeWithRawDescription: TPasType;

Look for a description of given type: within Self, within AliasedType, then maybe AliasedType.AliasedType, until we find a type that has a useful description. If no type with useful description is found, returns Nil.

Source: source/component/PasDoc_Items.pas (line 651).

Properties

Public property WasDeserialized: boolean read FWasDeserialized;

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 68).

Public property DetailedDescription: string read FDetailedDescription write FDetailedDescription;

This item is declared in ancestor TBaseItem.

Detailed description of this item.

In case of TPasItem, this is something more elaborate than TPasItem.AbstractDescription.

This is already in the form suitable for final output, ready to be put inside final documentation.

Source: source/component/PasDoc_Items.pas (line 274).

Public property RawDescription: string read GetRawDescription write WriteRawDescription;

This item is declared in ancestor TBaseItem.

This stores unexpanded version (as specified in user's comment in source code of parsed units) of description of this item.

Actually, this is just a shortcut to RawDescriptionInfo.Content

Source: source/component/PasDoc_Items.pas (line 283).

Public property FullLink: string read FFullLink write FFullLink;

This item is declared in ancestor TBaseItem.

a full link that should be enough to link this item from anywhere else

Source: source/component/PasDoc_Items.pas (line 299).

Public property LastMod: string read FLastMod write FLastMod;

This item is declared in ancestor TBaseItem.

Contains '' or string with date of last modification. This string is already in the form suitable for final output format (i.e. already processed by TDocGenerator.ConvertString).

Source: source/component/PasDoc_Items.pas (line 304).

Public property Name: string read FName write FName;

This item is declared in ancestor TBaseItem.

name of the item

Source: source/component/PasDoc_Items.pas (line 307).

Public property Authors: TStringVector read FAuthors write SetAuthors;

This item is declared in ancestor TBaseItem.

list of strings, each representing one author of this item

Source: source/component/PasDoc_Items.pas (line 318).

Public property Created: string read FCreated;

This item is declared in ancestor TBaseItem.

Contains '' or string with date of creation. This string is already in the form suitable for final output format (i.e. already processed by TDocGenerator.ConvertString).

Source: source/component/PasDoc_Items.pas (line 323).

Public property AutoLinkHereAllowed: boolean read FAutoLinkHereAllowed write FAutoLinkHereAllowed default true;

This item is declared in ancestor TBaseItem.

Is auto-link mechanism allowed to create link to this item ? This may be set to False by @noAutoLinkHere tag in item's description.

Source: source/component/PasDoc_Items.pas (line 327).

Public property AbstractDescription: string read FAbstractDescription write FAbstractDescription;

This item is declared in ancestor TPasItem.

Abstract description of this item. This is intended to be short (e.g. one sentence) description of this object.

This will be inited from @abstract tag in RawDescription, or cutted out from first sentence in RawDescription if --auto-abstract was used.

Note that this is already in the form suitable for final output, with tags expanded, chars converted etc.

Source: source/component/PasDoc_Items.pas (line 421).

Public property AbstractDescriptionWasAutomatic: boolean read FAbstractDescriptionWasAutomatic write FAbstractDescriptionWasAutomatic;

This item is declared in ancestor TPasItem.

TDocGenerator.ExpandDescriptions sets this property to true if AutoAbstract was used and AbstractDescription of this item was automatically deduced from the 1st sentence of RawDescription.

Otherwise (if @abstract was specified explicitly, or there was no @abstract and AutoAbstract was false) this is set to false.

This is a useful hint for generators: it tells them that when they are printing both AbstractDescription and DetailedDescription of the item in one place (e.g. TTexDocGenerator.WriteItemLongDescription and TGenericHTMLDocGenerator.WriteItemLongDescription both do this) then they should not put any additional space between AbstractDescription and DetailedDescription.

This way when user will specify description like

{ First sentence. Second sentence. }
procedure Foo;

and --auto-abstract was on, then "First sentence." is the AbstractDescription, " Second sentence." is DetailedDescription, AbstractDescriptionWasAutomatic is true and and TGenericHTMLDocGenerator.WriteItemLongDescription can print them as "First sentence. Second sentence."

Without this property, TGenericHTMLDocGenerator.WriteItemLongDescription would not be able to say that this abstract was deduced automatically and would print additional paragraph break that was not present in desscription, i.e. "First sentence.<p> Second sentence."

Source: source/component/PasDoc_Items.pas (line 458).

Public property MyUnit: TPasUnit read FMyUnit write FMyUnit;

This item is declared in ancestor TPasItem.

Unit of this item.

Source: source/component/PasDoc_Items.pas (line 473).

Public property MyObject: TPasCio read FMyObject write FMyObject;

This item is declared in ancestor TPasItem.

If this item is part of a class (or record, object., interface...), the corresponding class is stored here. Nil otherwise.

Source: source/component/PasDoc_Items.pas (line 477).

Public property MyEnum: TPasEnum read FMyEnum write FMyEnum;

This item is declared in ancestor TPasItem.

If this item is a member of an enumerated type, then the enclosing enumerated type is stored here. Nil otherwise.

Source: source/component/PasDoc_Items.pas (line 481).

Public property Visibility: TVisibility read FVisibility write FVisibility;

This item is declared in ancestor TPasItem.

This item has no description.

Source: source/component/PasDoc_Items.pas (line 483).

Public property HintDirectives: THintDirectives read FHintDirectives write FHintDirectives;

This item is declared in ancestor TPasItem.

Hint directives specify is this item deprecated, platform-specific, library-specific, experimental, or unimplemented.

Source: source/component/PasDoc_Items.pas (line 487).

Public property DeprecatedNote: string read FDeprecatedNote write FDeprecatedNote;

This item is declared in ancestor TPasItem.

Deprecation note, specified as a string after "deprecated" directive. Empty if none, always empty if HintDirectives does not contain hdDeprecated.

Source: source/component/PasDoc_Items.pas (line 492).

Public property FullDeclaration: string read FFullDeclaration write FFullDeclaration;

This item is declared in ancestor TPasItem.

Full declaration of the item, similar to how it appears in the Pascal source code.

Note that that this is not used for some descendants. Right now it's used only with

  • TPasConstant

  • TPasFieldVariable (includes type, default values, etc.)

  • TPasType

  • TPasRoutine (includes parameter list, procedural directives, etc.)

  • TPasProperty (includes read/write and storage specifiers, etc.)

  • TPasEnum

    But in this special case, '...' is used instead of listing individual members, e.g. 'TEnumName = (...)'. You can get list of Members using TPasEnum.Members. Eventual specifics of each member should be also specified somewhere inside Members items, e.g.

    TMyEnum = (meOne, meTwo = 3);

    and

    TMyEnum = (meOne, meTwo);

    will both result in TPasEnum with equal FullDeclaration (just 'TMyEnum = (...)') but this '= 3' should be marked somewhere inside Members[1] properties.

  • TPasItem when it's a CIO's field.

The intention is that in the future all TPasItem descendants will always have appropriate FullDeclaration set. It all requires adjusting appropriate places in PasDoc_Parser to generate appropriate FullDeclaration.

Source: source/component/PasDoc_Items.pas (line 543).

Public property SeeAlso: TStringPairVector read FSeeAlso;

This item is declared in ancestor TPasItem.

Items here are collected from @seealso tags.

Name of each item is the 1st part of @seealso parameter. Value is the 2nd part of @seealso parameter.

Source: source/component/PasDoc_Items.pas (line 549).

Public property Attributes: TStringPairVector read FAttributes;

This item is declared in ancestor TPasItem.

List of attributes defined for this item

Source: source/component/PasDoc_Items.pas (line 552).

Public property Params: TStringPairVector read FParams;

This item is declared in ancestor TPasItem.

Parameters of method or property.

Name of each item is the name of parameter (without any surrounding whitespace), Value of each item is users description for this item (in already-expanded form).

This is already in the form processed by TTagManager.Execute, i.e. with links resolved, html characters escaped etc. So don't convert them (e.g. before writing to the final docs) once again (by some ExpandDescription or ConvertString or anything like that).

Source: source/component/PasDoc_Items.pas (line 580).

Public property Raises: TStringPairVector read FRaises;

This item is declared in ancestor TPasItem.

Exceptions raised by the method, or by property getter/setter.

Name of each item is the name of exception class (without any surrounding whitespace), Value of each item is users description for this item (in already-expanded form).

This is already in the form processed by TTagManager.Execute, i.e. with links resolved, html characters escaped etc. So don't convert them (e.g. before writing to the final docs) once again (by some ExpandDescription or ConvertString or anything like that).

Source: source/component/PasDoc_Items.pas (line 593).

Public property SourceAbsoluteFileName: string read FSourceAbsoluteFileName write FSourceAbsoluteFileName;

This item is declared in ancestor TPasItem.

Source (absolute) file name where this item is declared. Set by the parser when parsing the item's declaration.

Source: source/component/PasDoc_Items.pas (line 606).

Public property SourceLine: Integer read FSourceLine write FSourceLine;

This item is declared in ancestor TPasItem.

Source line number (1-based) where this item is declared. Set by the parser when parsing the item's declaration.

Source: source/component/PasDoc_Items.pas (line 611).

Public property IsStrongAlias: boolean read FIsStrongAlias write FIsStrongAlias;

"Strong" alias is defined with the "type" keyword.

We call the type aliases like TNewType = type TOldType; a "strong" type aliases, as opposed to "weak" type aliases like TNewType = TOldType;. This follows terminology from https://blog.marcocantu.com/blog/2023-october-nativeint-weak-alias.html .

Source: source/component/PasDoc_Items.pas (line 659).

Public property AliasedName: string read FAliasedName write FAliasedName;

Name of the target type. This is generally equal to AliasedType.Name, however it may be qualified (with containinig unit name, CIO name) if it was specified. It is also always available, even before TDocGenerator.BuildLinks execution, since this is set by the parser.

Source: source/component/PasDoc_Items.pas (line 666).

Public property AliasedType: TPasType read FAliasedType write FAliasedType;

Target type, that we are an alias of.

Source: source/component/PasDoc_Items.pas (line 669).

Public property ResolveDescriptionFromAliasedType: Boolean read FResolveDescriptionFromAliasedType write FResolveDescriptionFromAliasedType default false;

Whether to resolve descriptions, e.g. links inside it, with respect to the AliasedType.

This makes sense when our RawDescription was copied from AliasedType and it may mention links only reachable from AliasedType scope.

Source: source/component/PasDoc_Items.pas (line 675).


PasDoc's autodoc: PasDoc_Items: Class TPasEnum

Class TPasEnum

Description
Hierarchy
Fields
Methods
Properties

Unit

PasDoc_Items

Declaration

type TPasEnum = class(TPasType)

Description

Enumerated type.

Source: source/component/PasDoc_Items.pas (line 681).

Hierarchy

  • TObject
  • TSerializable
  • TBaseItem
  • TPasItem
  • TPasType
  • TPasEnum
Show Additional Members:

Overview

Fields

Protected FMembers: TPasItems;

Methods

Public | class function Read7BitEncodedInt(const ASource: TStream): Integer;
Public | class procedure Write7BitEncodedInt(Value: Integer; const ADestination: TStream);
Public | class function LoadStringFromStream(const ASource: TStream): string;
Public | class procedure SaveStringToStream(const AValue: string; const ADestination: TStream);
Public | class function LoadDoubleFromStream(const ASource: TStream): double;
Public | class procedure SaveDoubleToStream(const AValue: double; const ADestination: TStream);
Public | class function LoadIntegerFromStream(const ASource: TStream): Longint;
Public | class procedure SaveIntegerToStream(const AValue: Longint; const ADestination: TStream);
Public | class procedure SerializeObject(const AObject: TSerializable; const ADestination: TStream);
Public | class function DeserializeObject(const ASource: TStream): TSerializable;
Public | class procedure Register(const AClass: TSerializableClass);
Public | procedure SerializeToFile(const AFileName: string);
Public | class function DeserializeFromFile(const AFileName: string): TSerializable;
Public | function FindItemMaybeInAncestors(const NameParts: TNameParts): TBaseItem; virtual;
Public | function RawDescriptionInfo: PRawDescriptionInfo;
Public | function Signature: string; virtual;
Protected | function FindNameWithinUnit(const NameParts: TNameParts): TBaseItem; virtual;
Public | function FindName(const NameParts: TNameParts): TBaseItem; override;
Public | function MyUnitName: String;
Public | function HasDescription: Boolean;
Public | function HasRawDescription: Boolean;
Public | function QualifiedName: String; override;
Public | function UnitRelativeQualifiedName: string; virtual;
Public | procedure Sort(const SortSettings: TSortSettings); virtual;
Public | procedure SetAttributes(var Value: TStringPairVector);
Public | function InheritedItem: TPasItem; virtual;
Public | function GetInheritedItemDescriptions: TStringPairVector; virtual;
Public | function BasePath: string; override;
Public | function HasOptionalInfo: boolean; virtual;
Public | function IsOverride: Boolean; virtual;
Protected | procedure Serialize(const ADestination: TStream); override;
Protected | procedure Deserialize(const ASource: TStream); override;
Protected | procedure StoreValueTag(ThisTag: TTag; var ThisTagData: TObject; EnclosingTag: TTag; var EnclosingTagData: TObject; const TagParameter: string; var ReplaceStr: string);
Public | procedure RegisterTags(TagManager: TTagManager); override;
Public | function FindItem(const NameParts: TNameParts): TBaseItem; override;
Public | destructor Destroy; override;
Public | constructor Create; override;

Properties

Public | property WasDeserialized: boolean read FWasDeserialized;
Public | property DetailedDescription: string read FDetailedDescription write FDetailedDescription;
Public | property RawDescription: string read GetRawDescription write WriteRawDescription;
Public | property FullLink: string read FFullLink write FFullLink;
Public | property LastMod: string read FLastMod write FLastMod;
Public | property Name: string read FName write FName;
Public | property Authors: TStringVector read FAuthors write SetAuthors;
Public | property Created: string read FCreated;
Public | property AutoLinkHereAllowed: boolean read FAutoLinkHereAllowed write FAutoLinkHereAllowed default true;
Public | property AbstractDescription: string read FAbstractDescription write FAbstractDescription;
Public | property AbstractDescriptionWasAutomatic: boolean read FAbstractDescriptionWasAutomatic write FAbstractDescriptionWasAutomatic;
Public | property MyUnit: TPasUnit read FMyUnit write FMyUnit;
Public | property MyObject: TPasCio read FMyObject write FMyObject;
Public | property MyEnum: TPasEnum read FMyEnum write FMyEnum;
Public | property Visibility: TVisibility read FVisibility write FVisibility;
Public | property HintDirectives: THintDirectives read FHintDirectives write FHintDirectives;
Public | property DeprecatedNote: string read FDeprecatedNote write FDeprecatedNote;
Public | property FullDeclaration: string read FFullDeclaration write FFullDeclaration;
Public | property SeeAlso: TStringPairVector read FSeeAlso;
Public | property Attributes: TStringPairVector read FAttributes;
Public | property Params: TStringPairVector read FParams;
Public | property Raises: TStringPairVector read FRaises;
Public | property SourceAbsoluteFileName: string read FSourceAbsoluteFileName write FSourceAbsoluteFileName;
Public | property SourceLine: Integer read FSourceLine write FSourceLine;
Public | property Members: TPasItems read FMembers;

Description

Fields

Protected FMembers: TPasItems;

This item has no description.

Source: source/component/PasDoc_Items.pas (line 683).

Methods

Public class function Read7BitEncodedInt(const ASource: TStream): Integer;

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 49).

Public class procedure Write7BitEncodedInt(Value: Integer; const ADestination: TStream);

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 50).

Public class function LoadStringFromStream(const ASource: TStream): string;

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 52).

Public class procedure SaveStringToStream(const AValue: string; const ADestination: TStream);

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 53).

Public class function LoadDoubleFromStream(const ASource: TStream): double;

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 54).

Public class procedure SaveDoubleToStream(const AValue: double; const ADestination: TStream);

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 55).

Public class function LoadIntegerFromStream(const ASource: TStream): Longint;

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 56).

Public class procedure SaveIntegerToStream(const AValue: Longint; const ADestination: TStream);

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 57).

Public class procedure SerializeObject(const AObject: TSerializable; const ADestination: TStream);

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 60).

Public class function DeserializeObject(const ASource: TStream): TSerializable;

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 61).

Public class procedure Register(const AClass: TSerializableClass);

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 62).

Public procedure SerializeToFile(const AFileName: string);

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 63).

Public class function DeserializeFromFile(const AFileName: string): TSerializable;

This item is declared in ancestor TSerializable.

Read back from file.

Exceptions raised
EInvalidCacheFileVersion
When the cached file contents are from an old pasdoc version (or invalid).

Source: source/component/PasDoc_Serialize.pas (line 67).

Public function FindItemMaybeInAncestors(const NameParts: TNameParts): TBaseItem; virtual;

This item is declared in ancestor TBaseItem.

This is just like FindItem, but in case of classes or such it should also search within ancestors. In this class, the default implementation just calls FindItem.

Source: source/component/PasDoc_Items.pas (line 254).

Public function RawDescriptionInfo: PRawDescriptionInfo;

This item is declared in ancestor TBaseItem.

Full info about RawDescription of this item, including it's filename and position.

This is intended to be initialized by parser.

This returns PRawDescriptionInfo instead of just TRawDescriptionInfo to allow natural setting of properties of this record (otherwise

Item.RawDescriptionInfo.StreamName := 'foo';

would not work as expected) .

Source: source/component/PasDoc_Items.pas (line 296).

Public function Signature: string; virtual;

This item is declared in ancestor TBaseItem.

Just like Name but optionally with added routine parameter types, to be unique when overloading is used. For example, for routines it may be like MyMethod(String) or MyMethod(Integer).

Source: source/component/PasDoc_Items.pas (line 339).

Protected function FindNameWithinUnit(const NameParts: TNameParts): TBaseItem; virtual;

This item is declared in ancestor TPasItem.

This does the same thing as FindName but it doesn't scan other units. If this item is a unit, it searches only inside this unit, else it searches only inside MyUnit unit.

Actually FindName uses this function.

Source: source/component/PasDoc_Items.pas (line 399).

Public function FindName(const NameParts: TNameParts): TBaseItem; override;

This item is declared in ancestor TPasItem.

This item has no description. Showing description inherited from TBaseItem.FindName.

Do all you can to find link specified by NameParts.

While searching this tries to mimic ObjectPascal identifier scope as much as it can. It seaches within this item, but also within class enclosing this item, within ancestors of this class, within unit enclosing this item, then within units used by unit of this item.

Source: source/component/PasDoc_Items.pas (line 404).

Public function MyUnitName: String;

This item is declared in ancestor TPasItem.

Name MyUnit or empty string if MyUnit is nil.

Source: source/component/PasDoc_Items.pas (line 409).

Public function HasDescription: Boolean;

This item is declared in ancestor TPasItem.

Returns true if there is a DetailedDescription or AbstractDescription available.

Source: source/component/PasDoc_Items.pas (line 464).

Public function HasRawDescription: Boolean;

This item is declared in ancestor TPasItem.

Is RawDescription not empty.

Source: source/component/PasDoc_Items.pas (line 467).

Public function QualifiedName: String; override;

This item is declared in ancestor TPasItem.

This item has no description. Showing description inherited from TBaseItem.QualifiedName.

Returns the qualified name of the item. This is intended to return a concise and not ambigous name. E.g. in case of TPasItem it is overridden to return Name qualified by class name and unit name.

In this class this simply returns Name.

Source: source/component/PasDoc_Items.pas (line 469).

Public function UnitRelativeQualifiedName: string; virtual;

This item is declared in ancestor TPasItem.

This item has no description.

Source: source/component/PasDoc_Items.pas (line 470).

Public procedure Sort(const SortSettings: TSortSettings); virtual;

This item is declared in ancestor TPasItem.

Sort items inside (recursively, so it sorts within the items too). E.g. in case of TPasUnit, we can sort variables, constants, CIOs in the unit, and then we call Sort(SortSettings) for every CIO.

Only the thigns listed in SortSettings will be sorted, the rest will be left unsorted.

Note that some things are never sorted, e.g. members of TPasEnum are never sorted (since their order affects the code logic, so we should not misrepresent it in the output doc).

Source: source/component/PasDoc_Items.pas (line 506).

Public procedure SetAttributes(var Value: TStringPairVector);

This item is declared in ancestor TPasItem.

This item has no description.

Source: source/component/PasDoc_Items.pas (line 553).

Public function InheritedItem: TPasItem; virtual;

This item is declared in ancestor TPasItem.

Get the closest item that this item inherits from.

Source: source/component/PasDoc_Items.pas (line 556).

Public function GetInheritedItemDescriptions: TStringPairVector; virtual;

This item is declared in ancestor TPasItem.

Generate a list of descriptions defined on this item in base classes.

This stops at the first class ancestor to have a description defined for an ancestor of this item. Along the way it will also collect descriptions of this item from any implemented interfaces.

If there is no description in any ancestor, it will return an empty vector.

Source: source/component/PasDoc_Items.pas (line 565).

Public function BasePath: string; override;

This item is declared in ancestor TPasItem.

This item has no description. Showing description inherited from TBaseItem.BasePath.

The full (absolute) path used to resolve filenames in this item's descriptions. Must always end with PathDelim. In this class, this simply returns GetCurrentDir (with PathDelim added if needed).

Source: source/component/PasDoc_Items.pas (line 567).

Public function HasOptionalInfo: boolean; virtual;

This item is declared in ancestor TPasItem.

Is optional information (that may be empty for after parsing unit and expanding tags) specified. Currently this checks Params and Raises and TPasRoutine.Returns.

Source: source/component/PasDoc_Items.pas (line 599).

Public function IsOverride: Boolean; virtual;

This item is declared in ancestor TPasItem.

Whether this item overrides an item in an ancestor.

Source: source/component/PasDoc_Items.pas (line 602).

Protected procedure Serialize(const ADestination: TStream); override;

This item has no description. Showing description inherited from TBaseItem.Serialize.

Serialization of TPasItem need to store in stream only data that is generated by parser. That's because current approach treats "loading from cache" as equivalent to parsing a unit and stores to cache right after parsing a unit. So what is generated by parser must be written to cache.

That said,

  1. It will not break anything if you will accidentally store in cache something that is not generated by parser. That's because saving to cache will be done anyway right after doing parsing, so properties not initialized by parser will have their initial values anyway. You're just wasting memory for cache, and some cache saving/loading time.

  2. For now, in implementation of serialize/deserialize we try to add even things not generated by parser in a commented out code. This way if approach to cache will change some day, we will be able to use this code.

Source: source/component/PasDoc_Items.pas (line 684).

Protected procedure Deserialize(const ASource: TStream); override;

This item has no description.

Source: source/component/PasDoc_Items.pas (line 685).

Protected procedure StoreValueTag(ThisTag: TTag; var ThisTagData: TObject; EnclosingTag: TTag; var EnclosingTagData: TObject; const TagParameter: string; var ReplaceStr: string);

This item has no description.

Source: source/component/PasDoc_Items.pas (line 686).

Public procedure RegisterTags(TagManager: TTagManager); override;

This item has no description. Showing description inherited from TBaseItem.RegisterTags.

It registers TTags that init Authors, Created, LastMod and remove relevant tags from description. You can override it to add more handlers.

Source: source/component/PasDoc_Items.pas (line 690).

Public function FindItem(const NameParts: TNameParts): TBaseItem; override;

Searches for a member of this enumerated type.

Source: source/component/PasDoc_Items.pas (line 693).

Public destructor Destroy; override;

This item has no description.

Source: source/component/PasDoc_Items.pas (line 695).

Public constructor Create; override;

This item has no description.

Source: source/component/PasDoc_Items.pas (line 696).

Properties

Public property WasDeserialized: boolean read FWasDeserialized;

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 68).

Public property DetailedDescription: string read FDetailedDescription write FDetailedDescription;

This item is declared in ancestor TBaseItem.

Detailed description of this item.

In case of TPasItem, this is something more elaborate than TPasItem.AbstractDescription.

This is already in the form suitable for final output, ready to be put inside final documentation.

Source: source/component/PasDoc_Items.pas (line 274).

Public property RawDescription: string read GetRawDescription write WriteRawDescription;

This item is declared in ancestor TBaseItem.

This stores unexpanded version (as specified in user's comment in source code of parsed units) of description of this item.

Actually, this is just a shortcut to RawDescriptionInfo.Content

Source: source/component/PasDoc_Items.pas (line 283).

Public property FullLink: string read FFullLink write FFullLink;

This item is declared in ancestor TBaseItem.

a full link that should be enough to link this item from anywhere else

Source: source/component/PasDoc_Items.pas (line 299).

Public property LastMod: string read FLastMod write FLastMod;

This item is declared in ancestor TBaseItem.

Contains '' or string with date of last modification. This string is already in the form suitable for final output format (i.e. already processed by TDocGenerator.ConvertString).

Source: source/component/PasDoc_Items.pas (line 304).

Public property Name: string read FName write FName;

This item is declared in ancestor TBaseItem.

name of the item

Source: source/component/PasDoc_Items.pas (line 307).

Public property Authors: TStringVector read FAuthors write SetAuthors;

This item is declared in ancestor TBaseItem.

list of strings, each representing one author of this item

Source: source/component/PasDoc_Items.pas (line 318).

Public property Created: string read FCreated;

This item is declared in ancestor TBaseItem.

Contains '' or string with date of creation. This string is already in the form suitable for final output format (i.e. already processed by TDocGenerator.ConvertString).

Source: source/component/PasDoc_Items.pas (line 323).

Public property AutoLinkHereAllowed: boolean read FAutoLinkHereAllowed write FAutoLinkHereAllowed default true;

This item is declared in ancestor TBaseItem.

Is auto-link mechanism allowed to create link to this item ? This may be set to False by @noAutoLinkHere tag in item's description.

Source: source/component/PasDoc_Items.pas (line 327).

Public property AbstractDescription: string read FAbstractDescription write FAbstractDescription;

This item is declared in ancestor TPasItem.

Abstract description of this item. This is intended to be short (e.g. one sentence) description of this object.

This will be inited from @abstract tag in RawDescription, or cutted out from first sentence in RawDescription if --auto-abstract was used.

Note that this is already in the form suitable for final output, with tags expanded, chars converted etc.

Source: source/component/PasDoc_Items.pas (line 421).

Public property AbstractDescriptionWasAutomatic: boolean read FAbstractDescriptionWasAutomatic write FAbstractDescriptionWasAutomatic;

This item is declared in ancestor TPasItem.

TDocGenerator.ExpandDescriptions sets this property to true if AutoAbstract was used and AbstractDescription of this item was automatically deduced from the 1st sentence of RawDescription.

Otherwise (if @abstract was specified explicitly, or there was no @abstract and AutoAbstract was false) this is set to false.

This is a useful hint for generators: it tells them that when they are printing both AbstractDescription and DetailedDescription of the item in one place (e.g. TTexDocGenerator.WriteItemLongDescription and TGenericHTMLDocGenerator.WriteItemLongDescription both do this) then they should not put any additional space between AbstractDescription and DetailedDescription.

This way when user will specify description like

{ First sentence. Second sentence. }
procedure Foo;

and --auto-abstract was on, then "First sentence." is the AbstractDescription, " Second sentence." is DetailedDescription, AbstractDescriptionWasAutomatic is true and and TGenericHTMLDocGenerator.WriteItemLongDescription can print them as "First sentence. Second sentence."

Without this property, TGenericHTMLDocGenerator.WriteItemLongDescription would not be able to say that this abstract was deduced automatically and would print additional paragraph break that was not present in desscription, i.e. "First sentence.<p> Second sentence."

Source: source/component/PasDoc_Items.pas (line 458).

Public property MyUnit: TPasUnit read FMyUnit write FMyUnit;

This item is declared in ancestor TPasItem.

Unit of this item.

Source: source/component/PasDoc_Items.pas (line 473).

Public property MyObject: TPasCio read FMyObject write FMyObject;

This item is declared in ancestor TPasItem.

If this item is part of a class (or record, object., interface...), the corresponding class is stored here. Nil otherwise.

Source: source/component/PasDoc_Items.pas (line 477).

Public property MyEnum: TPasEnum read FMyEnum write FMyEnum;

This item is declared in ancestor TPasItem.

If this item is a member of an enumerated type, then the enclosing enumerated type is stored here. Nil otherwise.

Source: source/component/PasDoc_Items.pas (line 481).

Public property Visibility: TVisibility read FVisibility write FVisibility;

This item is declared in ancestor TPasItem.

This item has no description.

Source: source/component/PasDoc_Items.pas (line 483).

Public property HintDirectives: THintDirectives read FHintDirectives write FHintDirectives;

This item is declared in ancestor TPasItem.

Hint directives specify is this item deprecated, platform-specific, library-specific, experimental, or unimplemented.

Source: source/component/PasDoc_Items.pas (line 487).

Public property DeprecatedNote: string read FDeprecatedNote write FDeprecatedNote;

This item is declared in ancestor TPasItem.

Deprecation note, specified as a string after "deprecated" directive. Empty if none, always empty if HintDirectives does not contain hdDeprecated.

Source: source/component/PasDoc_Items.pas (line 492).

Public property FullDeclaration: string read FFullDeclaration write FFullDeclaration;

This item is declared in ancestor TPasItem.

Full declaration of the item, similar to how it appears in the Pascal source code.

Note that that this is not used for some descendants. Right now it's used only with

  • TPasConstant

  • TPasFieldVariable (includes type, default values, etc.)

  • TPasType

  • TPasRoutine (includes parameter list, procedural directives, etc.)

  • TPasProperty (includes read/write and storage specifiers, etc.)

  • TPasEnum

    But in this special case, '...' is used instead of listing individual members, e.g. 'TEnumName = (...)'. You can get list of Members using TPasEnum.Members. Eventual specifics of each member should be also specified somewhere inside Members items, e.g.

    TMyEnum = (meOne, meTwo = 3);

    and

    TMyEnum = (meOne, meTwo);

    will both result in TPasEnum with equal FullDeclaration (just 'TMyEnum = (...)') but this '= 3' should be marked somewhere inside Members[1] properties.

  • TPasItem when it's a CIO's field.

The intention is that in the future all TPasItem descendants will always have appropriate FullDeclaration set. It all requires adjusting appropriate places in PasDoc_Parser to generate appropriate FullDeclaration.

Source: source/component/PasDoc_Items.pas (line 543).

Public property SeeAlso: TStringPairVector read FSeeAlso;

This item is declared in ancestor TPasItem.

Items here are collected from @seealso tags.

Name of each item is the 1st part of @seealso parameter. Value is the 2nd part of @seealso parameter.

Source: source/component/PasDoc_Items.pas (line 549).

Public property Attributes: TStringPairVector read FAttributes;

This item is declared in ancestor TPasItem.

List of attributes defined for this item

Source: source/component/PasDoc_Items.pas (line 552).

Public property Params: TStringPairVector read FParams;

This item is declared in ancestor TPasItem.

Parameters of method or property.

Name of each item is the name of parameter (without any surrounding whitespace), Value of each item is users description for this item (in already-expanded form).

This is already in the form processed by TTagManager.Execute, i.e. with links resolved, html characters escaped etc. So don't convert them (e.g. before writing to the final docs) once again (by some ExpandDescription or ConvertString or anything like that).

Source: source/component/PasDoc_Items.pas (line 580).

Public property Raises: TStringPairVector read FRaises;

This item is declared in ancestor TPasItem.

Exceptions raised by the method, or by property getter/setter.

Name of each item is the name of exception class (without any surrounding whitespace), Value of each item is users description for this item (in already-expanded form).

This is already in the form processed by TTagManager.Execute, i.e. with links resolved, html characters escaped etc. So don't convert them (e.g. before writing to the final docs) once again (by some ExpandDescription or ConvertString or anything like that).

Source: source/component/PasDoc_Items.pas (line 593).

Public property SourceAbsoluteFileName: string read FSourceAbsoluteFileName write FSourceAbsoluteFileName;

This item is declared in ancestor TPasItem.

Source (absolute) file name where this item is declared. Set by the parser when parsing the item's declaration.

Source: source/component/PasDoc_Items.pas (line 606).

Public property SourceLine: Integer read FSourceLine write FSourceLine;

This item is declared in ancestor TPasItem.

Source line number (1-based) where this item is declared. Set by the parser when parsing the item's declaration.

Source: source/component/PasDoc_Items.pas (line 611).

Public property Members: TPasItems read FMembers;

This item has no description.

Source: source/component/PasDoc_Items.pas (line 697).


PasDoc's autodoc: PasDoc_Items: Class TPasRoutine

Class TPasRoutine

Description
Hierarchy
Fields
Methods
Properties

Unit

PasDoc_Items

Declaration

type TPasRoutine = class(TPasItem)

Description

This represents:

  1. global function/procedure,

  2. method (function/procedure of a structure (TPasCio)),

  3. type (pointer to one of the above) (in this case Name is the type name).

Source: source/component/PasDoc_Items.pas (line 710).

Hierarchy

  • TObject
  • TSerializable
  • TBaseItem
  • TPasItem
  • TPasRoutine
Show Additional Members:

Overview

Fields

Protected | FReturns: string;
Protected | FWhat: TRoutineType;
Protected | FDirectives: TStandardDirectives;
Protected | FParamTypes: TStringVector;
Protected | FIsType: Boolean;

Methods

Public | class function Read7BitEncodedInt(const ASource: TStream): Integer;
Public | class procedure Write7BitEncodedInt(Value: Integer; const ADestination: TStream);
Public | class function LoadStringFromStream(const ASource: TStream): string;
Public | class procedure SaveStringToStream(const AValue: string; const ADestination: TStream);
Public | class function LoadDoubleFromStream(const ASource: TStream): double;
Public | class procedure SaveDoubleToStream(const AValue: double; const ADestination: TStream);
Public | class function LoadIntegerFromStream(const ASource: TStream): Longint;
Public | class procedure SaveIntegerToStream(const AValue: Longint; const ADestination: TStream);
Public | class procedure SerializeObject(const AObject: TSerializable; const ADestination: TStream);
Public | class function DeserializeObject(const ASource: TStream): TSerializable;
Public | class procedure Register(const AClass: TSerializableClass);
Public | procedure SerializeToFile(const AFileName: string);
Public | class function DeserializeFromFile(const AFileName: string): TSerializable;
Public | function FindItem(const NameParts: TNameParts): TBaseItem; virtual;
Public | function FindItemMaybeInAncestors(const NameParts: TNameParts): TBaseItem; virtual;
Public | function RawDescriptionInfo: PRawDescriptionInfo;
Protected | function FindNameWithinUnit(const NameParts: TNameParts): TBaseItem; virtual;
Public | function FindName(const NameParts: TNameParts): TBaseItem; override;
Public | function MyUnitName: String;
Public | function HasDescription: Boolean;
Public | function HasRawDescription: Boolean;
Public | function QualifiedName: String; override;
Public | function UnitRelativeQualifiedName: string; virtual;
Public | procedure Sort(const SortSettings: TSortSettings); virtual;
Public | procedure SetAttributes(var Value: TStringPairVector);
Public | function GetInheritedItemDescriptions: TStringPairVector; virtual;
Public | function BasePath: string; override;
Protected | procedure Serialize(const ADestination: TStream); override;
Protected | procedure Deserialize(const ASource: TStream); override;
Protected | procedure StoreReturnsTag(ThisTag: TTag; var ThisTagData: TObject; EnclosingTag: TTag; var EnclosingTagData: TObject; const TagParameter: string; var ReplaceStr: string);
Public | constructor Create; override;
Public | destructor Destroy; override;
Public | procedure RegisterTags(TagManager: TTagManager); override;
Public | function HasOptionalInfo: boolean; override;
Public | function Signature: string; override;
Public | function InheritedItem: TPasItem; override;
Public | function IsOverride: Boolean; override;

Properties

Public | property WasDeserialized: boolean read FWasDeserialized;
Public | property DetailedDescription: string read FDetailedDescription write FDetailedDescription;
Public | property RawDescription: string read GetRawDescription write WriteRawDescription;
Public | property FullLink: string read FFullLink write FFullLink;
Public | property LastMod: string read FLastMod write FLastMod;
Public | property Name: string read FName write FName;
Public | property Authors: TStringVector read FAuthors write SetAuthors;
Public | property Created: string read FCreated;
Public | property AutoLinkHereAllowed: boolean read FAutoLinkHereAllowed write FAutoLinkHereAllowed default true;
Public | property AbstractDescription: string read FAbstractDescription write FAbstractDescription;
Public | property AbstractDescriptionWasAutomatic: boolean read FAbstractDescriptionWasAutomatic write FAbstractDescriptionWasAutomatic;
Public | property MyUnit: TPasUnit read FMyUnit write FMyUnit;
Public | property MyObject: TPasCio read FMyObject write FMyObject;
Public | property MyEnum: TPasEnum read FMyEnum write FMyEnum;
Public | property Visibility: TVisibility read FVisibility write FVisibility;
Public | property HintDirectives: THintDirectives read FHintDirectives write FHintDirectives;
Public | property DeprecatedNote: string read FDeprecatedNote write FDeprecatedNote;
Public | property FullDeclaration: string read FFullDeclaration write FFullDeclaration;
Public | property SeeAlso: TStringPairVector read FSeeAlso;
Public | property Attributes: TStringPairVector read FAttributes;
Public | property Params: TStringPairVector read FParams;
Public | property Raises: TStringPairVector read FRaises;
Public | property SourceAbsoluteFileName: string read FSourceAbsoluteFileName write FSourceAbsoluteFileName;
Public | property SourceLine: Integer read FSourceLine write FSourceLine;
Public | property What: TRoutineType read FWhat write FWhat;
Public | property IsType: Boolean read FIsType write FIsType default false;
Public | property Returns: string read FReturns;
Public | property Directives: TStandardDirectives read FDirectives write FDirectives;
Public | property ParamTypes: TStringVector read FParamTypes write FParamTypes;

Description

Fields

Protected FReturns: string;

This item has no description.

Source: source/component/PasDoc_Items.pas (line 712).

Protected FWhat: TRoutineType;

This item has no description.

Source: source/component/PasDoc_Items.pas (line 713).

Protected FDirectives: TStandardDirectives;

This item has no description.

Source: source/component/PasDoc_Items.pas (line 714).

Protected FParamTypes: TStringVector;

This item has no description.

Source: source/component/PasDoc_Items.pas (line 715).

Protected FIsType: Boolean;

This item has no description.

Source: source/component/PasDoc_Items.pas (line 716).

Methods

Public class function Read7BitEncodedInt(const ASource: TStream): Integer;

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 49).

Public class procedure Write7BitEncodedInt(Value: Integer; const ADestination: TStream);

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 50).

Public class function LoadStringFromStream(const ASource: TStream): string;

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 52).

Public class procedure SaveStringToStream(const AValue: string; const ADestination: TStream);

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 53).

Public class function LoadDoubleFromStream(const ASource: TStream): double;

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 54).

Public class procedure SaveDoubleToStream(const AValue: double; const ADestination: TStream);

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 55).

Public class function LoadIntegerFromStream(const ASource: TStream): Longint;

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 56).

Public class procedure SaveIntegerToStream(const AValue: Longint; const ADestination: TStream);

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 57).

Public class procedure SerializeObject(const AObject: TSerializable; const ADestination: TStream);

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 60).

Public class function DeserializeObject(const ASource: TStream): TSerializable;

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 61).

Public class procedure Register(const AClass: TSerializableClass);

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 62).

Public procedure SerializeToFile(const AFileName: string);

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 63).

Public class function DeserializeFromFile(const AFileName: string): TSerializable;

This item is declared in ancestor TSerializable.

Read back from file.

Exceptions raised
EInvalidCacheFileVersion
When the cached file contents are from an old pasdoc version (or invalid).

Source: source/component/PasDoc_Serialize.pas (line 67).

Public function FindItem(const NameParts: TNameParts): TBaseItem; virtual;

This item is declared in ancestor TBaseItem.

Search for an item with name NameParts inside this Pascal item. For units, it searches for items declared inside this unit (like a procedure, or a class in this unit). For classes it searches for items declared within this class (like a method or a property). For an enumerated type, it searches for members of this enumerated type.

All normal rules of ObjectPascal scope apply, which means that e.g. classes have their separate namespace. When searching for Foo from the unit level, we do not "look into" class namespaces.

Returns nil if not found.

Note that it never compares NameParts with Self.Name. You may want to check this yourself if you want.

Note that for TPasItem descendants, it always returns also some TPasItem descendant (so if you use this method with some TPasItem instance, you can safely cast result of this method to TPasItem).

Implementation in this class always returns nil. Override as necessary.

Source: source/component/PasDoc_Items.pas (line 249).

Public function FindItemMaybeInAncestors(const NameParts: TNameParts): TBaseItem; virtual;

This item is declared in ancestor TBaseItem.

This is just like FindItem, but in case of classes or such it should also search within ancestors. In this class, the default implementation just calls FindItem.

Source: source/component/PasDoc_Items.pas (line 254).

Public function RawDescriptionInfo: PRawDescriptionInfo;

This item is declared in ancestor TBaseItem.

Full info about RawDescription of this item, including it's filename and position.

This is intended to be initialized by parser.

This returns PRawDescriptionInfo instead of just TRawDescriptionInfo to allow natural setting of properties of this record (otherwise

Item.RawDescriptionInfo.StreamName := 'foo';

would not work as expected) .

Source: source/component/PasDoc_Items.pas (line 296).

Protected function FindNameWithinUnit(const NameParts: TNameParts): TBaseItem; virtual;

This item is declared in ancestor TPasItem.

This does the same thing as FindName but it doesn't scan other units. If this item is a unit, it searches only inside this unit, else it searches only inside MyUnit unit.

Actually FindName uses this function.

Source: source/component/PasDoc_Items.pas (line 399).

Public function FindName(const NameParts: TNameParts): TBaseItem; override;

This item is declared in ancestor TPasItem.

This item has no description. Showing description inherited from TBaseItem.FindName.

Do all you can to find link specified by NameParts.

While searching this tries to mimic ObjectPascal identifier scope as much as it can. It seaches within this item, but also within class enclosing this item, within ancestors of this class, within unit enclosing this item, then within units used by unit of this item.

Source: source/component/PasDoc_Items.pas (line 404).

Public function MyUnitName: String;

This item is declared in ancestor TPasItem.

Name MyUnit or empty string if MyUnit is nil.

Source: source/component/PasDoc_Items.pas (line 409).

Public function HasDescription: Boolean;

This item is declared in ancestor TPasItem.

Returns true if there is a DetailedDescription or AbstractDescription available.

Source: source/component/PasDoc_Items.pas (line 464).

Public function HasRawDescription: Boolean;

This item is declared in ancestor TPasItem.

Is RawDescription not empty.

Source: source/component/PasDoc_Items.pas (line 467).

Public function QualifiedName: String; override;

This item is declared in ancestor TPasItem.

This item has no description. Showing description inherited from TBaseItem.QualifiedName.

Returns the qualified name of the item. This is intended to return a concise and not ambigous name. E.g. in case of TPasItem it is overridden to return Name qualified by class name and unit name.

In this class this simply returns Name.

Source: source/component/PasDoc_Items.pas (line 469).

Public function UnitRelativeQualifiedName: string; virtual;

This item is declared in ancestor TPasItem.

This item has no description.

Source: source/component/PasDoc_Items.pas (line 470).

Public procedure Sort(const SortSettings: TSortSettings); virtual;

This item is declared in ancestor TPasItem.

Sort items inside (recursively, so it sorts within the items too). E.g. in case of TPasUnit, we can sort variables, constants, CIOs in the unit, and then we call Sort(SortSettings) for every CIO.

Only the thigns listed in SortSettings will be sorted, the rest will be left unsorted.

Note that some things are never sorted, e.g. members of TPasEnum are never sorted (since their order affects the code logic, so we should not misrepresent it in the output doc).

Source: source/component/PasDoc_Items.pas (line 506).

Public procedure SetAttributes(var Value: TStringPairVector);

This item is declared in ancestor TPasItem.

This item has no description.

Source: source/component/PasDoc_Items.pas (line 553).

Public function GetInheritedItemDescriptions: TStringPairVector; virtual;

This item is declared in ancestor TPasItem.

Generate a list of descriptions defined on this item in base classes.

This stops at the first class ancestor to have a description defined for an ancestor of this item. Along the way it will also collect descriptions of this item from any implemented interfaces.

If there is no description in any ancestor, it will return an empty vector.

Source: source/component/PasDoc_Items.pas (line 565).

Public function BasePath: string; override;

This item is declared in ancestor TPasItem.

This item has no description. Showing description inherited from TBaseItem.BasePath.

The full (absolute) path used to resolve filenames in this item's descriptions. Must always end with PathDelim. In this class, this simply returns GetCurrentDir (with PathDelim added if needed).

Source: source/component/PasDoc_Items.pas (line 567).

Protected procedure Serialize(const ADestination: TStream); override;

This item has no description. Showing description inherited from TBaseItem.Serialize.

Serialization of TPasItem need to store in stream only data that is generated by parser. That's because current approach treats "loading from cache" as equivalent to parsing a unit and stores to cache right after parsing a unit. So what is generated by parser must be written to cache.

That said,

  1. It will not break anything if you will accidentally store in cache something that is not generated by parser. That's because saving to cache will be done anyway right after doing parsing, so properties not initialized by parser will have their initial values anyway. You're just wasting memory for cache, and some cache saving/loading time.

  2. For now, in implementation of serialize/deserialize we try to add even things not generated by parser in a commented out code. This way if approach to cache will change some day, we will be able to use this code.

Source: source/component/PasDoc_Items.pas (line 717).

Protected procedure Deserialize(const ASource: TStream); override;

This item has no description.

Source: source/component/PasDoc_Items.pas (line 718).

Protected procedure StoreReturnsTag(ThisTag: TTag; var ThisTagData: TObject; EnclosingTag: TTag; var EnclosingTagData: TObject; const TagParameter: string; var ReplaceStr: string);

This item has no description.

Source: source/component/PasDoc_Items.pas (line 719).

Public constructor Create; override;

This item has no description.

Source: source/component/PasDoc_Items.pas (line 723).

Public destructor Destroy; override;

This item has no description.

Source: source/component/PasDoc_Items.pas (line 724).

Public procedure RegisterTags(TagManager: TTagManager); override;

In addition to inherited, this also registers TTag that inits Returns.

Source: source/component/PasDoc_Items.pas (line 728).

Public function HasOptionalInfo: boolean; override;

This item has no description. Showing description inherited from TPasItem.HasOptionalInfo.

Is optional information (that may be empty for after parsing unit and expanding tags) specified. Currently this checks Params and Raises and TPasRoutine.Returns.

Source: source/component/PasDoc_Items.pas (line 750).

Public function Signature: string; override;

This item has no description. Showing description inherited from TBaseItem.Signature.

Just like Name but optionally with added routine parameter types, to be unique when overloading is used. For example, for routines it may be like MyMethod(String) or MyMethod(Integer).

Source: source/component/PasDoc_Items.pas (line 752).

Public function InheritedItem: TPasItem; override;

Get the closest item that this item inherits from. Returns Nil if the routine does not override.

Source: source/component/PasDoc_Items.pas (line 756).

Public function IsOverride: Boolean; override;

This item has no description. Showing description inherited from TPasItem.IsOverride.

Whether this item overrides an item in an ancestor.

Source: source/component/PasDoc_Items.pas (line 758).

Properties

Public property WasDeserialized: boolean read FWasDeserialized;

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 68).

Public property DetailedDescription: string read FDetailedDescription write FDetailedDescription;

This item is declared in ancestor TBaseItem.

Detailed description of this item.

In case of TPasItem, this is something more elaborate than TPasItem.AbstractDescription.

This is already in the form suitable for final output, ready to be put inside final documentation.

Source: source/component/PasDoc_Items.pas (line 274).

Public property RawDescription: string read GetRawDescription write WriteRawDescription;

This item is declared in ancestor TBaseItem.

This stores unexpanded version (as specified in user's comment in source code of parsed units) of description of this item.

Actually, this is just a shortcut to RawDescriptionInfo.Content

Source: source/component/PasDoc_Items.pas (line 283).

Public property FullLink: string read FFullLink write FFullLink;

This item is declared in ancestor TBaseItem.

a full link that should be enough to link this item from anywhere else

Source: source/component/PasDoc_Items.pas (line 299).

Public property LastMod: string read FLastMod write FLastMod;

This item is declared in ancestor TBaseItem.

Contains '' or string with date of last modification. This string is already in the form suitable for final output format (i.e. already processed by TDocGenerator.ConvertString).

Source: source/component/PasDoc_Items.pas (line 304).

Public property Name: string read FName write FName;

This item is declared in ancestor TBaseItem.

name of the item

Source: source/component/PasDoc_Items.pas (line 307).

Public property Authors: TStringVector read FAuthors write SetAuthors;

This item is declared in ancestor TBaseItem.

list of strings, each representing one author of this item

Source: source/component/PasDoc_Items.pas (line 318).

Public property Created: string read FCreated;

This item is declared in ancestor TBaseItem.

Contains '' or string with date of creation. This string is already in the form suitable for final output format (i.e. already processed by TDocGenerator.ConvertString).

Source: source/component/PasDoc_Items.pas (line 323).

Public property AutoLinkHereAllowed: boolean read FAutoLinkHereAllowed write FAutoLinkHereAllowed default true;

This item is declared in ancestor TBaseItem.

Is auto-link mechanism allowed to create link to this item ? This may be set to False by @noAutoLinkHere tag in item's description.

Source: source/component/PasDoc_Items.pas (line 327).

Public property AbstractDescription: string read FAbstractDescription write FAbstractDescription;

This item is declared in ancestor TPasItem.

Abstract description of this item. This is intended to be short (e.g. one sentence) description of this object.

This will be inited from @abstract tag in RawDescription, or cutted out from first sentence in RawDescription if --auto-abstract was used.

Note that this is already in the form suitable for final output, with tags expanded, chars converted etc.

Source: source/component/PasDoc_Items.pas (line 421).

Public property AbstractDescriptionWasAutomatic: boolean read FAbstractDescriptionWasAutomatic write FAbstractDescriptionWasAutomatic;

This item is declared in ancestor TPasItem.

TDocGenerator.ExpandDescriptions sets this property to true if AutoAbstract was used and AbstractDescription of this item was automatically deduced from the 1st sentence of RawDescription.

Otherwise (if @abstract was specified explicitly, or there was no @abstract and AutoAbstract was false) this is set to false.

This is a useful hint for generators: it tells them that when they are printing both AbstractDescription and DetailedDescription of the item in one place (e.g. TTexDocGenerator.WriteItemLongDescription and TGenericHTMLDocGenerator.WriteItemLongDescription both do this) then they should not put any additional space between AbstractDescription and DetailedDescription.

This way when user will specify description like

{ First sentence. Second sentence. }
procedure Foo;

and --auto-abstract was on, then "First sentence." is the AbstractDescription, " Second sentence." is DetailedDescription, AbstractDescriptionWasAutomatic is true and and TGenericHTMLDocGenerator.WriteItemLongDescription can print them as "First sentence. Second sentence."

Without this property, TGenericHTMLDocGenerator.WriteItemLongDescription would not be able to say that this abstract was deduced automatically and would print additional paragraph break that was not present in desscription, i.e. "First sentence.<p> Second sentence."

Source: source/component/PasDoc_Items.pas (line 458).

Public property MyUnit: TPasUnit read FMyUnit write FMyUnit;

This item is declared in ancestor TPasItem.

Unit of this item.

Source: source/component/PasDoc_Items.pas (line 473).

Public property MyObject: TPasCio read FMyObject write FMyObject;

This item is declared in ancestor TPasItem.

If this item is part of a class (or record, object., interface...), the corresponding class is stored here. Nil otherwise.

Source: source/component/PasDoc_Items.pas (line 477).

Public property MyEnum: TPasEnum read FMyEnum write FMyEnum;

This item is declared in ancestor TPasItem.

If this item is a member of an enumerated type, then the enclosing enumerated type is stored here. Nil otherwise.

Source: source/component/PasDoc_Items.pas (line 481).

Public property Visibility: TVisibility read FVisibility write FVisibility;

This item is declared in ancestor TPasItem.

This item has no description.

Source: source/component/PasDoc_Items.pas (line 483).

Public property HintDirectives: THintDirectives read FHintDirectives write FHintDirectives;

This item is declared in ancestor TPasItem.

Hint directives specify is this item deprecated, platform-specific, library-specific, experimental, or unimplemented.

Source: source/component/PasDoc_Items.pas (line 487).

Public property DeprecatedNote: string read FDeprecatedNote write FDeprecatedNote;

This item is declared in ancestor TPasItem.

Deprecation note, specified as a string after "deprecated" directive. Empty if none, always empty if HintDirectives does not contain hdDeprecated.

Source: source/component/PasDoc_Items.pas (line 492).

Public property FullDeclaration: string read FFullDeclaration write FFullDeclaration;

This item is declared in ancestor TPasItem.

Full declaration of the item, similar to how it appears in the Pascal source code.

Note that that this is not used for some descendants. Right now it's used only with

  • TPasConstant

  • TPasFieldVariable (includes type, default values, etc.)

  • TPasType

  • TPasRoutine (includes parameter list, procedural directives, etc.)

  • TPasProperty (includes read/write and storage specifiers, etc.)

  • TPasEnum

    But in this special case, '...' is used instead of listing individual members, e.g. 'TEnumName = (...)'. You can get list of Members using TPasEnum.Members. Eventual specifics of each member should be also specified somewhere inside Members items, e.g.

    TMyEnum = (meOne, meTwo = 3);

    and

    TMyEnum = (meOne, meTwo);

    will both result in TPasEnum with equal FullDeclaration (just 'TMyEnum = (...)') but this '= 3' should be marked somewhere inside Members[1] properties.

  • TPasItem when it's a CIO's field.

The intention is that in the future all TPasItem descendants will always have appropriate FullDeclaration set. It all requires adjusting appropriate places in PasDoc_Parser to generate appropriate FullDeclaration.

Source: source/component/PasDoc_Items.pas (line 543).

Public property SeeAlso: TStringPairVector read FSeeAlso;

This item is declared in ancestor TPasItem.

Items here are collected from @seealso tags.

Name of each item is the 1st part of @seealso parameter. Value is the 2nd part of @seealso parameter.

Source: source/component/PasDoc_Items.pas (line 549).

Public property Attributes: TStringPairVector read FAttributes;

This item is declared in ancestor TPasItem.

List of attributes defined for this item

Source: source/component/PasDoc_Items.pas (line 552).

Public property Params: TStringPairVector read FParams;

This item is declared in ancestor TPasItem.

Parameters of method or property.

Name of each item is the name of parameter (without any surrounding whitespace), Value of each item is users description for this item (in already-expanded form).

This is already in the form processed by TTagManager.Execute, i.e. with links resolved, html characters escaped etc. So don't convert them (e.g. before writing to the final docs) once again (by some ExpandDescription or ConvertString or anything like that).

Source: source/component/PasDoc_Items.pas (line 580).

Public property Raises: TStringPairVector read FRaises;

This item is declared in ancestor TPasItem.

Exceptions raised by the method, or by property getter/setter.

Name of each item is the name of exception class (without any surrounding whitespace), Value of each item is users description for this item (in already-expanded form).

This is already in the form processed by TTagManager.Execute, i.e. with links resolved, html characters escaped etc. So don't convert them (e.g. before writing to the final docs) once again (by some ExpandDescription or ConvertString or anything like that).

Source: source/component/PasDoc_Items.pas (line 593).

Public property SourceAbsoluteFileName: string read FSourceAbsoluteFileName write FSourceAbsoluteFileName;

This item is declared in ancestor TPasItem.

Source (absolute) file name where this item is declared. Set by the parser when parsing the item's declaration.

Source: source/component/PasDoc_Items.pas (line 606).

Public property SourceLine: Integer read FSourceLine write FSourceLine;

This item is declared in ancestor TPasItem.

Source line number (1-based) where this item is declared. Set by the parser when parsing the item's declaration.

Source: source/component/PasDoc_Items.pas (line 611).

Public property What: TRoutineType read FWhat write FWhat;

Routine type, see TRoutineType.

Source: source/component/PasDoc_Items.pas (line 731).

Public property IsType: Boolean read FIsType write FIsType default false;

Is this a type (pointer to routine).

Source: source/component/PasDoc_Items.pas (line 734).

Public property Returns: string read FReturns;

What does the method return.

This is already in the form processed by TTagManager.Execute, i.e. with links resolved, html characters escaped etc. So don't convert them (e.g. before writing to the final docs) once again (by some ExpandDescription or ConvertString or anything like that).

Source: source/component/PasDoc_Items.pas (line 743).

Public property Directives: TStandardDirectives read FDirectives write FDirectives;

Set of method directive flags

Source: source/component/PasDoc_Items.pas (line 746).

Public property ParamTypes: TStringVector read FParamTypes write FParamTypes;

This item has no description.

Source: source/component/PasDoc_Items.pas (line 748).


PasDoc's autodoc: PasDoc_Items: Class TPasProperty

Class TPasProperty

Description
Hierarchy
Fields
Methods
Properties

Unit

PasDoc_Items

Declaration

type TPasProperty = class(TPasItem)

Description

This item has no description. Showing description inherited from TPasItem.

This is a TBaseItem descendant that is always declared inside some Pascal source file.

Parser creates only items of this class (e.g. never some basic TBaseItem instance). This class introduces properties and methods pointing to parent unit (MyUnit) and parent class/interface/object/record (MyObject). Also many other things not needed at TBaseItem level are introduced here: things related to handling @abstract tag, @seealso tag, used to sorting items inside (Sort) and some more.

Source: source/component/PasDoc_Items.pas (line 761).

Hierarchy

  • TObject
  • TSerializable
  • TBaseItem
  • TPasItem
  • TPasProperty
Show Additional Members:

Overview

Fields

Protected | FDefaultInClass: Boolean;
Protected | FNoDefault: Boolean;
Protected | FIndexDecl: string;
Protected | FStored: string;
Protected | FDefaultValue: string;
Protected | FWriter: string;
Protected | FPropType: string;
Protected | FReader: string;

Methods

Public | class function Read7BitEncodedInt(const ASource: TStream): Integer;
Public | class procedure Write7BitEncodedInt(Value: Integer; const ADestination: TStream);
Public | class function LoadStringFromStream(const ASource: TStream): string;
Public | class procedure SaveStringToStream(const AValue: string; const ADestination: TStream);
Public | class function LoadDoubleFromStream(const ASource: TStream): double;
Public | class procedure SaveDoubleToStream(const AValue: double; const ADestination: TStream);
Public | class function LoadIntegerFromStream(const ASource: TStream): Longint;
Public | class procedure SaveIntegerToStream(const AValue: Longint; const ADestination: TStream);
Public | class procedure SerializeObject(const AObject: TSerializable; const ADestination: TStream);
Public | class function DeserializeObject(const ASource: TStream): TSerializable;
Public | class procedure Register(const AClass: TSerializableClass);
Public | procedure SerializeToFile(const AFileName: string);
Public | class function DeserializeFromFile(const AFileName: string): TSerializable;
Public | function FindItem(const NameParts: TNameParts): TBaseItem; virtual;
Public | function FindItemMaybeInAncestors(const NameParts: TNameParts): TBaseItem; virtual;
Public | function RawDescriptionInfo: PRawDescriptionInfo;
Public | function Signature: string; virtual;
Protected | function FindNameWithinUnit(const NameParts: TNameParts): TBaseItem; virtual;
Public | constructor Create; override;
Public | destructor Destroy; override;
Public | function FindName(const NameParts: TNameParts): TBaseItem; override;
Public | procedure RegisterTags(TagManager: TTagManager); override;
Public | function MyUnitName: String;
Public | function HasDescription: Boolean;
Public | function HasRawDescription: Boolean;
Public | function QualifiedName: String; override;
Public | function UnitRelativeQualifiedName: string; virtual;
Public | procedure Sort(const SortSettings: TSortSettings); virtual;
Public | procedure SetAttributes(var Value: TStringPairVector);
Public | function GetInheritedItemDescriptions: TStringPairVector; virtual;
Public | function BasePath: string; override;
Public | function HasOptionalInfo: boolean; virtual;
Protected | procedure Serialize(const ADestination: TStream); override;
Protected | procedure Deserialize(const ASource: TStream); override;
Public | function InheritedItem: TPasItem; override;
Public | function IsOverride: Boolean; override;

Properties

Public | property WasDeserialized: boolean read FWasDeserialized;
Public | property DetailedDescription: string read FDetailedDescription write FDetailedDescription;
Public | property RawDescription: string read GetRawDescription write WriteRawDescription;
Public | property FullLink: string read FFullLink write FFullLink;
Public | property LastMod: string read FLastMod write FLastMod;
Public | property Name: string read FName write FName;
Public | property Authors: TStringVector read FAuthors write SetAuthors;
Public | property Created: string read FCreated;
Public | property AutoLinkHereAllowed: boolean read FAutoLinkHereAllowed write FAutoLinkHereAllowed default true;
Public | property AbstractDescription: string read FAbstractDescription write FAbstractDescription;
Public | property AbstractDescriptionWasAutomatic: boolean read FAbstractDescriptionWasAutomatic write FAbstractDescriptionWasAutomatic;
Public | property MyUnit: TPasUnit read FMyUnit write FMyUnit;
Public | property MyObject: TPasCio read FMyObject write FMyObject;
Public | property MyEnum: TPasEnum read FMyEnum write FMyEnum;
Public | property Visibility: TVisibility read FVisibility write FVisibility;
Public | property HintDirectives: THintDirectives read FHintDirectives write FHintDirectives;
Public | property DeprecatedNote: string read FDeprecatedNote write FDeprecatedNote;
Public | property FullDeclaration: string read FFullDeclaration write FFullDeclaration;
Public | property SeeAlso: TStringPairVector read FSeeAlso;
Public | property Attributes: TStringPairVector read FAttributes;
Public | property Params: TStringPairVector read FParams;
Public | property Raises: TStringPairVector read FRaises;
Public | property SourceAbsoluteFileName: string read FSourceAbsoluteFileName write FSourceAbsoluteFileName;
Public | property SourceLine: Integer read FSourceLine write FSourceLine;
Public | property IndexDecl: string read FIndexDecl write FIndexDecl;
Public | property Proptype: string read FPropType write FPropType;
Public | property Reader: string read FReader write FReader;
Public | property Writer: string read FWriter write FWriter;
Public | property DefaultInClass: Boolean read FDefaultInClass write FDefaultInClass;
Public | property DefaultValue: string read FDefaultValue write FDefaultValue;
Public | property NoDefault: Boolean read FNoDefault write FNoDefault;
Public | property Stored: string read FStored write FStored;

Description

Fields

Protected FDefaultInClass: Boolean;

This item has no description.

Source: source/component/PasDoc_Items.pas (line 763).

Protected FNoDefault: Boolean;

This item has no description.

Source: source/component/PasDoc_Items.pas (line 764).

Protected FIndexDecl: string;

This item has no description.

Source: source/component/PasDoc_Items.pas (line 765).

Protected FStored: string;

This item has no description.

Source: source/component/PasDoc_Items.pas (line 766).

Protected FDefaultValue: string;

This item has no description.

Source: source/component/PasDoc_Items.pas (line 767).

Protected FWriter: string;

This item has no description.

Source: source/component/PasDoc_Items.pas (line 768).

Protected FPropType: string;

This item has no description.

Source: source/component/PasDoc_Items.pas (line 769).

Protected FReader: string;

This item has no description.

Source: source/component/PasDoc_Items.pas (line 770).

Methods

Public class function Read7BitEncodedInt(const ASource: TStream): Integer;

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 49).

Public class procedure Write7BitEncodedInt(Value: Integer; const ADestination: TStream);

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 50).

Public class function LoadStringFromStream(const ASource: TStream): string;

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 52).

Public class procedure SaveStringToStream(const AValue: string; const ADestination: TStream);

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 53).

Public class function LoadDoubleFromStream(const ASource: TStream): double;

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 54).

Public class procedure SaveDoubleToStream(const AValue: double; const ADestination: TStream);

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 55).

Public class function LoadIntegerFromStream(const ASource: TStream): Longint;

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 56).

Public class procedure SaveIntegerToStream(const AValue: Longint; const ADestination: TStream);

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 57).

Public class procedure SerializeObject(const AObject: TSerializable; const ADestination: TStream);

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 60).

Public class function DeserializeObject(const ASource: TStream): TSerializable;

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 61).

Public class procedure Register(const AClass: TSerializableClass);

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 62).

Public procedure SerializeToFile(const AFileName: string);

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 63).

Public class function DeserializeFromFile(const AFileName: string): TSerializable;

This item is declared in ancestor TSerializable.

Read back from file.

Exceptions raised
EInvalidCacheFileVersion
When the cached file contents are from an old pasdoc version (or invalid).

Source: source/component/PasDoc_Serialize.pas (line 67).

Public function FindItem(const NameParts: TNameParts): TBaseItem; virtual;

This item is declared in ancestor TBaseItem.

Search for an item with name NameParts inside this Pascal item. For units, it searches for items declared inside this unit (like a procedure, or a class in this unit). For classes it searches for items declared within this class (like a method or a property). For an enumerated type, it searches for members of this enumerated type.

All normal rules of ObjectPascal scope apply, which means that e.g. classes have their separate namespace. When searching for Foo from the unit level, we do not "look into" class namespaces.

Returns nil if not found.

Note that it never compares NameParts with Self.Name. You may want to check this yourself if you want.

Note that for TPasItem descendants, it always returns also some TPasItem descendant (so if you use this method with some TPasItem instance, you can safely cast result of this method to TPasItem).

Implementation in this class always returns nil. Override as necessary.

Source: source/component/PasDoc_Items.pas (line 249).

Public function FindItemMaybeInAncestors(const NameParts: TNameParts): TBaseItem; virtual;

This item is declared in ancestor TBaseItem.

This is just like FindItem, but in case of classes or such it should also search within ancestors. In this class, the default implementation just calls FindItem.

Source: source/component/PasDoc_Items.pas (line 254).

Public function RawDescriptionInfo: PRawDescriptionInfo;

This item is declared in ancestor TBaseItem.

Full info about RawDescription of this item, including it's filename and position.

This is intended to be initialized by parser.

This returns PRawDescriptionInfo instead of just TRawDescriptionInfo to allow natural setting of properties of this record (otherwise

Item.RawDescriptionInfo.StreamName := 'foo';

would not work as expected) .

Source: source/component/PasDoc_Items.pas (line 296).

Public function Signature: string; virtual;

This item is declared in ancestor TBaseItem.

Just like Name but optionally with added routine parameter types, to be unique when overloading is used. For example, for routines it may be like MyMethod(String) or MyMethod(Integer).

Source: source/component/PasDoc_Items.pas (line 339).

Protected function FindNameWithinUnit(const NameParts: TNameParts): TBaseItem; virtual;

This item is declared in ancestor TPasItem.

This does the same thing as FindName but it doesn't scan other units. If this item is a unit, it searches only inside this unit, else it searches only inside MyUnit unit.

Actually FindName uses this function.

Source: source/component/PasDoc_Items.pas (line 399).

Public constructor Create; override;

This item is declared in ancestor TPasItem.

This item has no description.

Source: source/component/PasDoc_Items.pas (line 401).

Public destructor Destroy; override;

This item is declared in ancestor TPasItem.

This item has no description.

Source: source/component/PasDoc_Items.pas (line 402).

Public function FindName(const NameParts: TNameParts): TBaseItem; override;

This item is declared in ancestor TPasItem.

This item has no description. Showing description inherited from TBaseItem.FindName.

Do all you can to find link specified by NameParts.

While searching this tries to mimic ObjectPascal identifier scope as much as it can. It seaches within this item, but also within class enclosing this item, within ancestors of this class, within unit enclosing this item, then within units used by unit of this item.

Source: source/component/PasDoc_Items.pas (line 404).

Public procedure RegisterTags(TagManager: TTagManager); override;

This item is declared in ancestor TPasItem.

This item has no description. Showing description inherited from TBaseItem.RegisterTags.

It registers TTags that init Authors, Created, LastMod and remove relevant tags from description. You can override it to add more handlers.

Source: source/component/PasDoc_Items.pas (line 406).

Public function MyUnitName: String;

This item is declared in ancestor TPasItem.

Name MyUnit or empty string if MyUnit is nil.

Source: source/component/PasDoc_Items.pas (line 409).

Public function HasDescription: Boolean;

This item is declared in ancestor TPasItem.

Returns true if there is a DetailedDescription or AbstractDescription available.

Source: source/component/PasDoc_Items.pas (line 464).

Public function HasRawDescription: Boolean;

This item is declared in ancestor TPasItem.

Is RawDescription not empty.

Source: source/component/PasDoc_Items.pas (line 467).

Public function QualifiedName: String; override;

This item is declared in ancestor TPasItem.

This item has no description. Showing description inherited from TBaseItem.QualifiedName.

Returns the qualified name of the item. This is intended to return a concise and not ambigous name. E.g. in case of TPasItem it is overridden to return Name qualified by class name and unit name.

In this class this simply returns Name.

Source: source/component/PasDoc_Items.pas (line 469).

Public function UnitRelativeQualifiedName: string; virtual;

This item is declared in ancestor TPasItem.

This item has no description.

Source: source/component/PasDoc_Items.pas (line 470).

Public procedure Sort(const SortSettings: TSortSettings); virtual;

This item is declared in ancestor TPasItem.

Sort items inside (recursively, so it sorts within the items too). E.g. in case of TPasUnit, we can sort variables, constants, CIOs in the unit, and then we call Sort(SortSettings) for every CIO.

Only the thigns listed in SortSettings will be sorted, the rest will be left unsorted.

Note that some things are never sorted, e.g. members of TPasEnum are never sorted (since their order affects the code logic, so we should not misrepresent it in the output doc).

Source: source/component/PasDoc_Items.pas (line 506).

Public procedure SetAttributes(var Value: TStringPairVector);

This item is declared in ancestor TPasItem.

This item has no description.

Source: source/component/PasDoc_Items.pas (line 553).

Public function GetInheritedItemDescriptions: TStringPairVector; virtual;

This item is declared in ancestor TPasItem.

Generate a list of descriptions defined on this item in base classes.

This stops at the first class ancestor to have a description defined for an ancestor of this item. Along the way it will also collect descriptions of this item from any implemented interfaces.

If there is no description in any ancestor, it will return an empty vector.

Source: source/component/PasDoc_Items.pas (line 565).

Public function BasePath: string; override;

This item is declared in ancestor TPasItem.

This item has no description. Showing description inherited from TBaseItem.BasePath.

The full (absolute) path used to resolve filenames in this item's descriptions. Must always end with PathDelim. In this class, this simply returns GetCurrentDir (with PathDelim added if needed).

Source: source/component/PasDoc_Items.pas (line 567).

Public function HasOptionalInfo: boolean; virtual;

This item is declared in ancestor TPasItem.

Is optional information (that may be empty for after parsing unit and expanding tags) specified. Currently this checks Params and Raises and TPasRoutine.Returns.

Source: source/component/PasDoc_Items.pas (line 599).

Protected procedure Serialize(const ADestination: TStream); override;

This item has no description. Showing description inherited from TBaseItem.Serialize.

Serialization of TPasItem need to store in stream only data that is generated by parser. That's because current approach treats "loading from cache" as equivalent to parsing a unit and stores to cache right after parsing a unit. So what is generated by parser must be written to cache.

That said,

  1. It will not break anything if you will accidentally store in cache something that is not generated by parser. That's because saving to cache will be done anyway right after doing parsing, so properties not initialized by parser will have their initial values anyway. You're just wasting memory for cache, and some cache saving/loading time.

  2. For now, in implementation of serialize/deserialize we try to add even things not generated by parser in a commented out code. This way if approach to cache will change some day, we will be able to use this code.

Source: source/component/PasDoc_Items.pas (line 771).

Protected procedure Deserialize(const ASource: TStream); override;

This item has no description.

Source: source/component/PasDoc_Items.pas (line 772).

Public function InheritedItem: TPasItem; override;

Get the closest item that this item inherits from. Returns Nil if the property does not override.

Source: source/component/PasDoc_Items.pas (line 796).

Public function IsOverride: Boolean; override;

This item has no description. Showing description inherited from TPasItem.IsOverride.

Whether this item overrides an item in an ancestor.

Source: source/component/PasDoc_Items.pas (line 798).

Properties

Public property WasDeserialized: boolean read FWasDeserialized;

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 68).

Public property DetailedDescription: string read FDetailedDescription write FDetailedDescription;

This item is declared in ancestor TBaseItem.

Detailed description of this item.

In case of TPasItem, this is something more elaborate than TPasItem.AbstractDescription.

This is already in the form suitable for final output, ready to be put inside final documentation.

Source: source/component/PasDoc_Items.pas (line 274).

Public property RawDescription: string read GetRawDescription write WriteRawDescription;

This item is declared in ancestor TBaseItem.

This stores unexpanded version (as specified in user's comment in source code of parsed units) of description of this item.

Actually, this is just a shortcut to RawDescriptionInfo.Content

Source: source/component/PasDoc_Items.pas (line 283).

Public property FullLink: string read FFullLink write FFullLink;

This item is declared in ancestor TBaseItem.

a full link that should be enough to link this item from anywhere else

Source: source/component/PasDoc_Items.pas (line 299).

Public property LastMod: string read FLastMod write FLastMod;

This item is declared in ancestor TBaseItem.

Contains '' or string with date of last modification. This string is already in the form suitable for final output format (i.e. already processed by TDocGenerator.ConvertString).

Source: source/component/PasDoc_Items.pas (line 304).

Public property Name: string read FName write FName;

This item is declared in ancestor TBaseItem.

name of the item

Source: source/component/PasDoc_Items.pas (line 307).

Public property Authors: TStringVector read FAuthors write SetAuthors;

This item is declared in ancestor TBaseItem.

list of strings, each representing one author of this item

Source: source/component/PasDoc_Items.pas (line 318).

Public property Created: string read FCreated;

This item is declared in ancestor TBaseItem.

Contains '' or string with date of creation. This string is already in the form suitable for final output format (i.e. already processed by TDocGenerator.ConvertString).

Source: source/component/PasDoc_Items.pas (line 323).

Public property AutoLinkHereAllowed: boolean read FAutoLinkHereAllowed write FAutoLinkHereAllowed default true;

This item is declared in ancestor TBaseItem.

Is auto-link mechanism allowed to create link to this item ? This may be set to False by @noAutoLinkHere tag in item's description.

Source: source/component/PasDoc_Items.pas (line 327).

Public property AbstractDescription: string read FAbstractDescription write FAbstractDescription;

This item is declared in ancestor TPasItem.

Abstract description of this item. This is intended to be short (e.g. one sentence) description of this object.

This will be inited from @abstract tag in RawDescription, or cutted out from first sentence in RawDescription if --auto-abstract was used.

Note that this is already in the form suitable for final output, with tags expanded, chars converted etc.

Source: source/component/PasDoc_Items.pas (line 421).

Public property AbstractDescriptionWasAutomatic: boolean read FAbstractDescriptionWasAutomatic write FAbstractDescriptionWasAutomatic;

This item is declared in ancestor TPasItem.

TDocGenerator.ExpandDescriptions sets this property to true if AutoAbstract was used and AbstractDescription of this item was automatically deduced from the 1st sentence of RawDescription.

Otherwise (if @abstract was specified explicitly, or there was no @abstract and AutoAbstract was false) this is set to false.

This is a useful hint for generators: it tells them that when they are printing both AbstractDescription and DetailedDescription of the item in one place (e.g. TTexDocGenerator.WriteItemLongDescription and TGenericHTMLDocGenerator.WriteItemLongDescription both do this) then they should not put any additional space between AbstractDescription and DetailedDescription.

This way when user will specify description like

{ First sentence. Second sentence. }
procedure Foo;

and --auto-abstract was on, then "First sentence." is the AbstractDescription, " Second sentence." is DetailedDescription, AbstractDescriptionWasAutomatic is true and and TGenericHTMLDocGenerator.WriteItemLongDescription can print them as "First sentence. Second sentence."

Without this property, TGenericHTMLDocGenerator.WriteItemLongDescription would not be able to say that this abstract was deduced automatically and would print additional paragraph break that was not present in desscription, i.e. "First sentence.<p> Second sentence."

Source: source/component/PasDoc_Items.pas (line 458).

Public property MyUnit: TPasUnit read FMyUnit write FMyUnit;

This item is declared in ancestor TPasItem.

Unit of this item.

Source: source/component/PasDoc_Items.pas (line 473).

Public property MyObject: TPasCio read FMyObject write FMyObject;

This item is declared in ancestor TPasItem.

If this item is part of a class (or record, object., interface...), the corresponding class is stored here. Nil otherwise.

Source: source/component/PasDoc_Items.pas (line 477).

Public property MyEnum: TPasEnum read FMyEnum write FMyEnum;

This item is declared in ancestor TPasItem.

If this item is a member of an enumerated type, then the enclosing enumerated type is stored here. Nil otherwise.

Source: source/component/PasDoc_Items.pas (line 481).

Public property Visibility: TVisibility read FVisibility write FVisibility;

This item is declared in ancestor TPasItem.

This item has no description.

Source: source/component/PasDoc_Items.pas (line 483).

Public property HintDirectives: THintDirectives read FHintDirectives write FHintDirectives;

This item is declared in ancestor TPasItem.

Hint directives specify is this item deprecated, platform-specific, library-specific, experimental, or unimplemented.

Source: source/component/PasDoc_Items.pas (line 487).

Public property DeprecatedNote: string read FDeprecatedNote write FDeprecatedNote;

This item is declared in ancestor TPasItem.

Deprecation note, specified as a string after "deprecated" directive. Empty if none, always empty if HintDirectives does not contain hdDeprecated.

Source: source/component/PasDoc_Items.pas (line 492).

Public property FullDeclaration: string read FFullDeclaration write FFullDeclaration;

This item is declared in ancestor TPasItem.

Full declaration of the item, similar to how it appears in the Pascal source code.

Note that that this is not used for some descendants. Right now it's used only with

  • TPasConstant

  • TPasFieldVariable (includes type, default values, etc.)

  • TPasType

  • TPasRoutine (includes parameter list, procedural directives, etc.)

  • TPasProperty (includes read/write and storage specifiers, etc.)

  • TPasEnum

    But in this special case, '...' is used instead of listing individual members, e.g. 'TEnumName = (...)'. You can get list of Members using TPasEnum.Members. Eventual specifics of each member should be also specified somewhere inside Members items, e.g.

    TMyEnum = (meOne, meTwo = 3);

    and

    TMyEnum = (meOne, meTwo);

    will both result in TPasEnum with equal FullDeclaration (just 'TMyEnum = (...)') but this '= 3' should be marked somewhere inside Members[1] properties.

  • TPasItem when it's a CIO's field.

The intention is that in the future all TPasItem descendants will always have appropriate FullDeclaration set. It all requires adjusting appropriate places in PasDoc_Parser to generate appropriate FullDeclaration.

Source: source/component/PasDoc_Items.pas (line 543).

Public property SeeAlso: TStringPairVector read FSeeAlso;

This item is declared in ancestor TPasItem.

Items here are collected from @seealso tags.

Name of each item is the 1st part of @seealso parameter. Value is the 2nd part of @seealso parameter.

Source: source/component/PasDoc_Items.pas (line 549).

Public property Attributes: TStringPairVector read FAttributes;

This item is declared in ancestor TPasItem.

List of attributes defined for this item

Source: source/component/PasDoc_Items.pas (line 552).

Public property Params: TStringPairVector read FParams;

This item is declared in ancestor TPasItem.

Parameters of method or property.

Name of each item is the name of parameter (without any surrounding whitespace), Value of each item is users description for this item (in already-expanded form).

This is already in the form processed by TTagManager.Execute, i.e. with links resolved, html characters escaped etc. So don't convert them (e.g. before writing to the final docs) once again (by some ExpandDescription or ConvertString or anything like that).

Source: source/component/PasDoc_Items.pas (line 580).

Public property Raises: TStringPairVector read FRaises;

This item is declared in ancestor TPasItem.

Exceptions raised by the method, or by property getter/setter.

Name of each item is the name of exception class (without any surrounding whitespace), Value of each item is users description for this item (in already-expanded form).

This is already in the form processed by TTagManager.Execute, i.e. with links resolved, html characters escaped etc. So don't convert them (e.g. before writing to the final docs) once again (by some ExpandDescription or ConvertString or anything like that).

Source: source/component/PasDoc_Items.pas (line 593).

Public property SourceAbsoluteFileName: string read FSourceAbsoluteFileName write FSourceAbsoluteFileName;

This item is declared in ancestor TPasItem.

Source (absolute) file name where this item is declared. Set by the parser when parsing the item's declaration.

Source: source/component/PasDoc_Items.pas (line 606).

Public property SourceLine: Integer read FSourceLine write FSourceLine;

This item is declared in ancestor TPasItem.

Source line number (1-based) where this item is declared. Set by the parser when parsing the item's declaration.

Source: source/component/PasDoc_Items.pas (line 611).

Public property IndexDecl: string read FIndexDecl write FIndexDecl;

contains the optional index declaration, including brackets

Source: source/component/PasDoc_Items.pas (line 775).

Public property Proptype: string read FPropType write FPropType;

contains the type of the property

Source: source/component/PasDoc_Items.pas (line 777).

Public property Reader: string read FReader write FReader;

read specifier

Source: source/component/PasDoc_Items.pas (line 779).

Public property Writer: string read FWriter write FWriter;

write specifier

Source: source/component/PasDoc_Items.pas (line 781).

Public property DefaultInClass: Boolean read FDefaultInClass write FDefaultInClass;

Is it the default property in class. For example "property Items[I: Integer]: String read GetItems; default;".

Source: source/component/PasDoc_Items.pas (line 784).

Public property DefaultValue: string read FDefaultValue write FDefaultValue;

Default value. For example it will be 123 for declaration like this "property Xxx: Integer default 123;".

Source: source/component/PasDoc_Items.pas (line 788).

Public property NoDefault: Boolean read FNoDefault write FNoDefault;

true if Nodefault property

Source: source/component/PasDoc_Items.pas (line 790).

Public property Stored: string read FStored write FStored;

keeps Stored specifier

Source: source/component/PasDoc_Items.pas (line 792).


PasDoc's autodoc: PasDoc_Items: Class TPasCio

Class TPasCio

Description
Hierarchy
Methods
Properties

Unit

PasDoc_Items

Declaration

type TPasCio = class(TPasType)

Description

Extends TPasItem to store all items in a class / an object, e.g. fields.

TODO: Rename to TPasStructure, most general term.

Source: source/component/PasDoc_Items.pas (line 826).

Hierarchy

  • TObject
  • TSerializable
  • TBaseItem
  • TPasItem
  • TPasType
  • TPasCio
Show Additional Members:

Overview

Methods

Public | class function Read7BitEncodedInt(const ASource: TStream): Integer;
Public | class procedure Write7BitEncodedInt(Value: Integer; const ADestination: TStream);
Public | class function LoadStringFromStream(const ASource: TStream): string;
Public | class procedure SaveStringToStream(const AValue: string; const ADestination: TStream);
Public | class function LoadDoubleFromStream(const ASource: TStream): double;
Public | class procedure SaveDoubleToStream(const AValue: double; const ADestination: TStream);
Public | class function LoadIntegerFromStream(const ASource: TStream): Longint;
Public | class procedure SaveIntegerToStream(const AValue: Longint; const ADestination: TStream);
Public | class procedure SerializeObject(const AObject: TSerializable; const ADestination: TStream);
Public | class function DeserializeObject(const ASource: TStream): TSerializable;
Public | class procedure Register(const AClass: TSerializableClass);
Public | procedure SerializeToFile(const AFileName: string);
Public | class function DeserializeFromFile(const AFileName: string): TSerializable;
Public | function RawDescriptionInfo: PRawDescriptionInfo;
Public | function Signature: string; virtual;
Protected | function FindNameWithinUnit(const NameParts: TNameParts): TBaseItem; virtual;
Public | function FindName(const NameParts: TNameParts): TBaseItem; override;
Public | function MyUnitName: String;
Public | function HasDescription: Boolean;
Public | function HasRawDescription: Boolean;
Public | function QualifiedName: String; override;
Public | function UnitRelativeQualifiedName: string; virtual;
Public | procedure SetAttributes(var Value: TStringPairVector);
Public | function BasePath: string; override;
Public | function HasOptionalInfo: boolean; virtual;
Public | function IsOverride: Boolean; virtual;
Protected | procedure Serialize(const ADestination: TStream); override;
Protected | procedure Deserialize(const ASource: TStream); override;
Protected | procedure StoreMemberTag(ThisTag: TTag; var ThisTagData: TObject; EnclosingTag: TTag; var EnclosingTagData: TObject; const TagParameter: string; var ReplaceStr: string);
Public | constructor Create; override;
Public | destructor Destroy; override;
Public | function FindItem(const NameParts: TNameParts): TBaseItem; override;
Public | function FindItemMaybeInAncestors(const NameParts: TNameParts): TBaseItem; override;
Public | function FindItemInAncestors(const NameParts: TNameParts): TPasItem;
Public | procedure Sort(const SortSettings: TSortSettings); override;
Public | procedure RegisterTags(TagManager: TTagManager); override;
Public | function FirstAncestor: TPasItem;
Public | function InheritedItem: TPasItem; override;
Public | function GetInheritedItemDescriptions: TStringPairVector; override;
Public | function FirstAncestorName: string;
Public | function ShowVisibility: boolean;

Properties

Public | property WasDeserialized: boolean read FWasDeserialized;
Public | property DetailedDescription: string read FDetailedDescription write FDetailedDescription;
Public | property RawDescription: string read GetRawDescription write WriteRawDescription;
Public | property FullLink: string read FFullLink write FFullLink;
Public | property LastMod: string read FLastMod write FLastMod;
Public | property Name: string read FName write FName;
Public | property Authors: TStringVector read FAuthors write SetAuthors;
Public | property Created: string read FCreated;
Public | property AutoLinkHereAllowed: boolean read FAutoLinkHereAllowed write FAutoLinkHereAllowed default true;
Public | property AbstractDescription: string read FAbstractDescription write FAbstractDescription;
Public | property AbstractDescriptionWasAutomatic: boolean read FAbstractDescriptionWasAutomatic write FAbstractDescriptionWasAutomatic;
Public | property MyUnit: TPasUnit read FMyUnit write FMyUnit;
Public | property MyObject: TPasCio read FMyObject write FMyObject;
Public | property MyEnum: TPasEnum read FMyEnum write FMyEnum;
Public | property Visibility: TVisibility read FVisibility write FVisibility;
Public | property HintDirectives: THintDirectives read FHintDirectives write FHintDirectives;
Public | property DeprecatedNote: string read FDeprecatedNote write FDeprecatedNote;
Public | property FullDeclaration: string read FFullDeclaration write FFullDeclaration;
Public | property SeeAlso: TStringPairVector read FSeeAlso;
Public | property Attributes: TStringPairVector read FAttributes;
Public | property Params: TStringPairVector read FParams;
Public | property Raises: TStringPairVector read FRaises;
Public | property SourceAbsoluteFileName: string read FSourceAbsoluteFileName write FSourceAbsoluteFileName;
Public | property SourceLine: Integer read FSourceLine write FSourceLine;
Public | property Ancestors: TStringPairVector read FAncestors;
Public | property Cios: TPasNestedCios read FCios;
Public | property ClassDirective: TClassDirective read FClassDirective write FClassDirective;
Public | property Fields: TPasItems read FFields;
Public | property Constants: TPasItems read FConstants;
Public | property HelperTypeIdentifier: string read FHelperTypeIdentifier write FHelperTypeIdentifier;
Public | property Methods: TPasRoutines read FMethods;
Public | property Properties: TPasProperties read FProperties;
Public | property MyType: TCIOType read FMyType write FMyType;
Public | property OutputFileName: string read FOutputFileName write FOutputFileName;
Public | property Types: TPasTypes read FTypes;
Public | property NameWithGeneric: string read FNameWithGeneric write FNameWithGeneric;

Description

Methods

Public class function Read7BitEncodedInt(const ASource: TStream): Integer;

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 49).

Public class procedure Write7BitEncodedInt(Value: Integer; const ADestination: TStream);

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 50).

Public class function LoadStringFromStream(const ASource: TStream): string;

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 52).

Public class procedure SaveStringToStream(const AValue: string; const ADestination: TStream);

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 53).

Public class function LoadDoubleFromStream(const ASource: TStream): double;

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 54).

Public class procedure SaveDoubleToStream(const AValue: double; const ADestination: TStream);

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 55).

Public class function LoadIntegerFromStream(const ASource: TStream): Longint;

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 56).

Public class procedure SaveIntegerToStream(const AValue: Longint; const ADestination: TStream);

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 57).

Public class procedure SerializeObject(const AObject: TSerializable; const ADestination: TStream);

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 60).

Public class function DeserializeObject(const ASource: TStream): TSerializable;

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 61).

Public class procedure Register(const AClass: TSerializableClass);

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 62).

Public procedure SerializeToFile(const AFileName: string);

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 63).

Public class function DeserializeFromFile(const AFileName: string): TSerializable;

This item is declared in ancestor TSerializable.

Read back from file.

Exceptions raised
EInvalidCacheFileVersion
When the cached file contents are from an old pasdoc version (or invalid).

Source: source/component/PasDoc_Serialize.pas (line 67).

Public function RawDescriptionInfo: PRawDescriptionInfo;

This item is declared in ancestor TBaseItem.

Full info about RawDescription of this item, including it's filename and position.

This is intended to be initialized by parser.

This returns PRawDescriptionInfo instead of just TRawDescriptionInfo to allow natural setting of properties of this record (otherwise

Item.RawDescriptionInfo.StreamName := 'foo';

would not work as expected) .

Source: source/component/PasDoc_Items.pas (line 296).

Public function Signature: string; virtual;

This item is declared in ancestor TBaseItem.

Just like Name but optionally with added routine parameter types, to be unique when overloading is used. For example, for routines it may be like MyMethod(String) or MyMethod(Integer).

Source: source/component/PasDoc_Items.pas (line 339).

Protected function FindNameWithinUnit(const NameParts: TNameParts): TBaseItem; virtual;

This item is declared in ancestor TPasItem.

This does the same thing as FindName but it doesn't scan other units. If this item is a unit, it searches only inside this unit, else it searches only inside MyUnit unit.

Actually FindName uses this function.

Source: source/component/PasDoc_Items.pas (line 399).

Public function FindName(const NameParts: TNameParts): TBaseItem; override;

This item is declared in ancestor TPasItem.

This item has no description. Showing description inherited from TBaseItem.FindName.

Do all you can to find link specified by NameParts.

While searching this tries to mimic ObjectPascal identifier scope as much as it can. It seaches within this item, but also within class enclosing this item, within ancestors of this class, within unit enclosing this item, then within units used by unit of this item.

Source: source/component/PasDoc_Items.pas (line 404).

Public function MyUnitName: String;

This item is declared in ancestor TPasItem.

Name MyUnit or empty string if MyUnit is nil.

Source: source/component/PasDoc_Items.pas (line 409).

Public function HasDescription: Boolean;

This item is declared in ancestor TPasItem.

Returns true if there is a DetailedDescription or AbstractDescription available.

Source: source/component/PasDoc_Items.pas (line 464).

Public function HasRawDescription: Boolean;

This item is declared in ancestor TPasItem.

Is RawDescription not empty.

Source: source/component/PasDoc_Items.pas (line 467).

Public function QualifiedName: String; override;

This item is declared in ancestor TPasItem.

This item has no description. Showing description inherited from TBaseItem.QualifiedName.

Returns the qualified name of the item. This is intended to return a concise and not ambigous name. E.g. in case of TPasItem it is overridden to return Name qualified by class name and unit name.

In this class this simply returns Name.

Source: source/component/PasDoc_Items.pas (line 469).

Public function UnitRelativeQualifiedName: string; virtual;

This item is declared in ancestor TPasItem.

This item has no description.

Source: source/component/PasDoc_Items.pas (line 470).

Public procedure SetAttributes(var Value: TStringPairVector);

This item is declared in ancestor TPasItem.

This item has no description.

Source: source/component/PasDoc_Items.pas (line 553).

Public function BasePath: string; override;

This item is declared in ancestor TPasItem.

This item has no description. Showing description inherited from TBaseItem.BasePath.

The full (absolute) path used to resolve filenames in this item's descriptions. Must always end with PathDelim. In this class, this simply returns GetCurrentDir (with PathDelim added if needed).

Source: source/component/PasDoc_Items.pas (line 567).

Public function HasOptionalInfo: boolean; virtual;

This item is declared in ancestor TPasItem.

Is optional information (that may be empty for after parsing unit and expanding tags) specified. Currently this checks Params and Raises and TPasRoutine.Returns.

Source: source/component/PasDoc_Items.pas (line 599).

Public function IsOverride: Boolean; virtual;

This item is declared in ancestor TPasItem.

Whether this item overrides an item in an ancestor.

Source: source/component/PasDoc_Items.pas (line 602).

Protected procedure Serialize(const ADestination: TStream); override;

This item has no description. Showing description inherited from TBaseItem.Serialize.

Serialization of TPasItem need to store in stream only data that is generated by parser. That's because current approach treats "loading from cache" as equivalent to parsing a unit and stores to cache right after parsing a unit. So what is generated by parser must be written to cache.

That said,

  1. It will not break anything if you will accidentally store in cache something that is not generated by parser. That's because saving to cache will be done anyway right after doing parsing, so properties not initialized by parser will have their initial values anyway. You're just wasting memory for cache, and some cache saving/loading time.

  2. For now, in implementation of serialize/deserialize we try to add even things not generated by parser in a commented out code. This way if approach to cache will change some day, we will be able to use this code.

Source: source/component/PasDoc_Items.pas (line 841).

Protected procedure Deserialize(const ASource: TStream); override;

This item has no description.

Source: source/component/PasDoc_Items.pas (line 842).

Protected procedure StoreMemberTag(ThisTag: TTag; var ThisTagData: TObject; EnclosingTag: TTag; var EnclosingTagData: TObject; const TagParameter: string; var ReplaceStr: string);

This item has no description.

Source: source/component/PasDoc_Items.pas (line 843).

Public constructor Create; override;

This item has no description.

Source: source/component/PasDoc_Items.pas (line 847).

Public destructor Destroy; override;

This item has no description.

Source: source/component/PasDoc_Items.pas (line 848).

Public function FindItem(const NameParts: TNameParts): TBaseItem; override;

If this class (or interface or object) contains a member with the given name, return it.

Source: source/component/PasDoc_Items.pas (line 852).

Public function FindItemMaybeInAncestors(const NameParts: TNameParts): TBaseItem; override;

This item has no description. Showing description inherited from TBaseItem.FindItemMaybeInAncestors.

This is just like FindItem, but in case of classes or such it should also search within ancestors. In this class, the default implementation just calls FindItem.

Source: source/component/PasDoc_Items.pas (line 854).

Public function FindItemInAncestors(const NameParts: TNameParts): TPasItem;

This searches for item (field, method or property) defined in ancestor of this cio. I.e. searches within the FirstAncestor, then within FirstAncestor.FirstAncestor, and so on. Returns nil if not found.

Source: source/component/PasDoc_Items.pas (line 861).

Public procedure Sort(const SortSettings: TSortSettings); override;

This item has no description. Showing description inherited from TPasItem.Sort.

Sort items inside (recursively, so it sorts within the items too). E.g. in case of TPasUnit, we can sort variables, constants, CIOs in the unit, and then we call Sort(SortSettings) for every CIO.

Only the thigns listed in SortSettings will be sorted, the rest will be left unsorted.

Note that some things are never sorted, e.g. members of TPasEnum are never sorted (since their order affects the code logic, so we should not misrepresent it in the output doc).

Source: source/component/PasDoc_Items.pas (line 863).

Public procedure RegisterTags(TagManager: TTagManager); override;

This item has no description. Showing description inherited from TBaseItem.RegisterTags.

It registers TTags that init Authors, Created, LastMod and remove relevant tags from description. You can override it to add more handlers.

Source: source/component/PasDoc_Items.pas (line 865).

Public function FirstAncestor: TPasItem;

This returns Ancestors[0].Data, i.e. instance of the first ancestor of this Cio (or nil if it couldn't be found), or nil if Ancestors.Count = 0.

Source: source/component/PasDoc_Items.pas (line 911).

Public function InheritedItem: TPasItem; override;

Get the closest item that this item inherits from. Returns the value of FirstAncestor.

Source: source/component/PasDoc_Items.pas (line 915).

Public function GetInheritedItemDescriptions: TStringPairVector; override;

This item has no description. Showing description inherited from TPasItem.GetInheritedItemDescriptions.

Generate a list of descriptions defined on this item in base classes.

This stops at the first class ancestor to have a description defined for an ancestor of this item. Along the way it will also collect descriptions of this item from any implemented interfaces.

If there is no description in any ancestor, it will return an empty vector.

Source: source/component/PasDoc_Items.pas (line 917).

Public function FirstAncestorName: string;

This returns the name of first ancestor of this Cio.

If Ancestor.Count > 0 then it simply returns Ancestors[0], i.e. the name of the first ancestor as was specified at class declaration, else it returns ''.

So this method is roughly something like FirstAncestor.Name, but with a few notable differences:

  • FirstAncestor is nil if the ancestor was not found in items parsed by pasdoc. But this method will still return in this case name of ancestor.

  • FirstAncestor.Name is the name of ancestor as specified at declaration of an ancestor. But this method is the name of ancestor as specified at declaration of this cio — with the same letter case, with optional unit specifier.

If this function returns '', then you can be sure that FirstAncestor returns nil. The other way around is not necessarily true — FirstAncestor may be nil, but still this function may return something <> ''.

Source: source/component/PasDoc_Items.pas (line 944).

Public function ShowVisibility: boolean;

Is visibility of members (public, private and so on) worth showing? This is for now just always True . In the past, for records it was False, but advanced records means that this makes sense for records too. We may remove this property in the future to simplify things, for now we keep this around in case it may make sense for some structure again.

Source: source/component/PasDoc_Items.pas (line 978).

Properties

Public property WasDeserialized: boolean read FWasDeserialized;

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 68).

Public property DetailedDescription: string read FDetailedDescription write FDetailedDescription;

This item is declared in ancestor TBaseItem.

Detailed description of this item.

In case of TPasItem, this is something more elaborate than TPasItem.AbstractDescription.

This is already in the form suitable for final output, ready to be put inside final documentation.

Source: source/component/PasDoc_Items.pas (line 274).

Public property RawDescription: string read GetRawDescription write WriteRawDescription;

This item is declared in ancestor TBaseItem.

This stores unexpanded version (as specified in user's comment in source code of parsed units) of description of this item.

Actually, this is just a shortcut to RawDescriptionInfo.Content

Source: source/component/PasDoc_Items.pas (line 283).

Public property FullLink: string read FFullLink write FFullLink;

This item is declared in ancestor TBaseItem.

a full link that should be enough to link this item from anywhere else

Source: source/component/PasDoc_Items.pas (line 299).

Public property LastMod: string read FLastMod write FLastMod;

This item is declared in ancestor TBaseItem.

Contains '' or string with date of last modification. This string is already in the form suitable for final output format (i.e. already processed by TDocGenerator.ConvertString).

Source: source/component/PasDoc_Items.pas (line 304).

Public property Name: string read FName write FName;

This item is declared in ancestor TBaseItem.

name of the item

Source: source/component/PasDoc_Items.pas (line 307).

Public property Authors: TStringVector read FAuthors write SetAuthors;

This item is declared in ancestor TBaseItem.

list of strings, each representing one author of this item

Source: source/component/PasDoc_Items.pas (line 318).

Public property Created: string read FCreated;

This item is declared in ancestor TBaseItem.

Contains '' or string with date of creation. This string is already in the form suitable for final output format (i.e. already processed by TDocGenerator.ConvertString).

Source: source/component/PasDoc_Items.pas (line 323).

Public property AutoLinkHereAllowed: boolean read FAutoLinkHereAllowed write FAutoLinkHereAllowed default true;

This item is declared in ancestor TBaseItem.

Is auto-link mechanism allowed to create link to this item ? This may be set to False by @noAutoLinkHere tag in item's description.

Source: source/component/PasDoc_Items.pas (line 327).

Public property AbstractDescription: string read FAbstractDescription write FAbstractDescription;

This item is declared in ancestor TPasItem.

Abstract description of this item. This is intended to be short (e.g. one sentence) description of this object.

This will be inited from @abstract tag in RawDescription, or cutted out from first sentence in RawDescription if --auto-abstract was used.

Note that this is already in the form suitable for final output, with tags expanded, chars converted etc.

Source: source/component/PasDoc_Items.pas (line 421).

Public property AbstractDescriptionWasAutomatic: boolean read FAbstractDescriptionWasAutomatic write FAbstractDescriptionWasAutomatic;

This item is declared in ancestor TPasItem.

TDocGenerator.ExpandDescriptions sets this property to true if AutoAbstract was used and AbstractDescription of this item was automatically deduced from the 1st sentence of RawDescription.

Otherwise (if @abstract was specified explicitly, or there was no @abstract and AutoAbstract was false) this is set to false.

This is a useful hint for generators: it tells them that when they are printing both AbstractDescription and DetailedDescription of the item in one place (e.g. TTexDocGenerator.WriteItemLongDescription and TGenericHTMLDocGenerator.WriteItemLongDescription both do this) then they should not put any additional space between AbstractDescription and DetailedDescription.

This way when user will specify description like

{ First sentence. Second sentence. }
procedure Foo;

and --auto-abstract was on, then "First sentence." is the AbstractDescription, " Second sentence." is DetailedDescription, AbstractDescriptionWasAutomatic is true and and TGenericHTMLDocGenerator.WriteItemLongDescription can print them as "First sentence. Second sentence."

Without this property, TGenericHTMLDocGenerator.WriteItemLongDescription would not be able to say that this abstract was deduced automatically and would print additional paragraph break that was not present in desscription, i.e. "First sentence.<p> Second sentence."

Source: source/component/PasDoc_Items.pas (line 458).

Public property MyUnit: TPasUnit read FMyUnit write FMyUnit;

This item is declared in ancestor TPasItem.

Unit of this item.

Source: source/component/PasDoc_Items.pas (line 473).

Public property MyObject: TPasCio read FMyObject write FMyObject;

This item is declared in ancestor TPasItem.

If this item is part of a class (or record, object., interface...), the corresponding class is stored here. Nil otherwise.

Source: source/component/PasDoc_Items.pas (line 477).

Public property MyEnum: TPasEnum read FMyEnum write FMyEnum;

This item is declared in ancestor TPasItem.

If this item is a member of an enumerated type, then the enclosing enumerated type is stored here. Nil otherwise.

Source: source/component/PasDoc_Items.pas (line 481).

Public property Visibility: TVisibility read FVisibility write FVisibility;

This item is declared in ancestor TPasItem.

This item has no description.

Source: source/component/PasDoc_Items.pas (line 483).

Public property HintDirectives: THintDirectives read FHintDirectives write FHintDirectives;

This item is declared in ancestor TPasItem.

Hint directives specify is this item deprecated, platform-specific, library-specific, experimental, or unimplemented.

Source: source/component/PasDoc_Items.pas (line 487).

Public property DeprecatedNote: string read FDeprecatedNote write FDeprecatedNote;

This item is declared in ancestor TPasItem.

Deprecation note, specified as a string after "deprecated" directive. Empty if none, always empty if HintDirectives does not contain hdDeprecated.

Source: source/component/PasDoc_Items.pas (line 492).

Public property FullDeclaration: string read FFullDeclaration write FFullDeclaration;

This item is declared in ancestor TPasItem.

Full declaration of the item, similar to how it appears in the Pascal source code.

Note that that this is not used for some descendants. Right now it's used only with

  • TPasConstant

  • TPasFieldVariable (includes type, default values, etc.)

  • TPasType

  • TPasRoutine (includes parameter list, procedural directives, etc.)

  • TPasProperty (includes read/write and storage specifiers, etc.)

  • TPasEnum

    But in this special case, '...' is used instead of listing individual members, e.g. 'TEnumName = (...)'. You can get list of Members using TPasEnum.Members. Eventual specifics of each member should be also specified somewhere inside Members items, e.g.

    TMyEnum = (meOne, meTwo = 3);

    and

    TMyEnum = (meOne, meTwo);

    will both result in TPasEnum with equal FullDeclaration (just 'TMyEnum = (...)') but this '= 3' should be marked somewhere inside Members[1] properties.

  • TPasItem when it's a CIO's field.

The intention is that in the future all TPasItem descendants will always have appropriate FullDeclaration set. It all requires adjusting appropriate places in PasDoc_Parser to generate appropriate FullDeclaration.

Source: source/component/PasDoc_Items.pas (line 543).

Public property SeeAlso: TStringPairVector read FSeeAlso;

This item is declared in ancestor TPasItem.

Items here are collected from @seealso tags.

Name of each item is the 1st part of @seealso parameter. Value is the 2nd part of @seealso parameter.

Source: source/component/PasDoc_Items.pas (line 549).

Public property Attributes: TStringPairVector read FAttributes;

This item is declared in ancestor TPasItem.

List of attributes defined for this item

Source: source/component/PasDoc_Items.pas (line 552).

Public property Params: TStringPairVector read FParams;

This item is declared in ancestor TPasItem.

Parameters of method or property.

Name of each item is the name of parameter (without any surrounding whitespace), Value of each item is users description for this item (in already-expanded form).

This is already in the form processed by TTagManager.Execute, i.e. with links resolved, html characters escaped etc. So don't convert them (e.g. before writing to the final docs) once again (by some ExpandDescription or ConvertString or anything like that).

Source: source/component/PasDoc_Items.pas (line 580).

Public property Raises: TStringPairVector read FRaises;

This item is declared in ancestor TPasItem.

Exceptions raised by the method, or by property getter/setter.

Name of each item is the name of exception class (without any surrounding whitespace), Value of each item is users description for this item (in already-expanded form).

This is already in the form processed by TTagManager.Execute, i.e. with links resolved, html characters escaped etc. So don't convert them (e.g. before writing to the final docs) once again (by some ExpandDescription or ConvertString or anything like that).

Source: source/component/PasDoc_Items.pas (line 593).

Public property SourceAbsoluteFileName: string read FSourceAbsoluteFileName write FSourceAbsoluteFileName;

This item is declared in ancestor TPasItem.

Source (absolute) file name where this item is declared. Set by the parser when parsing the item's declaration.

Source: source/component/PasDoc_Items.pas (line 606).

Public property SourceLine: Integer read FSourceLine write FSourceLine;

This item is declared in ancestor TPasItem.

Source line number (1-based) where this item is declared. Set by the parser when parsing the item's declaration.

Source: source/component/PasDoc_Items.pas (line 611).

Public property Ancestors: TStringPairVector read FAncestors;

Name of the ancestor (class, object, interface). Each item is a TStringPair, with

  • Name is the name (single Pascal identifier) of this ancestor,

  • Value is the full declaration of this ancestor. For example, in addition to Name, this may include "specialize" directive (for FPC generic specialization) at the beginning. And "<foo,bar>" section at the end (for FPC or Delphi generic specialization).

  • Data is a TPasItem reference to this ancestor, or Nil if not found. This is assigned only in TDocGenerator.BuildLinks.

Note that each ancestor is a TPasItem, not necessarily TPasCio. Consider e.g. the case

TMyStringList = Classes.TStringList;
TMyExtendedStringList = class(TMyStringList)
  ...
end;

At least for now, such declaration will result in TPasType (not TPasCio!) with Name = 'TMyStringList', which means that ancestor of TMyExtendedStringList will be a TPasType instance.

Note that the PasDoc_Parser already takes care of correctly setting Ancestors when user didn't specify any ancestor name at cio declaration. E.g. if this cio is a class, and user didn't specify ancestor name at class declaration, and this class name is not 'TObject' (in case pasdoc parses the RTL), the Ancestors[0] will be set to 'TObject'.

Source: source/component/PasDoc_Items.pas (line 899).

Public property Cios: TPasNestedCios read FCios;

Nested classes (and records, interfaces...).

Source: source/component/PasDoc_Items.pas (line 902).

Public property ClassDirective: TClassDirective read FClassDirective write FClassDirective;

ClassDirective is used to indicate whether a class is sealed or abstract.

Source: source/component/PasDoc_Items.pas (line 905).

Public property Fields: TPasItems read FFields;

Fields inside this class.

Source: source/component/PasDoc_Items.pas (line 947).

Public property Constants: TPasItems read FConstants;

Constants inside this class.

Source: source/component/PasDoc_Items.pas (line 950).

Public property HelperTypeIdentifier: string read FHelperTypeIdentifier write FHelperTypeIdentifier;

Type for which this is a helper. That is, this is 'foo' when we have helper like "helper for foo".

Source: source/component/PasDoc_Items.pas (line 954).

Public property Methods: TPasRoutines read FMethods;

Methods inside this class.

Source: source/component/PasDoc_Items.pas (line 958).

Public property Properties: TPasProperties read FProperties;

Properties inside this class.

Source: source/component/PasDoc_Items.pas (line 961).

Public property MyType: TCIOType read FMyType write FMyType;

Which TCIOType it is: class, interface, record, object etc.

Source: source/component/PasDoc_Items.pas (line 964).

Public property OutputFileName: string read FOutputFileName write FOutputFileName;

name of documentation output file (if each class / object gets its own file, that's the case for HTML, but not for TeX)

Source: source/component/PasDoc_Items.pas (line 968).

Public property Types: TPasTypes read FTypes;

Simple nested types (that don't fall into Cios).

Source: source/component/PasDoc_Items.pas (line 981).

Public property NameWithGeneric: string read FNameWithGeneric write FNameWithGeneric;

Name, with optional "generic" directive before (for FPC generics) and generic type identifiers list "<foo,bar>" after (for FPC and Delphi generics).

Source: source/component/PasDoc_Items.pas (line 985).


PasDoc's autodoc: PasDoc_Items: Class EAnchorAlreadyExists

Class EAnchorAlreadyExists

Description
Hierarchy

Unit

PasDoc_Items

Declaration

type EAnchorAlreadyExists = class(Exception)

Description

This item has no description.

Source: source/component/PasDoc_Items.pas (line 988).

Hierarchy

  • TObject
  • Exception
  • EAnchorAlreadyExists


PasDoc's autodoc: PasDoc_Items: Class TExternalItem

Class TExternalItem

Description
Hierarchy
Methods
Properties

Unit

PasDoc_Items

Declaration

type TExternalItem = class(TBaseItem)

Description

TExternalItem extends TBaseItem to store extra information about a project. TExternalItem is used to hold an introduction and conclusion to the project.

Source: source/component/PasDoc_Items.pas (line 992).

Hierarchy

  • TObject
  • TSerializable
  • TBaseItem
  • TExternalItem
Show Additional Members:

Overview

Methods

Public | class function Read7BitEncodedInt(const ASource: TStream): Integer;
Public | class procedure Write7BitEncodedInt(Value: Integer; const ADestination: TStream);
Public | class function LoadStringFromStream(const ASource: TStream): string;
Public | class procedure SaveStringToStream(const AValue: string; const ADestination: TStream);
Public | class function LoadDoubleFromStream(const ASource: TStream): double;
Public | class procedure SaveDoubleToStream(const AValue: double; const ADestination: TStream);
Public | class function LoadIntegerFromStream(const ASource: TStream): Longint;
Public | class procedure SaveIntegerToStream(const AValue: Longint; const ADestination: TStream);
Public | class procedure SerializeObject(const AObject: TSerializable; const ADestination: TStream);
Public | class function DeserializeObject(const ASource: TStream): TSerializable;
Public | class procedure Register(const AClass: TSerializableClass);
Public | procedure SerializeToFile(const AFileName: string);
Public | class function DeserializeFromFile(const AFileName: string): TSerializable;
Protected | procedure Serialize(const ADestination: TStream); override;
Protected | procedure Deserialize(const ASource: TStream); override;
Public | function FindItemMaybeInAncestors(const NameParts: TNameParts): TBaseItem; virtual;
Public | function FindName(const NameParts: TNameParts): TBaseItem; virtual;
Public | function RawDescriptionInfo: PRawDescriptionInfo;
Public | function QualifiedName: String; virtual;
Public | function Signature: string; virtual;
Protected | procedure HandleTitleTag(ThisTag: TTag; var ThisTagData: TObject; EnclosingTag: TTag; var EnclosingTagData: TObject; const TagParameter: string; var ReplaceStr: string);
Protected | procedure HandleShortTitleTag(ThisTag: TTag; var ThisTagData: TObject; EnclosingTag: TTag; var EnclosingTagData: TObject; const TagParameter: string; var ReplaceStr: string);
Public | Constructor Create; override;
Public | destructor Destroy; override;
Public | procedure RegisterTags(TagManager: TTagManager); override;
Public | function FindItem(const NameParts: TNameParts): TBaseItem; override;
Public | procedure AddAnchor(const AnchorItem: TAnchorItem); overload;
Public | function AddAnchor(const AnchorName: string): TAnchorItem; overload;
Public | function BasePath: string; override;

Properties

Public | property WasDeserialized: boolean read FWasDeserialized;
Public | property DetailedDescription: string read FDetailedDescription write FDetailedDescription;
Public | property RawDescription: string read GetRawDescription write WriteRawDescription;
Public | property FullLink: string read FFullLink write FFullLink;
Public | property LastMod: string read FLastMod write FLastMod;
Public | property Name: string read FName write FName;
Public | property Authors: TStringVector read FAuthors write SetAuthors;
Public | property Created: string read FCreated;
Public | property AutoLinkHereAllowed: boolean read FAutoLinkHereAllowed write FAutoLinkHereAllowed default true;
Public | property OutputFileName: string read FOutputFileName write SetOutputFileName;
Public | property ShortTitle: string read FShortTitle write FShortTitle;
Public | property SourceFileName: string read FSourceFilename write FSourceFilename;
Public | property Title: string read FTitle write FTitle;
Public | property Anchors: TBaseItems read FAnchors;

Description

Methods

Public class function Read7BitEncodedInt(const ASource: TStream): Integer;

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 49).

Public class procedure Write7BitEncodedInt(Value: Integer; const ADestination: TStream);

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 50).

Public class function LoadStringFromStream(const ASource: TStream): string;

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 52).

Public class procedure SaveStringToStream(const AValue: string; const ADestination: TStream);

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 53).

Public class function LoadDoubleFromStream(const ASource: TStream): double;

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 54).

Public class procedure SaveDoubleToStream(const AValue: double; const ADestination: TStream);

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 55).

Public class function LoadIntegerFromStream(const ASource: TStream): Longint;

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 56).

Public class procedure SaveIntegerToStream(const AValue: Longint; const ADestination: TStream);

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 57).

Public class procedure SerializeObject(const AObject: TSerializable; const ADestination: TStream);

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 60).

Public class function DeserializeObject(const ASource: TStream): TSerializable;

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 61).

Public class procedure Register(const AClass: TSerializableClass);

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 62).

Public procedure SerializeToFile(const AFileName: string);

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 63).

Public class function DeserializeFromFile(const AFileName: string): TSerializable;

This item is declared in ancestor TSerializable.

Read back from file.

Exceptions raised
EInvalidCacheFileVersion
When the cached file contents are from an old pasdoc version (or invalid).

Source: source/component/PasDoc_Serialize.pas (line 67).

Protected procedure Serialize(const ADestination: TStream); override;

This item is declared in ancestor TBaseItem.

Serialization of TPasItem need to store in stream only data that is generated by parser. That's because current approach treats "loading from cache" as equivalent to parsing a unit and stores to cache right after parsing a unit. So what is generated by parser must be written to cache.

That said,

  1. It will not break anything if you will accidentally store in cache something that is not generated by parser. That's because saving to cache will be done anyway right after doing parsing, so properties not initialized by parser will have their initial values anyway. You're just wasting memory for cache, and some cache saving/loading time.

  2. For now, in implementation of serialize/deserialize we try to add even things not generated by parser in a commented out code. This way if approach to cache will change some day, we will be able to use this code.

Source: source/component/PasDoc_Items.pas (line 215).

Protected procedure Deserialize(const ASource: TStream); override;

This item is declared in ancestor TBaseItem.

This item has no description.

Source: source/component/PasDoc_Items.pas (line 216).

Public function FindItemMaybeInAncestors(const NameParts: TNameParts): TBaseItem; virtual;

This item is declared in ancestor TBaseItem.

This is just like FindItem, but in case of classes or such it should also search within ancestors. In this class, the default implementation just calls FindItem.

Source: source/component/PasDoc_Items.pas (line 254).

Public function FindName(const NameParts: TNameParts): TBaseItem; virtual;

This item is declared in ancestor TBaseItem.

Do all you can to find link specified by NameParts.

While searching this tries to mimic ObjectPascal identifier scope as much as it can. It seaches within this item, but also within class enclosing this item, within ancestors of this class, within unit enclosing this item, then within units used by unit of this item.

Source: source/component/PasDoc_Items.pas (line 265).

Public function RawDescriptionInfo: PRawDescriptionInfo;

This item is declared in ancestor TBaseItem.

Full info about RawDescription of this item, including it's filename and position.

This is intended to be initialized by parser.

This returns PRawDescriptionInfo instead of just TRawDescriptionInfo to allow natural setting of properties of this record (otherwise

Item.RawDescriptionInfo.StreamName := 'foo';

would not work as expected) .

Source: source/component/PasDoc_Items.pas (line 296).

Public function QualifiedName: String; virtual;

This item is declared in ancestor TBaseItem.

Returns the qualified name of the item. This is intended to return a concise and not ambigous name. E.g. in case of TPasItem it is overridden to return Name qualified by class name and unit name.

In this class this simply returns Name.

Source: source/component/PasDoc_Items.pas (line 315).

Public function Signature: string; virtual;

This item is declared in ancestor TBaseItem.

Just like Name but optionally with added routine parameter types, to be unique when overloading is used. For example, for routines it may be like MyMethod(String) or MyMethod(Integer).

Source: source/component/PasDoc_Items.pas (line 339).

Protected procedure HandleTitleTag(ThisTag: TTag; var ThisTagData: TObject; EnclosingTag: TTag; var EnclosingTagData: TObject; const TagParameter: string; var ReplaceStr: string);

This item has no description.

Source: source/component/PasDoc_Items.pas (line 1002).

Protected procedure HandleShortTitleTag(ThisTag: TTag; var ThisTagData: TObject; EnclosingTag: TTag; var EnclosingTagData: TObject; const TagParameter: string; var ReplaceStr: string);

This item has no description.

Source: source/component/PasDoc_Items.pas (line 1005).

Public Constructor Create; override;

This item has no description.

Source: source/component/PasDoc_Items.pas (line 1009).

Public destructor Destroy; override;

This item has no description.

Source: source/component/PasDoc_Items.pas (line 1010).

Public procedure RegisterTags(TagManager: TTagManager); override;

This item has no description. Showing description inherited from TBaseItem.RegisterTags.

It registers TTags that init Authors, Created, LastMod and remove relevant tags from description. You can override it to add more handlers.

Source: source/component/PasDoc_Items.pas (line 1011).

Public function FindItem(const NameParts: TNameParts): TBaseItem; override;

This item has no description. Showing description inherited from TBaseItem.FindItem.

Search for an item with name NameParts inside this Pascal item. For units, it searches for items declared inside this unit (like a procedure, or a class in this unit). For classes it searches for items declared within this class (like a method or a property). For an enumerated type, it searches for members of this enumerated type.

All normal rules of ObjectPascal scope apply, which means that e.g. classes have their separate namespace. When searching for Foo from the unit level, we do not "look into" class namespaces.

Returns nil if not found.

Note that it never compares NameParts with Self.Name. You may want to check this yourself if you want.

Note that for TPasItem descendants, it always returns also some TPasItem descendant (so if you use this method with some TPasItem instance, you can safely cast result of this method to TPasItem).

Implementation in this class always returns nil. Override as necessary.

Source: source/component/PasDoc_Items.pas (line 1017).

Public procedure AddAnchor(const AnchorItem: TAnchorItem); overload;

This item has no description.

Source: source/component/PasDoc_Items.pas (line 1018).

Public function AddAnchor(const AnchorName: string): TAnchorItem; overload;

If item with Name (case ignored) already exists, this raises exception EAnchorAlreadyExists. Otherwise it adds TAnchorItem with given name to Anchors. It also returns created TAnchorItem.

Source: source/component/PasDoc_Items.pas (line 1023).

Public function BasePath: string; override;

This item has no description. Showing description inherited from TBaseItem.BasePath.

The full (absolute) path used to resolve filenames in this item's descriptions. Must always end with PathDelim. In this class, this simply returns GetCurrentDir (with PathDelim added if needed).

Source: source/component/PasDoc_Items.pas (line 1030).

Properties

Public property WasDeserialized: boolean read FWasDeserialized;

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 68).

Public property DetailedDescription: string read FDetailedDescription write FDetailedDescription;

This item is declared in ancestor TBaseItem.

Detailed description of this item.

In case of TPasItem, this is something more elaborate than TPasItem.AbstractDescription.

This is already in the form suitable for final output, ready to be put inside final documentation.

Source: source/component/PasDoc_Items.pas (line 274).

Public property RawDescription: string read GetRawDescription write WriteRawDescription;

This item is declared in ancestor TBaseItem.

This stores unexpanded version (as specified in user's comment in source code of parsed units) of description of this item.

Actually, this is just a shortcut to RawDescriptionInfo.Content

Source: source/component/PasDoc_Items.pas (line 283).

Public property FullLink: string read FFullLink write FFullLink;

This item is declared in ancestor TBaseItem.

a full link that should be enough to link this item from anywhere else

Source: source/component/PasDoc_Items.pas (line 299).

Public property LastMod: string read FLastMod write FLastMod;

This item is declared in ancestor TBaseItem.

Contains '' or string with date of last modification. This string is already in the form suitable for final output format (i.e. already processed by TDocGenerator.ConvertString).

Source: source/component/PasDoc_Items.pas (line 304).

Public property Name: string read FName write FName;

This item is declared in ancestor TBaseItem.

name of the item

Source: source/component/PasDoc_Items.pas (line 307).

Public property Authors: TStringVector read FAuthors write SetAuthors;

This item is declared in ancestor TBaseItem.

list of strings, each representing one author of this item

Source: source/component/PasDoc_Items.pas (line 318).

Public property Created: string read FCreated;

This item is declared in ancestor TBaseItem.

Contains '' or string with date of creation. This string is already in the form suitable for final output format (i.e. already processed by TDocGenerator.ConvertString).

Source: source/component/PasDoc_Items.pas (line 323).

Public property AutoLinkHereAllowed: boolean read FAutoLinkHereAllowed write FAutoLinkHereAllowed default true;

This item is declared in ancestor TBaseItem.

Is auto-link mechanism allowed to create link to this item ? This may be set to False by @noAutoLinkHere tag in item's description.

Source: source/component/PasDoc_Items.pas (line 327).

Public property OutputFileName: string read FOutputFileName write SetOutputFileName;

name of documentation output file

Source: source/component/PasDoc_Items.pas (line 1013).

Public property ShortTitle: string read FShortTitle write FShortTitle;

This item has no description.

Source: source/component/PasDoc_Items.pas (line 1014).

Public property SourceFileName: string read FSourceFilename write FSourceFilename;

This item has no description.

Source: source/component/PasDoc_Items.pas (line 1015).

Public property Title: string read FTitle write FTitle;

This item has no description.

Source: source/component/PasDoc_Items.pas (line 1016).

Public property Anchors: TBaseItems read FAnchors;

Anchors holds a list of TAnchorItems that represent anchors and sections within the TExternalItem. The TAnchorItems have no content so, they should not be indexed separately.

Source: source/component/PasDoc_Items.pas (line 1028).


PasDoc's autodoc: PasDoc_Items: Class TAnchorItem

Class TAnchorItem

Description
Hierarchy
Methods
Properties

Unit

PasDoc_Items

Declaration

type TAnchorItem = class(TBaseItem)

Description

This item has no description. Showing description inherited from TBaseItem.

This is a basic item class, that is linkable, and has some RawDescription.

Source: source/component/PasDoc_Items.pas (line 1035).

Hierarchy

  • TObject
  • TSerializable
  • TBaseItem
  • TAnchorItem
Show Additional Members:

Overview

Methods

Public | class function Read7BitEncodedInt(const ASource: TStream): Integer;
Public | class procedure Write7BitEncodedInt(Value: Integer; const ADestination: TStream);
Public | class function LoadStringFromStream(const ASource: TStream): string;
Public | class procedure SaveStringToStream(const AValue: string; const ADestination: TStream);
Public | class function LoadDoubleFromStream(const ASource: TStream): double;
Public | class procedure SaveDoubleToStream(const AValue: double; const ADestination: TStream);
Public | class function LoadIntegerFromStream(const ASource: TStream): Longint;
Public | class procedure SaveIntegerToStream(const AValue: Longint; const ADestination: TStream);
Public | class procedure SerializeObject(const AObject: TSerializable; const ADestination: TStream);
Public | class function DeserializeObject(const ASource: TStream): TSerializable;
Public | class procedure Register(const AClass: TSerializableClass);
Public | procedure SerializeToFile(const AFileName: string);
Public | class function DeserializeFromFile(const AFileName: string): TSerializable;
Protected | procedure Serialize(const ADestination: TStream); override;
Protected | procedure Deserialize(const ASource: TStream); override;
Public | constructor Create; override;
Public | destructor Destroy; override;
Public | procedure RegisterTags(TagManager: TTagManager); virtual;
Public | function FindItem(const NameParts: TNameParts): TBaseItem; virtual;
Public | function FindItemMaybeInAncestors(const NameParts: TNameParts): TBaseItem; virtual;
Public | function FindName(const NameParts: TNameParts): TBaseItem; virtual;
Public | function RawDescriptionInfo: PRawDescriptionInfo;
Public | function QualifiedName: String; virtual;
Public | function BasePath: string; virtual;
Public | function Signature: string; virtual;

Properties

Public | property WasDeserialized: boolean read FWasDeserialized;
Public | property DetailedDescription: string read FDetailedDescription write FDetailedDescription;
Public | property RawDescription: string read GetRawDescription write WriteRawDescription;
Public | property FullLink: string read FFullLink write FFullLink;
Public | property LastMod: string read FLastMod write FLastMod;
Public | property Name: string read FName write FName;
Public | property Authors: TStringVector read FAuthors write SetAuthors;
Public | property Created: string read FCreated;
Public | property AutoLinkHereAllowed: boolean read FAutoLinkHereAllowed write FAutoLinkHereAllowed default true;
Public | property ExternalItem: TExternalItem read FExternalItem write FExternalItem;
Public | property SectionLevel: Integer read FSectionLevel write FSectionLevel default 0;
Public | property SectionCaption: string read FSectionCaption write FSectionCaption;

Description

Methods

Public class function Read7BitEncodedInt(const ASource: TStream): Integer;

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 49).

Public class procedure Write7BitEncodedInt(Value: Integer; const ADestination: TStream);

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 50).

Public class function LoadStringFromStream(const ASource: TStream): string;

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 52).

Public class procedure SaveStringToStream(const AValue: string; const ADestination: TStream);

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 53).

Public class function LoadDoubleFromStream(const ASource: TStream): double;

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 54).

Public class procedure SaveDoubleToStream(const AValue: double; const ADestination: TStream);

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 55).

Public class function LoadIntegerFromStream(const ASource: TStream): Longint;

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 56).

Public class procedure SaveIntegerToStream(const AValue: Longint; const ADestination: TStream);

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 57).

Public class procedure SerializeObject(const AObject: TSerializable; const ADestination: TStream);

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 60).

Public class function DeserializeObject(const ASource: TStream): TSerializable;

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 61).

Public class procedure Register(const AClass: TSerializableClass);

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 62).

Public procedure SerializeToFile(const AFileName: string);

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 63).

Public class function DeserializeFromFile(const AFileName: string): TSerializable;

This item is declared in ancestor TSerializable.

Read back from file.

Exceptions raised
EInvalidCacheFileVersion
When the cached file contents are from an old pasdoc version (or invalid).

Source: source/component/PasDoc_Serialize.pas (line 67).

Protected procedure Serialize(const ADestination: TStream); override;

This item is declared in ancestor TBaseItem.

Serialization of TPasItem need to store in stream only data that is generated by parser. That's because current approach treats "loading from cache" as equivalent to parsing a unit and stores to cache right after parsing a unit. So what is generated by parser must be written to cache.

That said,

  1. It will not break anything if you will accidentally store in cache something that is not generated by parser. That's because saving to cache will be done anyway right after doing parsing, so properties not initialized by parser will have their initial values anyway. You're just wasting memory for cache, and some cache saving/loading time.

  2. For now, in implementation of serialize/deserialize we try to add even things not generated by parser in a commented out code. This way if approach to cache will change some day, we will be able to use this code.

Source: source/component/PasDoc_Items.pas (line 215).

Protected procedure Deserialize(const ASource: TStream); override;

This item is declared in ancestor TBaseItem.

This item has no description.

Source: source/component/PasDoc_Items.pas (line 216).

Public constructor Create; override;

This item is declared in ancestor TBaseItem.

This item has no description.

Source: source/component/PasDoc_Items.pas (line 218).

Public destructor Destroy; override;

This item is declared in ancestor TBaseItem.

This item has no description.

Source: source/component/PasDoc_Items.pas (line 219).

Public procedure RegisterTags(TagManager: TTagManager); virtual;

This item is declared in ancestor TBaseItem.

It registers TTags that init Authors, Created, LastMod and remove relevant tags from description. You can override it to add more handlers.

Source: source/component/PasDoc_Items.pas (line 224).

Public function FindItem(const NameParts: TNameParts): TBaseItem; virtual;

This item is declared in ancestor TBaseItem.

Search for an item with name NameParts inside this Pascal item. For units, it searches for items declared inside this unit (like a procedure, or a class in this unit). For classes it searches for items declared within this class (like a method or a property). For an enumerated type, it searches for members of this enumerated type.

All normal rules of ObjectPascal scope apply, which means that e.g. classes have their separate namespace. When searching for Foo from the unit level, we do not "look into" class namespaces.

Returns nil if not found.

Note that it never compares NameParts with Self.Name. You may want to check this yourself if you want.

Note that for TPasItem descendants, it always returns also some TPasItem descendant (so if you use this method with some TPasItem instance, you can safely cast result of this method to TPasItem).

Implementation in this class always returns nil. Override as necessary.

Source: source/component/PasDoc_Items.pas (line 249).

Public function FindItemMaybeInAncestors(const NameParts: TNameParts): TBaseItem; virtual;

This item is declared in ancestor TBaseItem.

This is just like FindItem, but in case of classes or such it should also search within ancestors. In this class, the default implementation just calls FindItem.

Source: source/component/PasDoc_Items.pas (line 254).

Public function FindName(const NameParts: TNameParts): TBaseItem; virtual;

This item is declared in ancestor TBaseItem.

Do all you can to find link specified by NameParts.

While searching this tries to mimic ObjectPascal identifier scope as much as it can. It seaches within this item, but also within class enclosing this item, within ancestors of this class, within unit enclosing this item, then within units used by unit of this item.

Source: source/component/PasDoc_Items.pas (line 265).

Public function RawDescriptionInfo: PRawDescriptionInfo;

This item is declared in ancestor TBaseItem.

Full info about RawDescription of this item, including it's filename and position.

This is intended to be initialized by parser.

This returns PRawDescriptionInfo instead of just TRawDescriptionInfo to allow natural setting of properties of this record (otherwise

Item.RawDescriptionInfo.StreamName := 'foo';

would not work as expected) .

Source: source/component/PasDoc_Items.pas (line 296).

Public function QualifiedName: String; virtual;

This item is declared in ancestor TBaseItem.

Returns the qualified name of the item. This is intended to return a concise and not ambigous name. E.g. in case of TPasItem it is overridden to return Name qualified by class name and unit name.

In this class this simply returns Name.

Source: source/component/PasDoc_Items.pas (line 315).

Public function BasePath: string; virtual;

This item is declared in ancestor TBaseItem.

The full (absolute) path used to resolve filenames in this item's descriptions. Must always end with PathDelim. In this class, this simply returns GetCurrentDir (with PathDelim added if needed).

Source: source/component/PasDoc_Items.pas (line 333).

Public function Signature: string; virtual;

This item is declared in ancestor TBaseItem.

Just like Name but optionally with added routine parameter types, to be unique when overloading is used. For example, for routines it may be like MyMethod(String) or MyMethod(Integer).

Source: source/component/PasDoc_Items.pas (line 339).

Properties

Public property WasDeserialized: boolean read FWasDeserialized;

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 68).

Public property DetailedDescription: string read FDetailedDescription write FDetailedDescription;

This item is declared in ancestor TBaseItem.

Detailed description of this item.

In case of TPasItem, this is something more elaborate than TPasItem.AbstractDescription.

This is already in the form suitable for final output, ready to be put inside final documentation.

Source: source/component/PasDoc_Items.pas (line 274).

Public property RawDescription: string read GetRawDescription write WriteRawDescription;

This item is declared in ancestor TBaseItem.

This stores unexpanded version (as specified in user's comment in source code of parsed units) of description of this item.

Actually, this is just a shortcut to RawDescriptionInfo.Content

Source: source/component/PasDoc_Items.pas (line 283).

Public property FullLink: string read FFullLink write FFullLink;

This item is declared in ancestor TBaseItem.

a full link that should be enough to link this item from anywhere else

Source: source/component/PasDoc_Items.pas (line 299).

Public property LastMod: string read FLastMod write FLastMod;

This item is declared in ancestor TBaseItem.

Contains '' or string with date of last modification. This string is already in the form suitable for final output format (i.e. already processed by TDocGenerator.ConvertString).

Source: source/component/PasDoc_Items.pas (line 304).

Public property Name: string read FName write FName;

This item is declared in ancestor TBaseItem.

name of the item

Source: source/component/PasDoc_Items.pas (line 307).

Public property Authors: TStringVector read FAuthors write SetAuthors;

This item is declared in ancestor TBaseItem.

list of strings, each representing one author of this item

Source: source/component/PasDoc_Items.pas (line 318).

Public property Created: string read FCreated;

This item is declared in ancestor TBaseItem.

Contains '' or string with date of creation. This string is already in the form suitable for final output format (i.e. already processed by TDocGenerator.ConvertString).

Source: source/component/PasDoc_Items.pas (line 323).

Public property AutoLinkHereAllowed: boolean read FAutoLinkHereAllowed write FAutoLinkHereAllowed default true;

This item is declared in ancestor TBaseItem.

Is auto-link mechanism allowed to create link to this item ? This may be set to False by @noAutoLinkHere tag in item's description.

Source: source/component/PasDoc_Items.pas (line 327).

Public property ExternalItem: TExternalItem read FExternalItem write FExternalItem;

This item has no description.

Source: source/component/PasDoc_Items.pas (line 1041).

Public property SectionLevel: Integer read FSectionLevel write FSectionLevel default 0;

If this is an anchor for a section, this tells section level (as was specified in the @section tag). Otherwise this is 0.

Source: source/component/PasDoc_Items.pas (line 1046).

Public property SectionCaption: string read FSectionCaption write FSectionCaption;

If this is an anchor for a section, this tells section caption (as was specified in the @section tag).

Source: source/component/PasDoc_Items.pas (line 1051).


PasDoc's autodoc: PasDoc_Items: Class TPasUnit

Class TPasUnit

Description
Hierarchy
Methods
Properties

Unit

PasDoc_Items

Declaration

type TPasUnit = class(TPasItem)

Description

extends TPasItem to store anything about a unit, its constants, types etc.; also provides methods for parsing a complete unit.

Note: Remember to always set CacheDateTime after deserializing this unit.

Source: source/component/PasDoc_Items.pas (line 1060).

Hierarchy

  • TObject
  • TSerializable
  • TBaseItem
  • TPasItem
  • TPasUnit
Show Additional Members:

Overview

Methods

Public | class function Read7BitEncodedInt(const ASource: TStream): Integer;
Public | class procedure Write7BitEncodedInt(Value: Integer; const ADestination: TStream);
Public | class function LoadStringFromStream(const ASource: TStream): string;
Public | class procedure SaveStringToStream(const AValue: string; const ADestination: TStream);
Public | class function LoadDoubleFromStream(const ASource: TStream): double;
Public | class procedure SaveDoubleToStream(const AValue: double; const ADestination: TStream);
Public | class function LoadIntegerFromStream(const ASource: TStream): Longint;
Public | class procedure SaveIntegerToStream(const AValue: Longint; const ADestination: TStream);
Public | class procedure SerializeObject(const AObject: TSerializable; const ADestination: TStream);
Public | class function DeserializeObject(const ASource: TStream): TSerializable;
Public | class procedure Register(const AClass: TSerializableClass);
Public | procedure SerializeToFile(const AFileName: string);
Public | class function DeserializeFromFile(const AFileName: string): TSerializable;
Public | function FindItemMaybeInAncestors(const NameParts: TNameParts): TBaseItem; virtual;
Public | function RawDescriptionInfo: PRawDescriptionInfo;
Public | function Signature: string; virtual;
Protected | function FindNameWithinUnit(const NameParts: TNameParts): TBaseItem; virtual;
Public | function FindName(const NameParts: TNameParts): TBaseItem; override;
Public | procedure RegisterTags(TagManager: TTagManager); override;
Public | function MyUnitName: String;
Public | function HasDescription: Boolean;
Public | function HasRawDescription: Boolean;
Public | function QualifiedName: String; override;
Public | function UnitRelativeQualifiedName: string; virtual;
Public | procedure SetAttributes(var Value: TStringPairVector);
Public | function InheritedItem: TPasItem; virtual;
Public | function GetInheritedItemDescriptions: TStringPairVector; virtual;
Public | function HasOptionalInfo: boolean; virtual;
Public | function IsOverride: Boolean; virtual;
Protected | procedure Serialize(const ADestination: TStream); override;
Protected | procedure Deserialize(const ASource: TStream); override;
Public | constructor Create; override;
Public | destructor Destroy; override;
Public | procedure AddCIO(const i: TPasCio);
Public | procedure AddConstant(const i: TPasItem);
Public | procedure AddType(const i: TPasItem);
Public | procedure AddVariable(const i: TPasItem);
Public | function FindInsideSomeClass(const NameParts: TNameParts): TPasItem;
Public | function FindInsideSomeEnum(const EnumName, EnumMember: string): TPasItem;
Public | function FindItem(const NameParts: TNameParts): TBaseItem; override;
Public | procedure Sort(const SortSettings: TSortSettings); override;
Public | function FileNewerThanCache(const FileName: string): boolean;
Public | function BasePath: string; override;

Properties

Public | property WasDeserialized: boolean read FWasDeserialized;
Public | property DetailedDescription: string read FDetailedDescription write FDetailedDescription;
Public | property RawDescription: string read GetRawDescription write WriteRawDescription;
Public | property FullLink: string read FFullLink write FFullLink;
Public | property LastMod: string read FLastMod write FLastMod;
Public | property Name: string read FName write FName;
Public | property Authors: TStringVector read FAuthors write SetAuthors;
Public | property Created: string read FCreated;
Public | property AutoLinkHereAllowed: boolean read FAutoLinkHereAllowed write FAutoLinkHereAllowed default true;
Public | property AbstractDescription: string read FAbstractDescription write FAbstractDescription;
Public | property AbstractDescriptionWasAutomatic: boolean read FAbstractDescriptionWasAutomatic write FAbstractDescriptionWasAutomatic;
Public | property MyUnit: TPasUnit read FMyUnit write FMyUnit;
Public | property MyObject: TPasCio read FMyObject write FMyObject;
Public | property MyEnum: TPasEnum read FMyEnum write FMyEnum;
Public | property Visibility: TVisibility read FVisibility write FVisibility;
Public | property HintDirectives: THintDirectives read FHintDirectives write FHintDirectives;
Public | property DeprecatedNote: string read FDeprecatedNote write FDeprecatedNote;
Public | property FullDeclaration: string read FFullDeclaration write FFullDeclaration;
Public | property SeeAlso: TStringPairVector read FSeeAlso;
Public | property Attributes: TStringPairVector read FAttributes;
Public | property Params: TStringPairVector read FParams;
Public | property Raises: TStringPairVector read FRaises;
Public | property SourceAbsoluteFileName: string read FSourceAbsoluteFileName write FSourceAbsoluteFileName;
Public | property SourceLine: Integer read FSourceLine write FSourceLine;
Public | property CIOs: TPasTypes read FCIOs;
Public | property Constants: TPasItems read FConstants;
Public | property FuncsProcs: TPasRoutines read FFuncsProcs;
Public | property UsesUnits: TStringVector read FUsesUnits;
Public | property Types: TPasTypes read FTypes;
Public | property Variables: TPasItems read FVariables;
Public | property OutputFileName: string read FOutputFileName write FOutputFileName;
Public | property SourceFileName: string read FSourceFilename write FSourceFilename;
Public | property SourceFileDateTime: TDateTime read FSourceFileDateTime write FSourceFileDateTime;
Public | property CacheDateTime: TDateTime read FCacheDateTime write FCacheDateTime;
Public | property IsUnit: boolean read FIsUnit write FIsUnit;
Public | property IsProgram: boolean read FIsProgram write FIsProgram;

Description

Methods

Public class function Read7BitEncodedInt(const ASource: TStream): Integer;

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 49).

Public class procedure Write7BitEncodedInt(Value: Integer; const ADestination: TStream);

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 50).

Public class function LoadStringFromStream(const ASource: TStream): string;

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 52).

Public class procedure SaveStringToStream(const AValue: string; const ADestination: TStream);

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 53).

Public class function LoadDoubleFromStream(const ASource: TStream): double;

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 54).

Public class procedure SaveDoubleToStream(const AValue: double; const ADestination: TStream);

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 55).

Public class function LoadIntegerFromStream(const ASource: TStream): Longint;

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 56).

Public class procedure SaveIntegerToStream(const AValue: Longint; const ADestination: TStream);

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 57).

Public class procedure SerializeObject(const AObject: TSerializable; const ADestination: TStream);

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 60).

Public class function DeserializeObject(const ASource: TStream): TSerializable;

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 61).

Public class procedure Register(const AClass: TSerializableClass);

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 62).

Public procedure SerializeToFile(const AFileName: string);

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 63).

Public class function DeserializeFromFile(const AFileName: string): TSerializable;

This item is declared in ancestor TSerializable.

Read back from file.

Exceptions raised
EInvalidCacheFileVersion
When the cached file contents are from an old pasdoc version (or invalid).

Source: source/component/PasDoc_Serialize.pas (line 67).

Public function FindItemMaybeInAncestors(const NameParts: TNameParts): TBaseItem; virtual;

This item is declared in ancestor TBaseItem.

This is just like FindItem, but in case of classes or such it should also search within ancestors. In this class, the default implementation just calls FindItem.

Source: source/component/PasDoc_Items.pas (line 254).

Public function RawDescriptionInfo: PRawDescriptionInfo;

This item is declared in ancestor TBaseItem.

Full info about RawDescription of this item, including it's filename and position.

This is intended to be initialized by parser.

This returns PRawDescriptionInfo instead of just TRawDescriptionInfo to allow natural setting of properties of this record (otherwise

Item.RawDescriptionInfo.StreamName := 'foo';

would not work as expected) .

Source: source/component/PasDoc_Items.pas (line 296).

Public function Signature: string; virtual;

This item is declared in ancestor TBaseItem.

Just like Name but optionally with added routine parameter types, to be unique when overloading is used. For example, for routines it may be like MyMethod(String) or MyMethod(Integer).

Source: source/component/PasDoc_Items.pas (line 339).

Protected function FindNameWithinUnit(const NameParts: TNameParts): TBaseItem; virtual;

This item is declared in ancestor TPasItem.

This does the same thing as FindName but it doesn't scan other units. If this item is a unit, it searches only inside this unit, else it searches only inside MyUnit unit.

Actually FindName uses this function.

Source: source/component/PasDoc_Items.pas (line 399).

Public function FindName(const NameParts: TNameParts): TBaseItem; override;

This item is declared in ancestor TPasItem.

This item has no description. Showing description inherited from TBaseItem.FindName.

Do all you can to find link specified by NameParts.

While searching this tries to mimic ObjectPascal identifier scope as much as it can. It seaches within this item, but also within class enclosing this item, within ancestors of this class, within unit enclosing this item, then within units used by unit of this item.

Source: source/component/PasDoc_Items.pas (line 404).

Public procedure RegisterTags(TagManager: TTagManager); override;

This item is declared in ancestor TPasItem.

This item has no description. Showing description inherited from TBaseItem.RegisterTags.

It registers TTags that init Authors, Created, LastMod and remove relevant tags from description. You can override it to add more handlers.

Source: source/component/PasDoc_Items.pas (line 406).

Public function MyUnitName: String;

This item is declared in ancestor TPasItem.

Name MyUnit or empty string if MyUnit is nil.

Source: source/component/PasDoc_Items.pas (line 409).

Public function HasDescription: Boolean;

This item is declared in ancestor TPasItem.

Returns true if there is a DetailedDescription or AbstractDescription available.

Source: source/component/PasDoc_Items.pas (line 464).

Public function HasRawDescription: Boolean;

This item is declared in ancestor TPasItem.

Is RawDescription not empty.

Source: source/component/PasDoc_Items.pas (line 467).

Public function QualifiedName: String; override;

This item is declared in ancestor TPasItem.

This item has no description. Showing description inherited from TBaseItem.QualifiedName.

Returns the qualified name of the item. This is intended to return a concise and not ambigous name. E.g. in case of TPasItem it is overridden to return Name qualified by class name and unit name.

In this class this simply returns Name.

Source: source/component/PasDoc_Items.pas (line 469).

Public function UnitRelativeQualifiedName: string; virtual;

This item is declared in ancestor TPasItem.

This item has no description.

Source: source/component/PasDoc_Items.pas (line 470).

Public procedure SetAttributes(var Value: TStringPairVector);

This item is declared in ancestor TPasItem.

This item has no description.

Source: source/component/PasDoc_Items.pas (line 553).

Public function InheritedItem: TPasItem; virtual;

This item is declared in ancestor TPasItem.

Get the closest item that this item inherits from.

Source: source/component/PasDoc_Items.pas (line 556).

Public function GetInheritedItemDescriptions: TStringPairVector; virtual;

This item is declared in ancestor TPasItem.

Generate a list of descriptions defined on this item in base classes.

This stops at the first class ancestor to have a description defined for an ancestor of this item. Along the way it will also collect descriptions of this item from any implemented interfaces.

If there is no description in any ancestor, it will return an empty vector.

Source: source/component/PasDoc_Items.pas (line 565).

Public function HasOptionalInfo: boolean; virtual;

This item is declared in ancestor TPasItem.

Is optional information (that may be empty for after parsing unit and expanding tags) specified. Currently this checks Params and Raises and TPasRoutine.Returns.

Source: source/component/PasDoc_Items.pas (line 599).

Public function IsOverride: Boolean; virtual;

This item is declared in ancestor TPasItem.

Whether this item overrides an item in an ancestor.

Source: source/component/PasDoc_Items.pas (line 602).

Protected procedure Serialize(const ADestination: TStream); override;

This item has no description. Showing description inherited from TBaseItem.Serialize.

Serialization of TPasItem need to store in stream only data that is generated by parser. That's because current approach treats "loading from cache" as equivalent to parsing a unit and stores to cache right after parsing a unit. So what is generated by parser must be written to cache.

That said,

  1. It will not break anything if you will accidentally store in cache something that is not generated by parser. That's because saving to cache will be done anyway right after doing parsing, so properties not initialized by parser will have their initial values anyway. You're just wasting memory for cache, and some cache saving/loading time.

  2. For now, in implementation of serialize/deserialize we try to add even things not generated by parser in a commented out code. This way if approach to cache will change some day, we will be able to use this code.

Source: source/component/PasDoc_Items.pas (line 1075).

Protected procedure Deserialize(const ASource: TStream); override;

This item has no description.

Source: source/component/PasDoc_Items.pas (line 1076).

Public constructor Create; override;

This item has no description.

Source: source/component/PasDoc_Items.pas (line 1078).

Public destructor Destroy; override;

This item has no description.

Source: source/component/PasDoc_Items.pas (line 1079).

Public procedure AddCIO(const i: TPasCio);

This item has no description.

Source: source/component/PasDoc_Items.pas (line 1080).

Public procedure AddConstant(const i: TPasItem);

This item has no description.

Source: source/component/PasDoc_Items.pas (line 1081).

Public procedure AddType(const i: TPasItem);

This item has no description.

Source: source/component/PasDoc_Items.pas (line 1082).

Public procedure AddVariable(const i: TPasItem);

This item has no description.

Source: source/component/PasDoc_Items.pas (line 1083).

Public function FindInsideSomeClass(const NameParts: TNameParts): TPasItem;

Find item inside a class. Looks first for class named NameParts[0]. Does nothing if NameParts has only 1 part, this is useful only with Length(NameParts) >= 2 (1st class name, then stuff inside class).

Source: source/component/PasDoc_Items.pas (line 1087).

Public function FindInsideSomeEnum(const EnumName, EnumMember: string): TPasItem;

This item has no description.

Source: source/component/PasDoc_Items.pas (line 1088).

Public function FindItem(const NameParts: TNameParts): TBaseItem; override;

This item has no description. Showing description inherited from TBaseItem.FindItem.

Search for an item with name NameParts inside this Pascal item. For units, it searches for items declared inside this unit (like a procedure, or a class in this unit). For classes it searches for items declared within this class (like a method or a property). For an enumerated type, it searches for members of this enumerated type.

All normal rules of ObjectPascal scope apply, which means that e.g. classes have their separate namespace. When searching for Foo from the unit level, we do not "look into" class namespaces.

Returns nil if not found.

Note that it never compares NameParts with Self.Name. You may want to check this yourself if you want.

Note that for TPasItem descendants, it always returns also some TPasItem descendant (so if you use this method with some TPasItem instance, you can safely cast result of this method to TPasItem).

Implementation in this class always returns nil. Override as necessary.

Source: source/component/PasDoc_Items.pas (line 1089).

Public procedure Sort(const SortSettings: TSortSettings); override;

This item has no description. Showing description inherited from TPasItem.Sort.

Sort items inside (recursively, so it sorts within the items too). E.g. in case of TPasUnit, we can sort variables, constants, CIOs in the unit, and then we call Sort(SortSettings) for every CIO.

Only the thigns listed in SortSettings will be sorted, the rest will be left unsorted.

Note that some things are never sorted, e.g. members of TPasEnum are never sorted (since their order affects the code logic, so we should not misrepresent it in the output doc).

Source: source/component/PasDoc_Items.pas (line 1091).

Public function FileNewerThanCache(const FileName: string): boolean;

Returns if unit WasDeserialized, and file FileName exists, and file FileName is newer than CacheDateTime.

So if FileName contains some info generated from information of this unit, then we can somehow assume that FileName still contains valid information and we don't have to write it once again.

Sure, we're not really 100% sure that FileName still contains valid information, but that's how current approach to cache works.

Source: source/component/PasDoc_Items.pas (line 1151).

Public function BasePath: string; override;

This item has no description. Showing description inherited from TBaseItem.BasePath.

The full (absolute) path used to resolve filenames in this item's descriptions. Must always end with PathDelim. In this class, this simply returns GetCurrentDir (with PathDelim added if needed).

Source: source/component/PasDoc_Items.pas (line 1153).

Properties

Public property WasDeserialized: boolean read FWasDeserialized;

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 68).

Public property DetailedDescription: string read FDetailedDescription write FDetailedDescription;

This item is declared in ancestor TBaseItem.

Detailed description of this item.

In case of TPasItem, this is something more elaborate than TPasItem.AbstractDescription.

This is already in the form suitable for final output, ready to be put inside final documentation.

Source: source/component/PasDoc_Items.pas (line 274).

Public property RawDescription: string read GetRawDescription write WriteRawDescription;

This item is declared in ancestor TBaseItem.

This stores unexpanded version (as specified in user's comment in source code of parsed units) of description of this item.

Actually, this is just a shortcut to RawDescriptionInfo.Content

Source: source/component/PasDoc_Items.pas (line 283).

Public property FullLink: string read FFullLink write FFullLink;

This item is declared in ancestor TBaseItem.

a full link that should be enough to link this item from anywhere else

Source: source/component/PasDoc_Items.pas (line 299).

Public property LastMod: string read FLastMod write FLastMod;

This item is declared in ancestor TBaseItem.

Contains '' or string with date of last modification. This string is already in the form suitable for final output format (i.e. already processed by TDocGenerator.ConvertString).

Source: source/component/PasDoc_Items.pas (line 304).

Public property Name: string read FName write FName;

This item is declared in ancestor TBaseItem.

name of the item

Source: source/component/PasDoc_Items.pas (line 307).

Public property Authors: TStringVector read FAuthors write SetAuthors;

This item is declared in ancestor TBaseItem.

list of strings, each representing one author of this item

Source: source/component/PasDoc_Items.pas (line 318).

Public property Created: string read FCreated;

This item is declared in ancestor TBaseItem.

Contains '' or string with date of creation. This string is already in the form suitable for final output format (i.e. already processed by TDocGenerator.ConvertString).

Source: source/component/PasDoc_Items.pas (line 323).

Public property AutoLinkHereAllowed: boolean read FAutoLinkHereAllowed write FAutoLinkHereAllowed default true;

This item is declared in ancestor TBaseItem.

Is auto-link mechanism allowed to create link to this item ? This may be set to False by @noAutoLinkHere tag in item's description.

Source: source/component/PasDoc_Items.pas (line 327).

Public property AbstractDescription: string read FAbstractDescription write FAbstractDescription;

This item is declared in ancestor TPasItem.

Abstract description of this item. This is intended to be short (e.g. one sentence) description of this object.

This will be inited from @abstract tag in RawDescription, or cutted out from first sentence in RawDescription if --auto-abstract was used.

Note that this is already in the form suitable for final output, with tags expanded, chars converted etc.

Source: source/component/PasDoc_Items.pas (line 421).

Public property AbstractDescriptionWasAutomatic: boolean read FAbstractDescriptionWasAutomatic write FAbstractDescriptionWasAutomatic;

This item is declared in ancestor TPasItem.

TDocGenerator.ExpandDescriptions sets this property to true if AutoAbstract was used and AbstractDescription of this item was automatically deduced from the 1st sentence of RawDescription.

Otherwise (if @abstract was specified explicitly, or there was no @abstract and AutoAbstract was false) this is set to false.

This is a useful hint for generators: it tells them that when they are printing both AbstractDescription and DetailedDescription of the item in one place (e.g. TTexDocGenerator.WriteItemLongDescription and TGenericHTMLDocGenerator.WriteItemLongDescription both do this) then they should not put any additional space between AbstractDescription and DetailedDescription.

This way when user will specify description like

{ First sentence. Second sentence. }
procedure Foo;

and --auto-abstract was on, then "First sentence." is the AbstractDescription, " Second sentence." is DetailedDescription, AbstractDescriptionWasAutomatic is true and and TGenericHTMLDocGenerator.WriteItemLongDescription can print them as "First sentence. Second sentence."

Without this property, TGenericHTMLDocGenerator.WriteItemLongDescription would not be able to say that this abstract was deduced automatically and would print additional paragraph break that was not present in desscription, i.e. "First sentence.<p> Second sentence."

Source: source/component/PasDoc_Items.pas (line 458).

Public property MyUnit: TPasUnit read FMyUnit write FMyUnit;

This item is declared in ancestor TPasItem.

Unit of this item.

Source: source/component/PasDoc_Items.pas (line 473).

Public property MyObject: TPasCio read FMyObject write FMyObject;

This item is declared in ancestor TPasItem.

If this item is part of a class (or record, object., interface...), the corresponding class is stored here. Nil otherwise.

Source: source/component/PasDoc_Items.pas (line 477).

Public property MyEnum: TPasEnum read FMyEnum write FMyEnum;

This item is declared in ancestor TPasItem.

If this item is a member of an enumerated type, then the enclosing enumerated type is stored here. Nil otherwise.

Source: source/component/PasDoc_Items.pas (line 481).

Public property Visibility: TVisibility read FVisibility write FVisibility;

This item is declared in ancestor TPasItem.

This item has no description.

Source: source/component/PasDoc_Items.pas (line 483).

Public property HintDirectives: THintDirectives read FHintDirectives write FHintDirectives;

This item is declared in ancestor TPasItem.

Hint directives specify is this item deprecated, platform-specific, library-specific, experimental, or unimplemented.

Source: source/component/PasDoc_Items.pas (line 487).

Public property DeprecatedNote: string read FDeprecatedNote write FDeprecatedNote;

This item is declared in ancestor TPasItem.

Deprecation note, specified as a string after "deprecated" directive. Empty if none, always empty if HintDirectives does not contain hdDeprecated.

Source: source/component/PasDoc_Items.pas (line 492).

Public property FullDeclaration: string read FFullDeclaration write FFullDeclaration;

This item is declared in ancestor TPasItem.

Full declaration of the item, similar to how it appears in the Pascal source code.

Note that that this is not used for some descendants. Right now it's used only with

  • TPasConstant

  • TPasFieldVariable (includes type, default values, etc.)

  • TPasType

  • TPasRoutine (includes parameter list, procedural directives, etc.)

  • TPasProperty (includes read/write and storage specifiers, etc.)

  • TPasEnum

    But in this special case, '...' is used instead of listing individual members, e.g. 'TEnumName = (...)'. You can get list of Members using TPasEnum.Members. Eventual specifics of each member should be also specified somewhere inside Members items, e.g.

    TMyEnum = (meOne, meTwo = 3);

    and

    TMyEnum = (meOne, meTwo);

    will both result in TPasEnum with equal FullDeclaration (just 'TMyEnum = (...)') but this '= 3' should be marked somewhere inside Members[1] properties.

  • TPasItem when it's a CIO's field.

The intention is that in the future all TPasItem descendants will always have appropriate FullDeclaration set. It all requires adjusting appropriate places in PasDoc_Parser to generate appropriate FullDeclaration.

Source: source/component/PasDoc_Items.pas (line 543).

Public property SeeAlso: TStringPairVector read FSeeAlso;

This item is declared in ancestor TPasItem.

Items here are collected from @seealso tags.

Name of each item is the 1st part of @seealso parameter. Value is the 2nd part of @seealso parameter.

Source: source/component/PasDoc_Items.pas (line 549).

Public property Attributes: TStringPairVector read FAttributes;

This item is declared in ancestor TPasItem.

List of attributes defined for this item

Source: source/component/PasDoc_Items.pas (line 552).

Public property Params: TStringPairVector read FParams;

This item is declared in ancestor TPasItem.

Parameters of method or property.

Name of each item is the name of parameter (without any surrounding whitespace), Value of each item is users description for this item (in already-expanded form).

This is already in the form processed by TTagManager.Execute, i.e. with links resolved, html characters escaped etc. So don't convert them (e.g. before writing to the final docs) once again (by some ExpandDescription or ConvertString or anything like that).

Source: source/component/PasDoc_Items.pas (line 580).

Public property Raises: TStringPairVector read FRaises;

This item is declared in ancestor TPasItem.

Exceptions raised by the method, or by property getter/setter.

Name of each item is the name of exception class (without any surrounding whitespace), Value of each item is users description for this item (in already-expanded form).

This is already in the form processed by TTagManager.Execute, i.e. with links resolved, html characters escaped etc. So don't convert them (e.g. before writing to the final docs) once again (by some ExpandDescription or ConvertString or anything like that).

Source: source/component/PasDoc_Items.pas (line 593).

Public property SourceAbsoluteFileName: string read FSourceAbsoluteFileName write FSourceAbsoluteFileName;

This item is declared in ancestor TPasItem.

Source (absolute) file name where this item is declared. Set by the parser when parsing the item's declaration.

Source: source/component/PasDoc_Items.pas (line 606).

Public property SourceLine: Integer read FSourceLine write FSourceLine;

This item is declared in ancestor TPasItem.

Source line number (1-based) where this item is declared. Set by the parser when parsing the item's declaration.

Source: source/component/PasDoc_Items.pas (line 611).

Public property CIOs: TPasTypes read FCIOs;

list of classes, interfaces, objects, and records defined in this unit

Source: source/component/PasDoc_Items.pas (line 1094).

Public property Constants: TPasItems read FConstants;

list of constants defined in this unit

Source: source/component/PasDoc_Items.pas (line 1096).

Public property FuncsProcs: TPasRoutines read FFuncsProcs;

list of functions and procedures defined in this unit

Source: source/component/PasDoc_Items.pas (line 1098).

Public property UsesUnits: TStringVector read FUsesUnits;

The names of all units mentioned in a uses clause in the interface section of this unit.

This is never nil.

After TDocGenerator.BuildLinks, for every i: UsesUnits.Objects[i] will point to TPasUnit object with Name = UsesUnits[i] (or nil, if pasdoc's didn't parse such unit). In other words, you will be able to use UsesUnits.Objects[i] to obtain given unit's instance, as parsed by pasdoc.

Source: source/component/PasDoc_Items.pas (line 1110).

Public property Types: TPasTypes read FTypes;

list of types defined in this unit

Source: source/component/PasDoc_Items.pas (line 1113).

Public property Variables: TPasItems read FVariables;

list of variables defined in this unit

Source: source/component/PasDoc_Items.pas (line 1115).

Public property OutputFileName: string read FOutputFileName write FOutputFileName;

name of documentation output file THIS SHOULD NOT BE HERE!

Source: source/component/PasDoc_Items.pas (line 1118).

Public property SourceFileName: string read FSourceFilename write FSourceFilename;

This item has no description.

Source: source/component/PasDoc_Items.pas (line 1120).

Public property SourceFileDateTime: TDateTime read FSourceFileDateTime write FSourceFileDateTime;

This item has no description.

Source: source/component/PasDoc_Items.pas (line 1121).

Public property CacheDateTime: TDateTime read FCacheDateTime write FCacheDateTime;

If WasDeserialized then this specifies the datetime of a cache data of this unit, i.e. when cache data was generated. If cache was obtained from a file then this is just the cache file modification date/time.

If not WasDeserialized then this property has undefined value – don't use it.

Source: source/component/PasDoc_Items.pas (line 1131).

Public property IsUnit: boolean read FIsUnit write FIsUnit;

If False, then this is a program or library file, not a regular unit (though it's treated by pasdoc almost like a unit, so we use TPasUnit class for this).

Source: source/component/PasDoc_Items.pas (line 1137).

Public property IsProgram: boolean read FIsProgram write FIsProgram;

This item has no description.

Source: source/component/PasDoc_Items.pas (line 1138).


PasDoc's autodoc: PasDoc_Items: Class TBaseItems

Class TBaseItems

Description
Hierarchy
Methods

Unit

PasDoc_Items

Declaration

type TBaseItems = class(specialize TObjectList<TBaseItem>)

Description

Container class to store a list of TBaseItems.

Source: source/component/PasDoc_Items.pas (line 1159).

Hierarchy

  • TObject
  • TList
  • TObjectList
  • TBaseItems
Show Additional Members:

Overview

Methods

Protected | procedure Serialize(const ADestination: TStream); virtual;
Protected | procedure Deserialize(const ASource: TStream); virtual;
Public | constructor Create(const AOwnsObject: Boolean); reintroduce; virtual;
Public | destructor Destroy; override;
Public | function FindListItem(const ASignature: string): TBaseItem;
Public | function FindListItemIndex(const ASignature: string): Integer;
Public | procedure InsertItems(const c: TBaseItems);
Public | procedure Add(const AObject: TBaseItem); reintroduce; virtual;
Public | procedure ClearAndAdd(const AObject: TBaseItem);
Public | procedure Delete(const AIndex: Integer);
Public | procedure Clear; reintroduce; virtual;

Description

Methods

Protected procedure Serialize(const ADestination: TStream); virtual;

This item has no description.

Source: source/component/PasDoc_Items.pas (line 1163).

Protected procedure Deserialize(const ASource: TStream); virtual;

This item has no description.

Source: source/component/PasDoc_Items.pas (line 1164).

Public constructor Create(const AOwnsObject: Boolean); reintroduce; virtual;

This item has no description.

Source: source/component/PasDoc_Items.pas (line 1166).

Public destructor Destroy; override;

This item has no description.

Source: source/component/PasDoc_Items.pas (line 1167).

Public function FindListItem(const ASignature: string): TBaseItem;

Find a given item on a list, comparing the Signature. In the base class (TBaseItems), this simply searches the items (not recursively).

In case of some descendants, this is obscured by FindListItem definitions that may look within the items (recursively), when the identifiers inside the item are in same namespace as the items themselves. Example: it will look also inside enumerated types members, because (when "scoped enums" are off) the enumerated members are in the same namespace as the enumerated type name.

TODO: Note that this is not virtual, so using it with instance declared as TBaseItems will always perform non-recursive search. This should be cleaned up: it's probably actually good that this is non-virtual method doing non-recursive search, and descendants should just invent new names instead of obscuring this.

Returns Nil if nothing can be found.

Source: source/component/PasDoc_Items.pas (line 1187).

Public function FindListItemIndex(const ASignature: string): Integer;

Find a given item on a list, comparing the Signature, returning the index. Returns -1 if nothing can be found. This guarantees to work like FindListItem just returns an index.

Source: source/component/PasDoc_Items.pas (line 1192).

Public procedure InsertItems(const c: TBaseItems);

Inserts all items of C into this collection. Disposes C and sets it to nil.

Source: source/component/PasDoc_Items.pas (line 1196).

Public procedure Add(const AObject: TBaseItem); reintroduce; virtual;

During Add, AObject is associated with AObject.Name using hash table, so remember to set AObject.Name before calling Add(AObject).

Source: source/component/PasDoc_Items.pas (line 1200).

Public procedure ClearAndAdd(const AObject: TBaseItem);

This is a shortcut for doing Clear and then Add(AObject). Useful when you want the list to contain exactly the one given AObject.

Source: source/component/PasDoc_Items.pas (line 1205).

Public procedure Delete(const AIndex: Integer);

This item has no description.

Source: source/component/PasDoc_Items.pas (line 1207).

Public procedure Clear; reintroduce; virtual;

This item has no description.

Source: source/component/PasDoc_Items.pas (line 1208).


PasDoc's autodoc: PasDoc_Items: Class TPasItems

Class TPasItems

Description
Hierarchy
Methods
Properties

Unit

PasDoc_Items

Declaration

type TPasItems = class(TBaseItems)

Description

Container class to store a list of TPasItems.

Source: source/component/PasDoc_Items.pas (line 1212).

Hierarchy

  • TObject
  • TList
  • TObjectList
  • TBaseItems
  • TPasItems
Show Additional Members:

Overview

Methods

Protected | procedure Serialize(const ADestination: TStream); virtual;
Protected | procedure Deserialize(const ASource: TStream); virtual;
Public | constructor Create(const AOwnsObject: Boolean); reintroduce; virtual;
Public | destructor Destroy; override;
Public | function FindListItemIndex(const ASignature: string): Integer;
Public | procedure InsertItems(const c: TBaseItems);
Public | procedure Add(const AObject: TBaseItem); reintroduce; virtual;
Public | procedure ClearAndAdd(const AObject: TBaseItem);
Public | procedure Delete(const AIndex: Integer);
Public | procedure Clear; reintroduce; virtual;
Public | function FindListItem(const ASignature: string): TPasItem;
Public | procedure CopyItems(const c: TPasItems);
Public | procedure SortDeep(const SortSettings: TSortSettings);
Public | procedure SortOnlyInsideItems(const SortSettings: TSortSettings);
Public | procedure SortShallow(const Unqualified: Boolean = false);
Public | procedure SetFullDeclaration(PrefixName: boolean; const Suffix: string);

Properties

Public property PasItemAt[const AIndex: Integer]: TPasItem read GetPasItemAt write SetPasItemAt;

Description

Methods

Protected procedure Serialize(const ADestination: TStream); virtual;

This item is declared in ancestor TBaseItems.

This item has no description.

Source: source/component/PasDoc_Items.pas (line 1163).

Protected procedure Deserialize(const ASource: TStream); virtual;

This item is declared in ancestor TBaseItems.

This item has no description.

Source: source/component/PasDoc_Items.pas (line 1164).

Public constructor Create(const AOwnsObject: Boolean); reintroduce; virtual;

This item is declared in ancestor TBaseItems.

This item has no description.

Source: source/component/PasDoc_Items.pas (line 1166).

Public destructor Destroy; override;

This item is declared in ancestor TBaseItems.

This item has no description.

Source: source/component/PasDoc_Items.pas (line 1167).

Public function FindListItemIndex(const ASignature: string): Integer;

This item is declared in ancestor TBaseItems.

Find a given item on a list, comparing the Signature, returning the index. Returns -1 if nothing can be found. This guarantees to work like FindListItem just returns an index.

Source: source/component/PasDoc_Items.pas (line 1192).

Public procedure InsertItems(const c: TBaseItems);

This item is declared in ancestor TBaseItems.

Inserts all items of C into this collection. Disposes C and sets it to nil.

Source: source/component/PasDoc_Items.pas (line 1196).

Public procedure Add(const AObject: TBaseItem); reintroduce; virtual;

This item is declared in ancestor TBaseItems.

During Add, AObject is associated with AObject.Name using hash table, so remember to set AObject.Name before calling Add(AObject).

Source: source/component/PasDoc_Items.pas (line 1200).

Public procedure ClearAndAdd(const AObject: TBaseItem);

This item is declared in ancestor TBaseItems.

This is a shortcut for doing Clear and then Add(AObject). Useful when you want the list to contain exactly the one given AObject.

Source: source/component/PasDoc_Items.pas (line 1205).

Public procedure Delete(const AIndex: Integer);

This item is declared in ancestor TBaseItems.

This item has no description.

Source: source/component/PasDoc_Items.pas (line 1207).

Public procedure Clear; reintroduce; virtual;

This item is declared in ancestor TBaseItems.

This item has no description.

Source: source/component/PasDoc_Items.pas (line 1208).

Public function FindListItem(const ASignature: string): TPasItem;

A comfortable routine that just calls inherited and casts result to TPasItem, since every item on this list must be always TPasItem.

Source: source/component/PasDoc_Items.pas (line 1220).

Public procedure CopyItems(const c: TPasItems);

Copies all Items from c to this object, not changing c at all.

Source: source/component/PasDoc_Items.pas (line 1223).

Public procedure SortDeep(const SortSettings: TSortSettings);

Sort all items by their (qualified) name, and call Sort(SortSettings) for each of these items. This way we sort recursively everything in this list.

This is equivalent to doing both SortShallow and SortOnlyInsideItems.

Source: source/component/PasDoc_Items.pas (line 1235).

Public procedure SortOnlyInsideItems(const SortSettings: TSortSettings);

Call Sort(SortSettings) for each of items on the list. It does not sort the items on this list.

Source: source/component/PasDoc_Items.pas (line 1240).

Public procedure SortShallow(const Unqualified: Boolean = false);

Sort all items on this list by their name, qualified or not. Unlike SortDeep, it does not call Sort for each of these items. So "items inside items" (e.g. class methods, if this list contains TPasCio objects) remain unsorted.

Parameters
Unqualified

When True, we sort first by TBaseItem.Name.

When False, we sort first by TPasItem.UnitRelativeQualifiedName, which includes unit and class names.

Source: source/component/PasDoc_Items.pas (line 1255).

Public procedure SetFullDeclaration(PrefixName: boolean; const Suffix: string);

Sets FullDeclaration of every item to

  1. Name of this item (only if PrefixName)

  2. + Suffix.

Very useful if you have a couple of items that share a common declaration in source file, e.g. variables or fields declared like

A, B: Integer;

Source: source/component/PasDoc_Items.pas (line 1267).

Properties

Public property PasItemAt[const AIndex: Integer]: TPasItem read GetPasItemAt write SetPasItemAt;

This item has no description.

Source: source/component/PasDoc_Items.pas (line 1225).


PasDoc's autodoc: PasDoc_Items: Class TPasRoutines

Class TPasRoutines

Description
Hierarchy
Methods
Properties

Unit

PasDoc_Items

Declaration

type TPasRoutines = class(TPasItems)

Description

Collection of methods.

Source: source/component/PasDoc_Items.pas (line 1273).

Hierarchy

  • TObject
  • TList
  • TObjectList
  • TBaseItems
  • TPasItems
  • TPasRoutines
Show Additional Members:

Overview

Methods

Public | function FindListItemIndex(const ASignature: string): Integer;
Public | procedure InsertItems(const c: TBaseItems);
Public | procedure ClearAndAdd(const AObject: TBaseItem);
Public | procedure Delete(const AIndex: Integer);
Public | procedure Clear; reintroduce; virtual;
Public | procedure CopyItems(const c: TPasItems);
Public | procedure SortDeep(const SortSettings: TSortSettings);
Public | procedure SortOnlyInsideItems(const SortSettings: TSortSettings);
Public | procedure SortShallow(const Unqualified: Boolean = false);
Public | procedure SetFullDeclaration(PrefixName: boolean; const Suffix: string);
Protected | procedure Serialize(const ADestination: TStream); override;
Protected | procedure Deserialize(const ASource: TStream); override;
Public | function FindListItem(const AName: string; Index: Integer): TPasRoutine; overload;
Public | function FindListItem(const ANameOrSignature: string): TPasRoutine; overload;
Public | procedure Add(const AItem: TBaseItem); override;
Public | constructor Create(const AOwnsObject: Boolean); override;
Public | destructor Destroy; override;

Properties

Public property PasItemAt[const AIndex: Integer]: TPasItem read GetPasItemAt write SetPasItemAt;

Description

Methods

Public function FindListItemIndex(const ASignature: string): Integer;

This item is declared in ancestor TBaseItems.

Find a given item on a list, comparing the Signature, returning the index. Returns -1 if nothing can be found. This guarantees to work like FindListItem just returns an index.

Source: source/component/PasDoc_Items.pas (line 1192).

Public procedure InsertItems(const c: TBaseItems);

This item is declared in ancestor TBaseItems.

Inserts all items of C into this collection. Disposes C and sets it to nil.

Source: source/component/PasDoc_Items.pas (line 1196).

Public procedure ClearAndAdd(const AObject: TBaseItem);

This item is declared in ancestor TBaseItems.

This is a shortcut for doing Clear and then Add(AObject). Useful when you want the list to contain exactly the one given AObject.

Source: source/component/PasDoc_Items.pas (line 1205).

Public procedure Delete(const AIndex: Integer);

This item is declared in ancestor TBaseItems.

This item has no description.

Source: source/component/PasDoc_Items.pas (line 1207).

Public procedure Clear; reintroduce; virtual;

This item is declared in ancestor TBaseItems.

This item has no description.

Source: source/component/PasDoc_Items.pas (line 1208).

Public procedure CopyItems(const c: TPasItems);

This item is declared in ancestor TPasItems.

Copies all Items from c to this object, not changing c at all.

Source: source/component/PasDoc_Items.pas (line 1223).

Public procedure SortDeep(const SortSettings: TSortSettings);

This item is declared in ancestor TPasItems.

Sort all items by their (qualified) name, and call Sort(SortSettings) for each of these items. This way we sort recursively everything in this list.

This is equivalent to doing both SortShallow and SortOnlyInsideItems.

Source: source/component/PasDoc_Items.pas (line 1235).

Public procedure SortOnlyInsideItems(const SortSettings: TSortSettings);

This item is declared in ancestor TPasItems.

Call Sort(SortSettings) for each of items on the list. It does not sort the items on this list.

Source: source/component/PasDoc_Items.pas (line 1240).

Public procedure SortShallow(const Unqualified: Boolean = false);

This item is declared in ancestor TPasItems.

Sort all items on this list by their name, qualified or not. Unlike SortDeep, it does not call Sort for each of these items. So "items inside items" (e.g. class methods, if this list contains TPasCio objects) remain unsorted.

Parameters
Unqualified

When True, we sort first by TBaseItem.Name.

When False, we sort first by TPasItem.UnitRelativeQualifiedName, which includes unit and class names.

Source: source/component/PasDoc_Items.pas (line 1255).

Public procedure SetFullDeclaration(PrefixName: boolean; const Suffix: string);

This item is declared in ancestor TPasItems.

Sets FullDeclaration of every item to

  1. Name of this item (only if PrefixName)

  2. + Suffix.

Very useful if you have a couple of items that share a common declaration in source file, e.g. variables or fields declared like

A, B: Integer;

Source: source/component/PasDoc_Items.pas (line 1267).

Protected procedure Serialize(const ADestination: TStream); override;

This item has no description.

Source: source/component/PasDoc_Items.pas (line 1277).

Protected procedure Deserialize(const ASource: TStream); override;

This item has no description.

Source: source/component/PasDoc_Items.pas (line 1278).

Public function FindListItem(const AName: string; Index: Integer): TPasRoutine; overload;

Find an Index-th item with given name on a list. Index is 0-based. There could be multiple items sharing the same name (overloads) while method of base class returns only the one most recently added item.

Returns Nil if nothing can be found.

Source: source/component/PasDoc_Items.pas (line 1285).

Public function FindListItem(const ANameOrSignature: string): TPasRoutine; overload;

This item has no description.

Source: source/component/PasDoc_Items.pas (line 1286).

Public procedure Add(const AItem: TBaseItem); override;

This item has no description. Showing description inherited from TBaseItems.Add.

During Add, AObject is associated with AObject.Name using hash table, so remember to set AObject.Name before calling Add(AObject).

Source: source/component/PasDoc_Items.pas (line 1287).

Public constructor Create(const AOwnsObject: Boolean); override;

This item has no description.

Source: source/component/PasDoc_Items.pas (line 1289).

Public destructor Destroy; override;

This item has no description.

Source: source/component/PasDoc_Items.pas (line 1290).

Properties

Public property PasItemAt[const AIndex: Integer]: TPasItem read GetPasItemAt write SetPasItemAt;

This item is declared in ancestor TPasItems.

This item has no description.

Source: source/component/PasDoc_Items.pas (line 1225).


PasDoc's autodoc: PasDoc_Items: Class TPasProperties

Class TPasProperties

Description
Hierarchy
Methods
Properties

Unit

PasDoc_Items

Declaration

type TPasProperties = class(TPasItems)

Description

Collection of properties.

Source: source/component/PasDoc_Items.pas (line 1294).

Hierarchy

  • TObject
  • TList
  • TObjectList
  • TBaseItems
  • TPasItems
  • TPasProperties
Show Additional Members:

Overview

Methods

Protected | procedure Serialize(const ADestination: TStream); virtual;
Protected | procedure Deserialize(const ASource: TStream); virtual;
Public | constructor Create(const AOwnsObject: Boolean); reintroduce; virtual;
Public | destructor Destroy; override;
Public | function FindListItemIndex(const ASignature: string): Integer;
Public | procedure InsertItems(const c: TBaseItems);
Public | procedure Add(const AObject: TBaseItem); reintroduce; virtual;
Public | procedure ClearAndAdd(const AObject: TBaseItem);
Public | procedure Delete(const AIndex: Integer);
Public | procedure Clear; reintroduce; virtual;
Public | function FindListItem(const ASignature: string): TPasItem;
Public | procedure CopyItems(const c: TPasItems);
Public | procedure SortDeep(const SortSettings: TSortSettings);
Public | procedure SortOnlyInsideItems(const SortSettings: TSortSettings);
Public | procedure SortShallow(const Unqualified: Boolean = false);
Public | procedure SetFullDeclaration(PrefixName: boolean; const Suffix: string);

Properties

Public property PasItemAt[const AIndex: Integer]: TPasItem read GetPasItemAt write SetPasItemAt;

Description

Methods

Protected procedure Serialize(const ADestination: TStream); virtual;

This item is declared in ancestor TBaseItems.

This item has no description.

Source: source/component/PasDoc_Items.pas (line 1163).

Protected procedure Deserialize(const ASource: TStream); virtual;

This item is declared in ancestor TBaseItems.

This item has no description.

Source: source/component/PasDoc_Items.pas (line 1164).

Public constructor Create(const AOwnsObject: Boolean); reintroduce; virtual;

This item is declared in ancestor TBaseItems.

This item has no description.

Source: source/component/PasDoc_Items.pas (line 1166).

Public destructor Destroy; override;

This item is declared in ancestor TBaseItems.

This item has no description.

Source: source/component/PasDoc_Items.pas (line 1167).

Public function FindListItemIndex(const ASignature: string): Integer;

This item is declared in ancestor TBaseItems.

Find a given item on a list, comparing the Signature, returning the index. Returns -1 if nothing can be found. This guarantees to work like FindListItem just returns an index.

Source: source/component/PasDoc_Items.pas (line 1192).

Public procedure InsertItems(const c: TBaseItems);

This item is declared in ancestor TBaseItems.

Inserts all items of C into this collection. Disposes C and sets it to nil.

Source: source/component/PasDoc_Items.pas (line 1196).

Public procedure Add(const AObject: TBaseItem); reintroduce; virtual;

This item is declared in ancestor TBaseItems.

During Add, AObject is associated with AObject.Name using hash table, so remember to set AObject.Name before calling Add(AObject).

Source: source/component/PasDoc_Items.pas (line 1200).

Public procedure ClearAndAdd(const AObject: TBaseItem);

This item is declared in ancestor TBaseItems.

This is a shortcut for doing Clear and then Add(AObject). Useful when you want the list to contain exactly the one given AObject.

Source: source/component/PasDoc_Items.pas (line 1205).

Public procedure Delete(const AIndex: Integer);

This item is declared in ancestor TBaseItems.

This item has no description.

Source: source/component/PasDoc_Items.pas (line 1207).

Public procedure Clear; reintroduce; virtual;

This item is declared in ancestor TBaseItems.

This item has no description.

Source: source/component/PasDoc_Items.pas (line 1208).

Public function FindListItem(const ASignature: string): TPasItem;

This item is declared in ancestor TPasItems.

A comfortable routine that just calls inherited and casts result to TPasItem, since every item on this list must be always TPasItem.

Source: source/component/PasDoc_Items.pas (line 1220).

Public procedure CopyItems(const c: TPasItems);

This item is declared in ancestor TPasItems.

Copies all Items from c to this object, not changing c at all.

Source: source/component/PasDoc_Items.pas (line 1223).

Public procedure SortDeep(const SortSettings: TSortSettings);

This item is declared in ancestor TPasItems.

Sort all items by their (qualified) name, and call Sort(SortSettings) for each of these items. This way we sort recursively everything in this list.

This is equivalent to doing both SortShallow and SortOnlyInsideItems.

Source: source/component/PasDoc_Items.pas (line 1235).

Public procedure SortOnlyInsideItems(const SortSettings: TSortSettings);

This item is declared in ancestor TPasItems.

Call Sort(SortSettings) for each of items on the list. It does not sort the items on this list.

Source: source/component/PasDoc_Items.pas (line 1240).

Public procedure SortShallow(const Unqualified: Boolean = false);

This item is declared in ancestor TPasItems.

Sort all items on this list by their name, qualified or not. Unlike SortDeep, it does not call Sort for each of these items. So "items inside items" (e.g. class methods, if this list contains TPasCio objects) remain unsorted.

Parameters
Unqualified

When True, we sort first by TBaseItem.Name.

When False, we sort first by TPasItem.UnitRelativeQualifiedName, which includes unit and class names.

Source: source/component/PasDoc_Items.pas (line 1255).

Public procedure SetFullDeclaration(PrefixName: boolean; const Suffix: string);

This item is declared in ancestor TPasItems.

Sets FullDeclaration of every item to

  1. Name of this item (only if PrefixName)

  2. + Suffix.

Very useful if you have a couple of items that share a common declaration in source file, e.g. variables or fields declared like

A, B: Integer;

Source: source/component/PasDoc_Items.pas (line 1267).

Properties

Public property PasItemAt[const AIndex: Integer]: TPasItem read GetPasItemAt write SetPasItemAt;

This item is declared in ancestor TPasItems.

This item has no description.

Source: source/component/PasDoc_Items.pas (line 1225).


PasDoc's autodoc: PasDoc_Items: Class TPasTypes

Class TPasTypes

Description
Hierarchy
Methods
Properties

Unit

PasDoc_Items

Declaration

type TPasTypes = class(TPasItems)

Description

List of types. Note that it may contain not only TPasType but also TPasRoutine (which we use for a procedural type / callback).

Source: source/component/PasDoc_Items.pas (line 1299).

Hierarchy

  • TObject
  • TList
  • TObjectList
  • TBaseItems
  • TPasItems
  • TPasTypes
Show Additional Members:

Overview

Methods

Protected | procedure Serialize(const ADestination: TStream); virtual;
Protected | procedure Deserialize(const ASource: TStream); virtual;
Public | constructor Create(const AOwnsObject: Boolean); reintroduce; virtual;
Public | destructor Destroy; override;
Public | function FindListItemIndex(const ASignature: string): Integer;
Public | procedure InsertItems(const c: TBaseItems);
Public | procedure Add(const AObject: TBaseItem); reintroduce; virtual;
Public | procedure ClearAndAdd(const AObject: TBaseItem);
Public | procedure Delete(const AIndex: Integer);
Public | procedure Clear; reintroduce; virtual;
Public | procedure CopyItems(const c: TPasItems);
Public | procedure SortDeep(const SortSettings: TSortSettings);
Public | procedure SortOnlyInsideItems(const SortSettings: TSortSettings);
Public | procedure SortShallow(const Unqualified: Boolean = false);
Public | procedure SetFullDeclaration(PrefixName: boolean; const Suffix: string);
Public | function FindListItem(const AName: string): TPasItem;

Properties

Public property PasItemAt[const AIndex: Integer]: TPasItem read GetPasItemAt write SetPasItemAt;

Description

Methods

Protected procedure Serialize(const ADestination: TStream); virtual;

This item is declared in ancestor TBaseItems.

This item has no description.

Source: source/component/PasDoc_Items.pas (line 1163).

Protected procedure Deserialize(const ASource: TStream); virtual;

This item is declared in ancestor TBaseItems.

This item has no description.

Source: source/component/PasDoc_Items.pas (line 1164).

Public constructor Create(const AOwnsObject: Boolean); reintroduce; virtual;

This item is declared in ancestor TBaseItems.

This item has no description.

Source: source/component/PasDoc_Items.pas (line 1166).

Public destructor Destroy; override;

This item is declared in ancestor TBaseItems.

This item has no description.

Source: source/component/PasDoc_Items.pas (line 1167).

Public function FindListItemIndex(const ASignature: string): Integer;

This item is declared in ancestor TBaseItems.

Find a given item on a list, comparing the Signature, returning the index. Returns -1 if nothing can be found. This guarantees to work like FindListItem just returns an index.

Source: source/component/PasDoc_Items.pas (line 1192).

Public procedure InsertItems(const c: TBaseItems);

This item is declared in ancestor TBaseItems.

Inserts all items of C into this collection. Disposes C and sets it to nil.

Source: source/component/PasDoc_Items.pas (line 1196).

Public procedure Add(const AObject: TBaseItem); reintroduce; virtual;

This item is declared in ancestor TBaseItems.

During Add, AObject is associated with AObject.Name using hash table, so remember to set AObject.Name before calling Add(AObject).

Source: source/component/PasDoc_Items.pas (line 1200).

Public procedure ClearAndAdd(const AObject: TBaseItem);

This item is declared in ancestor TBaseItems.

This is a shortcut for doing Clear and then Add(AObject). Useful when you want the list to contain exactly the one given AObject.

Source: source/component/PasDoc_Items.pas (line 1205).

Public procedure Delete(const AIndex: Integer);

This item is declared in ancestor TBaseItems.

This item has no description.

Source: source/component/PasDoc_Items.pas (line 1207).

Public procedure Clear; reintroduce; virtual;

This item is declared in ancestor TBaseItems.

This item has no description.

Source: source/component/PasDoc_Items.pas (line 1208).

Public procedure CopyItems(const c: TPasItems);

This item is declared in ancestor TPasItems.

Copies all Items from c to this object, not changing c at all.

Source: source/component/PasDoc_Items.pas (line 1223).

Public procedure SortDeep(const SortSettings: TSortSettings);

This item is declared in ancestor TPasItems.

Sort all items by their (qualified) name, and call Sort(SortSettings) for each of these items. This way we sort recursively everything in this list.

This is equivalent to doing both SortShallow and SortOnlyInsideItems.

Source: source/component/PasDoc_Items.pas (line 1235).

Public procedure SortOnlyInsideItems(const SortSettings: TSortSettings);

This item is declared in ancestor TPasItems.

Call Sort(SortSettings) for each of items on the list. It does not sort the items on this list.

Source: source/component/PasDoc_Items.pas (line 1240).

Public procedure SortShallow(const Unqualified: Boolean = false);

This item is declared in ancestor TPasItems.

Sort all items on this list by their name, qualified or not. Unlike SortDeep, it does not call Sort for each of these items. So "items inside items" (e.g. class methods, if this list contains TPasCio objects) remain unsorted.

Parameters
Unqualified

When True, we sort first by TBaseItem.Name.

When False, we sort first by TPasItem.UnitRelativeQualifiedName, which includes unit and class names.

Source: source/component/PasDoc_Items.pas (line 1255).

Public procedure SetFullDeclaration(PrefixName: boolean; const Suffix: string);

This item is declared in ancestor TPasItems.

Sets FullDeclaration of every item to

  1. Name of this item (only if PrefixName)

  2. + Suffix.

Very useful if you have a couple of items that share a common declaration in source file, e.g. variables or fields declared like

A, B: Integer;

Source: source/component/PasDoc_Items.pas (line 1267).

Public function FindListItem(const AName: string): TPasItem;

This item has no description.

Source: source/component/PasDoc_Items.pas (line 1300).

Properties

Public property PasItemAt[const AIndex: Integer]: TPasItem read GetPasItemAt write SetPasItemAt;

This item is declared in ancestor TPasItems.

This item has no description.

Source: source/component/PasDoc_Items.pas (line 1225).


PasDoc's autodoc: PasDoc_Items: Class TPasNestedCios

Class TPasNestedCios

Description
Hierarchy
Methods
Properties

Unit

PasDoc_Items

Declaration

type TPasNestedCios = class(TPasTypes)

Description

Collection of CIOs (classes, records, interfaces...) nested in outer CIO.

Source: source/component/PasDoc_Items.pas (line 1304).

Hierarchy

  • TObject
  • TList
  • TObjectList
  • TBaseItems
  • TPasItems
  • TPasTypes
  • TPasNestedCios
Show Additional Members:

Overview

Methods

Protected | procedure Serialize(const ADestination: TStream); virtual;
Protected | procedure Deserialize(const ASource: TStream); virtual;
Public | constructor Create(const AOwnsObject: Boolean); reintroduce; virtual;
Public | destructor Destroy; override;
Public | function FindListItemIndex(const ASignature: string): Integer;
Public | procedure InsertItems(const c: TBaseItems);
Public | procedure Add(const AObject: TBaseItem); reintroduce; virtual;
Public | procedure ClearAndAdd(const AObject: TBaseItem);
Public | procedure Delete(const AIndex: Integer);
Public | procedure Clear; reintroduce; virtual;
Public | procedure CopyItems(const c: TPasItems);
Public | procedure SortDeep(const SortSettings: TSortSettings);
Public | procedure SortOnlyInsideItems(const SortSettings: TSortSettings);
Public | procedure SortShallow(const Unqualified: Boolean = false);
Public | procedure SetFullDeclaration(PrefixName: boolean; const Suffix: string);
Public | function FindListItem(const AName: string): TPasItem;

Properties

Public property PasItemAt[const AIndex: Integer]: TPasItem read GetPasItemAt write SetPasItemAt;

Description

Methods

Protected procedure Serialize(const ADestination: TStream); virtual;

This item is declared in ancestor TBaseItems.

This item has no description.

Source: source/component/PasDoc_Items.pas (line 1163).

Protected procedure Deserialize(const ASource: TStream); virtual;

This item is declared in ancestor TBaseItems.

This item has no description.

Source: source/component/PasDoc_Items.pas (line 1164).

Public constructor Create(const AOwnsObject: Boolean); reintroduce; virtual;

This item is declared in ancestor TBaseItems.

This item has no description.

Source: source/component/PasDoc_Items.pas (line 1166).

Public destructor Destroy; override;

This item is declared in ancestor TBaseItems.

This item has no description.

Source: source/component/PasDoc_Items.pas (line 1167).

Public function FindListItemIndex(const ASignature: string): Integer;

This item is declared in ancestor TBaseItems.

Find a given item on a list, comparing the Signature, returning the index. Returns -1 if nothing can be found. This guarantees to work like FindListItem just returns an index.

Source: source/component/PasDoc_Items.pas (line 1192).

Public procedure InsertItems(const c: TBaseItems);

This item is declared in ancestor TBaseItems.

Inserts all items of C into this collection. Disposes C and sets it to nil.

Source: source/component/PasDoc_Items.pas (line 1196).

Public procedure Add(const AObject: TBaseItem); reintroduce; virtual;

This item is declared in ancestor TBaseItems.

During Add, AObject is associated with AObject.Name using hash table, so remember to set AObject.Name before calling Add(AObject).

Source: source/component/PasDoc_Items.pas (line 1200).

Public procedure ClearAndAdd(const AObject: TBaseItem);

This item is declared in ancestor TBaseItems.

This is a shortcut for doing Clear and then Add(AObject). Useful when you want the list to contain exactly the one given AObject.

Source: source/component/PasDoc_Items.pas (line 1205).

Public procedure Delete(const AIndex: Integer);

This item is declared in ancestor TBaseItems.

This item has no description.

Source: source/component/PasDoc_Items.pas (line 1207).

Public procedure Clear; reintroduce; virtual;

This item is declared in ancestor TBaseItems.

This item has no description.

Source: source/component/PasDoc_Items.pas (line 1208).

Public procedure CopyItems(const c: TPasItems);

This item is declared in ancestor TPasItems.

Copies all Items from c to this object, not changing c at all.

Source: source/component/PasDoc_Items.pas (line 1223).

Public procedure SortDeep(const SortSettings: TSortSettings);

This item is declared in ancestor TPasItems.

Sort all items by their (qualified) name, and call Sort(SortSettings) for each of these items. This way we sort recursively everything in this list.

This is equivalent to doing both SortShallow and SortOnlyInsideItems.

Source: source/component/PasDoc_Items.pas (line 1235).

Public procedure SortOnlyInsideItems(const SortSettings: TSortSettings);

This item is declared in ancestor TPasItems.

Call Sort(SortSettings) for each of items on the list. It does not sort the items on this list.

Source: source/component/PasDoc_Items.pas (line 1240).

Public procedure SortShallow(const Unqualified: Boolean = false);

This item is declared in ancestor TPasItems.

Sort all items on this list by their name, qualified or not. Unlike SortDeep, it does not call Sort for each of these items. So "items inside items" (e.g. class methods, if this list contains TPasCio objects) remain unsorted.

Parameters
Unqualified

When True, we sort first by TBaseItem.Name.

When False, we sort first by TPasItem.UnitRelativeQualifiedName, which includes unit and class names.

Source: source/component/PasDoc_Items.pas (line 1255).

Public procedure SetFullDeclaration(PrefixName: boolean; const Suffix: string);

This item is declared in ancestor TPasItems.

Sets FullDeclaration of every item to

  1. Name of this item (only if PrefixName)

  2. + Suffix.

Very useful if you have a couple of items that share a common declaration in source file, e.g. variables or fields declared like

A, B: Integer;

Source: source/component/PasDoc_Items.pas (line 1267).

Public function FindListItem(const AName: string): TPasItem;

This item is declared in ancestor TPasTypes.

This item has no description.

Source: source/component/PasDoc_Items.pas (line 1300).

Properties

Public property PasItemAt[const AIndex: Integer]: TPasItem read GetPasItemAt write SetPasItemAt;

This item is declared in ancestor TPasItems.

This item has no description.

Source: source/component/PasDoc_Items.pas (line 1225).


PasDoc's autodoc: PasDoc_Items: Class TPasUnits

Class TPasUnits

Description
Hierarchy
Methods
Properties

Unit

PasDoc_Items

Declaration

type TPasUnits = class(TPasItems)

Description

Collection of units.

Source: source/component/PasDoc_Items.pas (line 1308).

Hierarchy

  • TObject
  • TList
  • TObjectList
  • TBaseItems
  • TPasItems
  • TPasUnits
Show Additional Members:

Overview

Methods

Protected | procedure Serialize(const ADestination: TStream); virtual;
Protected | procedure Deserialize(const ASource: TStream); virtual;
Public | constructor Create(const AOwnsObject: Boolean); reintroduce; virtual;
Public | destructor Destroy; override;
Public | function FindListItemIndex(const ASignature: string): Integer;
Public | procedure InsertItems(const c: TBaseItems);
Public | procedure Add(const AObject: TBaseItem); reintroduce; virtual;
Public | procedure ClearAndAdd(const AObject: TBaseItem);
Public | procedure Delete(const AIndex: Integer);
Public | procedure Clear; reintroduce; virtual;
Public | function FindListItem(const ASignature: string): TPasItem;
Public | procedure CopyItems(const c: TPasItems);
Public | procedure SortDeep(const SortSettings: TSortSettings);
Public | procedure SortOnlyInsideItems(const SortSettings: TSortSettings);
Public | procedure SortShallow(const Unqualified: Boolean = false);
Public | procedure SetFullDeclaration(PrefixName: boolean; const Suffix: string);
Public | function ExistsUnit(const AUnit: TPasUnit): Boolean;

Properties

Public | property PasItemAt[const AIndex: Integer]: TPasItem read GetPasItemAt write SetPasItemAt;
Public | property UnitAt[const AIndex: Integer]: TPasUnit read GetUnitAt write SetUnitAt;

Description

Methods

Protected procedure Serialize(const ADestination: TStream); virtual;

This item is declared in ancestor TBaseItems.

This item has no description.

Source: source/component/PasDoc_Items.pas (line 1163).

Protected procedure Deserialize(const ASource: TStream); virtual;

This item is declared in ancestor TBaseItems.

This item has no description.

Source: source/component/PasDoc_Items.pas (line 1164).

Public constructor Create(const AOwnsObject: Boolean); reintroduce; virtual;

This item is declared in ancestor TBaseItems.

This item has no description.

Source: source/component/PasDoc_Items.pas (line 1166).

Public destructor Destroy; override;

This item is declared in ancestor TBaseItems.

This item has no description.

Source: source/component/PasDoc_Items.pas (line 1167).

Public function FindListItemIndex(const ASignature: string): Integer;

This item is declared in ancestor TBaseItems.

Find a given item on a list, comparing the Signature, returning the index. Returns -1 if nothing can be found. This guarantees to work like FindListItem just returns an index.

Source: source/component/PasDoc_Items.pas (line 1192).

Public procedure InsertItems(const c: TBaseItems);

This item is declared in ancestor TBaseItems.

Inserts all items of C into this collection. Disposes C and sets it to nil.

Source: source/component/PasDoc_Items.pas (line 1196).

Public procedure Add(const AObject: TBaseItem); reintroduce; virtual;

This item is declared in ancestor TBaseItems.

During Add, AObject is associated with AObject.Name using hash table, so remember to set AObject.Name before calling Add(AObject).

Source: source/component/PasDoc_Items.pas (line 1200).

Public procedure ClearAndAdd(const AObject: TBaseItem);

This item is declared in ancestor TBaseItems.

This is a shortcut for doing Clear and then Add(AObject). Useful when you want the list to contain exactly the one given AObject.

Source: source/component/PasDoc_Items.pas (line 1205).

Public procedure Delete(const AIndex: Integer);

This item is declared in ancestor TBaseItems.

This item has no description.

Source: source/component/PasDoc_Items.pas (line 1207).

Public procedure Clear; reintroduce; virtual;

This item is declared in ancestor TBaseItems.

This item has no description.

Source: source/component/PasDoc_Items.pas (line 1208).

Public function FindListItem(const ASignature: string): TPasItem;

This item is declared in ancestor TPasItems.

A comfortable routine that just calls inherited and casts result to TPasItem, since every item on this list must be always TPasItem.

Source: source/component/PasDoc_Items.pas (line 1220).

Public procedure CopyItems(const c: TPasItems);

This item is declared in ancestor TPasItems.

Copies all Items from c to this object, not changing c at all.

Source: source/component/PasDoc_Items.pas (line 1223).

Public procedure SortDeep(const SortSettings: TSortSettings);

This item is declared in ancestor TPasItems.

Sort all items by their (qualified) name, and call Sort(SortSettings) for each of these items. This way we sort recursively everything in this list.

This is equivalent to doing both SortShallow and SortOnlyInsideItems.

Source: source/component/PasDoc_Items.pas (line 1235).

Public procedure SortOnlyInsideItems(const SortSettings: TSortSettings);

This item is declared in ancestor TPasItems.

Call Sort(SortSettings) for each of items on the list. It does not sort the items on this list.

Source: source/component/PasDoc_Items.pas (line 1240).

Public procedure SortShallow(const Unqualified: Boolean = false);

This item is declared in ancestor TPasItems.

Sort all items on this list by their name, qualified or not. Unlike SortDeep, it does not call Sort for each of these items. So "items inside items" (e.g. class methods, if this list contains TPasCio objects) remain unsorted.

Parameters
Unqualified

When True, we sort first by TBaseItem.Name.

When False, we sort first by TPasItem.UnitRelativeQualifiedName, which includes unit and class names.

Source: source/component/PasDoc_Items.pas (line 1255).

Public procedure SetFullDeclaration(PrefixName: boolean; const Suffix: string);

This item is declared in ancestor TPasItems.

Sets FullDeclaration of every item to

  1. Name of this item (only if PrefixName)

  2. + Suffix.

Very useful if you have a couple of items that share a common declaration in source file, e.g. variables or fields declared like

A, B: Integer;

Source: source/component/PasDoc_Items.pas (line 1267).

Public function ExistsUnit(const AUnit: TPasUnit): Boolean;

This item has no description.

Source: source/component/PasDoc_Items.pas (line 1316).

Properties

Public property PasItemAt[const AIndex: Integer]: TPasItem read GetPasItemAt write SetPasItemAt;

This item is declared in ancestor TPasItems.

This item has no description.

Source: source/component/PasDoc_Items.pas (line 1225).

Public property UnitAt[const AIndex: Integer]: TPasUnit read GetUnitAt write SetUnitAt;

This item has no description.

Source: source/component/PasDoc_Items.pas (line 1313).


PasDoc's autodoc: PasDoc_Languages

Unit PasDoc_Languages

Description
Classes, Interfaces, Objects and Records
Functions and Procedures
Types
Constants

Description

Language definitions and translations.

Source: source/component/PasDoc_Languages.pas (line 54).

Overview

Classes, Interfaces, Objects and Records

Name | Description
Record TLanguageRecord |
Class TPasDocLanguages | Language class to hold all translated strings

Functions and Procedures

function LanguageFromStr(S: string; out LanguageId: TLanguageID): boolean;
function LanguageInformation(id: TLanguageID): PLanguageRecord;
function LanguageCode(const Language: TLanguageID): string;

Types

TLanguageID = (...);
TTranslationID = (...);
RTransTable = array[TTranslationID] of string;
PTransTable = ˆRTransTable;
PLanguageRecord = ˆTLanguageRecord;

Constants

DEFAULT_LANGUAGE = lgEnglish;

Description

Functions and Procedures

function LanguageFromStr(S: string; out LanguageId: TLanguageID): boolean;

Find a language with Syntax = S (case ignored). Returns True and sets LanguageId if found, otherwise returns False.

Source: source/component/PasDoc_Languages.pas (line 322).

function LanguageInformation(id: TLanguageID): PLanguageRecord;

Read-only language information.

Source: source/component/PasDoc_Languages.pas (line 325).

function LanguageCode(const Language: TLanguageID): string;

Language code, using an official standardardized language names, suitable for Aspell or HTML.

Source: source/component/PasDoc_Languages.pas (line 329).

Types

TLanguageID = (...);

An enumeration type of all supported languages

Values
  • lgBosnian
  • lgBrazilian_1252
  • lgBrazilian_utf8
  • lgBulgarian
  • lgCatalan
  • lgChinese_gb2312
  • lgCroatian
  • lgDanish
  • lgDutch
  • lgEnglish
  • lgFrench_ISO_8859_15
  • lgFrench_UTF_8
  • lgGerman_ISO_8859_15
  • lgGerman_UTF_8
  • lgIndonesian
  • lgItalian
  • lgJavanese
  • lgPolish_CP1250
  • lgPolish_ISO_8859_2
  • lgRussian_1251
  • lgRussian_utf8
  • lgRussian_866
  • lgRussian_koi8
  • lgSlovak
  • lgSpanish
  • lgSwedish
  • lgHungarian_1250
  • lgCzech_CP1250
  • lgCzech_ISO_8859_2

Source: source/component/PasDoc_Languages.pas (line 87).

TTranslationID = (...);

All translatable string.

Values
  • trNoTrans
  • trLanguage: The language name (in English, ASCII).
  • trUnits: Used for sidebar.
  • trClassHierarchy
  • trCio
  • trNestedCR
  • trNestedTypes
  • trIdentifiers
  • trGvUses
  • trGvClasses
  • trClasses: Used for tables and members.
  • trClass
  • trObjcClass
  • trDispInterface
  • trInterface
  • trObjects
  • trObject
  • trRecord
  • trPacked
  • trHierarchy
  • trFields
  • trMethods
  • trProperties
  • trLibrary
  • trPackage
  • trProgram
  • trUnit
  • trUses
  • trConstants
  • trFunctionsAndProcedures
  • trTypes
  • trType
  • trVariables
  • trAuthors
  • trAuthor
  • trCreated
  • trLastModified
  • trSubroutine
  • trParameters
  • trReturns
  • trExceptionsRaised
  • trExceptions
  • trException
  • trEnum
  • trVisibility: Visibility names.
  • trPrivate
  • trStrictPrivate
  • trProtected
  • trStrictProtected
  • trPublic
  • trPublished
  • trAutomated
  • trImplicit
  • trDeprecated: Hints.
  • trPlatformSpecific
  • trLibrarySpecific
  • trExperimental
  • trUnimplemented
  • trOverview: Headings.
  • trIntroduction
  • trConclusion
  • trAdditionalFile
  • trEnclosingClass
  • trHeadlineCio
  • trHeadlineConstants
  • trHeadlineFunctionsAndProcedures
  • trHeadlineIdentifiers
  • trHeadlineTypes
  • trHeadlineUnits
  • trHeadlineVariables
  • trSummaryCio
  • trDeclaration: Column headings.
  • trDescription: Used as column or section heading.
  • trDescriptions: Used as section heading for detailed descriptions.
  • trName
  • trValues
  • trWarningTag: Tags with inbuilt heading.
  • trNoteTag
  • trNone: Empty tables.
  • trNoCIOs
  • trNoCIOsForHierarchy
  • trNoTypes
  • trNoVariables
  • trNoConstants
  • trNoFunctions
  • trNoIdentifiers
  • trHelp: Miscellaneous.
  • trLegend
  • trMarker
  • trWarningOverwrite
  • trWarning
  • trGeneratedBy
  • trGeneratedOn
  • trOnDateTime
  • trSearch
  • trSeeAlso
  • trNested
  • trAttributes
  • trSourcePosition
  • trShowAdditionalMembers
  • trInherited
  • trDeclaredInAncestor
  • trNoDescription
  • trShowingDescriptionInheritedFrom
  • trDummy: Add new translatable strings here.

Source: source/component/PasDoc_Languages.pas (line 120).

RTransTable = array[TTranslationID] of string;

Array holding the translated strings (or strKeep or strToDo markers) for a language.

Source: source/component/PasDoc_Languages.pas (line 255).

PTransTable = ˆRTransTable;

This item has no description.

Source: source/component/PasDoc_Languages.pas (line 256).

PLanguageRecord = ˆTLanguageRecord;

This item has no description.

Source: source/component/PasDoc_Languages.pas (line 258).

Constants

DEFAULT_LANGUAGE = lgEnglish;

This item has no description.

Source: source/component/PasDoc_Languages.pas (line 293).

Authors

  • Johannes Berg <johannes AT sipsolutions.de>
  • Ralf Junker <delphi AT zeitungsjunge.de>
  • Andrew Andreev <andrew AT alteragate.net> (Bulgarian translation)
  • Alexander Lisnevsky <alisnevsky AT yandex.ru> (Russian translation)
  • Hendy Irawan <ceefour AT gauldong.net> (Indonesian and Javanese translation)
  • Ivan Montes Velencoso (Catalan and Spanish translations)
  • Javi (Spanish translation)
  • Jean Dit Bailleul (Frensh translation)
  • Marc Weustinks (Dutch translation)
  • Martin Hansen <mh AT geus.dk> (Danish translation)
  • Michele Bersini <michele.bersini AT smartit.it> (Italian translation)
  • Peter Simkovic <simkovic_jr AT manal.sk> (Slovak translation)
  • Peter Th_rnqvist <pt AT timemetrics.se> (Swedish translation)
  • Rodrigo Urubatan Ferreira Jardim <rodrigo AT netscape.net> (Brasilian translation)
  • Alexandre da Silva <simpsomboy AT gmail.com> (Brasilian translation - Update)
  • Alexsander da Rosa <alex AT rednaxel.com> (Brasilian translation - UTF8)
  • Vitaly Kovalenko <v_l_kovalenko AT alsy.by> (Russian translation)
  • Grzegorz Skoczylas <gskoczylas AT rekord.pl> (corrected Polish translation)
  • Jonas Gergo <jonas.gergo AT ch...> (Hungarian translation)
  • Michalis Kamburelis
  • Ascanio Pressato (Some Italian translation)
  • JBarbero Quiter (updated Spanish translation)
  • Liu Chuanjun <1000copy AT gmail.com> (Chinese gb2312 translation)
  • Liu Da <xmacmail AT gmail.com> (Chinese gb2312 translation)
  • DoDi
  • Rene Mihula <rene.mihula@gmail.com> (Czech translation)
  • Yann Merignac (French translation)
  • Arno Garrels <first name.name@nospamgmx.de>


PasDoc's autodoc: PasDoc_Languages: Record TLanguageRecord

Record TLanguageRecord

Description
Fields

Unit

PasDoc_Languages

Declaration

type TLanguageRecord = record

Description

This item has no description.

Source: source/component/PasDoc_Languages.pas (line 259).

Show Additional Members:

Overview

Fields

Public | Table: PTransTable;
Public | Name: string;
Public | Syntax: string;
Public | CharSet: string;
Public | AspellLanguage: string;

Description

Fields

Public Table: PTransTable;

This item has no description.

Source: source/component/PasDoc_Languages.pas (line 266).

Public Name: string;

This item has no description.

Source: source/component/PasDoc_Languages.pas (line 267).

Public Syntax: string;

This item has no description.

Source: source/component/PasDoc_Languages.pas (line 268).

Public CharSet: string;

This item has no description.

Source: source/component/PasDoc_Languages.pas (line 269).

Public AspellLanguage: string;

Name of this language as used by Aspell, see Aspell supported languages.

Set this to empty string if it's the same as our Syntax up to a dot. So a Syntax = 'pl' or Syntax = 'pl.iso-8859-2' already indicates AspellLanguage = 'pl'.

TODO: In the future, it would be nice if all language names used by PasDoc and Aspell matched. Aspell language naming follows the standard ISO 639-1 as far as I see, and we should probably follow it too (currently, we deviate for some languages).

So in the future, we'll probably replace Syntax and AspellLanguage by LanguageCode and CharsetCode. LanguageCode = code (suitable for both PasDoc and Aspell command-line; the thing currently up to a dot in Syntax), CharsetCode = the short representation of CharSet (the thing currently after a dot in Syntax).

Source: source/component/PasDoc_Languages.pas (line 288).


PasDoc's autodoc: PasDoc_Languages: Class TPasDocLanguages

Class TPasDocLanguages

Description
Hierarchy
Fields
Methods
Properties

Unit

PasDoc_Languages

Declaration

type TPasDocLanguages = class(TObject)

Description

Language class to hold all translated strings

Source: source/component/PasDoc_Languages.pas (line 297).

Hierarchy

  • TObject
  • TPasDocLanguages
Show Additional Members:

Overview

Fields

Protected FCharSet: string;

Methods

Protected | function GetTranslation(ATranslationID: TTranslationID): string;
Public | constructor Create;

Properties

Public | property CharSet: string read FCharSet;
Public | property Translation[ATranslationID: TTranslationID]: string read GetTranslation;
Public | property Language: TLanguageID read FLanguage write SetLanguage default DEFAULT_LANGUAGE;

Description

Fields

Protected FCharSet: string;

This item has no description.

Source: source/component/PasDoc_Languages.pas (line 305).

Methods

Protected function GetTranslation(ATranslationID: TTranslationID): string;

Translation for given ATranslationID.

Source: source/component/PasDoc_Languages.pas (line 307).

Public constructor Create;

This item has no description.

Source: source/component/PasDoc_Languages.pas (line 315).

Properties

Public property CharSet: string read FCharSet;

Charset for current language.

Source: source/component/PasDoc_Languages.pas (line 310).

Public property Translation[ATranslationID: TTranslationID]: string read GetTranslation;

This item has no description.

Source: source/component/PasDoc_Languages.pas (line 314).

Public property Language: TLanguageID read FLanguage write SetLanguage default DEFAULT_LANGUAGE;

This item has no description.

Source: source/component/PasDoc_Languages.pas (line 316).


PasDoc's autodoc: PasDoc_Main

Unit PasDoc_Main

Description
Functions and Procedures

Description

Main procedure, that does the complete job of the command-line PasDoc.

Source: source/console/PasDoc_Main.pas (line 2).

Overview

Functions and Procedures

procedure Main;

Description

Functions and Procedures

procedure Main;

Does the complete job of the command-line PasDoc.

  • Process command-line options.

  • Create TPasDoc, set it up, run TPasDoc.Execute on it.

Source: source/console/PasDoc_Main.pas (line 16).


PasDoc's autodoc: PasDoc_OptionParser

Unit PasDoc_OptionParser

Description
Uses
Classes, Interfaces, Objects and Records
Constants

Description

Command line option parsing.

To use this unit, create an object of TOptionParser and add options to it, each option descends from TOption. Then, call your object's TOptionParser.ParseOptions method and options are parsed. After parsing, examine your option objects.

Source: source/component/PasDoc_OptionParser.pas (line 31).

Uses

  • Classes

Overview

Classes, Interfaces, Objects and Records

Name | Description
Class TOption | Base class for options.
Class TBoolOption | Boolean option, "on" if was specified.
Class TValueOption | Base class for all options that have values.
Class TIntegerOption | Option that accepts additional Integer as a value.
Class TStringOption | Option that accepts additional string as a value.
Class TStringOptionList | stringlist option
Class TPathListOption | pathlist option
Class TSetOption | Option that allows to define a set.
Class TOptionParser | OptionParser — instantiate one of these for commandline parsing

Constants

DefShortOptionChar = '-';
DefLongOptionString = '--';
OptionFileChar = '@';
CfgMacroCfgPath = '$CFG_PATH';
OptionIndent = ' ';
OptionSep = ' ';
ConsoleWidth = 80;

Description

Constants

DefShortOptionChar = '-';

default short option character used

Source: source/component/PasDoc_OptionParser.pas (line 41).

DefLongOptionString = '--';

default long option string used

Source: source/component/PasDoc_OptionParser.pas (line 43).

OptionFileChar = '@';

Marks "include config file" option

Source: source/component/PasDoc_OptionParser.pas (line 45).

CfgMacroCfgPath = '$CFG_PATH';

Special substitution that, if found inside a config file, will be replaced with actual path of the file

Source: source/component/PasDoc_OptionParser.pas (line 48).

OptionIndent = ' ';

Indentation of option's name from the start of console line

Source: source/component/PasDoc_OptionParser.pas (line 50).

OptionSep = ' ';

Separator between option's name and explanation

Source: source/component/PasDoc_OptionParser.pas (line 52).

ConsoleWidth = 80;

Width of console

Source: source/component/PasDoc_OptionParser.pas (line 54).

Author

  • Johannes Berg <johannes@sipsolutions.de>


PasDoc's autodoc: PasDoc_OptionParser: Class TOption

Class TOption

Description
Hierarchy
Fields
Methods
Properties

Unit

PasDoc_OptionParser

Declaration

type TOption = class(TObject)

Description

Base class for options.

This class implements all the basic functionality and provides abstract methods for the TOptionParser class to call, which are overridden by descendants. It also provides function to write the explanation.

Source: source/component/PasDoc_OptionParser.pas (line 64).

Hierarchy

  • TObject
  • TOption
Show Additional Members:

Overview

Fields

Protected | FShort: char;
Protected | FLong: string;
Protected | FShortSens: boolean;
Protected | FLongSens: boolean;
Protected | FExplanation: string;
Protected | FWasSpecified: boolean;
Protected | FParser: TOptionParser;

Methods

Protected | function ParseOption(const AWords: TStrings): boolean; virtual; abstract;
Public | constructor Create(const AShort:char; const ALong: string);
Public | constructor CreateEx(const AShort:char; const ALong: string; const AShortCaseSensitive, ALongCaseSensitive: boolean); virtual;
Public | function GetOptionWidth: Integer;
Public | procedure WriteExplanation(const AOptWidth: Integer);

Properties

Public | property ShortForm: char read FShort write FShort;
Public | property LongForm: string read FLong write FLong;
Public | property ShortCaseSensitive: boolean read FShortSens write FShortSens;
Public | property LongCaseSensitive: boolean read FLongSens write FLongSens;
Public | property WasSpecified: boolean read FWasSpecified;
Public | property Explanation: string read FExplanation write FExplanation;

Description

Fields

Protected FShort: char;

This item has no description.

Source: source/component/PasDoc_OptionParser.pas (line 66).

Protected FLong: string;

This item has no description.

Source: source/component/PasDoc_OptionParser.pas (line 67).

Protected FShortSens: boolean;

This item has no description.

Source: source/component/PasDoc_OptionParser.pas (line 68).

Protected FLongSens: boolean;

This item has no description.

Source: source/component/PasDoc_OptionParser.pas (line 69).

Protected FExplanation: string;

This item has no description.

Source: source/component/PasDoc_OptionParser.pas (line 70).

Protected FWasSpecified: boolean;

This item has no description.

Source: source/component/PasDoc_OptionParser.pas (line 71).

Protected FParser: TOptionParser;

This item has no description.

Source: source/component/PasDoc_OptionParser.pas (line 72).

Methods

Protected function ParseOption(const AWords: TStrings): boolean; virtual; abstract;

This item has no description.

Source: source/component/PasDoc_OptionParser.pas (line 73).

Public constructor Create(const AShort:char; const ALong: string);

Create a new Option. Set AShort to #0 in order to have no short option. Technically you can set ALong to '' to have no long option, but in practive *every* option should have long form. Don't override this in descendants (this always simply calls CreateEx). Override only CreateEx.

Source: source/component/PasDoc_OptionParser.pas (line 81).

Public constructor CreateEx(const AShort:char; const ALong: string; const AShortCaseSensitive, ALongCaseSensitive: boolean); virtual;

This item has no description.

Source: source/component/PasDoc_OptionParser.pas (line 83).

Public function GetOptionWidth: Integer;

returns the width of the string "-s, --long-option" where s is the short option. Removes non-existant options (longoption = '' or shortoption = #0)

Source: source/component/PasDoc_OptionParser.pas (line 88).

Public procedure WriteExplanation(const AOptWidth: Integer);

writes the wrapped explanation including option format, AOptWidth determines how much it is indented & wrapped

Source: source/component/PasDoc_OptionParser.pas (line 91).

Properties

Public property ShortForm: char read FShort write FShort;

Short form of the option — single character — if #0 then not used

Source: source/component/PasDoc_OptionParser.pas (line 93).

Public property LongForm: string read FLong write FLong;

long form of the option — string — if empty, then not used

Source: source/component/PasDoc_OptionParser.pas (line 95).

Public property ShortCaseSensitive: boolean read FShortSens write FShortSens;

specified whether the short form should be case sensitive or not

Source: source/component/PasDoc_OptionParser.pas (line 97).

Public property LongCaseSensitive: boolean read FLongSens write FLongSens;

specifies whether the long form should be case sensitive or not

Source: source/component/PasDoc_OptionParser.pas (line 99).

Public property WasSpecified: boolean read FWasSpecified;

signifies if the option was specified at least once

Source: source/component/PasDoc_OptionParser.pas (line 101).

Public property Explanation: string read FExplanation write FExplanation;

explanation for the option, see also WriteExplanation

Source: source/component/PasDoc_OptionParser.pas (line 103).


PasDoc's autodoc: PasDoc_OptionParser: Class TBoolOption

Class TBoolOption

Description
Hierarchy
Fields
Methods
Properties

Unit

PasDoc_OptionParser

Declaration

type TBoolOption = class(TOption)

Description

Boolean option, "on" if was specified.

Note: This cannot handle something like --option=false . Whether the option is TurnedOn simply depends on whether it was specified.

Source: source/component/PasDoc_OptionParser.pas (line 111).

Hierarchy

  • TObject
  • TOption
  • TBoolOption
Show Additional Members:

Overview

Fields

Protected | FShort: char;
Protected | FLong: string;
Protected | FShortSens: boolean;
Protected | FLongSens: boolean;
Protected | FExplanation: string;
Protected | FWasSpecified: boolean;
Protected | FParser: TOptionParser;

Methods

Public | constructor Create(const AShort:char; const ALong: string);
Public | constructor CreateEx(const AShort:char; const ALong: string; const AShortCaseSensitive, ALongCaseSensitive: boolean); virtual;
Public | function GetOptionWidth: Integer;
Public | procedure WriteExplanation(const AOptWidth: Integer);
Protected | function ParseOption(const AWords: TStrings): boolean; override;

Properties

Public | property ShortForm: char read FShort write FShort;
Public | property LongForm: string read FLong write FLong;
Public | property ShortCaseSensitive: boolean read FShortSens write FShortSens;
Public | property LongCaseSensitive: boolean read FLongSens write FLongSens;
Public | property WasSpecified: boolean read FWasSpecified;
Public | property Explanation: string read FExplanation write FExplanation;
Public | property TurnedOn: boolean read FWasSpecified;

Description

Fields

Protected FShort: char;

This item is declared in ancestor TOption.

This item has no description.

Source: source/component/PasDoc_OptionParser.pas (line 66).

Protected FLong: string;

This item is declared in ancestor TOption.

This item has no description.

Source: source/component/PasDoc_OptionParser.pas (line 67).

Protected FShortSens: boolean;

This item is declared in ancestor TOption.

This item has no description.

Source: source/component/PasDoc_OptionParser.pas (line 68).

Protected FLongSens: boolean;

This item is declared in ancestor TOption.

This item has no description.

Source: source/component/PasDoc_OptionParser.pas (line 69).

Protected FExplanation: string;

This item is declared in ancestor TOption.

This item has no description.

Source: source/component/PasDoc_OptionParser.pas (line 70).

Protected FWasSpecified: boolean;

This item is declared in ancestor TOption.

This item has no description.

Source: source/component/PasDoc_OptionParser.pas (line 71).

Protected FParser: TOptionParser;

This item is declared in ancestor TOption.

This item has no description.

Source: source/component/PasDoc_OptionParser.pas (line 72).

Methods

Public constructor Create(const AShort:char; const ALong: string);

This item is declared in ancestor TOption.

Create a new Option. Set AShort to #0 in order to have no short option. Technically you can set ALong to '' to have no long option, but in practive *every* option should have long form. Don't override this in descendants (this always simply calls CreateEx). Override only CreateEx.

Source: source/component/PasDoc_OptionParser.pas (line 81).

Public constructor CreateEx(const AShort:char; const ALong: string; const AShortCaseSensitive, ALongCaseSensitive: boolean); virtual;

This item is declared in ancestor TOption.

This item has no description.

Source: source/component/PasDoc_OptionParser.pas (line 83).

Public function GetOptionWidth: Integer;

This item is declared in ancestor TOption.

returns the width of the string "-s, --long-option" where s is the short option. Removes non-existant options (longoption = '' or shortoption = #0)

Source: source/component/PasDoc_OptionParser.pas (line 88).

Public procedure WriteExplanation(const AOptWidth: Integer);

This item is declared in ancestor TOption.

writes the wrapped explanation including option format, AOptWidth determines how much it is indented & wrapped

Source: source/component/PasDoc_OptionParser.pas (line 91).

Protected function ParseOption(const AWords: TStrings): boolean; override;

This item has no description.

Source: source/component/PasDoc_OptionParser.pas (line 113).

Properties

Public property ShortForm: char read FShort write FShort;

This item is declared in ancestor TOption.

Short form of the option — single character — if #0 then not used

Source: source/component/PasDoc_OptionParser.pas (line 93).

Public property LongForm: string read FLong write FLong;

This item is declared in ancestor TOption.

long form of the option — string — if empty, then not used

Source: source/component/PasDoc_OptionParser.pas (line 95).

Public property ShortCaseSensitive: boolean read FShortSens write FShortSens;

This item is declared in ancestor TOption.

specified whether the short form should be case sensitive or not

Source: source/component/PasDoc_OptionParser.pas (line 97).

Public property LongCaseSensitive: boolean read FLongSens write FLongSens;

This item is declared in ancestor TOption.

specifies whether the long form should be case sensitive or not

Source: source/component/PasDoc_OptionParser.pas (line 99).

Public property WasSpecified: boolean read FWasSpecified;

This item is declared in ancestor TOption.

signifies if the option was specified at least once

Source: source/component/PasDoc_OptionParser.pas (line 101).

Public property Explanation: string read FExplanation write FExplanation;

This item is declared in ancestor TOption.

explanation for the option, see also WriteExplanation

Source: source/component/PasDoc_OptionParser.pas (line 103).

Public property TurnedOn: boolean read FWasSpecified;

This item has no description.

Source: source/component/PasDoc_OptionParser.pas (line 115).


PasDoc's autodoc: PasDoc_OptionParser: Class TValueOption

Class TValueOption

Description
Hierarchy
Fields
Methods
Properties

Unit

PasDoc_OptionParser

Declaration

type TValueOption = class(TOption)

Description

Base class for all options that have values.

These options that take one or more values of the form --option=value or --option value etc

Source: source/component/PasDoc_OptionParser.pas (line 121).

Hierarchy

  • TObject
  • TOption
  • TValueOption
Show Additional Members:

Overview

Fields

Protected | FShort: char;
Protected | FLong: string;
Protected | FShortSens: boolean;
Protected | FLongSens: boolean;
Protected | FExplanation: string;
Protected | FWasSpecified: boolean;
Protected | FParser: TOptionParser;

Methods

Public | constructor Create(const AShort:char; const ALong: string);
Public | constructor CreateEx(const AShort:char; const ALong: string; const AShortCaseSensitive, ALongCaseSensitive: boolean); virtual;
Public | function GetOptionWidth: Integer;
Public | procedure WriteExplanation(const AOptWidth: Integer);
Protected | function CheckValue(const AString: String): boolean; virtual; abstract;
Protected | function ParseOption(const AWords: TStrings): boolean; override;

Properties

Public | property ShortForm: char read FShort write FShort;
Public | property LongForm: string read FLong write FLong;
Public | property ShortCaseSensitive: boolean read FShortSens write FShortSens;
Public | property LongCaseSensitive: boolean read FLongSens write FLongSens;
Public | property WasSpecified: boolean read FWasSpecified;
Public | property Explanation: string read FExplanation write FExplanation;

Description

Fields

Protected FShort: char;

This item is declared in ancestor TOption.

This item has no description.

Source: source/component/PasDoc_OptionParser.pas (line 66).

Protected FLong: string;

This item is declared in ancestor TOption.

This item has no description.

Source: source/component/PasDoc_OptionParser.pas (line 67).

Protected FShortSens: boolean;

This item is declared in ancestor TOption.

This item has no description.

Source: source/component/PasDoc_OptionParser.pas (line 68).

Protected FLongSens: boolean;

This item is declared in ancestor TOption.

This item has no description.

Source: source/component/PasDoc_OptionParser.pas (line 69).

Protected FExplanation: string;

This item is declared in ancestor TOption.

This item has no description.

Source: source/component/PasDoc_OptionParser.pas (line 70).

Protected FWasSpecified: boolean;

This item is declared in ancestor TOption.

This item has no description.

Source: source/component/PasDoc_OptionParser.pas (line 71).

Protected FParser: TOptionParser;

This item is declared in ancestor TOption.

This item has no description.

Source: source/component/PasDoc_OptionParser.pas (line 72).

Methods

Public constructor Create(const AShort:char; const ALong: string);

This item is declared in ancestor TOption.

Create a new Option. Set AShort to #0 in order to have no short option. Technically you can set ALong to '' to have no long option, but in practive *every* option should have long form. Don't override this in descendants (this always simply calls CreateEx). Override only CreateEx.

Source: source/component/PasDoc_OptionParser.pas (line 81).

Public constructor CreateEx(const AShort:char; const ALong: string; const AShortCaseSensitive, ALongCaseSensitive: boolean); virtual;

This item is declared in ancestor TOption.

This item has no description.

Source: source/component/PasDoc_OptionParser.pas (line 83).

Public function GetOptionWidth: Integer;

This item is declared in ancestor TOption.

returns the width of the string "-s, --long-option" where s is the short option. Removes non-existant options (longoption = '' or shortoption = #0)

Source: source/component/PasDoc_OptionParser.pas (line 88).

Public procedure WriteExplanation(const AOptWidth: Integer);

This item is declared in ancestor TOption.

writes the wrapped explanation including option format, AOptWidth determines how much it is indented & wrapped

Source: source/component/PasDoc_OptionParser.pas (line 91).

Protected function CheckValue(const AString: String): boolean; virtual; abstract;

This item has no description.

Source: source/component/PasDoc_OptionParser.pas (line 123).

Protected function ParseOption(const AWords: TStrings): boolean; override;

This item has no description.

Source: source/component/PasDoc_OptionParser.pas (line 124).

Properties

Public property ShortForm: char read FShort write FShort;

This item is declared in ancestor TOption.

Short form of the option — single character — if #0 then not used

Source: source/component/PasDoc_OptionParser.pas (line 93).

Public property LongForm: string read FLong write FLong;

This item is declared in ancestor TOption.

long form of the option — string — if empty, then not used

Source: source/component/PasDoc_OptionParser.pas (line 95).

Public property ShortCaseSensitive: boolean read FShortSens write FShortSens;

This item is declared in ancestor TOption.

specified whether the short form should be case sensitive or not

Source: source/component/PasDoc_OptionParser.pas (line 97).

Public property LongCaseSensitive: boolean read FLongSens write FLongSens;

This item is declared in ancestor TOption.

specifies whether the long form should be case sensitive or not

Source: source/component/PasDoc_OptionParser.pas (line 99).

Public property WasSpecified: boolean read FWasSpecified;

This item is declared in ancestor TOption.

signifies if the option was specified at least once

Source: source/component/PasDoc_OptionParser.pas (line 101).

Public property Explanation: string read FExplanation write FExplanation;

This item is declared in ancestor TOption.

explanation for the option, see also WriteExplanation

Source: source/component/PasDoc_OptionParser.pas (line 103).


PasDoc's autodoc: PasDoc_OptionParser: Class TIntegerOption

Class TIntegerOption

Description
Hierarchy
Fields
Methods
Properties

Unit

PasDoc_OptionParser

Declaration

type TIntegerOption = class(TValueOption)

Description

Option that accepts additional Integer as a value.

Source: source/component/PasDoc_OptionParser.pas (line 128).

Hierarchy

  • TObject
  • TOption
  • TValueOption
  • TIntegerOption
Show Additional Members:

Overview

Fields

Protected | FShort: char;
Protected | FLong: string;
Protected | FShortSens: boolean;
Protected | FLongSens: boolean;
Protected | FExplanation: string;
Protected | FWasSpecified: boolean;
Protected | FParser: TOptionParser;
Protected | FValue: Integer;

Methods

Public | constructor Create(const AShort:char; const ALong: string);
Public | constructor CreateEx(const AShort:char; const ALong: string; const AShortCaseSensitive, ALongCaseSensitive: boolean); virtual;
Public | function GetOptionWidth: Integer;
Public | procedure WriteExplanation(const AOptWidth: Integer);
Protected | function ParseOption(const AWords: TStrings): boolean; override;
Protected | function CheckValue(const AString: String): boolean; override;

Properties

Public | property ShortForm: char read FShort write FShort;
Public | property LongForm: string read FLong write FLong;
Public | property ShortCaseSensitive: boolean read FShortSens write FShortSens;
Public | property LongCaseSensitive: boolean read FLongSens write FLongSens;
Public | property WasSpecified: boolean read FWasSpecified;
Public | property Explanation: string read FExplanation write FExplanation;
Public | property Value: Integer read FValue write FValue;

Description

Fields

Protected FShort: char;

This item is declared in ancestor TOption.

This item has no description.

Source: source/component/PasDoc_OptionParser.pas (line 66).

Protected FLong: string;

This item is declared in ancestor TOption.

This item has no description.

Source: source/component/PasDoc_OptionParser.pas (line 67).

Protected FShortSens: boolean;

This item is declared in ancestor TOption.

This item has no description.

Source: source/component/PasDoc_OptionParser.pas (line 68).

Protected FLongSens: boolean;

This item is declared in ancestor TOption.

This item has no description.

Source: source/component/PasDoc_OptionParser.pas (line 69).

Protected FExplanation: string;

This item is declared in ancestor TOption.

This item has no description.

Source: source/component/PasDoc_OptionParser.pas (line 70).

Protected FWasSpecified: boolean;

This item is declared in ancestor TOption.

This item has no description.

Source: source/component/PasDoc_OptionParser.pas (line 71).

Protected FParser: TOptionParser;

This item is declared in ancestor TOption.

This item has no description.

Source: source/component/PasDoc_OptionParser.pas (line 72).

Protected FValue: Integer;

This item has no description.

Source: source/component/PasDoc_OptionParser.pas (line 130).

Methods

Public constructor Create(const AShort:char; const ALong: string);

This item is declared in ancestor TOption.

Create a new Option. Set AShort to #0 in order to have no short option. Technically you can set ALong to '' to have no long option, but in practive *every* option should have long form. Don't override this in descendants (this always simply calls CreateEx). Override only CreateEx.

Source: source/component/PasDoc_OptionParser.pas (line 81).

Public constructor CreateEx(const AShort:char; const ALong: string; const AShortCaseSensitive, ALongCaseSensitive: boolean); virtual;

This item is declared in ancestor TOption.

This item has no description.

Source: source/component/PasDoc_OptionParser.pas (line 83).

Public function GetOptionWidth: Integer;

This item is declared in ancestor TOption.

returns the width of the string "-s, --long-option" where s is the short option. Removes non-existant options (longoption = '' or shortoption = #0)

Source: source/component/PasDoc_OptionParser.pas (line 88).

Public procedure WriteExplanation(const AOptWidth: Integer);

This item is declared in ancestor TOption.

writes the wrapped explanation including option format, AOptWidth determines how much it is indented & wrapped

Source: source/component/PasDoc_OptionParser.pas (line 91).

Protected function ParseOption(const AWords: TStrings): boolean; override;

This item is declared in ancestor TValueOption.

This item has no description.

Source: source/component/PasDoc_OptionParser.pas (line 124).

Protected function CheckValue(const AString: String): boolean; override;

This item has no description.

Source: source/component/PasDoc_OptionParser.pas (line 131).

Properties

Public property ShortForm: char read FShort write FShort;

This item is declared in ancestor TOption.

Short form of the option — single character — if #0 then not used

Source: source/component/PasDoc_OptionParser.pas (line 93).

Public property LongForm: string read FLong write FLong;

This item is declared in ancestor TOption.

long form of the option — string — if empty, then not used

Source: source/component/PasDoc_OptionParser.pas (line 95).

Public property ShortCaseSensitive: boolean read FShortSens write FShortSens;

This item is declared in ancestor TOption.

specified whether the short form should be case sensitive or not

Source: source/component/PasDoc_OptionParser.pas (line 97).

Public property LongCaseSensitive: boolean read FLongSens write FLongSens;

This item is declared in ancestor TOption.

specifies whether the long form should be case sensitive or not

Source: source/component/PasDoc_OptionParser.pas (line 99).

Public property WasSpecified: boolean read FWasSpecified;

This item is declared in ancestor TOption.

signifies if the option was specified at least once

Source: source/component/PasDoc_OptionParser.pas (line 101).

Public property Explanation: string read FExplanation write FExplanation;

This item is declared in ancestor TOption.

explanation for the option, see also WriteExplanation

Source: source/component/PasDoc_OptionParser.pas (line 103).

Public property Value: Integer read FValue write FValue;

This item has no description.

Source: source/component/PasDoc_OptionParser.pas (line 133).


PasDoc's autodoc: PasDoc_OptionParser: Class TStringOption

Class TStringOption

Description
Hierarchy
Fields
Methods
Properties

Unit

PasDoc_OptionParser

Declaration

type TStringOption = class(TValueOption)

Description

Option that accepts additional string as a value.

Source: source/component/PasDoc_OptionParser.pas (line 137).

Hierarchy

  • TObject
  • TOption
  • TValueOption
  • TStringOption
Show Additional Members:

Overview

Fields

Protected | FShort: char;
Protected | FLong: string;
Protected | FShortSens: boolean;
Protected | FLongSens: boolean;
Protected | FExplanation: string;
Protected | FWasSpecified: boolean;
Protected | FParser: TOptionParser;
Protected | FValue: String;

Methods

Public | constructor Create(const AShort:char; const ALong: string);
Public | constructor CreateEx(const AShort:char; const ALong: string; const AShortCaseSensitive, ALongCaseSensitive: boolean); virtual;
Public | function GetOptionWidth: Integer;
Public | procedure WriteExplanation(const AOptWidth: Integer);
Protected | function ParseOption(const AWords: TStrings): boolean; override;
Protected | function CheckValue(const AString: String): boolean; override;

Properties

Public | property ShortForm: char read FShort write FShort;
Public | property LongForm: string read FLong write FLong;
Public | property ShortCaseSensitive: boolean read FShortSens write FShortSens;
Public | property LongCaseSensitive: boolean read FLongSens write FLongSens;
Public | property WasSpecified: boolean read FWasSpecified;
Public | property Explanation: string read FExplanation write FExplanation;
Public | property Value: String read FValue write FValue;

Description

Fields

Protected FShort: char;

This item is declared in ancestor TOption.

This item has no description.

Source: source/component/PasDoc_OptionParser.pas (line 66).

Protected FLong: string;

This item is declared in ancestor TOption.

This item has no description.

Source: source/component/PasDoc_OptionParser.pas (line 67).

Protected FShortSens: boolean;

This item is declared in ancestor TOption.

This item has no description.

Source: source/component/PasDoc_OptionParser.pas (line 68).

Protected FLongSens: boolean;

This item is declared in ancestor TOption.

This item has no description.

Source: source/component/PasDoc_OptionParser.pas (line 69).

Protected FExplanation: string;

This item is declared in ancestor TOption.

This item has no description.

Source: source/component/PasDoc_OptionParser.pas (line 70).

Protected FWasSpecified: boolean;

This item is declared in ancestor TOption.

This item has no description.

Source: source/component/PasDoc_OptionParser.pas (line 71).

Protected FParser: TOptionParser;

This item is declared in ancestor TOption.

This item has no description.

Source: source/component/PasDoc_OptionParser.pas (line 72).

Protected FValue: String;

This item has no description.

Source: source/component/PasDoc_OptionParser.pas (line 139).

Methods

Public constructor Create(const AShort:char; const ALong: string);

This item is declared in ancestor TOption.

Create a new Option. Set AShort to #0 in order to have no short option. Technically you can set ALong to '' to have no long option, but in practive *every* option should have long form. Don't override this in descendants (this always simply calls CreateEx). Override only CreateEx.

Source: source/component/PasDoc_OptionParser.pas (line 81).

Public constructor CreateEx(const AShort:char; const ALong: string; const AShortCaseSensitive, ALongCaseSensitive: boolean); virtual;

This item is declared in ancestor TOption.

This item has no description.

Source: source/component/PasDoc_OptionParser.pas (line 83).

Public function GetOptionWidth: Integer;

This item is declared in ancestor TOption.

returns the width of the string "-s, --long-option" where s is the short option. Removes non-existant options (longoption = '' or shortoption = #0)

Source: source/component/PasDoc_OptionParser.pas (line 88).

Public procedure WriteExplanation(const AOptWidth: Integer);

This item is declared in ancestor TOption.

writes the wrapped explanation including option format, AOptWidth determines how much it is indented & wrapped

Source: source/component/PasDoc_OptionParser.pas (line 91).

Protected function ParseOption(const AWords: TStrings): boolean; override;

This item is declared in ancestor TValueOption.

This item has no description.

Source: source/component/PasDoc_OptionParser.pas (line 124).

Protected function CheckValue(const AString: String): boolean; override;

This item has no description.

Source: source/component/PasDoc_OptionParser.pas (line 140).

Properties

Public property ShortForm: char read FShort write FShort;

This item is declared in ancestor TOption.

Short form of the option — single character — if #0 then not used

Source: source/component/PasDoc_OptionParser.pas (line 93).

Public property LongForm: string read FLong write FLong;

This item is declared in ancestor TOption.

long form of the option — string — if empty, then not used

Source: source/component/PasDoc_OptionParser.pas (line 95).

Public property ShortCaseSensitive: boolean read FShortSens write FShortSens;

This item is declared in ancestor TOption.

specified whether the short form should be case sensitive or not

Source: source/component/PasDoc_OptionParser.pas (line 97).

Public property LongCaseSensitive: boolean read FLongSens write FLongSens;

This item is declared in ancestor TOption.

specifies whether the long form should be case sensitive or not

Source: source/component/PasDoc_OptionParser.pas (line 99).

Public property WasSpecified: boolean read FWasSpecified;

This item is declared in ancestor TOption.

signifies if the option was specified at least once

Source: source/component/PasDoc_OptionParser.pas (line 101).

Public property Explanation: string read FExplanation write FExplanation;

This item is declared in ancestor TOption.

explanation for the option, see also WriteExplanation

Source: source/component/PasDoc_OptionParser.pas (line 103).

Public property Value: String read FValue write FValue;

This item has no description.

Source: source/component/PasDoc_OptionParser.pas (line 142).


PasDoc's autodoc: PasDoc_OptionParser: Class TStringOptionList

Class TStringOptionList

Description
Hierarchy
Fields
Methods
Properties

Unit

PasDoc_OptionParser

Declaration

type TStringOptionList = class(TValueOption)

Description

stringlist option

accepts multiple strings and collates them even if the option itself is specified more than one time

Source: source/component/PasDoc_OptionParser.pas (line 148).

Hierarchy

  • TObject
  • TOption
  • TValueOption
  • TStringOptionList
Show Additional Members:

Overview

Fields

Protected | FShort: char;
Protected | FLong: string;
Protected | FShortSens: boolean;
Protected | FLongSens: boolean;
Protected | FExplanation: string;
Protected | FWasSpecified: boolean;
Protected | FParser: TOptionParser;
Protected | FValues: TStringList;

Methods

Public | constructor Create(const AShort:char; const ALong: string);
Public | constructor CreateEx(const AShort:char; const ALong: string; const AShortCaseSensitive, ALongCaseSensitive: boolean); virtual;
Public | function GetOptionWidth: Integer;
Public | procedure WriteExplanation(const AOptWidth: Integer);
Protected | function ParseOption(const AWords: TStrings): boolean; override;
Protected | function CheckValue(const AString: String): Boolean; override;
Public | constructor CreateEx(const AShort: Char; const ALong: String; const AShortCaseSensitive, ALongCaseSensitive: Boolean); override;
Public | destructor Destroy; override;

Properties

Public | property ShortForm: char read FShort write FShort;
Public | property LongForm: string read FLong write FLong;
Public | property ShortCaseSensitive: boolean read FShortSens write FShortSens;
Public | property LongCaseSensitive: boolean read FLongSens write FLongSens;
Public | property WasSpecified: boolean read FWasSpecified;
Public | property Explanation: string read FExplanation write FExplanation;
Public | property Values: TStringList read FValues;

Description

Fields

Protected FShort: char;

This item is declared in ancestor TOption.

This item has no description.

Source: source/component/PasDoc_OptionParser.pas (line 66).

Protected FLong: string;

This item is declared in ancestor TOption.

This item has no description.

Source: source/component/PasDoc_OptionParser.pas (line 67).

Protected FShortSens: boolean;

This item is declared in ancestor TOption.

This item has no description.

Source: source/component/PasDoc_OptionParser.pas (line 68).

Protected FLongSens: boolean;

This item is declared in ancestor TOption.

This item has no description.

Source: source/component/PasDoc_OptionParser.pas (line 69).

Protected FExplanation: string;

This item is declared in ancestor TOption.

This item has no description.

Source: source/component/PasDoc_OptionParser.pas (line 70).

Protected FWasSpecified: boolean;

This item is declared in ancestor TOption.

This item has no description.

Source: source/component/PasDoc_OptionParser.pas (line 71).

Protected FParser: TOptionParser;

This item is declared in ancestor TOption.

This item has no description.

Source: source/component/PasDoc_OptionParser.pas (line 72).

Protected FValues: TStringList;

This item has no description.

Source: source/component/PasDoc_OptionParser.pas (line 150).

Methods

Public constructor Create(const AShort:char; const ALong: string);

This item is declared in ancestor TOption.

Create a new Option. Set AShort to #0 in order to have no short option. Technically you can set ALong to '' to have no long option, but in practive *every* option should have long form. Don't override this in descendants (this always simply calls CreateEx). Override only CreateEx.

Source: source/component/PasDoc_OptionParser.pas (line 81).

Public constructor CreateEx(const AShort:char; const ALong: string; const AShortCaseSensitive, ALongCaseSensitive: boolean); virtual;

This item is declared in ancestor TOption.

This item has no description.

Source: source/component/PasDoc_OptionParser.pas (line 83).

Public function GetOptionWidth: Integer;

This item is declared in ancestor TOption.

returns the width of the string "-s, --long-option" where s is the short option. Removes non-existant options (longoption = '' or shortoption = #0)

Source: source/component/PasDoc_OptionParser.pas (line 88).

Public procedure WriteExplanation(const AOptWidth: Integer);

This item is declared in ancestor TOption.

writes the wrapped explanation including option format, AOptWidth determines how much it is indented & wrapped

Source: source/component/PasDoc_OptionParser.pas (line 91).

Protected function ParseOption(const AWords: TStrings): boolean; override;

This item is declared in ancestor TValueOption.

This item has no description.

Source: source/component/PasDoc_OptionParser.pas (line 124).

Protected function CheckValue(const AString: String): Boolean; override;

This item has no description.

Source: source/component/PasDoc_OptionParser.pas (line 151).

Public constructor CreateEx(const AShort: Char; const ALong: String; const AShortCaseSensitive, ALongCaseSensitive: Boolean); override;

This item has no description.

Source: source/component/PasDoc_OptionParser.pas (line 154).

Public destructor Destroy; override;

This item has no description.

Source: source/component/PasDoc_OptionParser.pas (line 156).

Properties

Public property ShortForm: char read FShort write FShort;

This item is declared in ancestor TOption.

Short form of the option — single character — if #0 then not used

Source: source/component/PasDoc_OptionParser.pas (line 93).

Public property LongForm: string read FLong write FLong;

This item is declared in ancestor TOption.

long form of the option — string — if empty, then not used

Source: source/component/PasDoc_OptionParser.pas (line 95).

Public property ShortCaseSensitive: boolean read FShortSens write FShortSens;

This item is declared in ancestor TOption.

specified whether the short form should be case sensitive or not

Source: source/component/PasDoc_OptionParser.pas (line 97).

Public property LongCaseSensitive: boolean read FLongSens write FLongSens;

This item is declared in ancestor TOption.

specifies whether the long form should be case sensitive or not

Source: source/component/PasDoc_OptionParser.pas (line 99).

Public property WasSpecified: boolean read FWasSpecified;

This item is declared in ancestor TOption.

signifies if the option was specified at least once

Source: source/component/PasDoc_OptionParser.pas (line 101).

Public property Explanation: string read FExplanation write FExplanation;

This item is declared in ancestor TOption.

explanation for the option, see also WriteExplanation

Source: source/component/PasDoc_OptionParser.pas (line 103).

Public property Values: TStringList read FValues;

This item has no description.

Source: source/component/PasDoc_OptionParser.pas (line 153).


PasDoc's autodoc: PasDoc_OptionParser: Class TPathListOption

Class TPathListOption

Description
Hierarchy
Fields
Methods
Properties

Unit

PasDoc_OptionParser

Declaration

type TPathListOption = class(TStringOptionList)

Description

pathlist option

accepts multiple strings paths and collates them even if the option itself is specified more than one time. Paths in a single option can be separated by the DirectorySeparator

Source: source/component/PasDoc_OptionParser.pas (line 164).

Hierarchy

  • TObject
  • TOption
  • TValueOption
  • TStringOptionList
  • TPathListOption
Show Additional Members:

Overview

Fields

Protected | FShort: char;
Protected | FLong: string;
Protected | FShortSens: boolean;
Protected | FLongSens: boolean;
Protected | FExplanation: string;
Protected | FWasSpecified: boolean;
Protected | FParser: TOptionParser;
Protected | FValues: TStringList;

Methods

Public | constructor Create(const AShort:char; const ALong: string);
Public | constructor CreateEx(const AShort:char; const ALong: string; const AShortCaseSensitive, ALongCaseSensitive: boolean); virtual;
Public | function GetOptionWidth: Integer;
Public | procedure WriteExplanation(const AOptWidth: Integer);
Protected | function ParseOption(const AWords: TStrings): boolean; override;
Public | constructor CreateEx(const AShort: Char; const ALong: String; const AShortCaseSensitive, ALongCaseSensitive: Boolean); override;
Public | destructor Destroy; override;
Public | function CheckValue(const AString: String): Boolean; override;

Properties

Public | property ShortForm: char read FShort write FShort;
Public | property LongForm: string read FLong write FLong;
Public | property ShortCaseSensitive: boolean read FShortSens write FShortSens;
Public | property LongCaseSensitive: boolean read FLongSens write FLongSens;
Public | property WasSpecified: boolean read FWasSpecified;
Public | property Explanation: string read FExplanation write FExplanation;
Public | property Values: TStringList read FValues;

Description

Fields

Protected FShort: char;

This item is declared in ancestor TOption.

This item has no description.

Source: source/component/PasDoc_OptionParser.pas (line 66).

Protected FLong: string;

This item is declared in ancestor TOption.

This item has no description.

Source: source/component/PasDoc_OptionParser.pas (line 67).

Protected FShortSens: boolean;

This item is declared in ancestor TOption.

This item has no description.

Source: source/component/PasDoc_OptionParser.pas (line 68).

Protected FLongSens: boolean;

This item is declared in ancestor TOption.

This item has no description.

Source: source/component/PasDoc_OptionParser.pas (line 69).

Protected FExplanation: string;

This item is declared in ancestor TOption.

This item has no description.

Source: source/component/PasDoc_OptionParser.pas (line 70).

Protected FWasSpecified: boolean;

This item is declared in ancestor TOption.

This item has no description.

Source: source/component/PasDoc_OptionParser.pas (line 71).

Protected FParser: TOptionParser;

This item is declared in ancestor TOption.

This item has no description.

Source: source/component/PasDoc_OptionParser.pas (line 72).

Protected FValues: TStringList;

This item is declared in ancestor TStringOptionList.

This item has no description.

Source: source/component/PasDoc_OptionParser.pas (line 150).

Methods

Public constructor Create(const AShort:char; const ALong: string);

This item is declared in ancestor TOption.

Create a new Option. Set AShort to #0 in order to have no short option. Technically you can set ALong to '' to have no long option, but in practive *every* option should have long form. Don't override this in descendants (this always simply calls CreateEx). Override only CreateEx.

Source: source/component/PasDoc_OptionParser.pas (line 81).

Public constructor CreateEx(const AShort:char; const ALong: string; const AShortCaseSensitive, ALongCaseSensitive: boolean); virtual;

This item is declared in ancestor TOption.

This item has no description.

Source: source/component/PasDoc_OptionParser.pas (line 83).

Public function GetOptionWidth: Integer;

This item is declared in ancestor TOption.

returns the width of the string "-s, --long-option" where s is the short option. Removes non-existant options (longoption = '' or shortoption = #0)

Source: source/component/PasDoc_OptionParser.pas (line 88).

Public procedure WriteExplanation(const AOptWidth: Integer);

This item is declared in ancestor TOption.

writes the wrapped explanation including option format, AOptWidth determines how much it is indented & wrapped

Source: source/component/PasDoc_OptionParser.pas (line 91).

Protected function ParseOption(const AWords: TStrings): boolean; override;

This item is declared in ancestor TValueOption.

This item has no description.

Source: source/component/PasDoc_OptionParser.pas (line 124).

Public constructor CreateEx(const AShort: Char; const ALong: String; const AShortCaseSensitive, ALongCaseSensitive: Boolean); override;

This item is declared in ancestor TStringOptionList.

This item has no description.

Source: source/component/PasDoc_OptionParser.pas (line 154).

Public destructor Destroy; override;

This item is declared in ancestor TStringOptionList.

This item has no description.

Source: source/component/PasDoc_OptionParser.pas (line 156).

Public function CheckValue(const AString: String): Boolean; override;

This item has no description.

Source: source/component/PasDoc_OptionParser.pas (line 165).

Properties

Public property ShortForm: char read FShort write FShort;

This item is declared in ancestor TOption.

Short form of the option — single character — if #0 then not used

Source: source/component/PasDoc_OptionParser.pas (line 93).

Public property LongForm: string read FLong write FLong;

This item is declared in ancestor TOption.

long form of the option — string — if empty, then not used

Source: source/component/PasDoc_OptionParser.pas (line 95).

Public property ShortCaseSensitive: boolean read FShortSens write FShortSens;

This item is declared in ancestor TOption.

specified whether the short form should be case sensitive or not

Source: source/component/PasDoc_OptionParser.pas (line 97).

Public property LongCaseSensitive: boolean read FLongSens write FLongSens;

This item is declared in ancestor TOption.

specifies whether the long form should be case sensitive or not

Source: source/component/PasDoc_OptionParser.pas (line 99).

Public property WasSpecified: boolean read FWasSpecified;

This item is declared in ancestor TOption.

signifies if the option was specified at least once

Source: source/component/PasDoc_OptionParser.pas (line 101).

Public property Explanation: string read FExplanation write FExplanation;

This item is declared in ancestor TOption.

explanation for the option, see also WriteExplanation

Source: source/component/PasDoc_OptionParser.pas (line 103).

Public property Values: TStringList read FValues;

This item is declared in ancestor TStringOptionList.

This item has no description.

Source: source/component/PasDoc_OptionParser.pas (line 153).


PasDoc's autodoc: PasDoc_OptionParser: Class TSetOption

Class TSetOption

Description
Hierarchy
Fields
Methods
Properties

Unit

PasDoc_OptionParser

Declaration

type TSetOption = class(TValueOption)

Description

Option that allows to define a set.

Names for the set elements are defined by PossibleValues, which must be a comma-separated list of possible values.

Set Values to be the default set. After parsing, Values contains what the user has provided.

Set elements in Values may optionally be specified with a ? suffix. This is useful for toggleable visibility members for –visible-members option.

Source: source/component/PasDoc_OptionParser.pas (line 178).

Hierarchy

  • TObject
  • TOption
  • TValueOption
  • TSetOption
Show Additional Members:

Overview

Fields

Protected | FShort: char;
Protected | FLong: string;
Protected | FShortSens: boolean;
Protected | FLongSens: boolean;
Protected | FExplanation: string;
Protected | FWasSpecified: boolean;
Protected | FParser: TOptionParser;
Protected | FPossibleValues: TStringList;
Protected | FValues: TStringList;

Methods

Public | constructor Create(const AShort:char; const ALong: string);
Public | constructor CreateEx(const AShort:char; const ALong: string; const AShortCaseSensitive, ALongCaseSensitive: boolean); virtual;
Public | function GetOptionWidth: Integer;
Public | procedure WriteExplanation(const AOptWidth: Integer);
Protected | function ParseOption(const AWords: TStrings): boolean; override;
Protected | function GetPossibleValues: string;
Protected | procedure SetPossibleValues(const Value: string);
Protected | function CheckValue(const AString: String): Boolean; override;
Protected | function GetValues: string;
Protected | procedure SetValues(const Value: string);
Public | constructor CreateEx(const AShort: Char; const ALong: String; const AShortCaseSensitive, ALongCaseSensitive: Boolean); override;
Public | destructor Destroy; override;
Public | function HasValue(const AValue: string): boolean;
Public | function HasToggleValue(const AValue: string): boolean;

Properties

Public | property ShortForm: char read FShort write FShort;
Public | property LongForm: string read FLong write FLong;
Public | property ShortCaseSensitive: boolean read FShortSens write FShortSens;
Public | property LongCaseSensitive: boolean read FLongSens write FLongSens;
Public | property WasSpecified: boolean read FWasSpecified;
Public | property Explanation: string read FExplanation write FExplanation;
Public | property PossibleValues: string read GetPossibleValues write SetPossibleValues;
Public | property Values: string read GetValues write SetValues;

Description

Fields

Protected FShort: char;

This item is declared in ancestor TOption.

This item has no description.

Source: source/component/PasDoc_OptionParser.pas (line 66).

Protected FLong: string;

This item is declared in ancestor TOption.

This item has no description.

Source: source/component/PasDoc_OptionParser.pas (line 67).

Protected FShortSens: boolean;

This item is declared in ancestor TOption.

This item has no description.

Source: source/component/PasDoc_OptionParser.pas (line 68).

Protected FLongSens: boolean;

This item is declared in ancestor TOption.

This item has no description.

Source: source/component/PasDoc_OptionParser.pas (line 69).

Protected FExplanation: string;

This item is declared in ancestor TOption.

This item has no description.

Source: source/component/PasDoc_OptionParser.pas (line 70).

Protected FWasSpecified: boolean;

This item is declared in ancestor TOption.

This item has no description.

Source: source/component/PasDoc_OptionParser.pas (line 71).

Protected FParser: TOptionParser;

This item is declared in ancestor TOption.

This item has no description.

Source: source/component/PasDoc_OptionParser.pas (line 72).

Protected FPossibleValues: TStringList;

This item has no description.

Source: source/component/PasDoc_OptionParser.pas (line 180).

Protected FValues: TStringList;

This item has no description.

Source: source/component/PasDoc_OptionParser.pas (line 180).

Methods

Public constructor Create(const AShort:char; const ALong: string);

This item is declared in ancestor TOption.

Create a new Option. Set AShort to #0 in order to have no short option. Technically you can set ALong to '' to have no long option, but in practive *every* option should have long form. Don't override this in descendants (this always simply calls CreateEx). Override only CreateEx.

Source: source/component/PasDoc_OptionParser.pas (line 81).

Public constructor CreateEx(const AShort:char; const ALong: string; const AShortCaseSensitive, ALongCaseSensitive: boolean); virtual;

This item is declared in ancestor TOption.

This item has no description.

Source: source/component/PasDoc_OptionParser.pas (line 83).

Public function GetOptionWidth: Integer;

This item is declared in ancestor TOption.

returns the width of the string "-s, --long-option" where s is the short option. Removes non-existant options (longoption = '' or shortoption = #0)

Source: source/component/PasDoc_OptionParser.pas (line 88).

Public procedure WriteExplanation(const AOptWidth: Integer);

This item is declared in ancestor TOption.

writes the wrapped explanation including option format, AOptWidth determines how much it is indented & wrapped

Source: source/component/PasDoc_OptionParser.pas (line 91).

Protected function ParseOption(const AWords: TStrings): boolean; override;

This item is declared in ancestor TValueOption.

This item has no description.

Source: source/component/PasDoc_OptionParser.pas (line 124).

Protected function GetPossibleValues: string;

This item has no description.

Source: source/component/PasDoc_OptionParser.pas (line 181).

Protected procedure SetPossibleValues(const Value: string);

This item has no description.

Source: source/component/PasDoc_OptionParser.pas (line 182).

Protected function CheckValue(const AString: String): Boolean; override;

This item has no description.

Source: source/component/PasDoc_OptionParser.pas (line 183).

Protected function GetValues: string;

This item has no description.

Source: source/component/PasDoc_OptionParser.pas (line 184).

Protected procedure SetValues(const Value: string);

This item has no description.

Source: source/component/PasDoc_OptionParser.pas (line 185).

Public constructor CreateEx(const AShort: Char; const ALong: String; const AShortCaseSensitive, ALongCaseSensitive: Boolean); override;

This item has no description.

Source: source/component/PasDoc_OptionParser.pas (line 188).

Public destructor Destroy; override;

This item has no description.

Source: source/component/PasDoc_OptionParser.pas (line 190).

Public function HasValue(const AValue: string): boolean;

Was given value specified (with or without ? suffix).

Source: source/component/PasDoc_OptionParser.pas (line 193).

Public function HasToggleValue(const AValue: string): boolean;

Returns true if the value was specified with a ? suffix. Example use-case is "–visible-members=protected?,public" which means that protected members should be included but hidden by default. When this is True, then HasValue(AValue) always returns True as well.

Source: source/component/PasDoc_OptionParser.pas (line 199).

Properties

Public property ShortForm: char read FShort write FShort;

This item is declared in ancestor TOption.

Short form of the option — single character — if #0 then not used

Source: source/component/PasDoc_OptionParser.pas (line 93).

Public property LongForm: string read FLong write FLong;

This item is declared in ancestor TOption.

long form of the option — string — if empty, then not used

Source: source/component/PasDoc_OptionParser.pas (line 95).

Public property ShortCaseSensitive: boolean read FShortSens write FShortSens;

This item is declared in ancestor TOption.

specified whether the short form should be case sensitive or not

Source: source/component/PasDoc_OptionParser.pas (line 97).

Public property LongCaseSensitive: boolean read FLongSens write FLongSens;

This item is declared in ancestor TOption.

specifies whether the long form should be case sensitive or not

Source: source/component/PasDoc_OptionParser.pas (line 99).

Public property WasSpecified: boolean read FWasSpecified;

This item is declared in ancestor TOption.

signifies if the option was specified at least once

Source: source/component/PasDoc_OptionParser.pas (line 101).

Public property Explanation: string read FExplanation write FExplanation;

This item is declared in ancestor TOption.

explanation for the option, see also WriteExplanation

Source: source/component/PasDoc_OptionParser.pas (line 103).

Public property PossibleValues: string read GetPossibleValues write SetPossibleValues;

This item has no description.

Source: source/component/PasDoc_OptionParser.pas (line 187).

Public property Values: string read GetValues write SetValues;

This item has no description.

Source: source/component/PasDoc_OptionParser.pas (line 201).


PasDoc's autodoc: PasDoc_OptionParser: Class TOptionParser

Class TOptionParser

Description
Hierarchy
Fields
Methods
Properties

Unit

PasDoc_OptionParser

Declaration

type TOptionParser = class(TObject)

Description

OptionParser — instantiate one of these for commandline parsing

This class is the main parsing class, although a lot of parsing is handled by TOption and its descendants instead.

Source: source/component/PasDoc_OptionParser.pas (line 207).

Hierarchy

  • TObject
  • TOptionParser
Show Additional Members:

Overview

Fields

Protected | FParams: TStringList;
Protected | FOptions: TList;
Protected | FLeftList: TStringList;
Protected | FShortOptionChar: Char;
Protected | FLongOptionString: string;
Protected | FIncludeFileOptionName: string;
Protected | FIncludeFileOptionExpl: string;

Methods

Protected | function GetOption(const AIndex: Integer): TOption;
Protected | function GetOptionsCount: Integer;
Protected | function GetOptionByLongName(const AName: string): TOption;
Protected | function GetOptionByShortname(const AName: char): TOption;
Public | constructor Create; virtual;
Public | constructor CreateParams(const AParams: TStrings); virtual;
Public | destructor Destroy; override;
Public | function AddOption(const AOption: TOption): TOption;
Public | procedure ParseOptions;
Public | procedure WriteExplanations;

Properties

Public | property LeftList: TStringList read FLeftList;
Public | property OptionsCount: Integer read GetOptionsCount;
Public | property Options[const AIndex: Integer]: TOption read GetOption;
Public | property ByName[const AName: string]: TOption read GetOptionByLongName;
Public | property ByShortName[const AName: char]: TOption read GetOptionByShortname;
Public | property ShortOptionStart: Char read FShortOptionChar write FShortOptionChar default DefShortOptionChar;
Public | property LongOptionStart: String read FLongOptionString write FLongOptionString;
Public | property IncludeFileOptionName: string read FIncludeFileOptionName write FIncludeFileOptionName;
Public | property IncludeFileOptionExpl: string read FIncludeFileOptionExpl write FIncludeFileOptionExpl;

Description

Fields

Protected FParams: TStringList;

This item has no description.

Source: source/component/PasDoc_OptionParser.pas (line 209).

Protected FOptions: TList;

This item has no description.

Source: source/component/PasDoc_OptionParser.pas (line 210).

Protected FLeftList: TStringList;

This item has no description.

Source: source/component/PasDoc_OptionParser.pas (line 211).

Protected FShortOptionChar: Char;

This item has no description.

Source: source/component/PasDoc_OptionParser.pas (line 212).

Protected FLongOptionString: string;

This item has no description.

Source: source/component/PasDoc_OptionParser.pas (line 213).

Protected FIncludeFileOptionName: string;

This item has no description.

Source: source/component/PasDoc_OptionParser.pas (line 214).

Protected FIncludeFileOptionExpl: string;

This item has no description.

Source: source/component/PasDoc_OptionParser.pas (line 215).

Methods

Protected function GetOption(const AIndex: Integer): TOption;

This item has no description.

Source: source/component/PasDoc_OptionParser.pas (line 216).

Protected function GetOptionsCount: Integer;

This item has no description.

Source: source/component/PasDoc_OptionParser.pas (line 217).

Protected function GetOptionByLongName(const AName: string): TOption;

This item has no description.

Source: source/component/PasDoc_OptionParser.pas (line 218).

Protected function GetOptionByShortname(const AName: char): TOption;

This item has no description.

Source: source/component/PasDoc_OptionParser.pas (line 219).

Public constructor Create; virtual;

Create without any options — this will parse the current command line

Source: source/component/PasDoc_OptionParser.pas (line 222).

Public constructor CreateParams(const AParams: TStrings); virtual;

Create with parameters to be used instead of command line

Source: source/component/PasDoc_OptionParser.pas (line 224).

Public destructor Destroy; override;

destroy the option parser object and all associated TOption objects

Source: source/component/PasDoc_OptionParser.pas (line 226).

Public function AddOption(const AOption: TOption): TOption;

Add a TOption descendant to be included in parsing the command line

Source: source/component/PasDoc_OptionParser.pas (line 228).

Public procedure ParseOptions;

Parse the specified command line, see also Create

Source: source/component/PasDoc_OptionParser.pas (line 230).

Public procedure WriteExplanations;

output explanations for all options to stdout, will nicely format the output and wrap explanations

Source: source/component/PasDoc_OptionParser.pas (line 233).

Properties

Public property LeftList: TStringList read FLeftList;

This StringList contains all the items from the command line that could not be parsed. Includes options that didn't accept their value and non-options like filenames specified on the command line

Source: source/component/PasDoc_OptionParser.pas (line 237).

Public property OptionsCount: Integer read GetOptionsCount;

The number of option objects that were added to this parser

Source: source/component/PasDoc_OptionParser.pas (line 239).

Public property Options[const AIndex: Integer]: TOption read GetOption;

retrieve an option by index — you can use this and OptionsCount to iterate through the options that this parser owns

Source: source/component/PasDoc_OptionParser.pas (line 242).

Public property ByName[const AName: string]: TOption read GetOptionByLongName;

retrieve an option by its long form. Case sensitivity of the options is taken into account!

Source: source/component/PasDoc_OptionParser.pas (line 245).

Public property ByShortName[const AName: char]: TOption read GetOptionByShortname;

retrieve an option by its short form. Case sensitivity of the options is taken into account!

Source: source/component/PasDoc_OptionParser.pas (line 248).

Public property ShortOptionStart: Char read FShortOptionChar write FShortOptionChar default DefShortOptionChar;

introductory character to be used for short options

Source: source/component/PasDoc_OptionParser.pas (line 250).

Public property LongOptionStart: String read FLongOptionString write FLongOptionString;

introductory string to be used for long options

Source: source/component/PasDoc_OptionParser.pas (line 252).

Public property IncludeFileOptionName: string read FIncludeFileOptionName write FIncludeFileOptionName;

name of an option to include config file

Source: source/component/PasDoc_OptionParser.pas (line 254).

Public property IncludeFileOptionExpl: string read FIncludeFileOptionExpl write FIncludeFileOptionExpl;

explanation of an option to include config file

Source: source/component/PasDoc_OptionParser.pas (line 256).


PasDoc's autodoc: PasDoc_Parser

Unit PasDoc_Parser

Description
Uses
Classes, Interfaces, Objects and Records
Types

Description

Parse Pascal code.

Contains the TParser object, which can parse a Pascal code, and put the collected information into the TPasUnit instance.

Source: source/component/PasDoc_Parser.pas (line 33).

Uses

  • SysUtils
  • Classes
  • Contnrs
  • StrUtils
  • Generics.Collections
  • PasDoc_Types
  • PasDoc_Items
  • PasDoc_Scanner
  • PasDoc_Tokenizer
  • PasDoc_StringPairVector
  • PasDoc_StringVector

Overview

Classes, Interfaces, Objects and Records

Name | Description
Class EInternalParserError | Raised when an impossible situation (indicating bug in pasdoc) occurs.
Class TCioState | State of parsing a structure (called "CIO" throughout PasDoc codebase).
Class TCioStateStack | A stack of TCioState objects currently used to parse nested classes and records.
Class TRawDescriptionInfoList | TRawDescriptionInfoList stores a series of TRawDescriptionInfos.
Class TParser | Parser class that will process a complete unit file and all of its include files, regarding directives.

Types

TParsingSection = (...);

Description

Types

TParsingSection = (...);

Are we currently inside a const, var, type section?

Values
  • psNone
  • psConst
  • psVar
  • psType

Source: source/component/PasDoc_Parser.pas (line 53).

Authors

  • Ralf Junker (delphi@zeitungsjunge.de)
  • Marco Schmidt (marcoschmidt@geocities.com)
  • Johannes Berg <johannes@sipsolutions.de>
  • Michalis Kamburelis
  • Arno Garrels <first name.name@nospamgmx.de>


PasDoc's autodoc: PasDoc_Parser: Class EInternalParserError

Class EInternalParserError

Description
Hierarchy

Unit

PasDoc_Parser

Declaration

type EInternalParserError = class(Exception)

Description

Raised when an impossible situation (indicating bug in pasdoc) occurs.

Source: source/component/PasDoc_Parser.pas (line 50).

Hierarchy

  • TObject
  • Exception
  • EInternalParserError


PasDoc's autodoc: PasDoc_Parser: Class TCioState

Class TCioState

Description
Hierarchy
Methods
Properties

Unit

PasDoc_Parser

Declaration

type TCioState = class(TObject)

Description

State of parsing a structure (called "CIO" throughout PasDoc codebase).

Source: source/component/PasDoc_Parser.pas (line 56).

Hierarchy

  • TObject
  • TCioState
Show Additional Members:

Overview

Methods

Public procedure FreeAll;

Properties

Public | property Cio: TPasCio read FCio write FCio;
Public | property Visibility: TVisibility read FVisibility write FVisibility;
Public | property Section: TParsingSection read FSection write FSection;

Description

Methods

Public procedure FreeAll;

Frees included objects and calls its own destructor. Objects are not owned by default.

Source: source/component/PasDoc_Parser.pas (line 73).

Properties

Public property Cio: TPasCio read FCio write FCio;

Structure (CIO) that is currently being parsed.

Source: source/component/PasDoc_Parser.pas (line 63).

Public property Visibility: TVisibility read FVisibility write FVisibility;

Current visibility (like public, private...) for members of this CIO.

Source: source/component/PasDoc_Parser.pas (line 66).

Public property Section: TParsingSection read FSection write FSection;

Are we inside a const, var, type section (nested in a class)?

Source: source/component/PasDoc_Parser.pas (line 69).


PasDoc's autodoc: PasDoc_Parser: Class TCioStateStack

Class TCioStateStack

Description
Hierarchy
Methods

Unit

PasDoc_Parser

Declaration

type TCioStateStack = class(Contnrs.TObjectStack)

Description

A stack of TCioState objects currently used to parse nested classes and records.

Source: source/component/PasDoc_Parser.pas (line 78).

Hierarchy

  • Contnrs.TObjectStack
  • TCioStateStack
Show Additional Members:

Overview

Methods

Public | procedure Clear;
Public | function Push(const Item: TCioState): TCioState;
Public | function Pop: TCioState;
Public | function Peek: TCioState;

Description

Methods

Public procedure Clear;

Frees all items including their CIOs and clears the stack

Source: source/component/PasDoc_Parser.pas (line 81).

Public function Push(const Item: TCioState): TCioState;

This item has no description.

Source: source/component/PasDoc_Parser.pas (line 82).

Public function Pop: TCioState;

This item has no description.

Source: source/component/PasDoc_Parser.pas (line 83).

Public function Peek: TCioState;

This item has no description.

Source: source/component/PasDoc_Parser.pas (line 84).


PasDoc's autodoc: PasDoc_Parser: Class TRawDescriptionInfoList

Class TRawDescriptionInfoList

Description
Hierarchy
Methods
Properties

Unit

PasDoc_Parser

Declaration

type TRawDescriptionInfoList = class(TObject)

Description

TRawDescriptionInfoList stores a series of TRawDescriptionInfos. It is modelled after TStringList but has only the minimum number of methods required for use in PasDoc.

Source: source/component/PasDoc_Parser.pas (line 90).

Hierarchy

  • TObject
  • TRawDescriptionInfoList
Show Additional Members:

Overview

Methods

Public | function Append(Comment: TRawDescriptionInfo): integer;
Public | Constructor Create;

Properties

Public | property Count: integer read FCount;
Public | property Items[Index: integer]: TRawDescriptionInfo read GetItems; default;

Description

Methods

Public function Append(Comment: TRawDescriptionInfo): integer;

Append adds a new TRawDescriptionInfo to TRawDescriptionInfoList.

Source: source/component/PasDoc_Parser.pas (line 103).

Public Constructor Create;

This item has no description.

Source: source/component/PasDoc_Parser.pas (line 107).

Properties

Public property Count: integer read FCount;

Count is the number of TRawDescriptionInfos in TRawDescriptionInfoList.

Source: source/component/PasDoc_Parser.pas (line 106).

Public property Items[Index: integer]: TRawDescriptionInfo read GetItems; default;

Items provides read access to the TRawDescriptionInfos in TRawDescriptionInfoList.

Source: source/component/PasDoc_Parser.pas (line 110).


PasDoc's autodoc: PasDoc_Parser: Class TParser

Class TParser

Description
Hierarchy
Methods
Properties

Unit

PasDoc_Parser

Declaration

type TParser = class(TObject)

Description

Parser class that will process a complete unit file and all of its include files, regarding directives. When creating this object constructor Create takes as an argument an input stream and a list of directives. Parsing work is done by calling ParseUnitOrProgram method. If no errors appear, should return a TPasUnit object with all information on the unit. Else exception is raised.

Things that parser inits in items it returns:

  • Of every TPasItem : Name, RawDescription, Visibility, HintDirectives, DeprecatedNote, FullDeclararation (note: for now not all items get sensible FullDeclararation, but the intention is to improve this over time; see TPasItem.FullDeclaration to know where FullDeclararation is available now).

    Note to IsDeprecated: parser inits it basing on hint directive "deprecated" presence in source file; it doesn't handle the fact that @deprecated tag may be specified inside RawDescription.

    Note to RawDescription: parser inits them from user's comments that preceded given item in source file. It doesn't handle the fact that @member and @value tags may also assign RawDescription for some item.

  • Of TPasCio: Ancestors, Fields, Methods, Properties, MyType.

  • Of TPasEnum: Members, FullDeclararation.

  • Of TPasRoutine: What.

  • Of TPasVarConst: FullDeclaration.

  • Of TPasProperty: IndexDecl, FullDeclaration. PropType, NoDefault, Stored, DefaultValue, Reader, Writer. DefaultInClass.

  • Of TPasUnit; UsesUnits, Types, Variables, CIOs, Constants, FuncsProcs.

It doesn't init other values. E.g. AbstractDescription or DetailedDescription of TPasItem should be inited while expanding this item's tags. E.g. SourceFileDateTime and SourceFileName of TPasUnit must be set by other means.

Source: source/component/PasDoc_Parser.pas (line 162).

Hierarchy

  • TObject
  • TParser
Show Additional Members:

Overview

Methods

Public | constructor Create( const InputStream: TStream; const Directives: TStringVector; const IncludeFilePaths: TStringVector; const OnMessageEvent: TPasDocMessageEvent; const VerbosityLevel: Cardinal; const AStreamName, AStreamAbsoluteFileName: string; const AHandleMacros: boolean);
Public | destructor Destroy; override;
Public | procedure ParseUnitOrProgram(var U: TPasUnit);

Properties

Public | property OnMessage: TPasDocMessageEvent read FOnMessage write FOnMessage;
Public | property CommentMarkers: TStringList read FCommentMarkers write SetCommentMarkers;
Public | property MarkersOptional: boolean read fMarkersOptional write fMarkersOptional;
Public | property IgnoreLeading: string read FIgnoreLeading write FIgnoreLeading;
Public | property IgnoreMarkers: TStringList read FIgnoreMarkers write SetIgnoreMarkers;
Public | property ShowVisibilities: TVisibilities read FShowVisibilities write FShowVisibilities;
Public | property ImplicitVisibility: TImplicitVisibility read FImplicitVisibility write FImplicitVisibility;
Public | property AutoBackComments: boolean read FAutoBackComments write FAutoBackComments;
Public | property InfoMergeType: TInfoMergeType read FInfoMergeType write FInfoMergeType;

Description

Methods

Public constructor Create( const InputStream: TStream; const Directives: TStringVector; const IncludeFilePaths: TStringVector; const OnMessageEvent: TPasDocMessageEvent; const VerbosityLevel: Cardinal; const AStreamName, AStreamAbsoluteFileName: string; const AHandleMacros: boolean);

Create a parser, initialize the scanner with input stream S. All strings in SD are defined compiler directives.

Source: source/component/PasDoc_Parser.pas (line 556).

Public destructor Destroy; override;

Release all dynamically allocated memory.

Source: source/component/PasDoc_Parser.pas (line 566).

Public procedure ParseUnitOrProgram(var U: TPasUnit);

This does the real parsing work, creating U unit and parsing InputStream and filling all U properties.

Source: source/component/PasDoc_Parser.pas (line 570).

Properties

Public property OnMessage: TPasDocMessageEvent read FOnMessage write FOnMessage;

This item has no description.

Source: source/component/PasDoc_Parser.pas (line 572).

Public property CommentMarkers: TStringList read FCommentMarkers write SetCommentMarkers;

This item has no description.

Source: source/component/PasDoc_Parser.pas (line 573).

Public property MarkersOptional: boolean read fMarkersOptional write fMarkersOptional;

This item has no description.

Source: source/component/PasDoc_Parser.pas (line 574).

Public property IgnoreLeading: string read FIgnoreLeading write FIgnoreLeading;

This item has no description.

Source: source/component/PasDoc_Parser.pas (line 575).

Public property IgnoreMarkers: TStringList read FIgnoreMarkers write SetIgnoreMarkers;

This item has no description.

Source: source/component/PasDoc_Parser.pas (line 576).

Public property ShowVisibilities: TVisibilities read FShowVisibilities write FShowVisibilities;

This item has no description.

Source: source/component/PasDoc_Parser.pas (line 577).

Public property ImplicitVisibility: TImplicitVisibility read FImplicitVisibility write FImplicitVisibility;

See command-line option --implicit-visibility documentation at --implicit-visibility documentation.

Source: source/component/PasDoc_Parser.pas (line 582).

Public property AutoBackComments: boolean read FAutoBackComments write FAutoBackComments;

See command-line option --auto-back-comments documentation at --auto-back-comments documentation.

Source: source/component/PasDoc_Parser.pas (line 586).

Public property InfoMergeType: TInfoMergeType read FInfoMergeType write FInfoMergeType;

Whether to read comments from the implementation, and how to merge them with the interface comments.

Source: source/component/PasDoc_Parser.pas (line 589).


PasDoc's autodoc: PasDoc_ProcessLineTalk

Unit PasDoc_ProcessLineTalk

Description
Uses
Classes, Interfaces, Objects and Records

Description

Talking with another process through pipes.

Source: source/component/PasDoc_ProcessLineTalk.pas (line 27).

Uses

  • SysUtils
  • Classes

Overview

Classes, Interfaces, Objects and Records

Name | Description
Class TTextReader | TTextReader reads given Stream line by line.
Class TProcessLineTalk | This is a subclass of TProcess that allows to easy "talk" with executed process by pipes (read process stdout/stderr, write to process stdin) on a line-by-line basis.

Authors

  • Michalis Kamburelis
  • Arno Garrels <first name.name@nospamgmx.de>


PasDoc's autodoc: PasDoc_ProcessLineTalk: Class TTextReader

Class TTextReader

Description
Hierarchy
Methods

Unit

PasDoc_ProcessLineTalk

Declaration

type TTextReader = class(TObject)

Description

TTextReader reads given Stream line by line. Lines may be terminated in Stream with #13, #10, #13+#10 or #10+#13. This way I can treat any TStream quite like standard Pascal text files: I have simple Readln method.

After calling Readln or Eof you should STOP directly using underlying Stream (but you CAN use Stream right after creating TTextReader.Create(Stream) and before any Readln or Eof operations on this TTextReader).

Source: source/component/PasDoc_ProcessLineTalk.pas (line 54).

Hierarchy

  • TObject
  • TTextReader
Show Additional Members:

Overview

Methods

Public | constructor CreateFromFileStream(const FileName: string);
Public | constructor Create(AStream: TStream; AOwnsStream: boolean);
Public | destructor Destroy; override;
Public | function Readln: string;
Public | function Eof: boolean;

Description

Methods

Public constructor CreateFromFileStream(const FileName: string);

This is a comfortable constructor, equivalent to TTextReader.Create(TFileStream.Create(FileName, fmOpenRead or fmShareDenyWrite), true)

Source: source/component/PasDoc_ProcessLineTalk.pas (line 65).

Public constructor Create(AStream: TStream; AOwnsStream: boolean);

If AOwnsStream then in Destroy we will free Stream object.

Source: source/component/PasDoc_ProcessLineTalk.pas (line 68).

Public destructor Destroy; override;

This item has no description.

Source: source/component/PasDoc_ProcessLineTalk.pas (line 69).

Public function Readln: string;

Reads next line from Stream. Returned string does not contain any end-of-line characters.

Source: source/component/PasDoc_ProcessLineTalk.pas (line 73).

Public function Eof: boolean;

This item has no description.

Source: source/component/PasDoc_ProcessLineTalk.pas (line 75).


PasDoc's autodoc: PasDoc_ProcessLineTalk: Class TProcessLineTalk

Class TProcessLineTalk

Description
Hierarchy
Methods
Properties

Unit

PasDoc_ProcessLineTalk

Declaration

type TProcessLineTalk = class(TComponent)

Description

This is a subclass of TProcess that allows to easy "talk" with executed process by pipes (read process stdout/stderr, write to process stdin) on a line-by-line basis.

If symbol HAS_PROCESS is not defined, this defines a junky implementation of TProcessLineTalk class that can't do anything and raises exception when you try to execute a process.

Source: source/component/PasDoc_ProcessLineTalk.pas (line 104).

Hierarchy

  • TObject
  • TPersistent
  • TComponent
  • TProcessLineTalk
Show Additional Members:

Overview

Methods

Public | procedure Execute;
Public | procedure WriteLine(const S: string);
Public | function ReadLine: string;
Public | constructor Create(AOwner: TComponent); override;
Public | destructor Destroy; override;

Properties

Published | property CommandLine: string read FCommandLine write FCommandLine;
Published | property Executable: string read FExecutable write FExecutable;
Published | property Parameters: TStrings read FParameters;

Description

Methods

Public procedure Execute;

This item has no description.

Source: source/component/PasDoc_ProcessLineTalk.pas (line 110).

Public procedure WriteLine(const S: string);

This item has no description.

Source: source/component/PasDoc_ProcessLineTalk.pas (line 111).

Public function ReadLine: string;

This item has no description.

Source: source/component/PasDoc_ProcessLineTalk.pas (line 112).

Public constructor Create(AOwner: TComponent); override;

This item has no description.

Source: source/component/PasDoc_ProcessLineTalk.pas (line 113).

Public destructor Destroy; override;

This item has no description.

Source: source/component/PasDoc_ProcessLineTalk.pas (line 114).

Properties

Published property CommandLine: string read FCommandLine write FCommandLine;

This item has no description.

Source: source/component/PasDoc_ProcessLineTalk.pas (line 116).

Published property Executable: string read FExecutable write FExecutable;

This item has no description.

Source: source/component/PasDoc_ProcessLineTalk.pas (line 117).

Published property Parameters: TStrings read FParameters;

This item has no description.

Source: source/component/PasDoc_ProcessLineTalk.pas (line 118).


PasDoc's autodoc: PasDoc_Reg

Unit PasDoc_Reg

Description
Functions and Procedures

Description

Registers the PasDoc components into the IDE.

TODO: We have some properties in TPasDoc and generators components that should be registered with filename editors.

Source: source/component/PasDoc_Reg.pas (line 32).

Overview

Functions and Procedures

procedure Register;

Description

Functions and Procedures

procedure Register;

Registers the PasDoc components into the IDE.

Source: source/component/PasDoc_Reg.pas (line 39).

Authors

  • Ralf Junker (delphi@zeitungsjunge.de)
  • Johannes Berg <johannes@sipsolutions.de>
  • Michalis Kamburelis


PasDoc's autodoc: PasDoc_Scanner

Unit PasDoc_Scanner

Description
Uses
Classes, Interfaces, Objects and Records
Types
Constants

Description

Scanner for Pascal, producing tokens and interpreting conditionals.

Source: source/component/PasDoc_Scanner.pas (line 30).

Uses

  • SysUtils
  • Classes
  • Contnrs
  • Types
  • PasDoc_Types
  • PasDoc_Tokenizer
  • PasDoc_StringVector
  • PasDoc_StreamUtils
  • PasDoc_StringPairVector

Overview

Classes, Interfaces, Objects and Records

Name | Description
Class ETokenizerStreamEnd |
Class EInvalidIfCondition |
Class TScanner | Scanner for Pascal, producing tokens and interpreting conditionals Returns tokens from a Pascal language source code input stream.

Types

TUpperCaseLetter = 'A'..'Z';
TSwitchOptions = array[TUpperCaseLetter] of Boolean;
TDirectiveType = (...);

Constants

MAX_TOKENIZERS = 32;

Description

Types

TUpperCaseLetter = 'A'..'Z';

subrange type that has the 26 lower case letters from a to z

Source: source/component/PasDoc_Scanner.pas (line 53).

TSwitchOptions = array[TUpperCaseLetter] of Boolean;

an array of boolean values, index type is TUpperCaseLetter

Source: source/component/PasDoc_Scanner.pas (line 55).

TDirectiveType = (...);

All directives a scanner is going to regard.

Values
  • DT_UNKNOWN
  • DT_DEFINE
  • DT_ELSE
  • DT_ENDIF
  • DT_IFDEF
  • DT_IFNDEF
  • DT_IFOPT
  • DT_INCLUDE_FILE
  • DT_UNDEF
  • DT_INCLUDE_FILE_2
  • DT_IF
  • DT_ELSEIF
  • DT_IFEND

Source: source/component/PasDoc_Scanner.pas (line 61).

Constants

MAX_TOKENIZERS = 32;

maximum number of streams we can recurse into; first one is the unit stream, any other stream an include file; current value is 32, increase this if you have more include files recursively including others

Source: source/component/PasDoc_Scanner.pas (line 49).

Authors

  • Johannes Berg <johannes@sipsolutions.de>
  • Ralf Junker (delphi@zeitungsjunge.de)
  • Marco Schmidt (marcoschmidt@geocities.com)
  • Michalis Kamburelis
  • Arno Garrels <first name.name@nospamgmx.de>


PasDoc's autodoc: PasDoc_Scanner: Class ETokenizerStreamEnd

Class ETokenizerStreamEnd

Description
Hierarchy
Methods

Unit

PasDoc_Scanner

Declaration

type ETokenizerStreamEnd = class(EPasDoc)

Description

This item has no description. Showing description inherited from EPasDoc.

Exception raised in many situations when PasDoc encounters an error.

Source: source/component/PasDoc_Scanner.pas (line 57).

Hierarchy

  • TObject
  • Exception
  • EPasDoc
  • ETokenizerStreamEnd
Show Additional Members:

Overview

Methods

Public | constructor Create(const AMessageFormat: string; const AArguments: array of const; const AExitCode: Word = 3); overload;
Public | constructor Create(const AMessage: string; const AExitCode: Word = 3); overload;

Description

Methods

Public constructor Create(const AMessageFormat: string; const AArguments: array of const; const AExitCode: Word = 3); overload;

This item is declared in ancestor EPasDoc.

This item has no description.

Source: source/component/PasDoc_Types.pas (line 91).

Public constructor Create(const AMessage: string; const AExitCode: Word = 3); overload;

This item is declared in ancestor EPasDoc.

This item has no description.

Source: source/component/PasDoc_Types.pas (line 94).


PasDoc's autodoc: PasDoc_Scanner: Class EInvalidIfCondition

Class EInvalidIfCondition

Description
Hierarchy
Methods

Unit

PasDoc_Scanner

Declaration

type EInvalidIfCondition = class(EPasDoc)

Description

This item has no description. Showing description inherited from EPasDoc.

Exception raised in many situations when PasDoc encounters an error.

Source: source/component/PasDoc_Scanner.pas (line 58).

Hierarchy

  • TObject
  • Exception
  • EPasDoc
  • EInvalidIfCondition
Show Additional Members:

Overview

Methods

Public | constructor Create(const AMessageFormat: string; const AArguments: array of const; const AExitCode: Word = 3); overload;
Public | constructor Create(const AMessage: string; const AExitCode: Word = 3); overload;

Description

Methods

Public constructor Create(const AMessageFormat: string; const AArguments: array of const; const AExitCode: Word = 3); overload;

This item is declared in ancestor EPasDoc.

This item has no description.

Source: source/component/PasDoc_Types.pas (line 91).

Public constructor Create(const AMessage: string; const AExitCode: Word = 3); overload;

This item is declared in ancestor EPasDoc.

This item has no description.

Source: source/component/PasDoc_Types.pas (line 94).


PasDoc's autodoc: PasDoc_Scanner: Class TScanner

Class TScanner

Description
Hierarchy
Methods
Properties

Unit

PasDoc_Scanner

Declaration

type TScanner = class(TObject)

Description

Scanner for Pascal, producing tokens and interpreting conditionals

Returns tokens from a Pascal language source code input stream. Uses the PasDoc_Tokenizer unit to get tokens, processes directives that might lead to

  • including other files

  • define / undefine symbols

  • processes conditional directives

  • handles FPC macros (when HandleMacros is true).

Effectively this is a combined tokenizer and pre-processor.

Single TScanner instance scans one unit using one or more TTokenizer instances (to scan the unit and all nested include files).

Source: source/component/PasDoc_Scanner.pas (line 82).

Hierarchy

  • TObject
  • TScanner
Show Additional Members:

Overview

Methods

Protected | procedure DoError(const AMessage: string; const AArguments: array of const);
Protected | procedure DoMessage(const AVerbosity: Cardinal; const MessageType: TPasDocMessageType; const AMessage: string; const AArguments: array of const);
Public | constructor Create( const s: TStream; const OnMessageEvent: TPasDocMessageEvent; const VerbosityLevel: Cardinal; const AStreamName, AStreamAbsoluteFileName: string; const AHandleMacros: boolean);
Public | destructor Destroy; override;
Public | procedure AddSymbol(const Name: string);
Public | procedure AddSymbols(const NewSymbols: TStringVector);
Public | procedure AddMacro(const Name, Value: string);
Public | procedure ConsumeToken;
Public | function GetToken: TToken;
Public | function GetStreamInfo: string;
Public | function PeekToken: TToken;
Public | procedure UnGetToken(var t: TToken);

Properties

Public | property IncludeFilePaths: TStringVector read FIncludeFilePaths write SetIncludeFilePaths;
Public | property OnMessage: TPasDocMessageEvent read FOnMessage write FOnMessage;
Public | property Verbosity: Cardinal read FVerbosity write FVerbosity;
Public | property SwitchOptions: TSwitchOptions read FSwitchOptions;
Public | property HandleMacros: boolean read FHandleMacros;

Description

Methods

Protected procedure DoError(const AMessage: string; const AArguments: array of const);

This item has no description.

Source: source/component/PasDoc_Scanner.pas (line 156).

Protected procedure DoMessage(const AVerbosity: Cardinal; const MessageType: TPasDocMessageType; const AMessage: string; const AArguments: array of const);

This item has no description.

Source: source/component/PasDoc_Scanner.pas (line 158).

Public constructor Create( const s: TStream; const OnMessageEvent: TPasDocMessageEvent; const VerbosityLevel: Cardinal; const AStreamName, AStreamAbsoluteFileName: string; const AHandleMacros: boolean);

Creates a TScanner object that scans the given input stream.

Note that the stream S will be freed by this object (at destruction or when we will read all it's tokens), so after creating TScanner you should leave the stream to be managed completely by this TScanner.

Source: source/component/PasDoc_Scanner.pas (line 167).

Public destructor Destroy; override;

This item has no description.

Source: source/component/PasDoc_Scanner.pas (line 173).

Public procedure AddSymbol(const Name: string);

Adds Name to the list of symbols (as a normal symbol, not macro).

Source: source/component/PasDoc_Scanner.pas (line 176).

Public procedure AddSymbols(const NewSymbols: TStringVector);

Adds all symbols in the NewSymbols collection by calling AddSymbol for each of the strings in that collection.

Source: source/component/PasDoc_Scanner.pas (line 180).

Public procedure AddMacro(const Name, Value: string);

Adds Name as a symbol that is a macro, that expands to Value.

Source: source/component/PasDoc_Scanner.pas (line 183).

Public procedure ConsumeToken;

Gets next token and throws it away.

Source: source/component/PasDoc_Scanner.pas (line 186).

Public function GetToken: TToken;

Returns next token. Always non-nil (will raise exception in case of any problem).

Source: source/component/PasDoc_Scanner.pas (line 190).

Public function GetStreamInfo: string;

Returns the name of the file that is currently processed and the line number. Good for meaningful error messages.

Source: source/component/PasDoc_Scanner.pas (line 194).

Public function PeekToken: TToken;

Look at next token, but don't advance to the next token. Do not free the returned TToken instance, unless you call ConsumeToken, in which case you should free this.

Source: source/component/PasDoc_Scanner.pas (line 205).

Public procedure UnGetToken(var t: TToken);

Place T in the buffer. Next time you will call GetToken you will get T. This also sets T to nil (because you shouldn't free T anymore after ungetting it). Note that the buffer has room only for 1 token, so you have to make sure that you will never unget more than two tokens. Practically, always call UnGetToken right after some GetToken.

Source: source/component/PasDoc_Scanner.pas (line 213).

Properties

Public property IncludeFilePaths: TStringVector read FIncludeFilePaths write SetIncludeFilePaths;

Paths to search for include files. When you assign something to this property it causes Assign(Value) call, not a real reference copy.

Source: source/component/PasDoc_Scanner.pas (line 199).

Public property OnMessage: TPasDocMessageEvent read FOnMessage write FOnMessage;

This item has no description.

Source: source/component/PasDoc_Scanner.pas (line 215).

Public property Verbosity: Cardinal read FVerbosity write FVerbosity;

This item has no description.

Source: source/component/PasDoc_Scanner.pas (line 216).

Public property SwitchOptions: TSwitchOptions read FSwitchOptions;

This item has no description.

Source: source/component/PasDoc_Scanner.pas (line 217).

Public property HandleMacros: boolean read FHandleMacros;

This item has no description.

Source: source/component/PasDoc_Scanner.pas (line 219).


PasDoc's autodoc: PasDoc_Serialize

Unit PasDoc_Serialize

Description
Uses
Classes, Interfaces, Objects and Records
Types

Description

Serializing / deserializing cached information.

Source: source/component/PasDoc_Serialize.pas (line 25).

Uses

  • Classes
  • SysUtils
  • PasDoc_StreamUtils

Overview

Classes, Interfaces, Objects and Records

Name | Description
Class EInvalidCacheFileVersion |
Class TSerializable |
Class ESerializedException |

Types

TSerializableClass = class of TSerializable;

Description

Types

TSerializableClass = class of TSerializable;

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 38).

Author

  • Arno Garrels <first name.name@nospamgmx.de>


PasDoc's autodoc: PasDoc_Serialize: Class EInvalidCacheFileVersion

Class EInvalidCacheFileVersion

Description
Hierarchy

Unit

PasDoc_Serialize

Declaration

type EInvalidCacheFileVersion = class(Exception)

Description

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 40).

Hierarchy

  • TObject
  • Exception
  • EInvalidCacheFileVersion


PasDoc's autodoc: PasDoc_Serialize: Class TSerializable

Class TSerializable

Description
Hierarchy
Methods
Properties

Unit

PasDoc_Serialize

Declaration

type TSerializable = class(TObject)

Description

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 42).

Hierarchy

  • TObject
  • TSerializable
Show Additional Members:

Overview

Methods

Protected | procedure Serialize(const ADestination: TStream); virtual;
Protected | procedure Deserialize(const ASource: TStream); virtual;
Public | class function Read7BitEncodedInt(const ASource: TStream): Integer;
Public | class procedure Write7BitEncodedInt(Value: Integer; const ADestination: TStream);
Public | class function LoadStringFromStream(const ASource: TStream): string;
Public | class procedure SaveStringToStream(const AValue: string; const ADestination: TStream);
Public | class function LoadDoubleFromStream(const ASource: TStream): double;
Public | class procedure SaveDoubleToStream(const AValue: double; const ADestination: TStream);
Public | class function LoadIntegerFromStream(const ASource: TStream): Longint;
Public | class procedure SaveIntegerToStream(const AValue: Longint; const ADestination: TStream);
Public | constructor Create; virtual;
Public | class procedure SerializeObject(const AObject: TSerializable; const ADestination: TStream);
Public | class function DeserializeObject(const ASource: TStream): TSerializable;
Public | class procedure Register(const AClass: TSerializableClass);
Public | procedure SerializeToFile(const AFileName: string);
Public | class function DeserializeFromFile(const AFileName: string): TSerializable;

Properties

Public property WasDeserialized: boolean read FWasDeserialized;

Description

Methods

Protected procedure Serialize(const ADestination: TStream); virtual;

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 46).

Protected procedure Deserialize(const ASource: TStream); virtual;

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 47).

Public class function Read7BitEncodedInt(const ASource: TStream): Integer;

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 49).

Public class procedure Write7BitEncodedInt(Value: Integer; const ADestination: TStream);

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 50).

Public class function LoadStringFromStream(const ASource: TStream): string;

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 52).

Public class procedure SaveStringToStream(const AValue: string; const ADestination: TStream);

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 53).

Public class function LoadDoubleFromStream(const ASource: TStream): double;

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 54).

Public class procedure SaveDoubleToStream(const AValue: double; const ADestination: TStream);

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 55).

Public class function LoadIntegerFromStream(const ASource: TStream): Longint;

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 56).

Public class procedure SaveIntegerToStream(const AValue: Longint; const ADestination: TStream);

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 57).

Public constructor Create; virtual;

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 59).

Public class procedure SerializeObject(const AObject: TSerializable; const ADestination: TStream);

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 60).

Public class function DeserializeObject(const ASource: TStream): TSerializable;

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 61).

Public class procedure Register(const AClass: TSerializableClass);

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 62).

Public procedure SerializeToFile(const AFileName: string);

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 63).

Public class function DeserializeFromFile(const AFileName: string): TSerializable;

Read back from file.

Exceptions raised
EInvalidCacheFileVersion
When the cached file contents are from an old pasdoc version (or invalid).

Source: source/component/PasDoc_Serialize.pas (line 67).

Properties

Public property WasDeserialized: boolean read FWasDeserialized;

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 68).


PasDoc's autodoc: PasDoc_Serialize: Class ESerializedException

Class ESerializedException

Description
Hierarchy

Unit

PasDoc_Serialize

Declaration

type ESerializedException = class(Exception)

Description

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 71).

Hierarchy

  • TObject
  • Exception
  • ESerializedException


PasDoc's autodoc: PasDoc_SortSettings

Unit PasDoc_SortSettings

Description
Uses
Classes, Interfaces, Objects and Records
Functions and Procedures
Types
Constants

Description

Sorting settings types and names.

Source: source/component/PasDoc_SortSettings.pas (line 24).

Uses

  • SysUtils

Overview

Classes, Interfaces, Objects and Records

Name | Description
Class EInvalidSortSetting |

Functions and Procedures

function SortSettingFromName(const SortSettingName: string): TSortSetting;
function SortSettingsToName(const SortSettings: TSortSettings): string;

Types

TSortSetting = (...);
TSortSettings = set of TSortSetting;

Constants

AllSortSettings: TSortSettings = [Low(TSortSetting) .. High(TSortSetting)];
SortSettingNames: array[TSortSetting] of string = ( 'structures', 'constants', 'functions', 'types', 'variables', 'uses-clauses', 'record-fields', 'non-record-fields', 'methods', 'properties' );

Description

Functions and Procedures

function SortSettingFromName(const SortSettingName: string): TSortSetting;

This item has no description.

Exceptions raised
EInvalidSortSetting
if ASortSettingName does not match (case ignored) to any SortSettingNames.

Source: source/component/PasDoc_SortSettings.pas (line 70).

function SortSettingsToName(const SortSettings: TSortSettings): string;

Comma-separated list

Source: source/component/PasDoc_SortSettings.pas (line 73).

Types

TSortSetting = (...);

This item has no description.

Values
  • ssCIOs: CIOs in a unit or nested in CIO.
  • ssConstants: Constants in a unit or nested in CIO.
  • ssFuncsProcs: Routines in a unit.
  • ssTypes: Types in a unit.
  • ssVariables: Variables in a unit.
  • ssUsesClauses: Uses clauses in a unit.
  • ssRecordFields: Fields in a CIO that is a record.
  • ssNonRecordFields: Fields in a CIO that is not a record, like in a class or interface.
  • ssMethods: Methods in a CIO.
  • ssProperties: Properties in a CIO.

Source: source/component/PasDoc_SortSettings.pas (line 35).

TSortSettings = set of TSortSetting;

This item has no description.

Source: source/component/PasDoc_SortSettings.pas (line 57).

Constants

AllSortSettings: TSortSettings = [Low(TSortSetting) .. High(TSortSetting)];

This item has no description.

Source: source/component/PasDoc_SortSettings.pas (line 60).

SortSettingNames: array[TSortSetting] of string = ( 'structures', 'constants', 'functions', 'types', 'variables', 'uses-clauses', 'record-fields', 'non-record-fields', 'methods', 'properties' );

Must be lowercase. Used in SortSettingsToName, SortSettingFromName.

Source: source/component/PasDoc_SortSettings.pas (line 64).


PasDoc's autodoc: PasDoc_SortSettings: Class EInvalidSortSetting

Class EInvalidSortSetting

Description
Hierarchy

Unit

PasDoc_SortSettings

Declaration

type EInvalidSortSetting = class(Exception)

Description

This item has no description.

Source: source/component/PasDoc_SortSettings.pas (line 33).

Hierarchy

  • TObject
  • Exception
  • EInvalidSortSetting


PasDoc's autodoc: PasDoc_StreamUtils

Unit PasDoc_StreamUtils

Description
Uses
Functions and Procedures
Types

Description

A few stream utility functions.

Source: source/component/PasDoc_StreamUtils.pas (line 29).

Uses

  • SysUtils
  • Classes
  • BufStream
  • PasDoc_Types

Overview

Functions and Procedures

function StreamReadLine(const AStream: TStream): AnsiString;
procedure StreamWriteLine(const AStream: TStream; const AString: AnsiString);
procedure StreamWriteString(const AStream: TStream; const AString: AnsiString);

Types

TBufferedFileStream = BufStream.TBufferedFileStream ;

Description

Functions and Procedures

function StreamReadLine(const AStream: TStream): AnsiString;

Read next line from AStream, return it as AnsiString. Line ending is included in the result.

Source: source/component/PasDoc_StreamUtils.pas (line 53).

procedure StreamWriteLine(const AStream: TStream; const AString: AnsiString);

Write AString contents, then LineEnding to AStream.

Source: source/component/PasDoc_StreamUtils.pas (line 56).

procedure StreamWriteString(const AStream: TStream; const AString: AnsiString);

Just write AString contents to AStream.

Source: source/component/PasDoc_StreamUtils.pas (line 59).

Types

TBufferedFileStream = BufStream.TBufferedFileStream ;

This item has no description.

Source: source/component/PasDoc_StreamUtils.pas (line 41).

Authors

  • Johannes Berg <johannes@sipsolutions.de>
  • Arno Garrels <first name.name@nospamgmx.de>
  • Michalis Kamburelis


PasDoc's autodoc: PasDoc_StringPairVector

Unit PasDoc_StringPairVector

Description
Uses
Classes, Interfaces, Objects and Records
Functions and Procedures

Description

Simple container for a pair of strings.

Source: source/component/PasDoc_StringPairVector.pas (line 24).

Uses

  • Classes
  • Contnrs
  • Generics.Collections

Overview

Classes, Interfaces, Objects and Records

Name | Description
Class TStringPair |
Class TStringPairVector | List of string pairs.

Functions and Procedures

function StringPairIsNilOrEmpty(const StringPairList: TStringPairVector): Boolean;

Description

Functions and Procedures

function StringPairIsNilOrEmpty(const StringPairList: TStringPairVector): Boolean;

This item has no description.

Source: source/component/PasDoc_StringPairVector.pas (line 89).


PasDoc's autodoc: PasDoc_StringPairVector: Class TStringPair

Class TStringPair

Description
Hierarchy
Fields
Methods

Unit

PasDoc_StringPairVector

Declaration

type TStringPair = class(TObject)

Description

This item has no description.

Source: source/component/PasDoc_StringPairVector.pas (line 34).

Hierarchy

  • TObject
  • TStringPair
Show Additional Members:

Overview

Fields

Public | Name: string;
Public | Value: string;
Public | Data: Pointer;

Methods

Public | constructor CreateExtractFirstWord(const S: string);
Public | constructor Create; overload;
Public | constructor Create(const AName, AValue: string; AData: Pointer = nil); overload;

Description

Fields

Public Name: string;

This item has no description.

Source: source/component/PasDoc_StringPairVector.pas (line 35).

Public Value: string;

This item has no description.

Source: source/component/PasDoc_StringPairVector.pas (line 36).

Public Data: Pointer;

This item has no description.

Source: source/component/PasDoc_StringPairVector.pas (line 37).

Methods

Public constructor CreateExtractFirstWord(const S: string);

Init Name and Value by ExtractFirstWord from S.

Source: source/component/PasDoc_StringPairVector.pas (line 40).

Public constructor Create; overload;

This item has no description.

Source: source/component/PasDoc_StringPairVector.pas (line 42).

Public constructor Create(const AName, AValue: string; AData: Pointer = nil); overload;

This item has no description.

Source: source/component/PasDoc_StringPairVector.pas (line 43).


PasDoc's autodoc: PasDoc_StringPairVector: Class TStringPairVector

Class TStringPairVector

Description
Hierarchy
Methods

Unit

PasDoc_StringPairVector

Declaration

type TStringPairVector = class(specialize TObjectList<TStringPair>)

Description

List of string pairs.

Using this class instead of TStringList (with it's Name and Value properties) is often better, because this allows both Name and Value of each pair to safely contain any special characters (including '=' and newline markers). It's also faster, since it doesn't try to encode Name and Value into one string.

Source: source/component/PasDoc_StringPairVector.pas (line 53).

Hierarchy

  • TObject
  • TList
  • TObjectList
  • TStringPairVector
Show Additional Members:

Overview

Methods

Public | function Text(const NameValueSepapator, ItemSeparator: string): string;
Public | function FindName(const Name: string; IgnoreCase: boolean = true): Integer;
Public | function DeleteName(const Name: string; IgnoreCase: boolean = true): boolean;
Public | procedure LoadFromBinaryStream(Stream: TStream);
Public | procedure SaveToBinaryStream(Stream: TStream);
Public | function FirstName: string;

Description

Methods

Public function Text(const NameValueSepapator, ItemSeparator: string): string;

Returns all items Names and Values glued together. For every item, string Name + NameValueSepapator + Value is constructed. Then all such strings for every items all concatenated with ItemSeparator.

Remember that the very idea of TStringPair and TStringPairVector is that Name and Value strings may contain any special characters, including things you give here as NameValueSepapator and ItemSeparator. So it's practically impossible to later convert such Text back to items and Names/Value pairs.

Source: source/component/PasDoc_StringPairVector.pas (line 66).

Public function FindName(const Name: string; IgnoreCase: boolean = true): Integer;

Finds a string pair with given Name. Returns -1 if not found.

Source: source/component/PasDoc_StringPairVector.pas (line 70).

Public function DeleteName(const Name: string; IgnoreCase: boolean = true): boolean;

Removes first string pair with given Name. Returns if some pair was removed.

Source: source/component/PasDoc_StringPairVector.pas (line 74).

Public procedure LoadFromBinaryStream(Stream: TStream);

Load from a stream using the binary format. For each item, it's Name and Value are saved. (TStringPair.Data pointers are not saved.)

Source: source/component/PasDoc_StringPairVector.pas (line 79).

Public procedure SaveToBinaryStream(Stream: TStream);

Save to a stream, in a format readable by LoadFromBinaryStream.

Source: source/component/PasDoc_StringPairVector.pas (line 83).

Public function FirstName: string;

Name of first item, or '' if list empty.

Source: source/component/PasDoc_StringPairVector.pas (line 86).


PasDoc's autodoc: PasDoc_StringVector

Unit PasDoc_StringVector

Description
Uses
Classes, Interfaces, Objects and Records
Functions and Procedures

Description

String vector based on TStringList.

The string vector is based on TStringList and simply exports a few extra functions - I did this so I didn't have to change so much old code, this has only little additional functionality

Source: source/component/PasDoc_StringVector.pas (line 32).

Uses

  • Classes

Overview

Classes, Interfaces, Objects and Records

Name | Description
Class TStringVector |

Functions and Procedures

function NewStringVector: TStringVector;
function IsEmpty(const AOV: TStringVector): boolean; overload;

Description

Functions and Procedures

function NewStringVector: TStringVector;

This item has no description.

Source: source/component/PasDoc_StringVector.pas (line 75).

function IsEmpty(const AOV: TStringVector): boolean; overload;

This item has no description.

Source: source/component/PasDoc_StringVector.pas (line 76).

Authors

  • Johannes Berg <johannes@sipsolutions.de>
  • Michalis Kamburelis


PasDoc's autodoc: PasDoc_StringVector: Class TStringVector

Class TStringVector

Description
Hierarchy
Methods

Unit

PasDoc_StringVector

Declaration

type TStringVector = class(TStringList)

Description

This item has no description.

Source: source/component/PasDoc_StringVector.pas (line 42).

Hierarchy

  • TObject
  • TPersistent
  • TStrings
  • TStringList
  • TStringVector
Show Additional Members:

Overview

Methods

Public | function FirstName: string;
Public | procedure LoadFromTextFileAdd(const AFilename: string); overload;
Public | procedure LoadFromTextFileAdd(var ATextFile: TextFile); overload;
Public | procedure RemoveAllNamesCI(const AName: string);
Public | function ExistsNameCI(const AName: string): boolean;
Public | function IsEmpty: boolean;
Public | function AddNotExisting(const AString: string): Integer;
Public | procedure LoadFromBinaryStream(Stream: TStream);
Public | procedure SaveToBinaryStream(Stream: TStream);

Description

Methods

Public function FirstName: string;

This is the same thing as Items[0]

Source: source/component/PasDoc_StringVector.pas (line 45).

Public procedure LoadFromTextFileAdd(const AFilename: string); overload;

This item has no description.

Source: source/component/PasDoc_StringVector.pas (line 47).

Public procedure LoadFromTextFileAdd(var ATextFile: TextFile); overload;

This item has no description.

Source: source/component/PasDoc_StringVector.pas (line 48).

Public procedure RemoveAllNamesCI(const AName: string);

This item has no description.

Source: source/component/PasDoc_StringVector.pas (line 49).

Public function ExistsNameCI(const AName: string): boolean;

This item has no description.

Source: source/component/PasDoc_StringVector.pas (line 50).

Public function IsEmpty: boolean;

This item has no description.

Source: source/component/PasDoc_StringVector.pas (line 51).

Public function AddNotExisting(const AString: string): Integer;

This item has no description.

Source: source/component/PasDoc_StringVector.pas (line 52).

Public procedure LoadFromBinaryStream(Stream: TStream);

Load from a stream using the binary format.

The binary format is

  • Count

  • followed by each string, loaded using TSerializable.LoadStringFromStream.

Note that you should never use our Text value to load/save this object from/into a stream, like Text := TSerializable.LoadStringFromStream(Stream). Using and assigning to the Text value breaks when some strings have newlines inside that should be preserved.

Source: source/component/PasDoc_StringVector.pas (line 68).

Public procedure SaveToBinaryStream(Stream: TStream);

Save to a stream, in a format readable by LoadFromBinaryStream.

Source: source/component/PasDoc_StringVector.pas (line 72).


PasDoc's autodoc: PasDoc_TagManager

Unit PasDoc_TagManager

Description
Uses
Classes, Interfaces, Objects and Records
Types

Description

Collects information about available @-tags and can parse text with tags.

Source: source/component/PasDoc_TagManager.pas (line 25).

Uses

  • SysUtils
  • Classes
  • Contnrs
  • Generics.Collections
  • PasDoc_Types

Overview

Classes, Interfaces, Objects and Records

Name | Description
Class TTag |
Class TTopLevelTag |
Class TNonSelfTag |
Class TTagVector | List of TTag objects (only non-nil).
Class TTagManager |

Types

TTagExecuteEvent = procedure(ThisTag: TTag; var ThisTagData: TObject; EnclosingTag: TTag; var EnclosingTagData: TObject; const TagParameter: string; var ReplaceStr: string) of object;
TTagAllowedInsideEvent = procedure( ThisTag: TTag; EnclosingTag: TTag; var Allowed: boolean) of object;
TStringConverter = function(const s: string): string of object;
TTagOption = (...);
TTagOptions = set of TTagOption;
TTryAutoLinkEvent = procedure(TagManager: TTagManager; const QualifiedIdentifier: TNameParts; out QualifiedIdentifierReplacement: string; var AutoLinked: boolean) of object;

Description

Types

TTagExecuteEvent = procedure(ThisTag: TTag; var ThisTagData: TObject; EnclosingTag: TTag; var EnclosingTagData: TObject; const TagParameter: string; var ReplaceStr: string) of object;

This item has no description.

See also
TTag.Execute
This will be used to do main work when this @-tag occured in description.
TTagAllowedInsideEvent = procedure( ThisTag: TTag; EnclosingTag: TTag; var Allowed: boolean) of object;

This item has no description.

See also
TTag.AllowedInside
This will be checked always when this tag occurs within description.
TStringConverter = function(const s: string): string of object;

This item has no description.

TTagOption = (...);

This item has no description.

Values
  • toParameterRequired: This means that tag expects parameters. If this is not included in TagOptions then tag should not be given any parameters, i.e. TagParameter passed to TTag.Execute should be ''. We will display a warning if user will try to give some parameters for such tag.
  • toRecursiveTags: This means that parameters of this tag will be expanded before passing them to TTag.Execute. This means that we will expand recursive tags inside parameters, that we will ConvertString inside parameters, that we will handle paragraphs inside parameters etc. — all that does TTagManager.Execute.

    If toParameterRequired is not present in TTagOptions then it's not important whether you included toRecursiveTags.

    It's useful for some tags to include toParameterRequired without including toRecursiveTags, e.g. @longcode or @html, that want to get their parameters "verbatim", not processed.

    If toRecursiveTags is not included in tag options: Then everything is allowed within parameter of this tag, but nothing is interpreted. E.g. you can freely use @ char, and even write various @-tags inside @html tag — this doesn't matter, because @-tags will not be interpreted (they will not be even searched !) inside @html tag. In other words, @ character means literally "@" inside @html, nothing more. The only exception are double @@, @( and @): we still treat them specially, to allow escaping the default parenthesis matching rules. Unless toRecursiveTagsManually is present.

  • toRecursiveTagsManually: Use this, instead of toRecursiveTags, if the implementation of your tag calls (always!) TagManager.CoreExecute on given TagParameter. This means that your tag is expanded recursively (it handles -tags inside), but you do it manually (instead of allowing toRecursiveTags to do the job). In this case, TagParameter given will be really absolutely unmodified (even the special @@, @( and @) will not be handled), because we know that it will be handled later by special CoreExecute call.

    Never use both flags toRecursiveTags and toRecursiveTagsManually.

  • toAllowOtherTagsInsideByDefault: This is meaningful only if toRecursiveTags is included. Then toAllowOtherTagsInsideByDefault determines are other tags allowed by the default implementation of TTag.AllowedInside.
  • toAllowNormalTextInside: This is meaningful only if toRecursiveTags is included. Then toAllowNormalTextInside says that normal text is allowed inside parameter of this tag. "Normal text" is anything except other @-tags: normal text, paragraph breaks, various dashes, URLs, and literal @ character (expressed by @@ in descriptions).

    If toAllowNormalTextInside will not be included, then normal text (not enclosed within other @-tags) will not be allowed inside. Only whitespace will be allowed, and it will be ignored anyway (i.e. will not be passed to ConvertString, empty line will not produce any Paragraph etc.). This is useful for tags like @orderedList that should only contain other @item tags inside.

  • toFirstWordVerbatim: This is useful for tags like @raises and @param that treat 1st word of their descriptions very specially (where "what exactly is the 1st word" is defined by the ExtractFirstWord function). This tells pasdoc to leave the beginning of tag parameter (the first word and the eventual whitespace before it) as it is in the parameter. Don't search there for @-tags, URLs, -- or other special dashes, don't insert paragraphs, don't try to auto-link it.

    This is meaningful only if toRecursiveTags is included (otherwise the whole tag parameters are always preserved "verbatim").

    TODO: in the future TTagExecuteEvent should just get this "first word" as a separate parameter, separated from TagParameters. Also, this word should not be converted by ConvertString.

Source: source/component/PasDoc_TagManager.pas (line 50).

TTagOptions = set of TTagOption;

This item has no description.

Source: source/component/PasDoc_TagManager.pas (line 134).

TTryAutoLinkEvent = procedure(TagManager: TTagManager; const QualifiedIdentifier: TNameParts; out QualifiedIdentifierReplacement: string; var AutoLinked: boolean) of object;

This item has no description.


PasDoc's autodoc: PasDoc_TagManager: Class TTag

Class TTag

Description
Hierarchy
Methods
Properties

Unit

PasDoc_TagManager

Declaration

type TTag = class(TObject)

Description

This item has no description.

Source: source/component/PasDoc_TagManager.pas (line 136).

Hierarchy

  • TObject
  • TTag
Show Additional Members:

Overview

Methods

Public | constructor Create(ATagManager: TTagManager; const AName: string; AOnPreExecute: TTagExecuteEvent; AOnExecute: TTagExecuteEvent; const ATagOptions: TTagOptions);
Public | procedure PreExecute(var ThisTagData: TObject; EnclosingTag: TTag; var EnclosingTagData: TObject; const TagParameter: string; var ReplaceStr: string); virtual;
Public | procedure Execute(var ThisTagData: TObject; EnclosingTag: TTag; var EnclosingTagData: TObject; const TagParameter: string; var ReplaceStr: string); virtual;
Public | function AllowedInside(EnclosingTag: TTag): boolean; virtual;
Public | function CreateOccurenceData: TObject; virtual;
Public | procedure DestroyOccurenceData(Value: TObject); virtual;

Properties

Public | property TagOptions: TTagOptions read FTagOptions write FTagOptions;
Public | property TagManager: TTagManager read FTagManager;
Public | property Name: string read FName write FName;
Public | property OnPreExecute: TTagExecuteEvent read FOnPreExecute write FOnPreExecute;
Public | property OnExecute: TTagExecuteEvent read FOnExecute write FOnExecute;
Public | property OnAllowedInside: TTagAllowedInsideEvent read FOnAllowedInside write FOnAllowedInside;

Description

Methods

Public constructor Create(ATagManager: TTagManager; const AName: string; AOnPreExecute: TTagExecuteEvent; AOnExecute: TTagExecuteEvent; const ATagOptions: TTagOptions);

Note that AName will be converted to lowercase before assigning to Name.

Source: source/component/PasDoc_TagManager.pas (line 147).

Public procedure PreExecute(var ThisTagData: TObject; EnclosingTag: TTag; var EnclosingTagData: TObject; const TagParameter: string; var ReplaceStr: string); virtual;

This is completely analogous to Execute but used when TTagManager.PreExecute is True. In this class this simply calls OnPreExecute.

Source: source/component/PasDoc_TagManager.pas (line 194).

Public procedure Execute(var ThisTagData: TObject; EnclosingTag: TTag; var EnclosingTagData: TObject; const TagParameter: string; var ReplaceStr: string); virtual;

This will be used to do main work when this @-tag occured in description.

EnclosingTag parameter specifies enclosing tag. This is useful for tags that must behave differently in different contexts, e.g. in plain-text output @item tag will behave differently inside @orderedList and @unorderedList. EnclosingTag is nil when the tag occured at top level of the description.

ThisTagData and EnclosingTagData form a mechanism to pass arbitraty data between child tags enclosed within one parent tag. Example uses:

  • This is the way for multiple @item tags inside @orderedList tag to count themselves (to provide list item numbers, for pasdoc output formats that can't automatically number list items).

  • This is the way for @itemSpacing tag to communicate with enclosing @orderedList tag to specify list style.

  • And this is the way for @cell tags to be collected inside rows data and then @rows tags to be collected inside table data. Thanks to such collecting TDocGenerator.FormatTable receives at once all information about given table, and can use it to format table.

How does this XxxTagData mechanism work:

When we start parsing parameter of some tag with toRecursiveTags, we create a new pointer inited to CreateOccurenceData. When @-tags occur inside this parameter, we pass them this pointer as EnclosingTagData (this way all @-tags with the same parent can use this pointer to communicate with each other). At the end, when parameter was parsed, we call given tag's Execute method passing the resulting pointer as ThisTagData (this way @-tags with the same parent can use this pointer to pass some data to their parent).

In this class this method simply calls OnExecute (if assigned).

Source: source/component/PasDoc_TagManager.pas (line 245).

Public function AllowedInside(EnclosingTag: TTag): boolean; virtual;

This will be checked always when this tag occurs within description. Given EnclosingTag is enclosing tag, nil if we're in top level. If this returns false then this tag will not be allowed inside EnclosingTag.

In this class this method

  1. Assumes that Result = true if we're at top level or EnclosingTag.TagOptions contains toAllowOtherTagsInsideByDefault. Else it assumes Result = false.

  2. Then it calls OnAllowedInside(Self, EnclosingTag, Result) (if OnAllowedInside is assigned).

Source: source/component/PasDoc_TagManager.pas (line 269).

Public function CreateOccurenceData: TObject; virtual;

In this class this simply returns Nil.

Source: source/component/PasDoc_TagManager.pas (line 272).

Public procedure DestroyOccurenceData(Value: TObject); virtual;

In this class this simply does Value.Free.

Source: source/component/PasDoc_TagManager.pas (line 275).

Properties

Public property TagOptions: TTagOptions read FTagOptions write FTagOptions;

This item has no description.

Source: source/component/PasDoc_TagManager.pas (line 153).

Public property TagManager: TTagManager read FTagManager;

TagManager that will recognize and handle this tag. Note that the tag instance is owned by this tag manager (i.e. it will be freed inside this tag manager). It can be nil if no tag manager currently owns this tag.

Note that it's very useful in Execute or OnExecute implementations.

E.g. you can use it to report a message by TagManager.DoMessage(...), this is e.g. used by implementation of TPasItem.StoreAbstractTag.

You could also use this to manually force recursive behavior of a given tag. I.e let's suppose that you have a tag with TagOptions = [toParameterRequired], so the TagParameter parameter passed to handler was not recursively expanded. Then you can do inside your handler

NewTagParameter := TagManager.Execute(TagParameter, ...)

and this way you have explicitly recursively expanded the tag.

Scenario above is actually used in implementation of @noAutoLink tag. There I call TagManager.Execute with parameter AutoLink set to false thus preventing auto-linking inside text within @noAutoLink.

Source: source/component/PasDoc_TagManager.pas (line 179).

Public property Name: string read FName write FName;

Name of the tag, that must be specified by user after the "@" sign. Value of this property must always be lowercase.

Source: source/component/PasDoc_TagManager.pas (line 183).

Public property OnPreExecute: TTagExecuteEvent read FOnPreExecute write FOnPreExecute;

This item has no description.

Source: source/component/PasDoc_TagManager.pas (line 185).

Public property OnExecute: TTagExecuteEvent read FOnExecute write FOnExecute;

This item has no description.

Source: source/component/PasDoc_TagManager.pas (line 188).

Public property OnAllowedInside: TTagAllowedInsideEvent read FOnAllowedInside write FOnAllowedInside;

This item has no description.

Source: source/component/PasDoc_TagManager.pas (line 249).


PasDoc's autodoc: PasDoc_TagManager: Class TTopLevelTag

Class TTopLevelTag

Description
Hierarchy
Methods
Properties

Unit

PasDoc_TagManager

Declaration

type TTopLevelTag = class(TTag)

Description

This item has no description.

Source: source/component/PasDoc_TagManager.pas (line 278).

Hierarchy

  • TObject
  • TTag
  • TTopLevelTag
Show Additional Members:

Overview

Methods

Public | constructor Create(ATagManager: TTagManager; const AName: string; AOnPreExecute: TTagExecuteEvent; AOnExecute: TTagExecuteEvent; const ATagOptions: TTagOptions);
Public | procedure PreExecute(var ThisTagData: TObject; EnclosingTag: TTag; var EnclosingTagData: TObject; const TagParameter: string; var ReplaceStr: string); virtual;
Public | procedure Execute(var ThisTagData: TObject; EnclosingTag: TTag; var EnclosingTagData: TObject; const TagParameter: string; var ReplaceStr: string); virtual;
Public | function CreateOccurenceData: TObject; virtual;
Public | procedure DestroyOccurenceData(Value: TObject); virtual;
Public | function AllowedInside(EnclosingTag: TTag): boolean; override;

Properties

Public | property TagOptions: TTagOptions read FTagOptions write FTagOptions;
Public | property TagManager: TTagManager read FTagManager;
Public | property Name: string read FName write FName;
Public | property OnPreExecute: TTagExecuteEvent read FOnPreExecute write FOnPreExecute;
Public | property OnExecute: TTagExecuteEvent read FOnExecute write FOnExecute;
Public | property OnAllowedInside: TTagAllowedInsideEvent read FOnAllowedInside write FOnAllowedInside;

Description

Methods

Public constructor Create(ATagManager: TTagManager; const AName: string; AOnPreExecute: TTagExecuteEvent; AOnExecute: TTagExecuteEvent; const ATagOptions: TTagOptions);

This item is declared in ancestor TTag.

Note that AName will be converted to lowercase before assigning to Name.

Source: source/component/PasDoc_TagManager.pas (line 147).

Public procedure PreExecute(var ThisTagData: TObject; EnclosingTag: TTag; var EnclosingTagData: TObject; const TagParameter: string; var ReplaceStr: string); virtual;

This item is declared in ancestor TTag.

This is completely analogous to Execute but used when TTagManager.PreExecute is True. In this class this simply calls OnPreExecute.

Source: source/component/PasDoc_TagManager.pas (line 194).

Public procedure Execute(var ThisTagData: TObject; EnclosingTag: TTag; var EnclosingTagData: TObject; const TagParameter: string; var ReplaceStr: string); virtual;

This item is declared in ancestor TTag.

This will be used to do main work when this @-tag occured in description.

EnclosingTag parameter specifies enclosing tag. This is useful for tags that must behave differently in different contexts, e.g. in plain-text output @item tag will behave differently inside @orderedList and @unorderedList. EnclosingTag is nil when the tag occured at top level of the description.

ThisTagData and EnclosingTagData form a mechanism to pass arbitraty data between child tags enclosed within one parent tag. Example uses:

  • This is the way for multiple @item tags inside @orderedList tag to count themselves (to provide list item numbers, for pasdoc output formats that can't automatically number list items).

  • This is the way for @itemSpacing tag to communicate with enclosing @orderedList tag to specify list style.

  • And this is the way for @cell tags to be collected inside rows data and then @rows tags to be collected inside table data. Thanks to such collecting TDocGenerator.FormatTable receives at once all information about given table, and can use it to format table.

How does this XxxTagData mechanism work:

When we start parsing parameter of some tag with toRecursiveTags, we create a new pointer inited to CreateOccurenceData. When @-tags occur inside this parameter, we pass them this pointer as EnclosingTagData (this way all @-tags with the same parent can use this pointer to communicate with each other). At the end, when parameter was parsed, we call given tag's Execute method passing the resulting pointer as ThisTagData (this way @-tags with the same parent can use this pointer to pass some data to their parent).

In this class this method simply calls OnExecute (if assigned).

Source: source/component/PasDoc_TagManager.pas (line 245).

Public function CreateOccurenceData: TObject; virtual;

This item is declared in ancestor TTag.

In this class this simply returns Nil.

Source: source/component/PasDoc_TagManager.pas (line 272).

Public procedure DestroyOccurenceData(Value: TObject); virtual;

This item is declared in ancestor TTag.

In this class this simply does Value.Free.

Source: source/component/PasDoc_TagManager.pas (line 275).

Public function AllowedInside(EnclosingTag: TTag): boolean; override;

This returns just EnclosingTag = nil.

Which means that this tag is allowed only at top level of description, never inside parameter of some tag.

Source: source/component/PasDoc_TagManager.pas (line 283).

Properties

Public property TagOptions: TTagOptions read FTagOptions write FTagOptions;

This item is declared in ancestor TTag.

This item has no description.

Source: source/component/PasDoc_TagManager.pas (line 153).

Public property TagManager: TTagManager read FTagManager;

This item is declared in ancestor TTag.

TagManager that will recognize and handle this tag. Note that the tag instance is owned by this tag manager (i.e. it will be freed inside this tag manager). It can be nil if no tag manager currently owns this tag.

Note that it's very useful in Execute or OnExecute implementations.

E.g. you can use it to report a message by TagManager.DoMessage(...), this is e.g. used by implementation of TPasItem.StoreAbstractTag.

You could also use this to manually force recursive behavior of a given tag. I.e let's suppose that you have a tag with TagOptions = [toParameterRequired], so the TagParameter parameter passed to handler was not recursively expanded. Then you can do inside your handler

NewTagParameter := TagManager.Execute(TagParameter, ...)

and this way you have explicitly recursively expanded the tag.

Scenario above is actually used in implementation of @noAutoLink tag. There I call TagManager.Execute with parameter AutoLink set to false thus preventing auto-linking inside text within @noAutoLink.

Source: source/component/PasDoc_TagManager.pas (line 179).

Public property Name: string read FName write FName;

This item is declared in ancestor TTag.

Name of the tag, that must be specified by user after the "@" sign. Value of this property must always be lowercase.

Source: source/component/PasDoc_TagManager.pas (line 183).

Public property OnPreExecute: TTagExecuteEvent read FOnPreExecute write FOnPreExecute;

This item is declared in ancestor TTag.

This item has no description.

Source: source/component/PasDoc_TagManager.pas (line 185).

Public property OnExecute: TTagExecuteEvent read FOnExecute write FOnExecute;

This item is declared in ancestor TTag.

This item has no description.

Source: source/component/PasDoc_TagManager.pas (line 188).

Public property OnAllowedInside: TTagAllowedInsideEvent read FOnAllowedInside write FOnAllowedInside;

This item is declared in ancestor TTag.

This item has no description.

Source: source/component/PasDoc_TagManager.pas (line 249).


PasDoc's autodoc: PasDoc_TagManager: Class TNonSelfTag

Class TNonSelfTag

Description
Hierarchy
Methods
Properties

Unit

PasDoc_TagManager

Declaration

type TNonSelfTag = class(TTag)

Description

This item has no description.

Source: source/component/PasDoc_TagManager.pas (line 286).

Hierarchy

  • TObject
  • TTag
  • TNonSelfTag
Show Additional Members:

Overview

Methods

Public | constructor Create(ATagManager: TTagManager; const AName: string; AOnPreExecute: TTagExecuteEvent; AOnExecute: TTagExecuteEvent; const ATagOptions: TTagOptions);
Public | procedure PreExecute(var ThisTagData: TObject; EnclosingTag: TTag; var EnclosingTagData: TObject; const TagParameter: string; var ReplaceStr: string); virtual;
Public | procedure Execute(var ThisTagData: TObject; EnclosingTag: TTag; var EnclosingTagData: TObject; const TagParameter: string; var ReplaceStr: string); virtual;
Public | function CreateOccurenceData: TObject; virtual;
Public | procedure DestroyOccurenceData(Value: TObject); virtual;
Public | function AllowedInside(EnclosingTag: TTag): boolean; override;

Properties

Public | property TagOptions: TTagOptions read FTagOptions write FTagOptions;
Public | property TagManager: TTagManager read FTagManager;
Public | property Name: string read FName write FName;
Public | property OnPreExecute: TTagExecuteEvent read FOnPreExecute write FOnPreExecute;
Public | property OnExecute: TTagExecuteEvent read FOnExecute write FOnExecute;
Public | property OnAllowedInside: TTagAllowedInsideEvent read FOnAllowedInside write FOnAllowedInside;

Description

Methods

Public constructor Create(ATagManager: TTagManager; const AName: string; AOnPreExecute: TTagExecuteEvent; AOnExecute: TTagExecuteEvent; const ATagOptions: TTagOptions);

This item is declared in ancestor TTag.

Note that AName will be converted to lowercase before assigning to Name.

Source: source/component/PasDoc_TagManager.pas (line 147).

Public procedure PreExecute(var ThisTagData: TObject; EnclosingTag: TTag; var EnclosingTagData: TObject; const TagParameter: string; var ReplaceStr: string); virtual;

This item is declared in ancestor TTag.

This is completely analogous to Execute but used when TTagManager.PreExecute is True. In this class this simply calls OnPreExecute.

Source: source/component/PasDoc_TagManager.pas (line 194).

Public procedure Execute(var ThisTagData: TObject; EnclosingTag: TTag; var EnclosingTagData: TObject; const TagParameter: string; var ReplaceStr: string); virtual;

This item is declared in ancestor TTag.

This will be used to do main work when this @-tag occured in description.

EnclosingTag parameter specifies enclosing tag. This is useful for tags that must behave differently in different contexts, e.g. in plain-text output @item tag will behave differently inside @orderedList and @unorderedList. EnclosingTag is nil when the tag occured at top level of the description.

ThisTagData and EnclosingTagData form a mechanism to pass arbitraty data between child tags enclosed within one parent tag. Example uses:

  • This is the way for multiple @item tags inside @orderedList tag to count themselves (to provide list item numbers, for pasdoc output formats that can't automatically number list items).

  • This is the way for @itemSpacing tag to communicate with enclosing @orderedList tag to specify list style.

  • And this is the way for @cell tags to be collected inside rows data and then @rows tags to be collected inside table data. Thanks to such collecting TDocGenerator.FormatTable receives at once all information about given table, and can use it to format table.

How does this XxxTagData mechanism work:

When we start parsing parameter of some tag with toRecursiveTags, we create a new pointer inited to CreateOccurenceData. When @-tags occur inside this parameter, we pass them this pointer as EnclosingTagData (this way all @-tags with the same parent can use this pointer to communicate with each other). At the end, when parameter was parsed, we call given tag's Execute method passing the resulting pointer as ThisTagData (this way @-tags with the same parent can use this pointer to pass some data to their parent).

In this class this method simply calls OnExecute (if assigned).

Source: source/component/PasDoc_TagManager.pas (line 245).

Public function CreateOccurenceData: TObject; virtual;

This item is declared in ancestor TTag.

In this class this simply returns Nil.

Source: source/component/PasDoc_TagManager.pas (line 272).

Public procedure DestroyOccurenceData(Value: TObject); virtual;

This item is declared in ancestor TTag.

In this class this simply does Value.Free.

Source: source/component/PasDoc_TagManager.pas (line 275).

Public function AllowedInside(EnclosingTag: TTag): boolean; override;

This returns just inherited and (EnclosingTag <> Self).

Which means that (assuming that OnAllowedInside is not assigned) this tag is allowed at top level of description and inside parameter of any tag but not within itself and not within tags without toAllowOtherTagsInsideByDefault.

This is currently not used by any tag.

Source: source/component/PasDoc_TagManager.pas (line 296).

Properties

Public property TagOptions: TTagOptions read FTagOptions write FTagOptions;

This item is declared in ancestor TTag.

This item has no description.

Source: source/component/PasDoc_TagManager.pas (line 153).

Public property TagManager: TTagManager read FTagManager;

This item is declared in ancestor TTag.

TagManager that will recognize and handle this tag. Note that the tag instance is owned by this tag manager (i.e. it will be freed inside this tag manager). It can be nil if no tag manager currently owns this tag.

Note that it's very useful in Execute or OnExecute implementations.

E.g. you can use it to report a message by TagManager.DoMessage(...), this is e.g. used by implementation of TPasItem.StoreAbstractTag.

You could also use this to manually force recursive behavior of a given tag. I.e let's suppose that you have a tag with TagOptions = [toParameterRequired], so the TagParameter parameter passed to handler was not recursively expanded. Then you can do inside your handler

NewTagParameter := TagManager.Execute(TagParameter, ...)

and this way you have explicitly recursively expanded the tag.

Scenario above is actually used in implementation of @noAutoLink tag. There I call TagManager.Execute with parameter AutoLink set to false thus preventing auto-linking inside text within @noAutoLink.

Source: source/component/PasDoc_TagManager.pas (line 179).

Public property Name: string read FName write FName;

This item is declared in ancestor TTag.

Name of the tag, that must be specified by user after the "@" sign. Value of this property must always be lowercase.

Source: source/component/PasDoc_TagManager.pas (line 183).

Public property OnPreExecute: TTagExecuteEvent read FOnPreExecute write FOnPreExecute;

This item is declared in ancestor TTag.

This item has no description.

Source: source/component/PasDoc_TagManager.pas (line 185).

Public property OnExecute: TTagExecuteEvent read FOnExecute write FOnExecute;

This item is declared in ancestor TTag.

This item has no description.

Source: source/component/PasDoc_TagManager.pas (line 188).

Public property OnAllowedInside: TTagAllowedInsideEvent read FOnAllowedInside write FOnAllowedInside;

This item is declared in ancestor TTag.

This item has no description.

Source: source/component/PasDoc_TagManager.pas (line 249).


PasDoc's autodoc: PasDoc_TagManager: Class TTagVector

Class TTagVector

Description
Hierarchy
Methods

Unit

PasDoc_TagManager

Declaration

type TTagVector = class(specialize TObjectList<TTag>)

Description

List of TTag objects (only non-nil).

Source: source/component/PasDoc_TagManager.pas (line 300).

Hierarchy

  • TObject
  • TList
  • TObjectList
  • TTagVector
Show Additional Members:

Overview

Methods

Public function FindByName(const Name: string): TTag;

Description

Methods

Public function FindByName(const Name: string): TTag;

Case of Name does not matter (so don't bother converting it to lowercase or something like that before using this method). Returns nil if not found.

Maybe in the future it will use hashlist, for now it's not needed.

Source: source/component/PasDoc_TagManager.pas (line 306).


PasDoc's autodoc: PasDoc_TagManager: Class TTagManager

Class TTagManager

Description
Hierarchy
Methods
Properties

Unit

PasDoc_TagManager

Declaration

type TTagManager = class(TObject)

Description

This item has no description.

Source: source/component/PasDoc_TagManager.pas (line 314).

Hierarchy

  • TObject
  • TTagManager
Show Additional Members:

Overview

Methods

Public | constructor Create;
Public | destructor Destroy; override;
Public | procedure DoMessage(const AVerbosity: Cardinal; const MessageType: TPasDocMessageType; const AMessage: string; const AArguments: array of const);
Public | procedure DoMessageNonPre(const AVerbosity: Cardinal; const MessageType: TPasDocMessageType; const AMessage: string; const AArguments: array of const);
Public | function Execute(const Description: string; AutoLink: boolean; WantFirstSentenceEnd: boolean; out FirstSentenceEnd: Integer): string; overload;
Public | function Execute(const Description: string; AutoLink: boolean): string; overload;
Public | function CoreExecute(const Description: string; AutoLink: boolean; EnclosingTag: TTag; var EnclosingTagData: TObject; WantFirstSentenceEnd: boolean; out FirstSentenceEnd: Integer): string; overload;
Public | function CoreExecute(const Description: string; AutoLink: boolean; EnclosingTag: TTag; var EnclosingTagData: TObject): string; overload;

Properties

Public | property OnMessage: TPasDocMessageEvent read FOnMessage write FOnMessage;
Public | property Paragraph: string read FParagraph write FParagraph;
Public | property Space: string read FSpace write FSpace;
Public | property ShortDash: string read FShortDash write FShortDash;
Public | property EnDash: string read FEnDash write FEnDash;
Public | property EmDash: string read FEmDash write FEmDash;
Public | property URLLink: TStringConverter read FURLLink write FURLLink;
Public | property OnTryAutoLink: TTryAutoLinkEvent read FOnTryAutoLink write FOnTryAutoLink;
Public | property ConvertString: TStringConverter read FConvertString write FConvertString;
Public | property Abbreviations: TStringList read FAbbreviations write FAbbreviations;
Public | property PreExecute: boolean read FPreExecute write FPreExecute;
Public | property Markdown: boolean read FMarkdown write FMarkdown default false;

Description

Methods

Public constructor Create;

This item has no description.

Source: source/component/PasDoc_TagManager.pas (line 335).

Public destructor Destroy; override;

This item has no description.

Source: source/component/PasDoc_TagManager.pas (line 336).

Public procedure DoMessage(const AVerbosity: Cardinal; const MessageType: TPasDocMessageType; const AMessage: string; const AArguments: array of const);

Call OnMessage (if assigned) with given params.

Source: source/component/PasDoc_TagManager.pas (line 339).

Public procedure DoMessageNonPre(const AVerbosity: Cardinal; const MessageType: TPasDocMessageType; const AMessage: string; const AArguments: array of const);

Call DoMessage only if PreExecute is False.

Source: source/component/PasDoc_TagManager.pas (line 344).

Public function Execute(const Description: string; AutoLink: boolean; WantFirstSentenceEnd: boolean; out FirstSentenceEnd: Integer): string; overload;

This method is the very essence of this class and this unit. It expands Description, which means that it processes Description (text supplied by user in some comment in parsed unit) into something ready to be included in output documentation. This means that this handles parsing @-tags, inserting paragraph markers, recognizing URLs in Description and correctly translating it, and translating rest of the "normal" text via ConvertString.

If WantFirstSentenceEnd then we will look for '.' char followed by any whitespace in Description. Moreover, this '.' must be outside of any @-tags parameter. Under FirstSentenceEnd we will return the number of beginning characters in the output string that will include correspong '.' character (note that this definition takes into account that ConvertString may translate '.' into something longer). If no such character exists in Description, FirstSentenceEnd will be set to Length(Result), so the whole Description will be treated as it's first sentence.

If WantFirstSentenceEnd, FirstSentenceEnd will not be set.

Source: source/component/PasDoc_TagManager.pas (line 448).

Public function Execute(const Description: string; AutoLink: boolean): string; overload;

This is equivalent to Execute(Description, AutoLink, false, Dummy)

Source: source/component/PasDoc_TagManager.pas (line 454).

Public function CoreExecute(const Description: string; AutoLink: boolean; EnclosingTag: TTag; var EnclosingTagData: TObject; WantFirstSentenceEnd: boolean; out FirstSentenceEnd: Integer): string; overload;

This is the underlying version of Execute. Use with caution!

If EnclosingTag = nil then this is understood to be toplevel of description, which means that all tags are allowed inside.

If EnclosingTag <> nil then this is not toplevel.

EnclosingTagData returns collected data for given EnclosingTag. You should init it to EnclosingTag.CreateOccurenceData. It will be passed as EnclosingTagData to each of @-tags found inside Description.

Source: source/component/PasDoc_TagManager.pas (line 468).

Public function CoreExecute(const Description: string; AutoLink: boolean; EnclosingTag: TTag; var EnclosingTagData: TObject): string; overload;

This item has no description.

Source: source/component/PasDoc_TagManager.pas (line 474).

Properties

Public property OnMessage: TPasDocMessageEvent read FOnMessage write FOnMessage;

This will be used to print messages from within Execute.

Note that in this unit we essentialy "don't know" that parsed Description string is probably attached to some TPasItem. It's good that we don't know it (because it makes this class more flexible). But it also means that OnMessage that you assign here may want to add to passed AMessage something like + ' (Expanded_TPasItem_Name)', see e.g. TDocGenerator.DoMessageFromExpandDescription. Maybe in the future we will do some descendant of this class, like TTagManagerForPasItem.

Source: source/component/PasDoc_TagManager.pas (line 358).

Public property Paragraph: string read FParagraph write FParagraph;

This will be inserted on paragraph marker (two consecutive newlines, see wiki page WritingDocumentation) in the text. This should specify how paragraphs are marked in particular output format, e.g. html generator may set this to '<p>'.

Default value is ' ' (one space).

Source: source/component/PasDoc_TagManager.pas (line 366).

Public property Space: string read FSpace write FSpace;

This will be inserted on each whitespace sequence (but not on paragraph break). This is consistent with WritingDocumentation that clearly says that "amount of whitespace does not matter".

Although in some pasdoc output formats amount of whitespace also does not matter (e.g. HTML and LaTeX) but in other (e.g. plain text) it matters, so such space compression is needed. In other output formats (no examples yet) it may need to be expressed by something else than simple space, that's why this property is exposed.

Default value is ' ' (one space).

Source: source/component/PasDoc_TagManager.pas (line 381).

Public property ShortDash: string read FShortDash write FShortDash;

This will be inserted on @- in description, and on a normal single dash in description that is not a part of en-dash or em-dash. This should produce just a short dash.

Default value is '-'.

You will never get any '-' character to be converted by ConvertString. Convertion of '-' is controlled solely by XxxDash properties of tag manager.

See also
EnDash
This will be inserted on -- in description.
EmDash
This will be inserted on --- in description.

Source: source/component/PasDoc_TagManager.pas (line 396).

Public property EnDash: string read FEnDash write FEnDash;

This will be inserted on -- in description. This should produce en-dash (as in LaTeX). Default value is '--'.

Source: source/component/PasDoc_TagManager.pas (line 401).

Public property EmDash: string read FEmDash write FEmDash;

This will be inserted on --- in description. This should produce em-dash (as in LaTeX). Default value is '---'.

Source: source/component/PasDoc_TagManager.pas (line 406).

Public property URLLink: TStringConverter read FURLLink write FURLLink;

This will be called from Execute when URL will be found in Description. Note that passed here URL will not be processed by ConvertString.

This tells what to put in result on URL. If this is not assigned, then ConvertString(URL) will be appended to Result in Execute.

Source: source/component/PasDoc_TagManager.pas (line 415).

Public property OnTryAutoLink: TTryAutoLinkEvent read FOnTryAutoLink write FOnTryAutoLink;

This should check does QualifiedIdentifier looks like a name of some existing identifier. If yes, sets AutoLinked to true and sets QualifiedIdentifierReplacement to a link to QualifiedIdentifier (QualifiedIdentifierReplacement should be ready to be put in final documentation, i.e. already in the final output format). By default AutoLinked is false.

Source: source/component/PasDoc_TagManager.pas (line 423).

Public property ConvertString: TStringConverter read FConvertString write FConvertString;

This item has no description.

Source: source/component/PasDoc_TagManager.pas (line 478).

Public property Abbreviations: TStringList read FAbbreviations write FAbbreviations;

This item has no description.

Source: source/component/PasDoc_TagManager.pas (line 480).

Public property PreExecute: boolean read FPreExecute write FPreExecute;

When PreExecute is True, tag manager will work a little differently than usual:

  • Instead of TTag.Execute, TTag.PreExecute will be called.

  • Various warnings will not be reported.

    Assumption is that you will later process the same text with PreExecute set to False to get all the warnings.

  • AutoLink will not be used (like it was always false). Also the result of Execute will be pretty much random and meaningless (so you should ignore it). Also this means that the TagParameter for tags with toRecursiveTags should be ignored, because it will be something incorrect. This means that only tags without toRecursiveTags should actually use TagParameter in their OnPreExecute handlers.

    Assumption is that you actually don't care about the result of Execute methods, and you will later process the same text with PreExecute set to False to get the proper output.

    The goal is to make execution with PreExecute set to True as fast as possible.

Source: source/component/PasDoc_TagManager.pas (line 510).

Public property Markdown: boolean read FMarkdown write FMarkdown default false;

When Markdown is True, Markdown syntax is considered

Source: source/component/PasDoc_TagManager.pas (line 514).


PasDoc's autodoc: PasDoc_Tipue

Unit PasDoc_Tipue

Description
Uses
Functions and Procedures

Description

Integrate Tipue search.

Source: source/component/tipue/PasDoc_Tipue.pas (line 24).

Uses

  • Contnrs
  • PasDoc_Types
  • PasDoc_Utils
  • PasDoc_Items

Overview

Functions and Procedures

function TipueSearchButtonHead: string;
function TipueSearchButton: string;
procedure TipueAddFiles(Units: TPasUnits; const Introduction, Conclusion: TExternalItem; const AdditionalFiles: TExternalItemList; const Head, BodyBegin, BodyEnd: string; const LanguageCode: string; const OutputPath: string);

Description

Functions and Procedures

function TipueSearchButtonHead: string;

Put this in <head> of every page with search button.

Source: source/component/tipue/PasDoc_Tipue.pas (line 32).

function TipueSearchButton: string;

Put this at a place where Tipue button should appear. It will make a form with search button. You will need to use Format to insert the localized word for "Search", e.g.: Format(TipueSearchButton, ['Search']) for English.

Source: source/component/tipue/PasDoc_Tipue.pas (line 38).

procedure TipueAddFiles(Units: TPasUnits; const Introduction, Conclusion: TExternalItem; const AdditionalFiles: TExternalItemList; const Head, BodyBegin, BodyEnd: string; const LanguageCode: string; const OutputPath: string);

Adds some additional files to html documentation, needed for tipue engine.

OutputPath is our output path, where html output must be placed. Must end with PathDelim.

Units must be non-nil. It will be used to generate index data for tipue.

Source: source/component/tipue/PasDoc_Tipue.pas (line 46).


PasDoc's autodoc: PasDoc_Tokenizer

Unit PasDoc_Tokenizer

Description
Uses
Classes, Interfaces, Objects and Records
Functions and Procedures
Types
Constants

Description

Simple Pascal tokenizer.

The TTokenizer object creates TToken objects (tokens) for the Pascal programming language from a character input stream.

The PasDoc_Scanner unit does the same (it actually uses this unit's tokenizer), with the exception that it evaluates compiler directives, which are comments that start with a dollar sign.

Source: source/component/PasDoc_Tokenizer.pas (line 38).

Uses

  • Classes
  • Generics.Collections
  • PasDoc_Utils
  • PasDoc_Types
  • PasDoc_StreamUtils

Overview

Classes, Interfaces, Objects and Records

Name | Description
Class TToken | Stores the exact type and additional information on one token.
Class TTokenizer | Converts an input TStream to a sequence of TToken objects.

Functions and Procedures

function StandardDirectiveByName(const Name: string): TStandardDirective;
function KeyWordByName(const Name: string): TKeyword;
function IsIdentifierStartChar(const C: Char): Boolean;
function IsIdentifierOtherChar(const C: Char): Boolean;

Types

TTokenType = (...);
TKeyword = (...);
TStandardDirective = (...);
TStandardDirectives = set of TStandardDirective;
TSymbolType = (...);
TTokenList = specialize TObjectList<TToken>;

Constants

TOKEN_TYPE_NAMES: array[TTokenType] of string = ( 'whitespace', 'comment ((**)-style)', 'comment ({}-style)', 'comment (///-style)', 'comment (//-style)', 'identifier', 'number', 'string', 'symbol', 'directive', 'reserved word', 'AT&T assembler register name', 'double-quoted string');
TokenCommentTypes: set of TTokenType = [ TOK_COMMENT_PAS, TOK_COMMENT_EXT, TOK_COMMENT_HELPINSIGHT, TOK_COMMENT_CSTYLE ];
SymbolNames: array[TSymbolType] of string = ( '+', '-', '*', '/', '=', '<', '<=', '>', '>=', '[', ']', ',', '(', ')', ':', ';', 'ˆ', '.', '@', '$', ':=', '..', '**', '\', '"' );
KeyWordArray: array[Low(TKeyword)..High(TKeyword)] of string = ('x', 'AND', 'ARRAY', 'AS', 'ASM', 'BEGIN', 'CASE', 'CLASS', 'OBJCCLASS', 'CONST', 'CONSTRUCTOR', 'DESTRUCTOR', 'DISPINTERFACE', 'DIV', 'DO', 'DOWNTO', 'ELSE', 'END', 'EXCEPT', 'EXPORTS', 'FILE', 'FINALIZATION', 'FINALLY', 'FOR', 'FUNCTION', 'GOTO', 'IF', 'IMPLEMENTATION', 'IN', 'INHERITED', 'INITIALIZATION', 'INLINE', 'INTERFACE', 'IS', 'LABEL', 'LIBRARY', 'MOD', 'NIL', 'NOT', 'OBJECT', 'OF', 'OR', 'PACKED', 'PROCEDURE', 'PROGRAM', 'PROPERTY', 'RAISE', 'RECORD', 'REPEAT', 'RESOURCESTRING', 'SET', 'SHL', 'SHR', 'STRING', 'THEN', 'THREADVAR', 'TO', 'TRY', 'TYPE', 'UNIT', 'UNTIL', 'USES', 'VAR', 'WHILE', 'WITH', 'XOR');
StandardDirectiveArray: array[Low(TStandardDirective)..High(TStandardDirective)] of PChar = ('x', 'ABSOLUTE', 'ABSTRACT', 'APIENTRY', 'ASSEMBLER', 'AUTOMATED', 'CDECL', 'CVAR', 'DEFAULT', 'DISPID', 'DYNAMIC', 'EXPERIMENTAL', 'EXPORT', 'EXTERNAL', 'FAR', 'FORWARD', 'GENERIC', 'HELPER', 'INDEX', 'INLINE', 'MESSAGE', 'NAME', 'NEAR', 'NODEFAULT', 'NORETURN', 'ON', 'OPERATOR', 'OUT', 'OVERLOAD', 'OVERRIDE', 'PASCAL', 'PRIVATE', 'PROTECTED', 'PUBLIC', 'PUBLISHED', 'READ', 'REFERENCE', 'REGISTER', 'REINTRODUCE', 'RESIDENT', 'SEALED', 'SPECIALIZE', 'STATIC', 'STDCALL', 'STORED', 'STRICT', 'VIRTUAL', 'WRITE', 'DEPRECATED', 'SAFECALL', 'PLATFORM', 'VARARGS', 'FINAL', 'UNIMPLEMENTED');

Description

Functions and Procedures

function StandardDirectiveByName(const Name: string): TStandardDirective;

Checks is Name (case ignored) some Pascal keyword. Returns SD_INVALIDSTANDARDDIRECTIVE if not.

Source: source/component/PasDoc_Tokenizer.pas (line 490).

function KeyWordByName(const Name: string): TKeyword;

Checks is Name (case ignored) some Pascal standard directive. Returns KEY_INVALIDKEYWORD if not.

Source: source/component/PasDoc_Tokenizer.pas (line 494).

function IsIdentifierStartChar(const C: Char): Boolean;

Returns true if c is a valid first character of a Pascal identifier: underscore, ASCII letter, or non-ASCII character (Unicode letter). Following https://docwiki.embarcadero.com/RADStudio/Athens/en/Identifiers , Delphi allows Unicode letters as identifier start characters.

Source: source/component/PasDoc_Tokenizer.pas (line 500).

function IsIdentifierOtherChar(const C: Char): Boolean;

Returns true if c is a valid continuation character of a Pascal identifier: underscore, ASCII letter, ASCII digit, or non-ASCII character (Unicode letter/digit).

Source: source/component/PasDoc_Tokenizer.pas (line 504).

Types

TTokenType = (...);

All types of tokens.

Note that tokenizer is not able to tell whether you used standard directive (e.g. 'Register') as an identifier (e.g. you're declaring procedure named 'Register') or as a real standard directive (e.g. a calling specifier 'register'). So there is no token like TOK_STANDARD_DIRECTIVE here, standard directives are always reported as TOK_IDENTIFIER. You can check TToken.Info.StandardDirective to know whether this identifier is maybe used as real standard directive.

Values
  • TOK_WHITESPACE
  • TOK_COMMENT_PAS
  • TOK_COMMENT_EXT
  • TOK_COMMENT_HELPINSIGHT
  • TOK_COMMENT_CSTYLE
  • TOK_IDENTIFIER
  • TOK_NUMBER
  • TOK_STRING
  • TOK_SYMBOL
  • TOK_DIRECTIVE: Compiler directive, like $ifdef
  • TOK_KEYWORD
  • TOK_ATT_ASSEMBLER_REGISTER
  • TOK_DOUBLE_QUOTED_STRING: Possible in assembler blocks, see ../../tests/ok_asm.pas

Source: source/component/PasDoc_Tokenizer.pas (line 61).

TKeyword = (...);

This item has no description.

Values
  • KEY_INVALIDKEYWORD
  • KEY_AND
  • KEY_ARRAY
  • KEY_AS
  • KEY_ASM
  • KEY_BEGIN
  • KEY_CASE
  • KEY_CLASS
  • KEY_OBJCCLASS
  • KEY_CONST
  • KEY_CONSTRUCTOR
  • KEY_DESTRUCTOR
  • KEY_DISPINTERFACE
  • KEY_DIV
  • KEY_DO
  • KEY_DOWNTO
  • KEY_ELSE
  • KEY_END
  • KEY_EXCEPT
  • KEY_EXPORTS
  • KEY_FILE
  • KEY_FINALIZATION
  • KEY_FINALLY
  • KEY_FOR
  • KEY_FUNCTION
  • KEY_GOTO
  • KEY_IF
  • KEY_IMPLEMENTATION
  • KEY_IN
  • KEY_INHERITED
  • KEY_INITIALIZATION
  • KEY_INLINE
  • KEY_INTERFACE
  • KEY_IS
  • KEY_LABEL
  • KEY_LIBRARY
  • KEY_MOD
  • KEY_NIL
  • KEY_NOT
  • KEY_OBJECT
  • KEY_OF
  • KEY_OR
  • KEY_PACKED
  • KEY_PROCEDURE
  • KEY_PROGRAM
  • KEY_PROPERTY
  • KEY_RAISE
  • KEY_RECORD
  • KEY_REPEAT
  • KEY_RESOURCESTRING
  • KEY_SET
  • KEY_SHL
  • KEY_SHR
  • KEY_STRING
  • KEY_THEN
  • KEY_THREADVAR
  • KEY_TO
  • KEY_TRY
  • KEY_TYPE
  • KEY_UNIT
  • KEY_UNTIL
  • KEY_USES
  • KEY_VAR
  • KEY_WHILE
  • KEY_WITH
  • KEY_XOR

Source: source/component/PasDoc_Tokenizer.pas (line 80).

TStandardDirective = (...);

This item has no description.

Values
  • SD_INVALIDSTANDARDDIRECTIVE
  • SD_ABSOLUTE
  • SD_ABSTRACT
  • SD_APIENTRY
  • SD_ASSEMBLER
  • SD_AUTOMATED
  • SD_CDECL
  • SD_CVAR
  • SD_DEFAULT
  • SD_DISPID
  • SD_DYNAMIC
  • SD_EXPERIMENTAL
  • SD_EXPORT
  • SD_EXTERNAL
  • SD_FAR
  • SD_FORWARD
  • SD_GENERIC
  • SD_HELPER
  • SD_INDEX
  • SD_INLINE
  • SD_MESSAGE
  • SD_NAME
  • SD_NEAR
  • SD_NODEFAULT
  • SD_NORETURN
  • SD_ON
  • SD_OPERATOR
  • SD_OUT
  • SD_OVERLOAD
  • SD_OVERRIDE
  • SD_PASCAL
  • SD_PRIVATE
  • SD_PROTECTED
  • SD_PUBLIC
  • SD_PUBLISHED
  • SD_READ
  • SD_REFERENCE
  • SD_REGISTER
  • SD_REINTRODUCE
  • SD_RESIDENT
  • SD_SEALED
  • SD_SPECIALIZE
  • SD_STATIC
  • SD_STDCALL
  • SD_STORED
  • SD_STRICT
  • SD_VIRTUAL
  • SD_WRITE
  • SD_DEPRECATED
  • SD_SAFECALL
  • SD_PLATFORM
  • SD_VARARGS
  • SD_FINAL
  • SD_UNIMPLEMENTED

Source: source/component/PasDoc_Tokenizer.pas (line 149).

TStandardDirectives = set of TStandardDirective;

This item has no description.

Source: source/component/PasDoc_Tokenizer.pas (line 206).

TSymbolType = (...);

enumeration type that provides all types of symbols; each symbol's name starts with SYM_

Values
  • SYM_PLUS
  • SYM_MINUS
  • SYM_ASTERISK
  • SYM_SLASH
  • SYM_EQUAL
  • SYM_LESS_THAN
  • SYM_LESS_THAN_EQUAL
  • SYM_GREATER_THAN
  • SYM_GREATER_THAN_EQUAL
  • SYM_LEFT_BRACKET
  • SYM_RIGHT_BRACKET
  • SYM_COMMA
  • SYM_LEFT_PARENTHESIS
  • SYM_RIGHT_PARENTHESIS
  • SYM_COLON
  • SYM_SEMICOLON
  • SYM_DEREFERENCE
  • SYM_PERIOD
  • SYM_AT
  • SYM_DOLLAR
  • SYM_ASSIGN
  • SYM_RANGE
  • SYM_POWER
  • SYM_BACKSLASH: SYM_BACKSLASH may occur when writing char constant "ˆ\", see ../../tests/ok_caret_character.pas
  • SYM_DOUBLE_QUOTE: May occur in assembler blocks, see ../../tests/ok_asm.pas

Source: source/component/PasDoc_Tokenizer.pas (line 226).

TTokenList = specialize TObjectList<TToken>;

This item has no description.

Source: source/component/PasDoc_Tokenizer.pas (line 333).

Constants

TOKEN_TYPE_NAMES: array[TTokenType] of string = ( 'whitespace', 'comment ((**)-style)', 'comment ({}-style)', 'comment (///-style)', 'comment (//-style)', 'identifier', 'number', 'string', 'symbol', 'directive', 'reserved word', 'AT&T assembler register name', 'double-quoted string');

Names of the token types. All start with lower letter. They should somehow describe (in a few short words) given TTokenType.

Source: source/component/PasDoc_Tokenizer.pas (line 212).

TokenCommentTypes: set of TTokenType = [ TOK_COMMENT_PAS, TOK_COMMENT_EXT, TOK_COMMENT_HELPINSIGHT, TOK_COMMENT_CSTYLE ];

This item has no description.

Source: source/component/PasDoc_Tokenizer.pas (line 218).

SymbolNames: array[TSymbolType] of string = ( '+', '-', '*', '/', '=', '<', '<=', '>', '>=', '[', ']', ',', '(', ')', ':', ';', 'ˆ', '.', '@', '$', ':=', '..', '**', '\', '"' );

Symbols as strings. They can be useful to have some mapping TSymbolType -> string, but remember that actually some symbols in tokenizer have multiple possible representations, e.g. "right bracket" is usually given as "]" but can also be written as ".)".

Source: source/component/PasDoc_Tokenizer.pas (line 244).

KeyWordArray: array[Low(TKeyword)..High(TKeyword)] of string = ('x', 'AND', 'ARRAY', 'AS', 'ASM', 'BEGIN', 'CASE', 'CLASS', 'OBJCCLASS', 'CONST', 'CONSTRUCTOR', 'DESTRUCTOR', 'DISPINTERFACE', 'DIV', 'DO', 'DOWNTO', 'ELSE', 'END', 'EXCEPT', 'EXPORTS', 'FILE', 'FINALIZATION', 'FINALLY', 'FOR', 'FUNCTION', 'GOTO', 'IF', 'IMPLEMENTATION', 'IN', 'INHERITED', 'INITIALIZATION', 'INLINE', 'INTERFACE', 'IS', 'LABEL', 'LIBRARY', 'MOD', 'NIL', 'NOT', 'OBJECT', 'OF', 'OR', 'PACKED', 'PROCEDURE', 'PROGRAM', 'PROPERTY', 'RAISE', 'RECORD', 'REPEAT', 'RESOURCESTRING', 'SET', 'SHL', 'SHR', 'STRING', 'THEN', 'THREADVAR', 'TO', 'TRY', 'TYPE', 'UNIT', 'UNTIL', 'USES', 'VAR', 'WHILE', 'WITH', 'XOR');

all Object Pascal keywords

Source: source/component/PasDoc_Tokenizer.pas (line 461).

StandardDirectiveArray: array[Low(TStandardDirective)..High(TStandardDirective)] of PChar = ('x', 'ABSOLUTE', 'ABSTRACT', 'APIENTRY', 'ASSEMBLER', 'AUTOMATED', 'CDECL', 'CVAR', 'DEFAULT', 'DISPID', 'DYNAMIC', 'EXPERIMENTAL', 'EXPORT', 'EXTERNAL', 'FAR', 'FORWARD', 'GENERIC', 'HELPER', 'INDEX', 'INLINE', 'MESSAGE', 'NAME', 'NEAR', 'NODEFAULT', 'NORETURN', 'ON', 'OPERATOR', 'OUT', 'OVERLOAD', 'OVERRIDE', 'PASCAL', 'PRIVATE', 'PROTECTED', 'PUBLIC', 'PUBLISHED', 'READ', 'REFERENCE', 'REGISTER', 'REINTRODUCE', 'RESIDENT', 'SEALED', 'SPECIALIZE', 'STATIC', 'STDCALL', 'STORED', 'STRICT', 'VIRTUAL', 'WRITE', 'DEPRECATED', 'SAFECALL', 'PLATFORM', 'VARARGS', 'FINAL', 'UNIMPLEMENTED');

Object Pascal directives

Source: source/component/PasDoc_Tokenizer.pas (line 475).

Authors

  • Johannes Berg <johannes@sipsolutions.de>
  • Ralf Junker (delphi@zeitungsjunge.de)
  • Marco Schmidt (marcoschmidt@geocities.com)
  • Michalis Kamburelis
  • Arno Garrels <first name.name@nospamgmx.de>


PasDoc's autodoc: PasDoc_Tokenizer: Class TToken

Class TToken

Description
Hierarchy
Fields
Methods
Properties

Unit

PasDoc_Tokenizer

Declaration

type TToken = class(TObject)

Description

Stores the exact type and additional information on one token.

Source: source/component/PasDoc_Tokenizer.pas (line 250).

Hierarchy

  • TObject
  • TToken
Show Additional Members:

Overview

Fields

Public | Data: string;
Public | MyType: TTokenType;
Public | Info: record
Public | CommentContent: string;
Public | StringContent: string;

Methods

Public | constructor Create(const TT: TTokenType);
Public | function GetTypeName: string;
Public | function IsSymbol(const ASymbolType: TSymbolType): Boolean;
Public | function IsKeyWord(const AKeyWord: TKeyWord): Boolean;
Public | function IsStandardDirective( const AStandardDirective: TStandardDirective): Boolean;
Public | function Description: string;

Properties

Public | property StreamName: string read FStreamName;
Public | property StreamAbsoluteFileName: string read FStreamAbsoluteFileName;
Public | property BeginPosition: Int64 read FBeginPosition;
Public | property EndPosition: Int64 read FEndPosition;
Public | property Line: Integer read FLine;

Description

Fields

Public Data: string;

the exact character representation of this token as it was found in the input file

Source: source/component/PasDoc_Tokenizer.pas (line 260).

Public MyType: TTokenType;

the type of this token as TTokenType

Source: source/component/PasDoc_Tokenizer.pas (line 263).

Public Info: record

additional information on this token as a variant record depending on the token's MyType

Source: source/component/PasDoc_Tokenizer.pas (line 267).

Public CommentContent: string;

Contents of a comment token. This is defined only when MyType is in TokenCommentTypes or is TOK_DIRECTIVE. This is the text within the comment without comment delimiters. For TOK_DIRECTIVE you can safely assume that CommentContent[1] = '$'.

Source: source/component/PasDoc_Tokenizer.pas (line 282).

Public StringContent: string;

Contents of the string token, that is: the value of the string literal. D only when MyType is TOK_STRING.

Source: source/component/PasDoc_Tokenizer.pas (line 286).

Methods

Public constructor Create(const TT: TTokenType);

Create a token of and assign the argument token type to MyType

Source: source/component/PasDoc_Tokenizer.pas (line 289).

Public function GetTypeName: string;

This item has no description.

Source: source/component/PasDoc_Tokenizer.pas (line 290).

Public function IsSymbol(const ASymbolType: TSymbolType): Boolean;

Does MyType is TOK_SYMBOL and Info.SymbolType is ASymbolType ?

Source: source/component/PasDoc_Tokenizer.pas (line 293).

Public function IsKeyWord(const AKeyWord: TKeyWord): Boolean;

Does MyType is TOK_KEYWORD and Info.KeyWord is AKeyWord ?

Source: source/component/PasDoc_Tokenizer.pas (line 296).

Public function IsStandardDirective( const AStandardDirective: TStandardDirective): Boolean;

Does MyType is TOK_IDENTIFIER and Info.StandardDirective is AStandardDirective ?

Source: source/component/PasDoc_Tokenizer.pas (line 300).

Public function Description: string;

Few words long description of this token. Describes MyType and Data (for those tokens that tend to have short Data). Starts with lower letter.

Source: source/component/PasDoc_Tokenizer.pas (line 306).

Properties

Public property StreamName: string read FStreamName;

Informative to user name of the stream from which this token was read. This can be a filename (relative or absolute, however user specified it), but it also can be something arbitrary like "$if / $elseif condition". So don't treat it like a reliable filename.

It is currently used to set TRawDescriptionInfo.StreamName.

Source: source/component/PasDoc_Tokenizer.pas (line 314).

Public property StreamAbsoluteFileName: string read FStreamAbsoluteFileName;

Filename, always absolute, of the underlying file of this stream. Empty ('') if this is not a file stream.

Source: source/component/PasDoc_Tokenizer.pas (line 318).

Public property BeginPosition: Int64 read FBeginPosition;

BeginPosition is the position in the stream of the start of the token. It is currently used to set TRawDescriptionInfo.BeginPosition.

Source: source/component/PasDoc_Tokenizer.pas (line 322).

Public property EndPosition: Int64 read FEndPosition;

EndPosition is the position in the stream of the character immediately after the end of the token. It is currently used to set TRawDescriptionInfo.EndPosition.

Source: source/component/PasDoc_Tokenizer.pas (line 327).

Public property Line: Integer read FLine;

Line number (1-based) in the stream where this token starts.

Source: source/component/PasDoc_Tokenizer.pas (line 330).


PasDoc's autodoc: PasDoc_Tokenizer: Class TTokenizer

Class TTokenizer

Description
Hierarchy
Fields
Methods
Properties

Unit

PasDoc_Tokenizer

Declaration

type TTokenizer = class(TObject)

Description

Converts an input TStream to a sequence of TToken objects.

Source: source/component/PasDoc_Tokenizer.pas (line 336).

Hierarchy

  • TObject
  • TTokenizer
Show Additional Members:

Overview

Fields

Protected | FOnMessage: TPasDocMessageEvent;
Protected | FVerbosity: Cardinal;
Protected | BufferedChar: Char;
Protected | EOS: Boolean;
Protected | IsCharBuffered: Boolean;
Protected | Line: Integer;
Protected | Stream: TStream;
Protected | FStreamName: string;
Protected | FStreamAbsoluteFileName: string;

Methods

Protected | procedure DoError(const AMessage: string; const AArguments: array of const);
Protected | procedure DoMessage(const AVerbosity: Cardinal; const MessageType: TPasDocMessageType; const AMessage: string; const AArguments: array of const);
Protected | procedure CheckForDirective(const t: TToken);
Protected | procedure ConsumeChar;
Protected | function CreateSymbolToken(const st: TSymbolType; const s: string): TToken; overload;
Protected | function CreateSymbolToken(const st: TSymbolType): TToken; overload;
Protected | function GetChar(out c: AnsiChar ): Integer;
Protected | function PeekChar(out c: Char): Boolean;
Protected | function ReadCommentType1: TToken;
Protected | function ReadCommentType2: TToken;
Protected | function ReadCommentType3: TToken;
Protected | function ReadAttAssemblerRegister: TToken;
Protected | function ReadLiteralString: TToken;
Protected | function ReadDoubleQuotedString: TToken;
Protected | function ReadToken(const StartChar: Char; const AllowedChars: TCharSet; const TokenType: TTokenType; out T: TToken): Boolean;
Protected | function ReadIdentifierToken(const StartChar: Char; out T: TToken): Boolean;
Public | constructor Create( const AStream: TStream; const OnMessageEvent: TPasDocMessageEvent; const VerbosityLevel: Cardinal; const AStreamName, AStreamAbsoluteFileName: string);
Public | destructor Destroy; override;
Public | function HasData: Boolean;
Public | function GetStreamInfo: string;
Public | function GetToken(const NilOnEnd: Boolean = false; const NilOnInvalidContent: Boolean = false): TToken;
Public | procedure UnGetToken(var T: TToken);
Public | function SkipUntilCompilerDirective: TToken;

Properties

Public | property OnMessage: TPasDocMessageEvent read FOnMessage write FOnMessage;
Public | property Verbosity: Cardinal read FVerbosity write FVerbosity;
Public | property StreamName: string read FStreamName;
Public | property StreamAbsoluteFileName: string read FStreamAbsoluteFileName;

Description

Fields

Protected FOnMessage: TPasDocMessageEvent;

This item has no description.

Source: source/component/PasDoc_Tokenizer.pas (line 342).

Protected FVerbosity: Cardinal;

This item has no description.

Source: source/component/PasDoc_Tokenizer.pas (line 343).

Protected BufferedChar: Char;

if IsCharBuffered is true, this field contains the buffered character

Source: source/component/PasDoc_Tokenizer.pas (line 346).

Protected EOS: Boolean;

true if end of stream Stream has been reached, false otherwise

Source: source/component/PasDoc_Tokenizer.pas (line 348).

Protected IsCharBuffered: Boolean;

if this is true, BufferedChar contains a buffered character; the next call to GetChar or PeekChar will return this character, not the next in the associated stream Stream

Source: source/component/PasDoc_Tokenizer.pas (line 352).

Protected Line: Integer;

current line number in stream Stream; useful when giving error messages

Source: source/component/PasDoc_Tokenizer.pas (line 354).

Protected Stream: TStream;

Input stream this tokenizer is working on. In case of STRING_UNICODE, all reads should go through the TStreamReader API, so underlying TStream is not exposed as a field even.

Source: source/component/PasDoc_Tokenizer.pas (line 361).

Protected FStreamName: string;

This item has no description.

Source: source/component/PasDoc_Tokenizer.pas (line 363).

Protected FStreamAbsoluteFileName: string;

This item has no description.

Source: source/component/PasDoc_Tokenizer.pas (line 364).

Methods

Protected procedure DoError(const AMessage: string; const AArguments: array of const);

This item has no description.

Source: source/component/PasDoc_Tokenizer.pas (line 366).

Protected procedure DoMessage(const AVerbosity: Cardinal; const MessageType: TPasDocMessageType; const AMessage: string; const AArguments: array of const);

This item has no description.

Source: source/component/PasDoc_Tokenizer.pas (line 367).

Protected procedure CheckForDirective(const t: TToken);

This item has no description.

Source: source/component/PasDoc_Tokenizer.pas (line 370).

Protected procedure ConsumeChar;

This item has no description.

Source: source/component/PasDoc_Tokenizer.pas (line 371).

Protected function CreateSymbolToken(const st: TSymbolType; const s: string): TToken; overload;

This item has no description.

Source: source/component/PasDoc_Tokenizer.pas (line 373).

Protected function CreateSymbolToken(const st: TSymbolType): TToken; overload;

Uses default symbol representation, from SymbolNames[st]

Source: source/component/PasDoc_Tokenizer.pas (line 377).

Protected function GetChar(out c: AnsiChar ): Integer;

Read next character (WideChar in case of STRING_UNICODE). Returns how many bytes this character takes, or 0 if cannot read.

Source: source/component/PasDoc_Tokenizer.pas (line 381).

Protected function PeekChar(out c: Char): Boolean;

This item has no description.

Source: source/component/PasDoc_Tokenizer.pas (line 382).

Protected function ReadCommentType1: TToken;

This item has no description.

Source: source/component/PasDoc_Tokenizer.pas (line 383).

Protected function ReadCommentType2: TToken;

This item has no description.

Source: source/component/PasDoc_Tokenizer.pas (line 384).

Protected function ReadCommentType3: TToken;

This item has no description.

Source: source/component/PasDoc_Tokenizer.pas (line 385).

Protected function ReadAttAssemblerRegister: TToken;

This item has no description.

Source: source/component/PasDoc_Tokenizer.pas (line 386).

Protected function ReadLiteralString: TToken;

This item has no description.

Source: source/component/PasDoc_Tokenizer.pas (line 387).

Protected function ReadDoubleQuotedString: TToken;

This item has no description.

Source: source/component/PasDoc_Tokenizer.pas (line 388).

Protected function ReadToken(const StartChar: Char; const AllowedChars: TCharSet; const TokenType: TTokenType; out T: TToken): Boolean;

Read the rest of token of type TokenType, knowing the 1st character of this token is StartChar, and subsequent characters of this token are in set AllowedChars.

Returns True and sets T if we successfully read such token, returns False (and sets T to Nil) otherwise. The False result means we encountered an error reading the next character from stream (we are not at end of stream, but TTokenizer.GetChar returned 0).

Source: source/component/PasDoc_Tokenizer.pas (line 398).

Protected function ReadIdentifierToken(const StartChar: Char; out T: TToken): Boolean;

Like ReadToken, but for identifiers. The set of valid subsequent characters is defined by IsIdentifierOtherChar function, and the token type is always TOK_IDENTIFIER.

Source: source/component/PasDoc_Tokenizer.pas (line 404).

Public constructor Create( const AStream: TStream; const OnMessageEvent: TPasDocMessageEvent; const VerbosityLevel: Cardinal; const AStreamName, AStreamAbsoluteFileName: string);

Creates a TTokenizer and associates it with given input TStream. Note that AStream will be freed when this object will be freed.

Source: source/component/PasDoc_Tokenizer.pas (line 408).

Public destructor Destroy; override;

Releases all dynamically allocated memory.

Source: source/component/PasDoc_Tokenizer.pas (line 414).

Public function HasData: Boolean;

This item has no description.

Source: source/component/PasDoc_Tokenizer.pas (line 415).

Public function GetStreamInfo: string;

This item has no description.

Source: source/component/PasDoc_Tokenizer.pas (line 416).

Public function GetToken(const NilOnEnd: Boolean = false; const NilOnInvalidContent: Boolean = false): TToken;

Get next token from stream.

Parameters
NilOnEnd
If True, return Nil once stream ends. Otherwise we make exception about it.
NilOnInvalidContent
If True, return Nil on some invalid content, like "!" which is not Pascal token at all. This parameter is independent from NilOnEnd. The "invalid content" affected by this parameter is still something that "we can read to advance our position within the stream".

Source: source/component/PasDoc_Tokenizer.pas (line 428).

Public procedure UnGetToken(var T: TToken);

Makes the token T next to be returned by GetToken. Also sets T to Nil, to prevent you from freeing it accidentally.

You cannot have more than one "unget" token. If you only call UnGetToken after some GetToken, you are safe.

Source: source/component/PasDoc_Tokenizer.pas (line 436).

Public function SkipUntilCompilerDirective: TToken;

Skip all chars until it encounters some compiler directive, like $ELSE or $ENDIF. Returns either Nil or a token with MyType = TOK_DIRECTIVE.

Source: source/component/PasDoc_Tokenizer.pas (line 441).

Properties

Public property OnMessage: TPasDocMessageEvent read FOnMessage write FOnMessage;

This item has no description.

Source: source/component/PasDoc_Tokenizer.pas (line 443).

Public property Verbosity: Cardinal read FVerbosity write FVerbosity;

This item has no description.

Source: source/component/PasDoc_Tokenizer.pas (line 444).

Public property StreamName: string read FStreamName;

Informative to user name of the stream from which this token was read. This can be a filename (relative or absolute, however user specified it), but it also can be something arbitrary like "$if / $elseif condition".

So don't treat it like a reliable filename, for this use StreamAbsoluteFileName.

Source: source/component/PasDoc_Tokenizer.pas (line 452).

Public property StreamAbsoluteFileName: string read FStreamAbsoluteFileName;

Filename, always absolute, of the underlying file of this stream. Empty ('') if this is not a file stream.

Source: source/component/PasDoc_Tokenizer.pas (line 456).


PasDoc's autodoc: PasDoc_Types

Unit PasDoc_Types

Description
Uses
Classes, Interfaces, Objects and Records
Functions and Procedures
Types

Description

Basic types.

Source: source/component/PasDoc_Types.pas (line 27).

Uses

  • SysUtils
  • StrUtils
  • Types
  • Classes

Overview

Classes, Interfaces, Objects and Records

Name | Description
Class EPasDoc | Exception raised in many situations when PasDoc encounters an error.

Functions and Procedures

function SplitNameParts(S: string; out NameParts: TNameParts): Boolean;
function StripNamePart(const NameParts: TNameParts): TNameParts;
function IsValidMultipartName(S: string): boolean;
function OneNamePart(const S: string): TNameParts;
function GlueNameParts(const NameParts: TNameParts): string;
function StringToImplicitVisibility(const S: String): TImplicitVisibility;

Types

TBytes = array of Byte;
UnicodeString = WideString;
RawByteString = AnsiString;
TStringArray = TStringDynArray;
TNameParts = TStringArray;
TPasDocMessageType = (...);
TPasDocMessageEvent = procedure(const MessageType: TPasDocMessageType; const AMessage: string; const AVerbosity: Cardinal) of object;
TCharSet = set of AnsiChar;
TImplicitVisibility = (...);

Description

Functions and Procedures

function SplitNameParts(S: string; out NameParts: TNameParts): Boolean;

Splits S, which can be made of any number of parts, separated by dots (Delphi namespaces, like PasDoc.Output.HTML.TWriter.Write). If S is not a valid identifier, False is returned, otherwise True is returned and splitted name is returned as NameParts.

Source: source/component/PasDoc_Types.pas (line 107).

function StripNamePart(const NameParts: TNameParts): TNameParts;

Strip one name part. Only call when we have at least 2 parts.

Source: source/component/PasDoc_Types.pas (line 110).

function IsValidMultipartName(S: string): boolean;

Checks that the string is a valid multipart identifier

Source: source/component/PasDoc_Types.pas (line 113).

function OneNamePart(const S: string): TNameParts;

Simply returns an array with Length = 1 and one item = S.

TODO: This function, and all its usage, should be removed. Reason: all identifiers across Pascal code are potentially qualified. Using this function right now means e.g. that using ancestor names with qualified identifiers, like "TMyClass = class(OtherUnit.TAncestor)", is not resolved fully (they are not linked everywhere they should be).

Source: source/component/PasDoc_Types.pas (line 122).

function GlueNameParts(const NameParts: TNameParts): string;

Simply concatenates all NameParts with dot.

Source: source/component/PasDoc_Types.pas (line 125).

function StringToImplicitVisibility(const S: String): TImplicitVisibility;

This item has no description.

Source: source/component/PasDoc_Types.pas (line 132).

Types

TBytes = array of Byte;

This item has no description.

Source: source/component/PasDoc_Types.pas (line 38).

UnicodeString = WideString;

This item has no description.

Source: source/component/PasDoc_Types.pas (line 41).

RawByteString = AnsiString;

This item has no description.

Source: source/component/PasDoc_Types.pas (line 42).

TStringArray = TStringDynArray;

Dynamic array of String.

Source: source/component/PasDoc_Types.pas (line 53).

TNameParts = TStringArray;

Qualified name of a Pascal item.

User supplies such name by separating each part with dot, e.g. 'UnitName.ClassName.MethodName', then SplitNameParts converts it to TNameParts like ['UnitName', 'ClassName', 'MethodName'].

Note that in case of unit names with dots, the item on this list may also contain a dot inside, if it's determined to be a name of unit with dot. Like this: ['Unit.Name.With.Dot', 'ClassName', 'MethodName']. We have special code to do this in TDocGenerator.FindGlobal .

The idea is that each string corresponds to some TBaseItem.Name.

Use such list for searching routines, for TBaseItem.FindItem and friends.

This must always have at least one part.

There is no limit on the maximum length of TNameParts, since we can have arbitrary number of parts with nested classes, like "MyUnit.TMyClass.TMyNestedClass.TAnotherNestedClass.TOriginalType".

Source: source/component/PasDoc_Types.pas (line 76).

TPasDocMessageType = (...);

Message type to send with TPasDocMessageEvent.

Values
  • pmtPlainText
  • pmtInformation
  • pmtWarning
  • pmtError

Source: source/component/PasDoc_Types.pas (line 79).

TPasDocMessageEvent = procedure(const MessageType: TPasDocMessageType; const AMessage: string; const AVerbosity: Cardinal) of object;

Callback to send a message from one class and react to it in another.

TCharSet = set of AnsiChar;

Set of AnsiChars.

Source: source/component/PasDoc_Types.pas (line 86).

TImplicitVisibility = (...);

See command-line option --implicit-visibility documentation at --implicit-visibility documentation.

Values
  • ivPublic
  • ivPublished
  • ivImplicit

Source: source/component/PasDoc_Types.pas (line 130).

Authors

  • Johannes Berg <johannes@sipsolutions.de>
  • Michalis Kamburelis
  • Arno Garrels <first name.name@nospamgmx.de>


PasDoc's autodoc: PasDoc_Types: Class EPasDoc

Class EPasDoc

Description
Hierarchy
Methods

Unit

PasDoc_Types

Declaration

type EPasDoc = class(Exception)

Description

Exception raised in many situations when PasDoc encounters an error.

Source: source/component/PasDoc_Types.pas (line 89).

Hierarchy

  • TObject
  • Exception
  • EPasDoc
Show Additional Members:

Overview

Methods

Public | constructor Create(const AMessageFormat: string; const AArguments: array of const; const AExitCode: Word = 3); overload;
Public | constructor Create(const AMessage: string; const AExitCode: Word = 3); overload;

Description

Methods

Public constructor Create(const AMessageFormat: string; const AArguments: array of const; const AExitCode: Word = 3); overload;

This item has no description.

Source: source/component/PasDoc_Types.pas (line 91).

Public constructor Create(const AMessage: string; const AExitCode: Word = 3); overload;

This item has no description.

Source: source/component/PasDoc_Types.pas (line 94).


PasDoc's autodoc: PasDoc_Utils

Unit PasDoc_Utils

Description
Uses
Classes, Interfaces, Objects and Records
Functions and Procedures
Constants

Description

Utility functions.

Source: source/component/PasDoc_Utils.pas (line 29).

Uses

  • Classes
  • SysUtils
  • PasDoc_Types

Overview

Classes, Interfaces, Objects and Records

Name | Description
Record TCharReplacement |

Functions and Procedures

function IsStrEmptyA(const AString: string): boolean;
function StrCountCharA(const AString: string; const AChar: Char): Integer;
function StrPosIA(const ASub, AString: string): Integer;
function MakeMethod(const AObject: Pointer; AMethod: Pointer): TMethod;
function StringReplaceChars(const S: string; const ReplacementArray: array of TCharReplacement): string;
function SCharIs(const S: string; Index: integer; C: char): boolean; overload;
function SCharIs(const S: string; Index: integer; const Chars: TCharSet): boolean; overload;
function ExtractFirstWord(var s: string): string; overload;
procedure ExtractFirstWord(const S: string; out FirstWord, Rest: string); overload;
procedure SkipBOM(const InputStream: TStream);
function FileToString(const FileName: string): string;
procedure StringToFile(const FileName, S: string);
procedure DataToFile(const FileName: string; const Data: array of Byte);
function SCharsReplace(const S: String; const Chars: TCharSet; const ReplacementChar: Char): string; overload;
function SCharsReplace(const S: String; const SearchChar: Char; const ReplacementChar: Char): string; overload;
procedure CopyFile(const SourceFileName, DestinationFileName: string);
function IsPrefix(const Prefix, S: string): boolean;
function RemovePrefix(const Prefix, S: string): string;
function IsSuffix(const Suffix, S: string): boolean;
function RemoveSuffix(const Suffix, S: string): string;
function SEnding(const s: string; P: integer): string;
function IsPathAbsolute(const Path: string): boolean;
function IsPathAbsoluteOnDrive(const Path: string): boolean;
function CombinePaths(BasePath, RelPath: string): string;
function DeleteFileExt(const FileName: string): string;
function RemoveIndentation(const Code: string): string;
function CheckGetFileDate(const AFileName: string): TDateTime;
function StripHtml(const S: string): string;
function SAppendPart(const s, PartSeparator, NextPart: String): String;
function CharsPos(const Chars: TCharSet; const S: String): Integer;
function SRemoveChars(const S: string; const Chars: TCharSet): string;
function ConvertHelpInsightDescription(const Description: string): string;

Constants

AllChars = [Low(AnsiChar)..High(AnsiChar)];
WhiteSpaceNotNL = [' ', #9];
WhiteSpaceNL = [#10, #13];
WhiteSpace = WhiteSpaceNotNL + WhiteSpaceNL;
FlagStartSigns = ['['];
FlagEndSigns = [']'];

Description

Functions and Procedures

function IsStrEmptyA(const AString: string): boolean;

string empty means it contains only whitespace

Source: source/component/PasDoc_Utils.pas (line 41).

function StrCountCharA(const AString: string; const AChar: Char): Integer;

count occurences of AChar in AString

Source: source/component/PasDoc_Utils.pas (line 43).

function StrPosIA(const ASub, AString: string): Integer;

Position of the ASub in AString. Return 0 if not found

Source: source/component/PasDoc_Utils.pas (line 45).

function MakeMethod(const AObject: Pointer; AMethod: Pointer): TMethod;

creates a "method pointer"

Source: source/component/PasDoc_Utils.pas (line 47).

function StringReplaceChars(const S: string; const ReplacementArray: array of TCharReplacement): string;

Returns S with each char from ReplacementArray[].cChar replaced with ReplacementArray[].sSpec.

Source: source/component/PasDoc_Utils.pas (line 58).

function SCharIs(const S: string; Index: integer; C: char): boolean; overload;

Comfortable shortcut for Index <= Length(S) and S[Index] = C.

Source: source/component/PasDoc_Utils.pas (line 62).

function SCharIs(const S: string; Index: integer; const Chars: TCharSet): boolean; overload;

Comfortable shortcut for Index <= Length(S) and S[Index] in Chars.

Source: source/component/PasDoc_Utils.pas (line 64).

function ExtractFirstWord(var s: string): string; overload;

Extracts all characters up to the first white-space encountered (ignoring white-space at the very beginning of the string) from the string specified by S.

If there is no white-space in S (or there is white-space only at the beginning of S, in which case it is ignored) then the whole S is regarded as it's first word.

Both S and result are trimmed, i.e. they don't have any excessive white-space at the beginning or end.

Source: source/component/PasDoc_Utils.pas (line 77).

procedure ExtractFirstWord(const S: string; out FirstWord, Rest: string); overload;

Another version of ExtractFirstWord.

Splits S by it's first white-space (ignoring white-space at the very beginning of the string). No such white-space means that whole S is regarded as the FirstWord.

Both FirstWord and Rest are trimmed.

Source: source/component/PasDoc_Utils.pas (line 86).

procedure SkipBOM(const InputStream: TStream);

Interpret and skip the BOM in the InputStream. Assumes that initial position is at the beginning of the InputStream, and will change the position to the one immediately after BOM (or 0, if no BOM was detected).

Exceptions raised
EPasDoc
When BOM indicates UTF encoding that we cannot handle (UTF-32, UTF-16 now).

Source: source/component/PasDoc_Utils.pas (line 111).

function FileToString(const FileName: string): string;

Read the given FileName contents into a String. Use this only with text files – it does automatic UTF BOM skipping, so it assumes it is a text file, not a binary file with random contents.

Source: source/component/PasDoc_Utils.pas (line 117).

procedure StringToFile(const FileName, S: string);

Save the String content into a file. Overwrites the FileName, if it already exists.

Source: source/component/PasDoc_Utils.pas (line 121).

procedure DataToFile(const FileName: string; const Data: array of Byte);

Save the binary Data into a file. Overwrites the FileName, if it already exists.

Source: source/component/PasDoc_Utils.pas (line 125).

function SCharsReplace(const S: String; const Chars: TCharSet; const ReplacementChar: Char): string; overload;

Returns S with all Chars replaced by ReplacementChar

Source: source/component/PasDoc_Utils.pas (line 128).

function SCharsReplace(const S: String; const SearchChar: Char; const ReplacementChar: Char): string; overload;

This item has no description.

Source: source/component/PasDoc_Utils.pas (line 130).

procedure CopyFile(const SourceFileName, DestinationFileName: string);

This item has no description.

Source: source/component/PasDoc_Utils.pas (line 133).

function IsPrefix(const Prefix, S: string): boolean;

Is given Prefix a prefix of S. Not case-sensitive.

Source: source/component/PasDoc_Utils.pas (line 149).

function RemovePrefix(const Prefix, S: string): string;

If IsPrefix(Prefix, S), then remove the prefix, otherwise return unmodifed S.

Source: source/component/PasDoc_Utils.pas (line 152).

function IsSuffix(const Suffix, S: string): boolean;

Is given Suffix a suffix of S. Not case-sensitive.

Source: source/component/PasDoc_Utils.pas (line 155).

function RemoveSuffix(const Suffix, S: string): string;

If IsSuffix(Suffix, S), then remove the suffix, otherwise return unmodifed S.

Source: source/component/PasDoc_Utils.pas (line 158).

function SEnding(const s: string; P: integer): string;

SEnding returns S contents starting from position P. Returns '' if P > length(S). Yes, this is simply equivalent to Copy(S, P, MaxInt).

Source: source/component/PasDoc_Utils.pas (line 163).

function IsPathAbsolute(const Path: string): boolean;

Check is the given Path absolute.

Path may point to directory or normal file, it doesn't matter. Also it doesn't matter whether Path ends with PathDelim or not.

Note for Windows: while it's obvious that 'c:\autoexec.bat' is an absolute path, and 'autoexec.bat' is not, there's a question whether path like '\autoexec.bat' is absolute? It doesn't specify drive letter, but it does specify full directory hierarchy on some drive. This function treats this as not absolute, on the reasoning that "not all information is contained in Path".

See also
IsPathAbsoluteOnDrive
Just like IsPathAbsolute, but on Windows accepts also paths that specify full directory tree without drive letter.

Source: source/component/PasDoc_Utils.pas (line 178).

function IsPathAbsoluteOnDrive(const Path: string): boolean;

Just like IsPathAbsolute, but on Windows accepts also paths that specify full directory tree without drive letter.

See also
IsPathAbsolute
Check is the given Path absolute.

Source: source/component/PasDoc_Utils.pas (line 184).

function CombinePaths(BasePath, RelPath: string): string;

Combines BasePath with RelPath. BasePath MUST be an absolute path, on Windows it must contain at least drive specifier (like 'c:'), on Unix it must begin with "/". RelPath can be relative and can be absolute. If RelPath is absolute, result is RelPath. Else the result is an absolute path calculated by combining RelPath with BasePath.

Source: source/component/PasDoc_Utils.pas (line 192).

function DeleteFileExt(const FileName: string): string;

Remove from the FileName the last extension (including the dot). Note that if the FileName had a couple of extensions (e.g. blah.x3d.gz) this will remove only the last one. Will remove nothing if filename has no extension.

Source: source/component/PasDoc_Utils.pas (line 198).

function RemoveIndentation(const Code: string): string;

Remove common indentation (whitespace prefix) from a multiline string.

Source: source/component/PasDoc_Utils.pas (line 201).

function CheckGetFileDate(const AFileName: string): TDateTime;

This item has no description.

Source: source/component/PasDoc_Utils.pas (line 203).

function StripHtml(const S: string): string;

Strip HTML elements from the string.

Assumes that the HTML content is correct (all elements are nicely closed, all < > inside attributes are escaped to &lt; &gt;, all < > outside elements are escaped to &lt; &gt;). It doesn't try very hard to deal with incorrect HTML context (it will not crash, but results are undefined). It's designed to strip HTML from PasDoc-generated HTML, which should always be correct.

Source: source/component/PasDoc_Utils.pas (line 214).

function SAppendPart(const s, PartSeparator, NextPart: String): String;

If S = '' then returns NextPart, else returns S + PartSeparator + NextPart.

Source: source/component/PasDoc_Utils.pas (line 223).

function CharsPos(const Chars: TCharSet; const S: String): Integer;

Find first occurrence of any character in Chars in string S. This is quite like FirstDelimiter but it takes parameter as TSetOfChars and has more sensible name. Returns 0 if not found.

Source: source/component/PasDoc_Utils.pas (line 229).

function SRemoveChars(const S: string; const Chars: TCharSet): string;

Remove all instances of a character in Chars from a string.

Source: source/component/PasDoc_Utils.pas (line 232).

function ConvertHelpInsightDescription(const Description: string): string;

Convert HelpInsight description to PasDoc description, by converting HelpInsight tags like <summary>...</summary> to PasDoc @tags like @abstract.

Source: source/component/PasDoc_Utils.pas (line 236).

Constants

AllChars = [Low(AnsiChar)..High(AnsiChar)];

This item has no description.

Source: source/component/PasDoc_Utils.pas (line 90).

WhiteSpaceNotNL = [' ', #9];

Whitespace that is not any part of newline.

Source: source/component/PasDoc_Utils.pas (line 93).

WhiteSpaceNL = [#10, #13];

Whitespace that is some part of newline.

Source: source/component/PasDoc_Utils.pas (line 95).

WhiteSpace = WhiteSpaceNotNL + WhiteSpaceNL;

Any whitespace (that may indicate newline or not)

Source: source/component/PasDoc_Utils.pas (line 97).

FlagStartSigns = ['['];

Flag Start- and Endsigns for parameters (Feature request "direction of parameter": pasdoc issue 8)

Source: source/component/PasDoc_Utils.pas (line 101).

FlagEndSigns = [']'];

This item has no description.

Source: source/component/PasDoc_Utils.pas (line 102).

Authors

  • Johannes Berg <johannes@sipsolutions.de>
  • Michalis Kamburelis
  • Arno Garrels <first name.name@nospamgmx.de>


PasDoc's autodoc: PasDoc_Utils: Record TCharReplacement

Record TCharReplacement

Description
Fields

Unit

PasDoc_Utils

Declaration

type TCharReplacement = record

Description

This item has no description.

Source: source/component/PasDoc_Utils.pas (line 50).

Show Additional Members:

Overview

Fields

Public | cChar: Char;
Public | sSpec: string;

Description

Fields

Public cChar: Char;

This item has no description.

Source: source/component/PasDoc_Utils.pas (line 52).

Public sSpec: string;

This item has no description.

Source: source/component/PasDoc_Utils.pas (line 53).


PasDoc's autodoc: PasDoc_Versions

Unit PasDoc_Versions

Description
Functions and Procedures
Constants

Description

Information about PasDoc and compilers version.

Source: source/component/PasDoc_Versions.pas (line 24).

Overview

Functions and Procedures

function COMPILER_NAME: string;
function PASDOC_FULL_INFO: string;

Constants

COMPILER_BITS = '32' ;
PASDOC_NAME = 'PasDoc';
PASDOC_DATE = 'snapshot';
PASDOC_VERSION = '1.0.3.snapshot';
PASDOC_NAME_AND_VERSION = PASDOC_NAME + ' ' + PASDOC_VERSION;
PASDOC_HOMEPAGE = 'https://pasdoc.github.io/';

Description

Functions and Procedures

function COMPILER_NAME: string;

Nice compiler name. This is a function only because we can't nicely declare it as a constant. But this behaves like a constant, i.e. every time you call it it returns the same thing (as long as this is the same binary).

Source: source/component/PasDoc_Versions.pas (line 38).

function PASDOC_FULL_INFO: string;

Returns pasdoc name, version, used compiler version, etc.

This is a function only because we can't nicely declare it as a constant. But this behaves like a constant, i.e. every time you call it it returns the same thing (as long as this is the same binary).

Source: source/component/PasDoc_Versions.pas (line 106).

Constants

COMPILER_BITS = '32' ;

This item has no description.

Source: source/component/PasDoc_Versions.pas (line 41).

PASDOC_NAME = 'PasDoc';

This item has no description.

Source: source/component/PasDoc_Versions.pas (line 79).

PASDOC_DATE = 'snapshot';

PASDOC_DATE = '2026-03-30';

Source: source/component/PasDoc_Versions.pas (line 92).

PASDOC_VERSION = '1.0.3.snapshot';

PASDOC_VERSION = '1.0.2';

Source: source/component/PasDoc_Versions.pas (line 95).

PASDOC_NAME_AND_VERSION = PASDOC_NAME + ' ' + PASDOC_VERSION;

This item has no description.

Source: source/component/PasDoc_Versions.pas (line 97).

PASDOC_HOMEPAGE = 'https://pasdoc.github.io/';

This item has no description.

Source: source/component/PasDoc_Versions.pas (line 99).


PasDoc's autodoc: Class Hierarchy

Class Hierarchy

  • Contnrs.TObjectStack
    • TCioStateStack
  • TObject
    • Exception
      • EAnchorAlreadyExists
      • EInternalParserError
      • EInvalidCacheFileVersion
      • EInvalidSortSetting
      • EPasDoc
        • EInvalidIfCondition
        • ETokenizerStreamEnd
      • ESerializedException
    • TAspellProcess
    • TCioState
    • TList
      • TObjectList
        • TBaseItems
          • TPasItems
            • TPasProperties
            • TPasRoutines
            • TPasTypes
              • TPasNestedCios
            • TPasUnits
        • TListData
        • TStringPairVector
        • TTableData
        • TTagVector
    • TListItemData
    • TOption
      • TBoolOption
      • TValueOption
        • TIntegerOption
        • TSetOption
        • TStringOption
        • TStringOptionList
          • TPathListOption
    • TOptionParser
    • TParser
    • TPasDocLanguages
    • TPasItemNode
    • TPersistent
      • TComponent
        • TDocGenerator
          • TGenericHTMLDocGenerator
            • THTMLDocGenerator
            • THTMLHelpDocGenerator
          • TPHPDocGenerator
          • TSimpleXMLDocGenerator
          • TTexDocGenerator
        • TPasDoc
        • TProcessLineTalk
      • TStrings
        • TStringList
          • TStringVector
    • TRawDescriptionInfoList
    • TRowData
    • TScanner
    • TSerializable
      • TBaseItem
        • TAnchorItem
        • TExternalItem
        • TPasItem
          • TPasConstant
          • TPasFieldVariable
          • TPasProperty
          • TPasRoutine
          • TPasType
            • TPasAliasType
            • TPasCio
            • TPasEnum
          • TPasUnit
    • TSpellingError
    • TStringCardinalTree
    • TStringPair
    • TTag
      • TNonSelfTag
      • TTopLevelTag
    • TTagManager
    • TTextReader
    • TToken
    • TTokenizer


PasDoc's autodoc: All Classes, Interfaces, Objects and Records

All Classes, Interfaces, Objects and Records

Name Unit Description
EAnchorAlreadyExists PasDoc_Items

EInternalParserError PasDoc_Parser

Raised when an impossible situation (indicating bug in pasdoc) occurs.
EInvalidCacheFileVersion PasDoc_Serialize

EInvalidIfCondition PasDoc_Scanner

EInvalidSortSetting PasDoc_SortSettings

EPasDoc PasDoc_Types

Exception raised in many situations when PasDoc encounters an error.
ESerializedException PasDoc_Serialize

ETokenizerStreamEnd PasDoc_Scanner

TAnchorItem PasDoc_Items

TAspellProcess PasDoc_Aspell

This is a class to interface with aspell through pipe.
TBaseItem PasDoc_Items

This is a basic item class, that is linkable, and has some RawDescription.
TBaseItems PasDoc_Items

Container class to store a list of TBaseItems.
TBoolOption PasDoc_OptionParser

Boolean option, "on" if was specified.
TCharReplacement PasDoc_Utils

TCioState PasDoc_Parser

State of parsing a structure (called "CIO" throughout PasDoc codebase).
TCioStateStack PasDoc_Parser

A stack of TCioState objects currently used to parse nested classes and records.
TDocGenerator PasDoc_Gen

Base generator class, to be specialized for specific output formats.
TExternalItem PasDoc_Items

TExternalItem extends TBaseItem to store extra information about a project.
TGenericHTMLDocGenerator PasDoc_GenHtml

HTML documentation generator.
THTMLDocGenerator PasDoc_GenHtml

Right now this is the same thing as TGenericHTMLDocGenerator.
THTMLHelpDocGenerator PasDoc_GenHtmlHelp

TIntegerOption PasDoc_OptionParser

Option that accepts additional Integer as a value.
TLanguageRecord PasDoc_Languages

TListData PasDoc_Gen

Collected information about @xxxList content.
TListItemData PasDoc_Gen

Collected information about @xxxList item.
TNonSelfTag PasDoc_TagManager

TOption PasDoc_OptionParser

Base class for options.
TOptionParser PasDoc_OptionParser

OptionParser — instantiate one of these for commandline parsing
TOverviewFileInfo PasDoc_Gen

TParser PasDoc_Parser

Parser class that will process a complete unit file and all of its include files, regarding directives.
TPasAliasType PasDoc_Items

Alias type
TPasCio PasDoc_Items

Extends TPasItem to store all items in a class / an object, e.g. fields.
TPasConstant PasDoc_Items

Pascal constant.
TPasDoc PasDoc_Base

Manages parsing and documentation generation.
TPasDocLanguages PasDoc_Languages

Language class to hold all translated strings
TPasEnum PasDoc_Items

Enumerated type.
TPasFieldVariable PasDoc_Items

Global variable or a field in CIO.
TPasItem PasDoc_Items

This is a TBaseItem descendant that is always declared inside some Pascal source file.
TPasItemNode PasDoc_HierarchyTree

TPasItems PasDoc_Items

Container class to store a list of TPasItems.
TPasNestedCios PasDoc_Items

Collection of CIOs (classes, records, interfaces...) nested in outer CIO.
TPasProperties PasDoc_Items

Collection of properties.
TPasProperty PasDoc_Items

TPasRoutine PasDoc_Items

This represents:

  1. global function/procedure,

  2. method (function/procedure of a structure (TPasCio)),

  3. type (pointer to one of the above) (in this case Name is the type name).
TPasRoutines PasDoc_Items

Collection of methods.
TPasType PasDoc_Items

Pascal type (but not a procedural type — these are expressed as TPasRoutine.)
TPasTypes PasDoc_Items

List of types.
TPasUnit PasDoc_Items

extends TPasItem to store anything about a unit, its constants, types etc.; also provides methods for parsing a complete unit.
TPasUnits PasDoc_Items

Collection of units.
TPathListOption PasDoc_OptionParser

pathlist option
TPHPDocGenerator PasDoc_GenPHP

PHP output generator.
TProcessLineTalk PasDoc_ProcessLineTalk

This is a subclass of TProcess that allows to easy "talk" with executed process by pipes (read process stdout/stderr, write to process stdin) on a line-by-line basis.
TRawDescriptionInfo PasDoc_Items

Raw description, in other words: the contents of comment before given item.
TRawDescriptionInfoList PasDoc_Parser

TRawDescriptionInfoList stores a series of TRawDescriptionInfos.
TRowData PasDoc_Gen

Collected information about @row (or @rowHead).
TScanner PasDoc_Scanner

Scanner for Pascal, producing tokens and interpreting conditionals

Returns tokens from a Pascal language source code input stream.
TSerializable PasDoc_Serialize

TSetOption PasDoc_OptionParser

Option that allows to define a set.
TSimpleXMLDocGenerator PasDoc_GenSimpleXML

TSpellingError PasDoc_Aspell

Single misspelling found by TAspellProcess.CheckString.
TStringCardinalTree PasDoc_HierarchyTree

TStringOption PasDoc_OptionParser

Option that accepts additional string as a value.
TStringOptionList PasDoc_OptionParser

stringlist option
TStringPair PasDoc_StringPairVector

TStringPairVector PasDoc_StringPairVector

List of string pairs.
TStringVector PasDoc_StringVector

TTableData PasDoc_Gen

Collected information about @table.
TTag PasDoc_TagManager

TTagManager PasDoc_TagManager

TTagVector PasDoc_TagManager

List of TTag objects (only non-nil).
TTexDocGenerator PasDoc_GenLatex

LaTeX documentation generator.
TTextReader PasDoc_ProcessLineTalk

TTextReader reads given Stream line by line.
TToken PasDoc_Tokenizer

Stores the exact type and additional information on one token.
TTokenizer PasDoc_Tokenizer

Converts an input TStream to a sequence of TToken objects.
TTopLevelTag PasDoc_TagManager

TValueOption PasDoc_OptionParser

Base class for all options that have values.


PasDoc's autodoc: All Types

All Types

Name | Unit | Description
PLanguageRecord | PasDoc_Languages |
PRawDescriptionInfo | PasDoc_Items |
PTransTable | PasDoc_Languages |
RawByteString | PasDoc_Types |
RTransTable | PasDoc_Languages | Array holding the translated strings (or strKeep or strToDo markers) for a language.
TBaseItemDictionary | PasDoc_Items |
TBufferedFileStream | PasDoc_StreamUtils |
TBytes | PasDoc_Types |
TCharSet | PasDoc_Types | Set of AnsiChars.
TCIOType | PasDoc_Items | Determine type of TPasCio item, like a class or record.
TClassDirective | PasDoc_Items |
TCreatedOverviewFile | PasDoc_Gen |
TDirectiveType | PasDoc_Scanner | All directives a scanner is going to regard.
TExternalItemList | PasDoc_Items |
THintDirective | PasDoc_Items |
THintDirectives | PasDoc_Items |
TImplicitVisibility | PasDoc_Types | See command-line option --implicit-visibility documentation at --implicit-visibility documentation.
TInfoMergeType | PasDoc_Items | Type of merging interface and implementation comments.
TInheritedMembers | PasDoc_GenHtml | Show we show inherited members (in outputs that make it possible, which right now means only HTML output).
TKeyword | PasDoc_Tokenizer |
TLanguageID | PasDoc_Languages | An enumeration type of all supported languages
TLinkContext | PasDoc_Gen | This is used by TDocGenerator.MakeItemLink
TLinkLook | PasDoc_Gen |
TLinkNotFoundAction | PasDoc_Gen |
TListItemSpacing | PasDoc_Gen |
TListType | PasDoc_Gen |
TNameParts | PasDoc_Types | Qualified name of a Pascal item.
TOverviewFile | PasDoc_Gen | Overview files that pasdoc generates for multiple-document-formats like HTML (see TGenericHTMLDocGenerator).
TParsingSection | PasDoc_Parser | Are we currently inside a const, var, type section?
TPasDocMessageEvent | PasDoc_Types | Callback to send a message from one class and react to it in another.
TPasDocMessageType | PasDoc_Types | Message type to send with TPasDocMessageEvent.
TRoutineType | PasDoc_Items | Routine type for TPasRoutine.What
TSerializableClass | PasDoc_Serialize |
TSortSetting | PasDoc_SortSettings |
TSortSettings | PasDoc_SortSettings |
TSpellingErrorList | PasDoc_Aspell |
TStandardDirective | PasDoc_Tokenizer |
TStandardDirectives | PasDoc_Tokenizer |
TStringArray | PasDoc_Types | Dynamic array of String.
TStringConverter | PasDoc_TagManager |
TStringStringDictionary | PasDoc_Items |
TSwitchOptions | PasDoc_Scanner | an array of boolean values, index type is TUpperCaseLetter
TSymbolType | PasDoc_Tokenizer | enumeration type that provides all types of symbols; each symbol's name starts with SYM_
TTagAllowedInsideEvent | PasDoc_TagManager |
TTagExecuteEvent | PasDoc_TagManager |
TTagOption | PasDoc_TagManager |
TTagOptions | PasDoc_TagManager |
TTokenList | PasDoc_Tokenizer |
TTokenType | PasDoc_Tokenizer | All types of tokens.
TTranslationID | PasDoc_Languages | All translatable string.
TTryAutoLinkEvent | PasDoc_TagManager |
TUpperCaseLetter | PasDoc_Scanner | subrange type that has the 26 lower case letters from a to z
TVisibilities | PasDoc_Items |
TVisibility | PasDoc_Items | Visibility of a field/method.
UnicodeString | PasDoc_Types |


PasDoc's autodoc: All Variables

All Variables

The units do not contain any variables.


PasDoc's autodoc: All Constants

All Constants

Name | Unit | Description
AllChars | PasDoc_Utils |
AllSortSettings | PasDoc_SortSettings |
AllVisibilities | PasDoc_Items |
CfgMacroCfgPath | PasDoc_OptionParser | Special substitution that, if found inside a config file, will be replaced with actual path of the file
CIONonHierarchy | PasDoc_Items |
CIORecordType | PasDoc_Items |
COMPILER_BITS | PasDoc_Versions |
ConsoleWidth | PasDoc_OptionParser | Width of console
DefaultVisibilities | PasDoc_Items | Default visibility, as documented on https://pasdoc.github.io/VisibleMembers
DEFAULT_LANGUAGE | PasDoc_Languages |
DEFAULT_VERBOSITY_LEVEL | PasDoc_Base |
DefLongOptionString | PasDoc_OptionParser | default long option string used
DefShortOptionChar | PasDoc_OptionParser | default short option character used
EmptyRawDescriptionInfo | PasDoc_Items |
FlagEndSigns | PasDoc_Utils |
FlagStartSigns | PasDoc_Utils | Flag Start- and Endsigns for parameters (Feature request "direction of parameter": pasdoc issue 8)
HighCreatedOverviewFile | PasDoc_Gen |
InfoMergeTypeStr | PasDoc_Items |
KeyWordArray | PasDoc_Tokenizer | all Object Pascal keywords
LowCreatedOverviewFile | PasDoc_Gen | Using High(TCreatedOverviewFile) or High(Overview) where Overview: TCreatedOverviewFile in PasDoc_GenHtml produces internal error in FPC 2.0.0.
MAX_TOKENIZERS | PasDoc_Scanner | maximum number of streams we can recurse into; first one is the unit stream, any other stream an include file; current value is 32, increase this if you have more include files recursively including others
OptionFileChar | PasDoc_OptionParser | Marks "include config file" option
OptionIndent | PasDoc_OptionParser | Indentation of option's name from the start of console line
OptionSep | PasDoc_OptionParser | Separator between option's name and explanation
OverviewFilesInfo | PasDoc_Gen |
PASDOC_DATE | PasDoc_Versions | PASDOC_DATE = '2026-03-30';
PASDOC_HOMEPAGE | PasDoc_Versions |
PASDOC_NAME | PasDoc_Versions |
PASDOC_NAME_AND_VERSION | PasDoc_Versions |
PASDOC_VERSION | PasDoc_Versions | PASDOC_VERSION = '1.0.2';
SortSettingNames | PasDoc_SortSettings | Must be lowercase.
StandardDirectiveArray | PasDoc_Tokenizer | Object Pascal directives
SymbolNames | PasDoc_Tokenizer | Symbols as strings.
TokenCommentTypes | PasDoc_Tokenizer |
TOKEN_TYPE_NAMES | PasDoc_Tokenizer | Names of the token types.
VisibilityStr | PasDoc_Items |
WhiteSpace | PasDoc_Utils | Any whitespace (that may indicate newline or not)
WhiteSpaceNL | PasDoc_Utils | Whitespace that is some part of newline.
WhiteSpaceNotNL | PasDoc_Utils | Whitespace that is not any part of newline.


PasDoc's autodoc: All Functions and Procedures

All Functions and Procedures

Name | Unit | Description
CharsPos | PasDoc_Utils | Find first occurrence of any character in Chars in string S.
CheckGetFileDate | PasDoc_Utils |
CioTypeToString | PasDoc_Items | Returns lowercased keyword(s) associated with given structure type.
CombinePaths | PasDoc_Utils | Combines BasePath with RelPath.
COMPILER_NAME | PasDoc_Versions | Nice compiler name.
ConvertHelpInsightDescription | PasDoc_Utils | Convert HelpInsight description to PasDoc description, by converting HelpInsight tags like <summary>...</summary> to PasDoc @tags like @abstract.
CopyFile | PasDoc_Utils |
DataToFile | PasDoc_Utils | Save the binary Data into a file.
DeleteFileExt | PasDoc_Utils | Remove from the FileName the last extension (including the dot).
ExtractFirstWord | PasDoc_Utils | Extracts all characters up to the first white-space encountered (ignoring white-space at the very beginning of the string) from the string specified by S.
ExtractFirstWord | PasDoc_Utils | Another version of ExtractFirstWord.
FileToString | PasDoc_Utils | Read the given FileName contents into a String.
GlueNameParts | PasDoc_Types | Simply concatenates all NameParts with dot.
IsEmpty | PasDoc_StringVector |
IsIdentifierOtherChar | PasDoc_Tokenizer | Returns true if c is a valid continuation character of a Pascal identifier: underscore, ASCII letter, ASCII digit, or non-ASCII character (Unicode letter/digit).
IsIdentifierStartChar | PasDoc_Tokenizer | Returns true if c is a valid first character of a Pascal identifier: underscore, ASCII letter, or non-ASCII character (Unicode letter).
IsPathAbsolute | PasDoc_Utils | Check is the given Path absolute.
IsPathAbsoluteOnDrive | PasDoc_Utils | Just like IsPathAbsolute, but on Windows accepts also paths that specify full directory tree without drive letter.
IsPrefix | PasDoc_Utils | Is given Prefix a prefix of S.
IsStrEmptyA | PasDoc_Utils | string empty means it contains only whitespace
IsSuffix | PasDoc_Utils | Is given Suffix a suffix of S.
IsValidMultipartName | PasDoc_Types | Checks that the string is a valid multipart identifier
KeyWordByName | PasDoc_Tokenizer | Checks is Name (case ignored) some Pascal standard directive.
LanguageCode | PasDoc_Languages | Language code, using an official standardardized language names, suitable for Aspell or HTML.
LanguageFromStr | PasDoc_Languages | Find a language with Syntax = S (case ignored).
LanguageInformation | PasDoc_Languages | Read-only language information.
Main | PasDoc_Main | Does the complete job of the command-line PasDoc.
MakeMethod | PasDoc_Utils | creates a "method pointer"
NewStringCardinalTree | PasDoc_HierarchyTree |
NewStringVector | PasDoc_StringVector |
ObjectVectorIsNilOrEmpty | PasDoc_Items | Is List nil or empty.
OneNamePart | PasDoc_Types | Simply returns an array with Length = 1 and one item = S.
PASDOC_FULL_INFO | PasDoc_Versions | Returns pasdoc name, version, used compiler version, etc.
Register | PasDoc_Reg | Registers the PasDoc components into the IDE.
RemoveIndentation | PasDoc_Utils | Remove common indentation (whitespace prefix) from a multiline string.
RemovePrefix | PasDoc_Utils | If IsPrefix(Prefix, S), then remove the prefix, otherwise return unmodifed S.
RemoveSuffix | PasDoc_Utils | If IsSuffix(Suffix, S), then remove the suffix, otherwise return unmodifed S.
RoutineTypeToString | PasDoc_Items | Returns lowercased keyword associated with given method type.
SAppendPart | PasDoc_Utils | If S = '' then returns NextPart, else returns S + PartSeparator + NextPart.
SCharIs | PasDoc_Utils | Comfortable shortcut for Index <= Length(S) and S[Index] = C.
SCharIs | PasDoc_Utils | Comfortable shortcut for Index <= Length(S) and S[Index] in Chars.
SCharsReplace | PasDoc_Utils |
SCharsReplace | PasDoc_Utils | Returns S with all Chars replaced by ReplacementChar
SEnding | PasDoc_Utils | SEnding returns S contents starting from position P.
SignatureToHtmlId | PasDoc_GenHtml | DON'T EDIT – this file was automatically generated from "pasdoc.css"
SkipBOM | PasDoc_Utils | Interpret and skip the BOM in the InputStream.
SortSettingFromName | PasDoc_SortSettings |
SortSettingsToName | PasDoc_SortSettings | Comma-separated list
SplitNameParts | PasDoc_Types | Splits S, which can be made of any number of parts, separated by dots (Delphi namespaces, like PasDoc.Output.HTML.TWriter.Write).
SRemoveChars | PasDoc_Utils | Remove all instances of a character in Chars from a string.
StandardDirectiveByName | PasDoc_Tokenizer | Checks is Name (case ignored) some Pascal keyword.
StrCountCharA | PasDoc_Utils | count occurences of AChar in AString
StreamReadLine | PasDoc_StreamUtils | Read next line from AStream, return it as AnsiString.
StreamWriteLine | PasDoc_StreamUtils | Write AString contents, then LineEnding to AStream.
StreamWriteString | PasDoc_StreamUtils | Just write AString contents to AStream.
StringPairIsNilOrEmpty | PasDoc_StringPairVector |
StringReplaceChars | PasDoc_Utils | Returns S with each char from ReplacementArray[].cChar replaced with ReplacementArray[].sSpec.
StringToFile | PasDoc_Utils | Save the String content into a file.
StringToImplicitVisibility | PasDoc_Types |
StringToInheritedMembers | PasDoc_GenHtml |
StringToLinkLook | PasDoc_Gen |
StripHtml | PasDoc_Utils | Strip HTML elements from the string.
StripNamePart | PasDoc_Types | Strip one name part.
StrPosIA | PasDoc_Utils | Position of the ASub in AString.
TipueAddFiles | PasDoc_Tipue | Adds some additional files to html documentation, needed for tipue engine.
TipueSearchButton | PasDoc_Tipue | Put this at a place where Tipue button should appear.
TipueSearchButtonHead | PasDoc_Tipue | Put this in <head> of every page with search button.
VisibilitiesToStr | PasDoc_Items | Returns VisibilityStr for each value in Visibilities, delimited by commas.
VisToStr | PasDoc_Items |


PasDoc's autodoc: All Identifiers

All Identifiers

Name Unit Description
AllChars PasDoc_Utils

AllSortSettings PasDoc_SortSettings

AllVisibilities PasDoc_Items

CfgMacroCfgPath PasDoc_OptionParser

Special substitution that, if found inside a config file, will be replaced with actual path of the file
CharsPos PasDoc_Utils

Find first occurrence of any character in Chars in string S.
CheckGetFileDate PasDoc_Utils

CIONonHierarchy PasDoc_Items

CIORecordType PasDoc_Items

CioTypeToString PasDoc_Items

Returns lowercased keyword(s) associated with given structure type.
CombinePaths PasDoc_Utils

Combines BasePath with RelPath.
COMPILER_BITS PasDoc_Versions

COMPILER_NAME PasDoc_Versions

Nice compiler name.
ConsoleWidth PasDoc_OptionParser

Width of console
ConvertHelpInsightDescription PasDoc_Utils

Convert HelpInsight description to PasDoc description, by converting HelpInsight tags like <summary>...</summary> to PasDoc @tags like @abstract.
CopyFile PasDoc_Utils

DataToFile PasDoc_Utils

Save the binary Data into a file.
DefaultVisibilities PasDoc_Items

Default visibility, as documented on https://pasdoc.github.io/VisibleMembers
DEFAULT_LANGUAGE PasDoc_Languages

DEFAULT_VERBOSITY_LEVEL PasDoc_Base

DefLongOptionString PasDoc_OptionParser

default long option string used
DefShortOptionChar PasDoc_OptionParser

default short option character used
DeleteFileExt PasDoc_Utils

Remove from the FileName the last extension (including the dot).
EAnchorAlreadyExists PasDoc_Items

EInternalParserError PasDoc_Parser

Raised when an impossible situation (indicating bug in pasdoc) occurs.
EInvalidCacheFileVersion PasDoc_Serialize

EInvalidIfCondition PasDoc_Scanner

EInvalidSortSetting PasDoc_SortSettings

EmptyRawDescriptionInfo PasDoc_Items

EPasDoc PasDoc_Types

Exception raised in many situations when PasDoc encounters an error.
ESerializedException PasDoc_Serialize

ETokenizerStreamEnd PasDoc_Scanner

ExtractFirstWord PasDoc_Utils

Extracts all characters up to the first white-space encountered (ignoring white-space at the very beginning of the string) from the string specified by S.
ExtractFirstWord PasDoc_Utils

Another version of ExtractFirstWord.
FileToString PasDoc_Utils

Read the given FileName contents into a String.
FlagEndSigns PasDoc_Utils

FlagStartSigns PasDoc_Utils

Flag Start- and Endsigns for parameters (Feature request "direction of parameter": pasdoc issue 8)
GlueNameParts PasDoc_Types

Simply concatenates all NameParts with dot.
HighCreatedOverviewFile PasDoc_Gen

InfoMergeTypeStr PasDoc_Items

IsEmpty PasDoc_StringVector

IsIdentifierOtherChar PasDoc_Tokenizer

Returns true if c is a valid continuation character of a Pascal identifier: underscore, ASCII letter, ASCII digit, or non-ASCII character (Unicode letter/digit).
IsIdentifierStartChar PasDoc_Tokenizer

Returns true if c is a valid first character of a Pascal identifier: underscore, ASCII letter, or non-ASCII character (Unicode letter).
IsPathAbsolute PasDoc_Utils

Check is the given Path absolute.
IsPathAbsoluteOnDrive PasDoc_Utils

Just like IsPathAbsolute, but on Windows accepts also paths that specify full directory tree without drive letter.
IsPrefix PasDoc_Utils

Is given Prefix a prefix of S.
IsStrEmptyA PasDoc_Utils

string empty means it contains only whitespace
IsSuffix PasDoc_Utils

Is given Suffix a suffix of S.
IsValidMultipartName PasDoc_Types

Checks that the string is a valid multipart identifier
KeyWordArray PasDoc_Tokenizer

all Object Pascal keywords
KeyWordByName PasDoc_Tokenizer

Checks is Name (case ignored) some Pascal standard directive.
LanguageCode PasDoc_Languages

Language code, using an official standardardized language names, suitable for Aspell or HTML.
LanguageFromStr PasDoc_Languages

Find a language with Syntax = S (case ignored).
LanguageInformation PasDoc_Languages

Read-only language information.
LowCreatedOverviewFile PasDoc_Gen

Using High(TCreatedOverviewFile) or High(Overview) where Overview: TCreatedOverviewFile in PasDoc_GenHtml produces internal error in FPC 2.0.0.
Main PasDoc_Main

Does the complete job of the command-line PasDoc.
MakeMethod PasDoc_Utils

creates a "method pointer"
MAX_TOKENIZERS PasDoc_Scanner

maximum number of streams we can recurse into; first one is the unit stream, any other stream an include file; current value is 32, increase this if you have more include files recursively including others
NewStringCardinalTree PasDoc_HierarchyTree

NewStringVector PasDoc_StringVector

ObjectVectorIsNilOrEmpty PasDoc_Items

Is List nil or empty.
OneNamePart PasDoc_Types

Simply returns an array with Length = 1 and one item = S.
OptionFileChar PasDoc_OptionParser

Marks "include config file" option
OptionIndent PasDoc_OptionParser

Indentation of option's name from the start of console line
OptionSep PasDoc_OptionParser

Separator between option's name and explanation
OverviewFilesInfo PasDoc_Gen

PASDOC_DATE PasDoc_Versions

PASDOC_DATE = '2026-03-30';
PASDOC_FULL_INFO PasDoc_Versions

Returns pasdoc name, version, used compiler version, etc.
PASDOC_HOMEPAGE PasDoc_Versions

PASDOC_NAME PasDoc_Versions

PASDOC_NAME_AND_VERSION PasDoc_Versions

PASDOC_VERSION PasDoc_Versions

PASDOC_VERSION = '1.0.2';
PLanguageRecord PasDoc_Languages

PRawDescriptionInfo PasDoc_Items

PTransTable PasDoc_Languages

RawByteString PasDoc_Types

Register PasDoc_Reg

Registers the PasDoc components into the IDE.
RemoveIndentation PasDoc_Utils

Remove common indentation (whitespace prefix) from a multiline string.
RemovePrefix PasDoc_Utils

If IsPrefix(Prefix, S), then remove the prefix, otherwise return unmodifed S.
RemoveSuffix PasDoc_Utils

If IsSuffix(Suffix, S), then remove the suffix, otherwise return unmodifed S.
RoutineTypeToString PasDoc_Items

Returns lowercased keyword associated with given method type.
RTransTable PasDoc_Languages

Array holding the translated strings (or strKeep or strToDo markers) for a language.
SAppendPart PasDoc_Utils

If S = '' then returns NextPart, else returns S + PartSeparator + NextPart.
SCharIs PasDoc_Utils

Comfortable shortcut for Index <= Length(S) and S[Index] = C.
SCharIs PasDoc_Utils

Comfortable shortcut for Index <= Length(S) and S[Index] in Chars.
SCharsReplace PasDoc_Utils

SCharsReplace PasDoc_Utils

Returns S with all Chars replaced by ReplacementChar
SEnding PasDoc_Utils

SEnding returns S contents starting from position P.
SignatureToHtmlId PasDoc_GenHtml

DON'T EDIT – this file was automatically generated from "pasdoc.css"
SkipBOM PasDoc_Utils

Interpret and skip the BOM in the InputStream.
SortSettingFromName PasDoc_SortSettings

SortSettingNames PasDoc_SortSettings

Must be lowercase.
SortSettingsToName PasDoc_SortSettings

Comma-separated list
SplitNameParts PasDoc_Types

Splits S, which can be made of any number of parts, separated by dots (Delphi namespaces, like PasDoc.Output.HTML.TWriter.Write).
SRemoveChars PasDoc_Utils

Remove all instances of a character in Chars from a string.
StandardDirectiveArray PasDoc_Tokenizer

Object Pascal directives
StandardDirectiveByName PasDoc_Tokenizer

Checks is Name (case ignored) some Pascal keyword.
StrCountCharA PasDoc_Utils

count occurences of AChar in AString
StreamReadLine PasDoc_StreamUtils

Read next line from AStream, return it as AnsiString.
StreamWriteLine PasDoc_StreamUtils

Write AString contents, then LineEnding to AStream.
StreamWriteString PasDoc_StreamUtils

Just write AString contents to AStream.
StringPairIsNilOrEmpty PasDoc_StringPairVector

StringReplaceChars PasDoc_Utils

Returns S with each char from ReplacementArray[].cChar replaced with ReplacementArray[].sSpec.
StringToFile PasDoc_Utils

Save the String content into a file.
StringToImplicitVisibility PasDoc_Types

StringToInheritedMembers PasDoc_GenHtml

StringToLinkLook PasDoc_Gen

StripHtml PasDoc_Utils

Strip HTML elements from the string.
StripNamePart PasDoc_Types

Strip one name part.
StrPosIA PasDoc_Utils

Position of the ASub in AString.
SymbolNames PasDoc_Tokenizer

Symbols as strings.
TAnchorItem PasDoc_Items

TAspellProcess PasDoc_Aspell

This is a class to interface with aspell through pipe.
TBaseItem PasDoc_Items

This is a basic item class, that is linkable, and has some RawDescription.
TBaseItemDictionary PasDoc_Items

TBaseItems PasDoc_Items

Container class to store a list of TBaseItems.
TBoolOption PasDoc_OptionParser

Boolean option, "on" if was specified.
TBufferedFileStream PasDoc_StreamUtils

TBytes PasDoc_Types

TCharReplacement PasDoc_Utils

TCharSet PasDoc_Types

Set of AnsiChars.
TCioState PasDoc_Parser

State of parsing a structure (called "CIO" throughout PasDoc codebase).
TCioStateStack PasDoc_Parser

A stack of TCioState objects currently used to parse nested classes and records.
TCIOType PasDoc_Items

Determine type of TPasCio item, like a class or record.
TClassDirective PasDoc_Items

TCreatedOverviewFile PasDoc_Gen

TDirectiveType PasDoc_Scanner

All directives a scanner is going to regard.
TDocGenerator PasDoc_Gen

Base generator class, to be specialized for specific output formats.
TExternalItem PasDoc_Items

TExternalItem extends TBaseItem to store extra information about a project.
TExternalItemList PasDoc_Items

TGenericHTMLDocGenerator PasDoc_GenHtml

HTML documentation generator.
THintDirective PasDoc_Items

THintDirectives PasDoc_Items

THTMLDocGenerator PasDoc_GenHtml

Right now this is the same thing as TGenericHTMLDocGenerator.
THTMLHelpDocGenerator PasDoc_GenHtmlHelp

TImplicitVisibility PasDoc_Types

See command-line option --implicit-visibility documentation at --implicit-visibility documentation.
TInfoMergeType PasDoc_Items

Type of merging interface and implementation comments.
TInheritedMembers PasDoc_GenHtml

Show we show inherited members (in outputs that make it possible, which right now means only HTML output).
TIntegerOption PasDoc_OptionParser

Option that accepts additional Integer as a value.
TipueAddFiles PasDoc_Tipue

Adds some additional files to html documentation, needed for tipue engine.
TipueSearchButton PasDoc_Tipue

Put this at a place where Tipue button should appear.
TipueSearchButtonHead PasDoc_Tipue

Put this in <head> of every page with search button.
TKeyword PasDoc_Tokenizer

TLanguageID PasDoc_Languages

An enumeration type of all supported languages
TLanguageRecord PasDoc_Languages

TLinkContext PasDoc_Gen

This is used by TDocGenerator.MakeItemLink
TLinkLook PasDoc_Gen

TLinkNotFoundAction PasDoc_Gen

TListData PasDoc_Gen

Collected information about @xxxList content.
TListItemData PasDoc_Gen

Collected information about @xxxList item.
TListItemSpacing PasDoc_Gen

TListType PasDoc_Gen

TNameParts PasDoc_Types

Qualified name of a Pascal item.
TNonSelfTag PasDoc_TagManager

TokenCommentTypes PasDoc_Tokenizer

TOKEN_TYPE_NAMES PasDoc_Tokenizer

Names of the token types.
TOption PasDoc_OptionParser

Base class for options.
TOptionParser PasDoc_OptionParser

OptionParser — instantiate one of these for commandline parsing
TOverviewFile PasDoc_Gen

Overview files that pasdoc generates for multiple-document-formats like HTML (see TGenericHTMLDocGenerator).
TOverviewFileInfo PasDoc_Gen

TParser PasDoc_Parser

Parser class that will process a complete unit file and all of its include files, regarding directives.
TParsingSection PasDoc_Parser

Are we currently inside a const, var, type section?
TPasAliasType PasDoc_Items

Alias type
TPasCio PasDoc_Items

Extends TPasItem to store all items in a class / an object, e.g. fields.
TPasConstant PasDoc_Items

Pascal constant.
TPasDoc PasDoc_Base

Manages parsing and documentation generation.
TPasDocLanguages PasDoc_Languages

Language class to hold all translated strings
TPasDocMessageEvent PasDoc_Types

Callback to send a message from one class and react to it in another.
TPasDocMessageType PasDoc_Types

Message type to send with TPasDocMessageEvent.
TPasEnum PasDoc_Items

Enumerated type.
TPasFieldVariable PasDoc_Items

Global variable or a field in CIO.
TPasItem PasDoc_Items

This is a TBaseItem descendant that is always declared inside some Pascal source file.
TPasItemNode PasDoc_HierarchyTree

TPasItems PasDoc_Items

Container class to store a list of TPasItems.
TPasNestedCios PasDoc_Items

Collection of CIOs (classes, records, interfaces...) nested in outer CIO.
TPasProperties PasDoc_Items

Collection of properties.
TPasProperty PasDoc_Items

TPasRoutine PasDoc_Items

This represents:

  1. global function/procedure,

  2. method (function/procedure of a structure (TPasCio)),

  3. type (pointer to one of the above) (in this case Name is the type name).
TPasRoutines PasDoc_Items

Collection of methods.
TPasType PasDoc_Items

Pascal type (but not a procedural type — these are expressed as TPasRoutine.)
TPasTypes PasDoc_Items

List of types.
TPasUnit PasDoc_Items

extends TPasItem to store anything about a unit, its constants, types etc.; also provides methods for parsing a complete unit.
TPasUnits PasDoc_Items

Collection of units.
TPathListOption PasDoc_OptionParser

pathlist option
TPHPDocGenerator PasDoc_GenPHP

PHP output generator.
TProcessLineTalk PasDoc_ProcessLineTalk

This is a subclass of TProcess that allows to easy "talk" with executed process by pipes (read process stdout/stderr, write to process stdin) on a line-by-line basis.
TRawDescriptionInfo PasDoc_Items

Raw description, in other words: the contents of comment before given item.
TRawDescriptionInfoList PasDoc_Parser

TRawDescriptionInfoList stores a series of TRawDescriptionInfos.
TRoutineType PasDoc_Items

Routine type for TPasRoutine.What
TRowData PasDoc_Gen

Collected information about @row (or @rowHead).
TScanner PasDoc_Scanner

Scanner for Pascal, producing tokens and interpreting conditionals

Returns tokens from a Pascal language source code input stream.
TSerializable PasDoc_Serialize

TSerializableClass PasDoc_Serialize

TSetOption PasDoc_OptionParser

Option that allows to define a set.
TSimpleXMLDocGenerator PasDoc_GenSimpleXML

TSortSetting PasDoc_SortSettings

TSortSettings PasDoc_SortSettings

TSpellingError PasDoc_Aspell

Single misspelling found by TAspellProcess.CheckString.
TSpellingErrorList PasDoc_Aspell

TStandardDirective PasDoc_Tokenizer

TStandardDirectives PasDoc_Tokenizer

TStringArray PasDoc_Types

Dynamic array of String.
TStringCardinalTree PasDoc_HierarchyTree

TStringConverter PasDoc_TagManager

TStringOption PasDoc_OptionParser

Option that accepts additional string as a value.
TStringOptionList PasDoc_OptionParser

stringlist option
TStringPair PasDoc_StringPairVector

TStringPairVector PasDoc_StringPairVector

List of string pairs.
TStringStringDictionary PasDoc_Items

TStringVector PasDoc_StringVector

TSwitchOptions PasDoc_Scanner

an array of boolean values, index type is TUpperCaseLetter
TSymbolType PasDoc_Tokenizer

enumeration type that provides all types of symbols; each symbol's name starts with SYM_
TTableData PasDoc_Gen

Collected information about @table.
TTag PasDoc_TagManager

TTagAllowedInsideEvent PasDoc_TagManager

TTagExecuteEvent PasDoc_TagManager

TTagManager PasDoc_TagManager

TTagOption PasDoc_TagManager

TTagOptions PasDoc_TagManager

TTagVector PasDoc_TagManager

List of TTag objects (only non-nil).
TTexDocGenerator PasDoc_GenLatex

LaTeX documentation generator.
TTextReader PasDoc_ProcessLineTalk

TTextReader reads given Stream line by line.
TToken PasDoc_Tokenizer

Stores the exact type and additional information on one token.
TTokenizer PasDoc_Tokenizer

Converts an input TStream to a sequence of TToken objects.
TTokenList PasDoc_Tokenizer

TTokenType PasDoc_Tokenizer

All types of tokens.
TTopLevelTag PasDoc_TagManager

TTranslationID PasDoc_Languages

All translatable string.
TTryAutoLinkEvent PasDoc_TagManager

TUpperCaseLetter PasDoc_Scanner

subrange type that has the 26 lower case letters from a to z
TValueOption PasDoc_OptionParser

Base class for all options that have values.
TVisibilities PasDoc_Items

TVisibility PasDoc_Items

Visibility of a field/method.
UnicodeString PasDoc_Types

VisibilitiesToStr PasDoc_Items

Returns VisibilityStr for each value in Visibilities, delimited by commas.
VisibilityStr PasDoc_Items

VisToStr PasDoc_Items

WhiteSpace PasDoc_Utils

Any whitespace (that may indicate newline or not)
WhiteSpaceNL PasDoc_Utils

Whitespace that is some part of newline.
WhiteSpaceNotNL PasDoc_Utils

Whitespace that is not any part of newline.