Intellisense -- Using a Database
zedlwski at princeton.edu
Wed Jul 7 10:00:43 BST 1999
I would say, though, that just because, on the surface, the database
approach seems to differ from what other IDEs do, that does not guarantee
that it's a poor method. As it stands, the Class Parser is more optimized
for accuracy than for speed; it is not designed for on-the-fly parsing like,
say, Visual C++ does (whenever I hop around a lot and work really quickly,
VC6.0's code completion gives me trouble), so we really want to minimize the
number of times we reparse the same file.
Just because someone says "database" that doesn't immediately indicate
that its files will be massive or difficult to access. We're basically
talking about a structured way in which to organize the data.
It would be tremendously inefficient not to pre-parse the Qt and KDE
libraries in some way, I hope we can all agree to that. When you have an
unchanging library, why on Earth would you keep scanning it over and over?
As long as you're going to have that kind of parsing strategy, why not apply
it to user methods as well? After all, think of the operations we need:
"Get all the methods from the Foo class where the access is public". . . Or
"Insert X method into the Foo class with the following parameter list and
private access." Those are textbook examples of database queries. Whether
we choose to use an existing engine, or merely to simulate databases in
memory with a series of data structures is a choice that comes down to the
specifics of KDevelop
Well, that's just my $0.02.
More information about the KDevelop