aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_project_model/src/lib.rs
Commit message (Collapse)AuthorAgeFilesLines
* Require quotes around key-value cfg flags in rust-project.jsonAleksey Kladov2020-07-231-47/+30
| | | | This matches rustc command-line flags, as well as the build.rs format.
* Merge #5505bors[bot]2020-07-231-4/+4
|\ | | | | | | | | | | | | | | | | | | | | 5505: Cleanup CFG API r=matklad a=matklad bors r+ 🤖 Co-authored-by: Aleksey Kladov <[email protected]>
| * Cleanup CFG APIAleksey Kladov2020-07-231-4/+4
| |
* | More Rustic API for EnvAleksey Kladov2020-07-211-4/+1
| |
* | Replace OUT_DIR in project.json with general envAleksey Kladov2020-07-211-5/+2
| | | | | | | | OUT_DIR doesn't make sense here, as this is a cargo-specific concept
* | Replace roots with include/exclude directoriesAleksey Kladov2020-07-211-20/+9
| |
* | Expose package roots more directlyAleksey Kladov2020-07-211-30/+32
|/
* Automatically reload project info on Cargo.toml changesAleksey Kladov2020-07-101-1/+1
|
* Fallback to target in cfg if not specified in project json configPaul Daniel Faria2020-07-041-1/+1
|
* Add optional target to crates in json project, lookup default cfgs per ↵Paul Daniel Faria2020-07-041-1/+10
| | | | target when generating cfg list
* Move cargo metadata off the main loopAleksey Kladov2020-07-021-2/+2
|
* Use Strings for display namesAleksey Kladov2020-07-011-5/+3
|
* Use CrateName for semantic namesAleksey Kladov2020-07-011-4/+1
|
* Cleanup project.json deserializationAleksey Kladov2020-06-241-50/+27
|
* Rename json_project -> project_jsonAleksey Kladov2020-06-241-8/+8
|
* Be more explicit about absolute paths at various placesAleksey Kladov2020-06-241-26/+25
|
* New VFSAleksey Kladov2020-06-231-14/+1
|
* Accept relative paths in rust-project.jsonThiébaud Weksteen2020-06-151-15/+17
| | | | | If a relative path is found as part of Crate.root_module or Root.path, interpret it as relative to the location of the rust-project.json file.
* Reduce OUT_DIR special casingAleksey Kladov2020-06-101-13/+7
|
* Merge #4824bors[bot]2020-06-101-1/+1
|\ | | | | | | | | | | | | | | 4824: Correct "debug_assertion" to "debug_assertions" to match the cfg that the rust debug assert macros use. r=matklad a=woody77 This is for #4823. Co-authored-by: Aaron Wood <[email protected]>
| * Correct "debug_assertion" to "debug_assertions" to match the cfgAaron Wood2020-06-101-1/+1
| | | | | | | | option that the rust debug assert macros use.
* | Finish transition to cfgs from the separate atoms and features.Aaron Wood2020-06-091-6/+0
|/
* Use Option<&str> for target instead of Option<&String>Paul Daniel Faria2020-06-081-3/+3
|
* Remove default_cfg_options, pass target instead so it can be used for ↵Paul Daniel Faria2020-06-081-13/+13
| | | | building cargo workspaces
* Change management of test cfg to better support json projectsPaul Daniel Faria2020-06-071-6/+7
|
* Document rust-project.jsonAleksey Kladov2020-06-031-2/+8
|
* Rename ProjectRoot -> ProjectManifestAleksey Kladov2020-06-031-15/+15
|
* Move project discoveryAleksey Kladov2020-06-031-2/+14
|
* Merge pull request #4382 from woody77/json_cfgsAleksey Kladov2020-06-031-0/+10
|\ | | | | Begin transition to new fields for JsonProject crate cfgs
| * Begin transition to new fields for JsonProject crate cfgsAaron Wood2020-05-091-0/+10
| | | | | | | | | | | | | | | | | | | | | | | | This starts the transition to a new method of documenting the cfgs that are enabled for a given crate in the json file. This is changing from a list of atoms and a dict of key:value pairs, to a list of strings that is equivalent to that returned by `rustc --print cfg ..`, and parsed in the same manner by rust-analyzer. This is the first of two changes, which adds the new field that contains the list of strings. Next change will complete the transition and remove the previous fields.
* | Make some stuff public so that they can be reused by other toolsPavan Kumar Sunkara2020-05-141-1/+1
| |
* | Simpify project discoveryveetaha2020-05-091-36/+15
| |
* | Add stderr to error messageAleksey Kladov2020-05-081-1/+6
| |
* | CleanupAleksey Kladov2020-05-081-16/+16
| |
* | Rename ra_env -> ra_toolchainAleksey Kladov2020-05-081-1/+1
| |
* | Merge #4329bors[bot]2020-05-081-1/+2
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4329: Look for `cargo`, `rustc`, and `rustup` in standard installation path r=matklad a=cdisselkoen Discussed in #3118. This is approximately a 90% fix for the issue described there. This PR creates a new crate `ra_env` with a function `get_path_for_executable()`; see docs there. `get_path_for_executable()` improves and generalizes the function `cargo_binary()` which was previously duplicated in the `ra_project_model` and `ra_flycheck` crates. (Both of those crates now depend on the new `ra_env` crate.) The new function checks (e.g.) `$CARGO` and `$PATH`, but also falls back on `~/.cargo/bin` manually before erroring out. This should allow most users to not have to worry about setting the `$CARGO` or `$PATH` variables for VSCode, which can be difficult e.g. on macOS as discussed in #3118. I've attempted to replace all calls to `cargo`, `rustc`, and `rustup` in rust-analyzer with appropriate invocations of `get_path_for_executable()`; I don't think I've missed any in Rust code, but there is at least one invocation in TypeScript code which I haven't fixed. (I'm not sure whether it's affected by the same problem or not.) https://github.com/rust-analyzer/rust-analyzer/blob/a4778ddb7a00f552a8e653bbf56ae9fd69cfe1d3/editors/code/src/cargo.ts#L79 I'm sure this PR could be improved a bunch, so I'm happy to take feedback/suggestions on how to solve this problem better, or just bikeshedding variable/function/crate names etc. cc @Veetaha Fixes #3118. Co-authored-by: Craig Disselkoen <[email protected]> Co-authored-by: veetaha <[email protected]>
| * | pull function out into new crate ra_env; use in ra_flycheck as wellCraig Disselkoen2020-05-061-2/+2
| | |
| * | more generic, find rustc as wellCraig Disselkoen2020-05-061-0/+1
| | |
* | | Move feature desugaring to the right abstraction layerAleksey Kladov2020-05-081-2/+12
| | |
* | | Merge #4296bors[bot]2020-05-071-0/+1
|\ \ \ | |/ / |/| | | | | | | | | | | | | | | | | 4296: Support cargo:rustc-cfg in build.rs r=matklad a=robojumper Fixes #4238. Co-authored-by: robojumper <[email protected]>
| * | Assume cargo_metadata uses String for cfgs soonrobojumper2020-05-051-7/+1
| | |
| * | Support build.rs cargo:rustc-cfgrobojumper2020-05-041-0/+7
| |/
* | Remove code duplicatesChristophe MASSOLIN2020-05-051-12/+6
| |
* | Pass cargo.target to rustcChristophe MASSOLIN2020-05-051-5/+13
|/
* Avoid lossy OsString conversionsLaurențiu Nicola2020-04-251-4/+8
|
* Unmix error handling when discovering workspacesAleksey Kladov2020-04-161-55/+23
| | | | | Hitting an io::Error is a legit problem. Finding more than one Cargo.toml is not.
* Decouple project loading from project discovery a bitAleksey Kladov2020-04-161-100/+121
|
* Migrate to privacy as per review commetsveetaha2020-04-021-2/+8
|
* Less mutabilityveetaha2020-04-021-19/+23
|
* Migrate to iters some moreveetaha2020-04-021-18/+11
|