Help system: Modifies TExternalHelpDatabase.ShowHelp to display HTML help topics generated using FPDoc. Patch by Don Siders. Issue #40110.

This commit is contained in:
wp_xyz 2023-02-06 22:20:23 +01:00
parent 9b0ab24c14
commit 64b27f1207

View File

@ -1427,25 +1427,33 @@ begin
Context:=ContextList.List[i].Context;
case ContextList.List[i].Descriptor of
// fully qualified identifier name for members in classes
pihcProperty,pihcVariable,pihcType,pihcConst:
begin
Identifier:=Context;
break;
if (i > 0) and (Identifier <> '') then
Identifier := Identifier + '.';
Identifier := Identifier + Context;
end;
// fully qualified identifier name for members in classes
pihcProcedure:
begin
if (i > 0) and (Identifier <> '') then
Identifier := Identifier + '.';
// chomp parameters ToDo: overloaded procs
p:=System.Pos('(',Context);
if p>0 then
Context:=copy(Context,1,p-1);
Identifier:=Context;
break;
Identifier := Identifier + Context;
end;
end;
end;
// avoids the help database not found message for the unit declaration
if (AUnitName <> '') and (Identifier = '') then
Identifier := 'index';
if Identifier<>'' then begin
DebugLn(['TExternalHelpDatabase.ShowHelp Identifier=',Identifier]);
// replace special macros (Identifier)
@ -1453,8 +1461,9 @@ begin
repeat
p:=PosI('$(identifier)',URL);
if p<1 then break;
URL:=copy(URL,1,p-1)+Identifier
+copy(URL,p+length('$(identifier)'),length(URL));
// a $LCase() macro would avoid converting to lowercase
URL:=copy(URL,1,p-1)+Lowercase(Identifier)+
copy(URL,p+length('$(identifier)'),length(URL));
until false;
// replace global macros