diff --git a/utils/fpdoc/dw_html.pp b/utils/fpdoc/dw_html.pp index e256817748..5a5a8bf2ec 100644 --- a/utils/fpdoc/dw_html.pp +++ b/utils/fpdoc/dw_html.pp @@ -2828,6 +2828,22 @@ var AppendText(ParaEl, '] '); end; + procedure AppendGenericTypes(CodeEl : TDomElement; AList : TList; isSpecialize : Boolean); + + Var + I : integer; + begin + for I:=0 to AList.Count-1 do + begin + if I=0 then + AppendSym(CodeEl, '<') + else + AppendSym(CodeEl, ','); + AppendText(CodeEl,TPasGenericTemplateType(AList[i]).Name); + end; + AppendSym(CodeEl, '>'); + end; + procedure CreateMainPage; var TableEl, TREl, TDEl, CodeEl: TDOMElement; @@ -2858,24 +2874,39 @@ var TDEl := CreateTD(TREl); CodeEl := CreateCode(CreatePara(TDEl)); AppendKw(CodeEl, 'type'); + if AClass.ObjKind=okGeneric then + AppendKw(CodeEl, ' generic '); AppendText(CodeEl, ' ' + AClass.Name + ' '); + if AClass.ObjKind=okGeneric then + AppendGenericTypes(CodeEl,AClass.GenericTemplateTypes,false); AppendSym(CodeEl, '='); AppendText(CodeEl, ' '); - AppendKw(CodeEl, ObjKindNames[AClass.ObjKind]); + if AClass.ObjKind<>okSpecialize then + AppendKw(CodeEl, ObjKindNames[AClass.ObjKind]) + else + AppendKw(CodeEl, ' specialize '); if Assigned(AClass.AncestorType) then begin - AppendSym(CodeEl, '('); - AppendHyperlink(CodeEl, AClass.AncestorType); - if AClass.Interfaces.count>0 Then + if AClass.ObjKind=okSpecialize then begin - for i:=0 to AClass.interfaces.count-1 do - begin - AppendSym(CodeEl, ', '); - AppendHyperlink(CodeEl,TPasClassType(AClass.Interfaces[i])); - end; + AppendHyperlink(CodeEl, AClass.AncestorType); + AppendGenericTypes(CodeEl,AClass.GenericTemplateTypes,true) + end + else + begin + AppendSym(CodeEl, '('); + AppendHyperlink(CodeEl, AClass.AncestorType); + if AClass.Interfaces.count>0 Then + begin + for i:=0 to AClass.interfaces.count-1 do + begin + AppendSym(CodeEl, ', '); + AppendHyperlink(CodeEl,TPasClassType(AClass.Interfaces[i])); + end; + end; + AppendSym(CodeEl, ')'); end; - AppendSym(CodeEl, ')'); end; if AClass.Members.Count > 0 then @@ -2965,7 +2996,8 @@ var end; AppendText(CodeEl, ' '); // !!!: Dirty trick, necessary for current XML writer - AppendKw(CodeEl, 'end'); + if not AClass.IsShortDefinition then + AppendKw(CodeEl, 'end'); AppendSym(CodeEl, ';'); diff --git a/utils/fpdoc/fpclasschart.pp b/utils/fpdoc/fpclasschart.pp index e4049dca09..914892d5bd 100644 --- a/utils/fpdoc/fpclasschart.pp +++ b/utils/fpdoc/fpclasschart.pp @@ -35,7 +35,7 @@ resourcestring Const RootNames : Array[TPasObjKind] of string - = ('Objects', 'Classes', 'Interfaces'); + = ('Objects', 'Classes', 'Interfaces','Generics','Specializations'); type diff --git a/utils/fpdoc/fpdoc.lpi b/utils/fpdoc/fpdoc.lpi index 80b1aa589e..8d595f44c6 100644 --- a/utils/fpdoc/fpdoc.lpi +++ b/utils/fpdoc/fpdoc.lpi @@ -13,7 +13,6 @@ <ResourceType Value="res"/> <UseXPManifest Value="True"/> - <Icon Value="0"/> </General> <i18n> <EnableI18N LFM="False"/> @@ -60,7 +59,7 @@ <Unit3> <Filename Value="dw_html.pp"/> <IsPartOfProject Value="True"/> - <UnitName Value="dw_html"/> + <UnitName Value="dw_HTML"/> </Unit3> <Unit4> <Filename Value="dw_ipflin.pas"/> @@ -70,7 +69,7 @@ <Unit5> <Filename Value="dw_latex.pp"/> <IsPartOfProject Value="True"/> - <UnitName Value="dw_latex"/> + <UnitName Value="dw_LaTeX"/> </Unit5> <Unit6> <Filename Value="dwlinear.pp"/> @@ -80,7 +79,7 @@ <Unit7> <Filename Value="dw_linrtf.pp"/> <IsPartOfProject Value="True"/> - <UnitName Value="dw_linrtf"/> + <UnitName Value="dw_LinRTF"/> </Unit7> <Unit8> <Filename Value="dw_man.pp"/> @@ -90,7 +89,7 @@ <Unit9> <Filename Value="dwriter.pp"/> <IsPartOfProject Value="True"/> - <UnitName Value="dwriter"/> + <UnitName Value="dWriter"/> </Unit9> <Unit10> <Filename Value="dw_txt.pp"/> @@ -100,7 +99,7 @@ <Unit11> <Filename Value="dw_xml.pp"/> <IsPartOfProject Value="True"/> - <UnitName Value="dw_xml"/> + <UnitName Value="dw_XML"/> </Unit11> <Unit12> <Filename Value="fpdocproj.pas"/> @@ -115,7 +114,7 @@ </Units> </ProjectOptions> <CompilerOptions> - <Version Value="9"/> + <Version Value="10"/> <Target> <Filename Value="fpdoc"/> </Target> diff --git a/utils/fpdoc/fpdoc.pp b/utils/fpdoc/fpdoc.pp index 041b10917a..a85a013d4d 100644 --- a/utils/fpdoc/fpdoc.pp +++ b/utils/fpdoc/fpdoc.pp @@ -339,6 +339,7 @@ begin end; WriterClass:=GetWriterClass(Options.Backend); Writer:=WriterClass.Create(Engine.Package,Engine); + Writeln('Writing doc'); With Writer do Try If Options.BackendOptions.Count>0 then diff --git a/utils/fpdoc/testunit.pp b/utils/fpdoc/testunit.pp index 255701a67f..b5fb4e8b40 100644 --- a/utils/fpdoc/testunit.pp +++ b/utils/fpdoc/testunit.pp @@ -40,7 +40,7 @@ Type 2 : (phi,Omega : Real); end; -// TADeprecatedType = Integer deprecated; + TADeprecatedType = Integer deprecated; Var ASimpleVar : Integer;