Sfoglia il codice sorgente

* Added support for source references

sg 21 anni fa
parent
commit
64727d607e
3 ha cambiato i file con 44 aggiunte e 10 eliminazioni
  1. 15 5
      utils/fpdoc/dglobals.pp
  2. 21 2
      utils/fpdoc/dw_html.pp
  3. 8 3
      utils/fpdoc/makeskel.pp

+ 15 - 5
utils/fpdoc/dglobals.pp

@@ -71,6 +71,7 @@ resourcestring
   SDocValue = 'Value';
   SDocExplanation = 'Explanation';
   SDocValuesForEnum = 'Enumeration values for type %s';
+  SDocSourcePosition = 'Source position: %s line %d';
 
 type
 
@@ -172,7 +173,8 @@ type
     procedure WriteContentFile(const AFilename: String);
 
     function CreateElement(AClass: TPTreeElement; const AName: String;
-      AParent: TPasElement; AVisibility: TPasMemberVisibility): TPasElement;
+      AParent: TPasElement; AVisibility: TPasMemberVisibility;
+      const ASourceFilename: String; ASourceLinenumber: Integer): TPasElement;
       override;
     function FindElement(const AName: String): TPasElement; override;
     function FindModule(const AName: String): TPasModule; override;
@@ -446,7 +448,8 @@ end;
 procedure TFPDocEngine.SetPackageName(const APackageName: String);
 begin
   ASSERT(not Assigned(Package));
-  FPackage := TPasPackage(inherited CreateElement(TPasPackage, '#' + APackageName, nil));
+  FPackage := TPasPackage(inherited CreateElement(TPasPackage,
+    '#' + APackageName, nil, '', 0));
   FPackages.Add(FPackage);
   CurPackageDocNode := RootDocNode.FindChild('#' + APackageName);
 end;
@@ -529,7 +532,8 @@ var
 	end;
       if not Assigned(Package) then
       begin
-        Package := TPasPackage(inherited CreateElement(TPasPackage, s, nil));
+        Package := TPasPackage(inherited CreateElement(TPasPackage, s, nil,
+	  '', 0));
         FPackages.Add(Package);
       end;
 
@@ -728,12 +732,15 @@ begin
 end;
 
 function TFPDocEngine.CreateElement(AClass: TPTreeElement; const AName: String;
-  AParent: TPasElement; AVisibility: TPasMemberVisibility): TPasElement;
+  AParent: TPasElement; AVisibility: TPasMemberVisibility;
+  const ASourceFilename: String; ASourceLinenumber: Integer): TPasElement;
 begin
   Result := AClass.Create(AName, AParent);
   Result.Visibility := AVisibility;
   if AClass.InheritsFrom(TPasModule) then
     CurModule := TPasModule(Result);
+  Result.SourceFilename := ASourceFilename;
+  Result.SourceLinenumber := ASourceLinenumber;
 end;
 
 function TFPDocEngine.FindElement(const AName: String): TPasElement;
