There is no such file, but there is a tool that can help you:
- open your project (in this case lhelp.lpi) in Lazarus
- go to View -> Code Browser
- change the combobox from "Lazarus IDE" to "Project" and enable the "With required packages" checkbox
- enter your procedure name in "Show identifier"
- the Code Browser will automatically search for the identifier; it might take a few moments, so be patient.
Let me preface this by saying that I'm using the 64-bit Cocoa version of Lazarus on Mojave. I'm avoiding the Carbon version since Carbon has been semi-broken since 10.9/10.10. For testing and general coding, I'll be using Geany for now just because it gets all this extra stuff out of the way. That's the one thing I do like about XCode--it strips away from view all the unnecessary junk. Except the code folding strip--
that was very necessary, Apple!
I gave this a try. Aside from not being multi-threaded and blocking, it sort of worked. However, I was still not able to drill down to my target, in this case, starting from lhelp.lpr, Function BSearch(...) in htmldefs.pp. Since BSearch is a local function, it doesn't show.
I also have found two more bugs:
1. In the Code Browser, the begins/contains buttons don't redraw themselves after coming out from behind another window. Sometimes. Like every bug, something seems to misbehave the first time I see it, but works thereafter when I try to reproduce it.
2. The tooltip that pops up on hover in the editor hides before I can click the link. Fortunately, this did lead me to the discovery that I can use the Jump feature in the context menu to navigate to sources unexplored. I
think this might work for me.
I'm probably sounding like I'm very fussy, but I prefer my tools to work the way I think rather than the other way around.