mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-09-02 23:50:24 +02:00
* Added support for conditional notes
git-svn-id: trunk@20335 -
This commit is contained in:
parent
34f0538248
commit
93d173e38e
@ -64,7 +64,8 @@ type
|
||||
end;
|
||||
|
||||
TWriterLogEvent = Procedure(Sender : TObject; Const Msg : String) of object;
|
||||
|
||||
TWriterNoteEvent = Procedure(Sender : TObject; Note : TDomElement; Var EmitNote : Boolean) of object;
|
||||
|
||||
{ TFPDocWriter }
|
||||
|
||||
TFPDocWriter = class
|
||||
@ -74,6 +75,7 @@ type
|
||||
FPackage : TPasPackage;
|
||||
FTopics : TList;
|
||||
FImgExt : String;
|
||||
FBeforeEmitNote : TWriterNoteEvent;
|
||||
procedure ConvertURL(AContext: TPasElement; El: TDOMElement);
|
||||
|
||||
protected
|
||||
@ -175,6 +177,7 @@ type
|
||||
Function ShowMember(M : TPasElement) : boolean;
|
||||
Procedure GetMethodList(ClassDecl: TPasClassType; List : TStringList);
|
||||
Property EmitNotes : Boolean Read FEmitNotes Write FEmitNotes;
|
||||
Property BeforeEmitNote : TWriterNoteEvent Read FBeforeEmitNote Write FBeforeEmitNote;
|
||||
end;
|
||||
|
||||
TFPDocWriterClass = Class of TFPDocWriter;
|
||||
@ -495,6 +498,7 @@ Var
|
||||
L : TFPList;
|
||||
N : TDomNode;
|
||||
I : Integer;
|
||||
B : Boolean;
|
||||
|
||||
begin
|
||||
Result:=Assigned(El) and EmitNotes;
|
||||
@ -506,7 +510,13 @@ begin
|
||||
While Assigned(N) do
|
||||
begin
|
||||
If (N.NodeType=ELEMENT_NODE) and (N.NodeName='note') then
|
||||
L.Add(N);
|
||||
begin
|
||||
B:=True;
|
||||
if Assigned(FBeforeEmitNote) then
|
||||
FBeforeEmitNote(Self,TDomElement(N),B);
|
||||
If B then
|
||||
L.Add(N);
|
||||
end;
|
||||
N:=N.NextSibling;
|
||||
end;
|
||||
Result:=L.Count>0;
|
||||
|
@ -5,7 +5,7 @@ unit mkfpdoc;
|
||||
interface
|
||||
|
||||
uses
|
||||
Classes, SysUtils, dglobals, fpdocxmlopts, dwriter, pscanner, pparser, fpdocproj;
|
||||
Classes, SysUtils, dglobals, DOM, fpdocxmlopts, dwriter, pscanner, pparser, fpdocproj;
|
||||
|
||||
const
|
||||
DefOSTarget = {$I %FPCTARGETOS%};
|
||||
@ -29,6 +29,7 @@ Type
|
||||
function GetOptions: TEngineOptions;
|
||||
function GetPackages: TFPDocPackages;
|
||||
Protected
|
||||
Procedure DoBeforeEmitNote(Sender : TObject; Note : TDomElement; Var EmitNote : Boolean); virtual;
|
||||
procedure HandleOnParseUnit(Sender: TObject; const AUnitName: String; out AInputFile, OSTarget, CPUTarget: String);
|
||||
procedure SetVerbose(AValue: Boolean); virtual;
|
||||
Procedure DoLog(Const Msg : String);
|
||||
@ -122,6 +123,12 @@ begin
|
||||
Result:=FProject.Packages;
|
||||
end;
|
||||
|
||||
procedure TFPDocCreator.DoBeforeEmitNote(Sender: TObject; Note: TDomElement;
|
||||
var EmitNote: Boolean);
|
||||
begin
|
||||
EmitNote:=True;
|
||||
end;
|
||||
|
||||
constructor TFPDocCreator.Create(AOwner: TComponent);
|
||||
begin
|
||||
inherited Create(AOwner);
|
||||
@ -155,6 +162,7 @@ begin
|
||||
If FVerbose then
|
||||
DoLog('Writing documentation');
|
||||
OnLog:=Self.OnLog;
|
||||
BeforeEmitNote:=@self.DoBeforeEmitNote;
|
||||
EmitNotes:=Options.EmitNotes;
|
||||
If Options.BackendOptions.Count>0 then
|
||||
for I:=0 to ((Options.BackendOptions.Count-1) div 2) do
|
||||
|
Loading…
Reference in New Issue
Block a user