Browse Source

Browse symbol at cursor search units from module list

Margers 6 months ago
parent
commit
bdb412439b
1 changed files with 15 additions and 1 deletions
  1. 15 1
      packages/ide/fpsymbol.pas

+ 15 - 1
packages/ide/fpsymbol.pas

@@ -401,7 +401,7 @@ end;
 procedure OpenOneSymbolBrowser(Name : String);
 
 var Index : sw_integer;
-    PS,S : PSymbol;
+    PS,S,MS : PSymbol;
     Anc : PObjectSymbol;
     P : Pstring;
     Symbols: PSymbolCollection;
@@ -410,12 +410,17 @@ var Index : sw_integer;
   begin
     Search:=UpcaseStr(P^.Items^.LookUp(Name,Index))=Name;
   end;
+  function SearchModule(P : PSymbol) : boolean;
+  begin
+    SearchModule:=UpcaseStr(P^.Name^)=Name;
+  end;
 
 begin
    Name:=UpcaseStr(Name);
    If BrowCol.Modules<>nil then
      begin
        PS:=BrowCol.Modules^.FirstThat(TCallbackFunBoolParam(@Search));
+       MS:=BrowCol.Modules^.FirstThat(TCallbackFunBoolParam(@SearchModule));
        If assigned(PS) then
          begin
            S:=PS^.Items^.At(Index);
@@ -435,6 +440,15 @@ begin
                 PS^.Items^.At(Index),nil,
                 Symbols,PS^.Items^.At(Index)^.References,Anc,PS^.MemInfo);
          end
+       else If assigned(MS) then
+         begin
+           Symbols:=MS^.Items;
+           OpenSymbolBrowser(0,20,
+                MS^.GetName,
+                MS^.GetText,
+                MS,nil,
+                Symbols,MS^.References,nil,nil);
+         end
        else
          begin
            P:=@Name;