Dossier: a multi-language code and docstrings parser based on tree-sitter

Hey folks :wave:

We're releasing a new Rust-powered project we've been working on for a bit: Dossier.

Dossier is a multi-language source code and docstrings parser. It takes as input code, and outputs JSON that describes the classes/interfaces/functions/types etc. in that code. The long term goal is for it to be one tool for generating documentation, analyzing source code, or running checks in CI/CD for any language.

It's still very alpha quality, but supports TypeScript and Python. Since Dossier is built on tree-sitter, we get parsers for most languages for free, and integrating a language means walking the AST tree-sitter gives you and picking up the information we're interested in.

Dossier can also do type resolution in TypeScript (and soon Python). This means it can e.g. figure out where some return type is defined in your program. so you can e.g. link between symbols in documentation. This is all done without the TypeScript compiler. Instead, we implement a subset of the aliasing/scoping rules in Dossier to achieve this.

GitHub link: GitHub - Doctave/dossier: A multi-language source code analyzer and docstrings parser
Explainer video: https://www.youtube.com/watch?v=kb1VRn0GIhA

Curious to hear your feedback!