Separate cache directories per platform in the Uses Clause Manager in GExperts

The Uses Clause Manager in GExperts has an “Identifier” tab that can be used instead of the Find Unit refactoring of the Delphi IDE (which for me doesn’t work most of the time and if it does is very slow). And of course the Uses Clause Manager also works for older Delphi versions which simply didn’t have this refactoring.

For this to work it parses all source files in the various search paths of the project. And because this takes a while it caches the results and only updates this cache if a new unit is found or a unit has been changed.

Until recently this parser was assuming that the current project is a Win32 application and set the conditional defines accordingly. Later I changed the conditional defines depending on the currently selected platform but this caused a problem: Units parsed for different platforms ended up in the same cache so it was possible that the lookup was showing wrong results or at least the “Open Unit” button placed the cursor on the wrong line.

Today I changed this to use separate cache directories for each platform, so this problem should no longer occur.

There is not yet a GExperts release containing this change. If you want to use it, you will have to compile your own DLL which is much easier than you might think.

btw: Did yo know that Stefan Glienke has published a similar tool called Delphi Uses Helper? Mine of course is better and much faster. 😉
(Actually it depends on your computer and the project size. On my computer for large projects both tools are about on par, but mine is more flexible. Stefan thinks otherwise. But check it out yourself.)

If you want to comment on this blog post, you can do so in the corresponding topic in the international Delphi Praxis forum.