Pavan Kumar Sunkara
9f0a7eb97b
Make some stuff public so that they can be reused by other tools
2020-05-14 11:14:46 +02:00
veetaha
e83a2912b8
Simpify project discovery
2020-05-09 02:51:59 +03:00
Aleksey Kladov
f739e0119c
Add stderr to error message
2020-05-08 18:53:53 +02:00
Aleksey Kladov
ecff5dc141
Cleanup
2020-05-08 14:55:28 +02:00
Aleksey Kladov
6713be0b13
Rename ra_env -> ra_toolchain
2020-05-08 12:25:36 +02:00
bors[bot]
8295a9340c
Merge #4329
...
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.) a4778ddb7a/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 <craigdissel@gmail.com>
Co-authored-by: veetaha <veetaha2@gmail.com>
2020-05-08 10:11:19 +00:00
Aleksey Kladov
d3110859ba
Move feature desugaring to the right abstraction layer
2020-05-08 02:56:53 +02:00
bors[bot]
1b136aae0b
Merge #4296
...
4296: Support cargo:rustc-cfg in build.rs r=matklad a=robojumper
Fixes #4238 .
Co-authored-by: robojumper <robojumper@gmail.com>
2020-05-07 18:50:00 +00:00
Craig Disselkoen
303b444dbb
pull function out into new crate ra_env; use in ra_flycheck as well
2020-05-05 16:12:56 -07:00
Craig Disselkoen
5aa1bba107
more generic, find rustc as well
2020-05-05 16:12:56 -07:00
Christophe MASSOLIN
04e32fbffc
Remove code duplicates
2020-05-05 18:23:47 +02:00
Christophe MASSOLIN
14dde99627
Pass cargo.target to rustc
2020-05-05 18:15:13 +02:00
robojumper
f2dd233ddc
Assume cargo_metadata uses String for cfgs soon
2020-05-05 14:53:52 +02:00
robojumper
2980ba1fde
Support build.rs cargo:rustc-cfg
2020-05-04 13:29:09 +02:00
Laurențiu Nicola
58dde891f8
Avoid lossy OsString conversions
2020-04-25 12:19:23 +03:00
Aleksey Kladov
422ae477ce
Unmix error handling when discovering workspaces
...
Hitting an io::Error is a legit problem. Finding more than one
Cargo.toml is not.
2020-04-16 22:35:50 +02:00
Aleksey Kladov
be2654b0ed
Decouple project loading from project discovery a bit
2020-04-16 22:02:10 +02:00
veetaha
6190caeeae
Migrate to privacy as per review commets
2020-04-02 21:09:03 +03:00
veetaha
bef899aa78
Less mutability
2020-04-02 21:07:05 +03:00
veetaha
a90401aeed
Migrate to iters some more
2020-04-02 21:07:05 +03:00
veetaha
987fb26a5b
Migrate to iterators
2020-04-02 21:07:05 +03:00
veetaha
b7d5172f69
Simpify workspace handling
2020-04-02 21:07:05 +03:00
Aleksey Kladov
4936abdd49
Reduce scope of deserialization
2020-04-01 18:51:16 +02:00
Edwin Cheng
d0b6ed4441
Add ProcMacroClient
2020-03-26 03:29:45 +08:00
Edwin Cheng
d62dd63256
Use target-name for crate-name
2020-03-22 01:09:38 +08:00
Aleksey Kladov
fc230b943b
Simplify Sysroot
2020-03-19 17:59:31 +01:00
Aleksey Kladov
516fe293a8
More direct CargoWorkspace
2020-03-19 17:53:31 +01:00
Emil Lauridsen
4fb79f2ca0
Support specifying OUT_DIR in json project
2020-03-17 14:47:05 +01:00
Emil Lauridsen
f5a2fcf8f5
Change existing OUT_DIR override config to make use of new infrastructure
2020-03-17 14:47:05 +01:00
Emil Lauridsen
33c6c7abc6
Support loading OUT_DIR from cargo check at launch
2020-03-17 14:47:05 +01:00
Kirill Bulatov
059ed25a3e
Fix crate display name dashes
2020-03-16 11:47:52 +02:00
Edwin Cheng
6ea7c31915
Add extern source
2020-03-11 11:04:02 +08:00
Edwin Cheng
e00a1e0b79
Setup Env in world
2020-03-11 01:06:01 +08:00
Kirill Bulatov
5cffef56e2
Consider crate declaration names
2020-03-08 23:00:50 +02:00
nmio
e15424c1b7
keep one CargoTomlNotFoundError
2020-02-29 13:05:10 +00:00
nmio
12b595e817
remove code used for testing
2020-02-27 22:06:51 +00:00
nmio
f9f8edfb06
fix unneeded body
2020-02-27 22:03:29 +00:00
nmio
9391b1c8ce
fixes and improvements
2020-02-27 21:52:10 +00:00
nmio
f1b7349e7a
clean up
2020-02-25 20:56:24 +00:00
nmio
34e3ef61bd
Initial debugging code
2020-02-24 16:38:59 +00:00
Yoshua Wuyts
b4970b0fe9
Add suggestion for failed path resolution
...
This adds https://github.com/rust-analyzer/rust-analyzer/issues/3245 as an inline help text for when path resolution fails.
2020-02-23 15:51:32 +01:00
Kirill Bulatov
eceaf94f19
More manual clippy fixes
2020-02-18 16:12:37 +02:00
Kirill Bulatov
b8ddcb0652
Run cargo +nightly fix --clippy -Z unstable-options
2020-02-18 16:03:08 +02:00
Aleksey Kladov
0bfebb8b20
Make AtomicX type resolve again
2020-02-14 19:33:39 +01:00
Adam Bratschi-Kaye
6f2cab1368
Add error context to failures in ra_project_model
using anyhow
crate ( #3119 )
...
Add error context to failures in ra_project_model using anyhow crate
2020-02-13 11:10:50 +01:00
Kirill Bulatov
78092c7c66
Apply the reviews suggestions
2020-02-05 12:47:28 +02:00
Emil Lauridsen
d6da18e99d
Address nit
2020-01-10 22:41:52 +01:00
Wilco Kusee
11caebe6ce
Remove unneeded Box::new
...
Co-Authored-By: Aleksey Kladov <aleksey.kladov@gmail.com>
2020-01-08 17:22:08 +01:00
Wilco Kusee
738d5a7ec2
Derive debug
2020-01-08 17:21:19 +01:00
Wilco Kusee
003620f0d6
Use downcasting for CargoTomlNotFoundError
2020-01-08 14:06:08 +01:00