aboutsummaryrefslogtreecommitdiff
path: root/crates/project_model/src/cargo_workspace.rs
Commit message (Collapse)AuthorAgeFilesLines
* Document `project_model::TargetData`Arnaud2021-01-061-0/+6
| | | | This adds a description for `TargetData` and all its fields.
* Document `project_model::PackageData`Arnaud2021-01-061-0/+16
| | | | This adds a description for `PackageData` and all its fields.
* Merge #7071bors[bot]2020-12-311-0/+5
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 7071: Pass --all-targets to "cargo check" when discovering external resources r=matklad a=WasabiFan There is a repro case and background in the linked issue. In short, the goal of this MR is to allow rust-analyzer to discover proc-macros which come from your tests (including, most importantly, dev-dependencies). By default, `cargo check` implies the equivalent of `--lib --bins`, meaning it'll check your libraries and binaries -- but not tests! This means proc-macros (or, I guess, build scripts as well) weren't discovered by rust-analyzer if they came from tests. One solution would be to manually add `--lib --bins --tests` (i.e., just augment the effective options to include tests). However, in this MR, I threw in `--all-targets`, which [according to the docs](https://doc.rust-lang.org/cargo/commands/cargo-check.html#target-selection) implies `--benches --examples` too. I have absolutely no idea what repercussions that will have on rust-analyzer for other projects, nor do I know if it's a problem that build scripts will now be discovered for tests/examples/benches. But I am not aware of a reason you _wouldn't_ want to discover these things in your examples too. I think the main drawback of this change is that it will likely slow down the `cargo check`. At a minimum, it'll now be checking your tests _and_ their dependencies. The `cargo check` docs also say that including `--tests` as I have here may cause your lib crate to be built _twice_, once for the normal target and again for unit tests. My reading of that caveat suggests that "building twice" means it's built once for the tests _inside_ your lib, with a test profile, and again for any consumers of your lib, now using a normal release profile or similar. This doesn't seem surprising. Very minor caveat: `--tests` will not include tests within a binary if it has `test = false` set in `Cargo.toml`. (I discovered this manually by trial-and-error, but hey, it actually says that in the docs!) This is likely not an issue, but _does_ mean that if you are -- for whatever reason -- disabling tests like that and then manually specifying `cargo test --package <...> --bin <...>` to run them, rust-analyzer will remain unaware of proc-macros in your tests. I have confirmed this fixes the original issue in my sandbox example linked in #7034 and in my own project in which I originally discovered this. I've left it configured as my default RA language server and will report back if I notice any unexpected side-effects. Fixes #7034 Co-authored-by: Kaelin Laundry <[email protected]>
| * Pass --all-targets to "cargo check"Kaelin Laundry2020-12-291-0/+5
| |
* | add working dir to cargo metadata fail messageslf-2020-12-311-1/+17
|/
* Fun times with rustfmtJon Gjengset2020-12-171-2/+1
|
* Update crates/project_model/src/cargo_workspace.rsJon Gjengset2020-12-171-1/+1
| | | Co-authored-by: Aleksey Kladov <[email protected]>
* Default to host platform for cargo metadataJon Gjengset2020-12-171-2/+30
| | | | | | | | | This modifies the logic for calling cargo metadata so that it will use the host platform if no explicit target platform is given. This is needed since cargo metadata defaults to outputting information for _all_ targets. Fixes #6908.
* Use itertoolsJonas Schievink2020-12-101-3/+3
|
* Replicate Cargo environment variablesJonas Schievink2020-12-101-0/+39
|
* Apply environment set by build scriptsJonas Schievink2020-12-071-2/+15
|
* Pass `--target` when loading out dirs from checkJonas Schievink2020-12-071-0/+5
|
* Cleanup workspace loading a tiny bitAleksey Kladov2020-11-131-8/+12
|
* Add support for loading rustc private cratesXavier Denis2020-11-111-0/+3
|
* Remove more unreachable pubsAleksey Kladov2020-11-021-2/+2
|
* Rename ra_db -> base_dbAleksey Kladov2020-08-131-1/+1
|
* Rename ra_project_model -> project_modelPavan Kumar Sunkara2020-08-131-0/+362