https://glean.software/docs/introduction/
Glean is a system for working with facts about source code. It is designed for collecting and storing detailed information about code structure, and providing access to the data to power tools and experiences from online IDE features to offline code analysis.
For example, Glean could answer all the questions you'd expect your IDE to answer, accurately and efficiently on a large-scale codebase. Things like:
Where is the definition of this method?
Where are all the callers of this function?
Who inherits from this class?
What are all the declarations in this file?
But Glean isn't limited to storing particular kinds of data, or answering particular queries. Glean comes with indexers and schemas for some languages which support queries like the examples above, but you can also define your own schemas and store whatever data you like, perhaps augmenting the data that existing indexers collect. So, for example, you could store test coverage data or profiling data.
https://github.com/facebookincubator/glean
There is currently full support for:
C++ and C
Hack
Haskell
JavaScript/Flow
We also support the SCIP or LSIF code indexing formats, for:
Rust (via rust-analyzer)
Go
TypeScript
Java
Python
Dotnet
Custom indexers for these languages exist but aren't in the open source release yet; we hope to make these available in the future:
Python
Java
Kotlin
Erlang
Thrift
Buck and Bazel
C#
Glean is a system for working with facts about source code. It is designed for collecting and storing detailed information about code structure, and providing access to the data to power tools and experiences from online IDE features to offline code analysis.
For example, Glean could answer all the questions you'd expect your IDE to answer, accurately and efficiently on a large-scale codebase. Things like:
Where is the definition of this method?
Where are all the callers of this function?
Who inherits from this class?
What are all the declarations in this file?
But Glean isn't limited to storing particular kinds of data, or answering particular queries. Glean comes with indexers and schemas for some languages which support queries like the examples above, but you can also define your own schemas and store whatever data you like, perhaps augmenting the data that existing indexers collect. So, for example, you could store test coverage data or profiling data.
https://github.com/facebookincubator/glean
There is currently full support for:
C++ and C
Hack
Haskell
JavaScript/Flow
We also support the SCIP or LSIF code indexing formats, for:
Rust (via rust-analyzer)
Go
TypeScript
Java
Python
Dotnet
Custom indexers for these languages exist but aren't in the open source release yet; we hope to make these available in the future:
Python
Java
Kotlin
Erlang
Thrift
Buck and Bazel
C#