Graeme Geldenhuys wrote:
On 19/02/2008, Mattias Gärtner [EMAIL PROTECTED] wrote:
Yes, and I already started something. The problem is, that Lazarus and FPC
comes
with more than 130.000 identifiers (linux fpc 2.2.1) and that searching takes
Yikes!
some time. The search time is mostly limited by the harddisk speed, so the
first time the search can take a minute on slow systems. Of course the second
time the codetools finds the identifier in a second on recent systems.
So, I was thinking about this:
When the find declaration fails the IDE pops up a progress dialog with a
cancel
button, running the code browsing to locate candidates.
So the first attempt uses the uses clause? Second attempt will do the search.
I'm sure others will complain, but heres another though. :) What if
you do the search at Lazarus startup. After Lazarus started and loaded
it's first project, fire off a background thread (low priority) doing
the searching. While the developers starts finding his feet and starts
coding, Lazarus is collecting the lookup table (or whatever it needs)
in memory in the background. Realistically, by the time the developer
is looking for help on something, everything is already loaded. That
cache information could maybe even be saved to the hard drive so at
the next Lazarus startup the cache can be loaded from the hard drive
first, making the lookup loading even quicker.
I guess some people would prefer to have the background search thread
as a toggle option in Environment dialog.
Regards,
- Graeme -
Very good idea, maybe sqlite3 database could be used with index ? It
will be very very fast solution but one additional library is needed :-(
(sqlite3.dll under windows).Anyway any flat database could be useful
with fast indexing.
Regards
Boguslaw
___
Lazarus mailing list
Lazarus@lazarus.freepascal.org
http://www.lazarus.freepascal.org/mailman/listinfo/lazarus