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

Reply via email to