diff options
Diffstat (limited to 'crates/project_model/src/lib.rs')
-rw-r--r-- | crates/project_model/src/lib.rs | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/crates/project_model/src/lib.rs b/crates/project_model/src/lib.rs index a5b35ed95..8c6cf94c2 100644 --- a/crates/project_model/src/lib.rs +++ b/crates/project_model/src/lib.rs | |||
@@ -1,4 +1,19 @@ | |||
1 | //! FIXME: write short doc here | 1 | //! In rust-analyzer, we maintain a strict separation between pure abstract |
2 | //! semantic project model and a concrete model of a particular build system. | ||
3 | //! | ||
4 | //! Pure model is represented by the [`base_db::CrateGraph`] from another crate. | ||
5 | //! | ||
6 | //! In this crate, we are conserned with "real world" project models. | ||
7 | //! | ||
8 | //! Specifically, here we have a representation for a Cargo project | ||
9 | //! ([`CargoWorkspace`]) and for manually specified layout ([`ProjectJson`]). | ||
10 | //! | ||
11 | //! Roughly, the things we do here are: | ||
12 | //! | ||
13 | //! * Project discovery (where's the relevant Cargo.toml for the current dir). | ||
14 | //! * Custom build steps (`build.rs` code generation and compilation of | ||
15 | //! procedural macros). | ||
16 | //! * Lowering of concrete model to a [`base_db::CrateGraph`] | ||
2 | 17 | ||
3 | mod cargo_workspace; | 18 | mod cargo_workspace; |
4 | mod cfg_flag; | 19 | mod cfg_flag; |