We are thinking about using doxygen (and particularly it's parser) to
build a source code browser for Anjuta [1]. We already have a functional
solution, with the tag manager library [2]. The current tag manager is
using exuberant ctags [3] to process the source files.
We are missing some functionality with our current solution though. We
want to have several essential features:
- go to definition (of variable, struct, function..)
- go to reference (same thing, where is this used .. reading, writing, both..)
- showing call trees
- doing various auto-completion operation (of structures after '.' and
'->', documentation of functions..)
- showing header include trees
We haven't started looking at doxygen internals yet, but we hope it is up
to the task. I've been reading through the doxygen internals page [4] and
it looks good. We are probably going to want to query the data organizer
directly, which brings me to the essential points I have so far:
- Doxygen already knows how to harvest most of the data we want, and store
it organized in it's internal structures. The only thing we are missing
are the variables. Their scope, type, references.. is this available (in
case we missed a config flag), has this been worked on, how difficult it
will be to get it?
- Can the data organizer be serialized? i.e. it saves XML, can it load it
too? Is this planned? The idea behind this being to use the data organizer
as our database engine obviously, and to cache as many things as we can.
TTimo
[1] http://anjuta.sourceforge.net/
[2] http://sourceforge.net/projects/tagmanager/
[3] http://ctags.sourceforge.net/
[4] http://www.stack.nl/~dimitri/doxygen/arch.html#arch
|