@@ -1087,7 +1094,10 @@ end.
 
 {
   $Log$
-  Revision 1.1  2003-03-17 23:03:20  michael
+  Revision 1.2  2003-11-28 12:51:37  sg
+  * Added support for source references
+
+  Revision 1.1  2003/03/17 23:03:20  michael
   + Initial import in CVS
 
   Revision 1.13  2003/03/13 22:02:13  sg

+ 21 - 2
utils/fpdoc/dw_html.pp

@@ -192,6 +192,7 @@ type
 
     procedure AppendTitle(const AText: DOMString);
     procedure AppendMenuBar(ASubpageIndex: Integer);
+    procedure AppendSourceRef(AElement: TPasElement);
     procedure FinishElementPage(AElement: TPasElement);
 
     procedure CreatePageBody(AElement: TPasElement; ASubpageIndex: Integer); virtual;
@@ -492,6 +493,8 @@ var
   Path: String;
 begin
   EndIndex := Length(AFilename);
+  if EndIndex = 0 then
+    exit;
   while not (AFilename[EndIndex] in DirSeparators) do
   begin
     Dec(EndIndex);
@@ -513,7 +516,8 @@ var
   PageDoc: TXMLDocument;
   Filename: String;
 begin
-  Engine.Output := IncludeTrailingBackSlash(Engine.Output);
+  if Engine.Output <> '' then
+    Engine.Output := IncludeTrailingBackSlash(Engine.Output);
   for i := 0 to PageInfos.Count - 1 do
     with TPageInfo(PageInfos[i]) do
     begin
@@ -1550,6 +1554,12 @@ begin
   end;
 end;
 
+procedure THTMLWriter.AppendSourceRef(AElement: TPasElement);
+begin
+  AppendText(CreatePara(BodyElement), Format(SDocSourcePosition,
+    [AElement.SourceFilename, AElement.SourceLinenumber]));
+end;
+
 procedure THTMLWriter.FinishElementPage(AElement: TPasElement);
 var
   DocNode: TDocNode;
@@ -1848,6 +1858,7 @@ begin
   AppendTitle(AConst.Name);
   AppendShortDescr(CreatePara(BodyElement), AConst);
   AppendText(CreateH2(BodyElement), SDocDeclaration);
+  AppendSourceRef(AConst);
 
   TableEl := CreateTable(BodyElement);
   CodeEl := CreateCode(CreatePara(CreateTD(CreateTR(TableEl))));
@@ -1878,6 +1889,7 @@ begin
   AppendTitle(AType.Name);
   AppendShortDescr(CreatePara(BodyElement), AType);
   AppendText(CreateH2(BodyElement), SDocDeclaration);
+  AppendSourceRef(AType);
 
   TableEl := CreateTable(BodyElement);
   TREl := CreateTR(TableEl);
@@ -2075,6 +2087,7 @@ var
 
     AppendShortDescr(CreatePara(BodyElement), AClass);
     AppendText(CreateH2(BodyElement), SDocDeclaration);
+    AppendSourceRef(AClass);
 
     TableEl := CreateTable(BodyElement);
 
@@ -2484,6 +2497,7 @@ begin
   AppendTitle(AElement.FullName);
   AppendShortDescr(CreatePara(BodyElement), AElement);
   AppendText(CreateH2(BodyElement), SDocDeclaration);
+  AppendSourceRef(AElement);
 
   TableEl := CreateTable(BodyElement);
   TREl := CreateTR(TableEl);
@@ -2523,6 +2537,7 @@ begin
   AppendTitle(AVar.FullName);
   AppendShortDescr(CreatePara(BodyElement), AVar);
   AppendText(CreateH2(BodyElement), SDocDeclaration);
+  AppendSourceRef(AVar);
 
   TableEl := CreateTable(BodyElement);
   TREl := CreateTR(TableEl);
@@ -2553,6 +2568,7 @@ begin
   AppendTitle(AProc.Name);
   AppendShortDescr(CreatePara(BodyElement), AProc);
   AppendText(CreateH2(BodyElement), SDocDeclaration);
+  AppendSourceRef(AProc);
 
   TableEl := CreateTable(BodyElement);
   TREl := CreateTR(TableEl);
@@ -2577,7 +2593,10 @@ end.
 
 {
   $Log$
-  Revision 1.4  2003-04-22 00:00:05  sg
+  Revision 1.5  2003-11-28 12:51:37  sg
+  * Added support for source references
+
+  Revision 1.4  2003/04/22 00:00:05  sg
   * Fixed bug in path building for links to elements which don't have their
     own page, but their parent element has
 

+ 8 - 3
utils/fpdoc/makeskel.pp

@@ -36,7 +36,8 @@ type
   TSkelEngine = class(TFPDocEngine)
   public
     function CreateElement(AClass: TPTreeElement; const AName: String;
-      AParent: TPasElement; AVisibility :TPasMemberVisibility): TPasElement; override;
+      AParent: TPasElement; AVisibility :TPasMemberVisibility;
+      const ASourceFilename: String; ASourceLinenumber: Integer): TPasElement; override;
   end;
 
 const
@@ -61,7 +62,8 @@ var
 
 
 function TSkelEngine.CreateElement(AClass: TPTreeElement; const AName: String;
-  AParent: TPasElement; AVisibility : TPasMemberVisibility): TPasElement;
+  AParent: TPasElement; AVisibility : TPasMemberVisibility;
+  const ASourceFilename: String; ASourceLinenumber: Integer): TPasElement;
 begin
   Result := AClass.Create(AName, AParent);
 
@@ -280,7 +282,10 @@ end.
 
 {
   $Log$
-  Revision 1.4  2003-09-02 13:26:47  mattias
+  Revision 1.5  2003-11-28 12:51:37  sg
+  * Added support for source references
+
+  Revision 1.4  2003/09/02 13:26:47  mattias
   MG: makeskel now ignores missing translation file
 
   Revision 1.3  2003/05/07 16:31:32  sg