Class TPasUnit

Unit

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

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).


Generated by PasDoc 1.0.2.