112 releases
0.0.149 | Jan 16, 2023 |
---|---|
0.0.145 | Dec 26, 2022 |
0.0.141 | Nov 28, 2022 |
0.0.122 | Jul 25, 2022 |
0.0.26 | Nov 30, 2020 |
5,431 downloads per month
Used in 8 crates
(4 directly)
195KB
4.5K
SLoC
In rust-analyzer, we maintain a strict separation between pure abstract semantic project model and a concrete model of a particular build system.
Pure model is represented by the [base_db::CrateGraph
] from another crate.
In this crate, we are concerned with "real world" project models.
Specifically, here we have a representation for a Cargo project
([CargoWorkspace
]) and for manually specified layout ([ProjectJson
]).
Roughly, the things we do here are:
- Project discovery (where's the relevant Cargo.toml for the current dir).
- Custom build steps (
build.rs
code generation and compilation of procedural macros). - Lowering of concrete model to a [
base_db::CrateGraph
]
Dependencies
~8–13MB
~193K SLoC