|
@@ -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, ';');
|
|
|
|
|
|
|