Eduardo Cavazos wrote:
- Source location information (file (at least) and line/column) for procedures, variables and modules. - List of symbols bound in a given module/environment, preferably with their kind (procedure, macro, variable...) and visibility (exported, private, imported...) - List of callers/callees of a given procedure. - If the system supports generic functions, list of methods for a given generic, preferably accompanied by their location. - Procedure/generic/macro arities, with the actual names of the parameters if possible (not just a number). - Docstrings (if supported) or any other output of a help-like command.
You know, now that I have more experience with R6RS libraries, it seems like alot of this can be had simply by doing source analysis of the libraries themselves. All you need is a list of the repositories; (e.g. via library-path in Ikarus).
You could get fancy and check if the source file for a library has been changed and update the book keeping accordingly.
The benefit of having a source analysis based tool would be that it would work for *any* R6RS implementation; you wouldn't need implementation specific backends.
I know that Alex Shinn's scheme-complete does smart symbol completion that considers lexical scope and that's purely via source analysis. Perhaps peeking at that implementation would be helpful.
Ed
