Just to add a few more options, in Lazarus you have
- Find in Files
Which can search
~ in a folder, or a set of folders (separated by ; )
~ in the project
~ in the current file
- Find Identifier references
Which will find words but only if they are the same identifier. E.g. a searching "Count" for the property TList.Count will not find local vars that have the same name "Count".
- Identifier Dictionary (needs package "Cody" installed / needs some time to train itself)
Finds where a function is, and shows you the unit, or adds it to your project
- Package LazInstantSearch
Sort of a search in files, but faster / indexed
- and of course "Jump to declaration" to just find out where and how something is declared, if you already use it in your code.