Christophe MASSOLIN
14dde99627
Pass cargo.target to rustc
2020-05-05 18:15:13 +02:00
Christophe MASSOLIN
0ab4340cdb
Rename defaultTarget
to target
2020-05-05 18:01:54 +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
1e20467c3a
Bump deps
2020-05-01 15:29:03 +03:00
Christophe MASSOLIN
e7523511ce
[config] remove RustcConfig
2020-04-28 00:17:23 +02:00
Christophe MASSOLIN
ed5af989f4
[config] rename cargo.defaultTarget
2020-04-28 00:15:54 +02:00
Christophe MASSOLIN
b7edffe244
Started rust-analyzer.cargo.defaultTarget implementation
2020-04-27 00:11:04 +02:00
bors[bot]
f654f49435
Merge #4125
...
4125: Avoid lossy OsString conversions r=matklad a=lnicola
This is a bit invasive, and perhaps for not much benefit since non-UTF-8 environment variables don't work anyway.
Co-authored-by: Laurențiu Nicola <lnicola@dend.ro>
2020-04-25 10:35:14 +00:00
Laurențiu Nicola
58dde891f8
Avoid lossy OsString conversions
2020-04-25 12:19:23 +03:00
Aleksey Kladov
aa669c5ba5
Don't print cargo version to stdout, breaking everything
2020-04-24 23:02:10 +02:00
Aleksey Kladov
6c400b3e33
More helpful error message if toolchain is not in PATH
2020-04-24 22:01:32 +02:00
Jeremy Kolb
d7f3d858ad
Some clippy fixes
2020-04-19 15:15:49 -04: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
o0Ignition0o
f643b4b5f5
Unique package by name and version.
...
This commit is a fixup of a bug I introduced by using a PackageId to refer to a crate when its name conflicts with a dependency.
It turns out the package id currently is `name version path` while cargo expects `name:version` as argument.
2020-04-02 09:00:44 +02:00
Aleksey Kladov
4936abdd49
Reduce scope of deserialization
2020-04-01 18:51:16 +02:00
Aleksey Kladov
1e012eb991
Move all config to config
2020-04-01 17:22:56 +02:00
Aleksey Kladov
8d27829781
Reduce deps
2020-03-31 19:29:11 +02:00
Aleksey Kladov
70730d7655
Rename cargo_watch -> flycheck
2020-03-31 17:29:40 +02:00
Edwin Cheng
1b8a26653f
Use matches in is_dylib
2020-03-31 22:20:18 +08:00
Edwin Cheng
503cbd3f4b
Implement ra_proc_macro client logic
2020-03-31 22:20:18 +08:00
o0Ignition0o
331d1db317
Add crate versions when running cargo -p commands.
...
Until now cargo commands with the -p flag would pass the package name only.
It doesn't play super well with the toml Renaming dependencies feature.
This commit specifies the package name and version when a cargo command is run with the -p flag,
to avoid ambiguities.
2020-03-31 14:43:39 +02:00
Edwin Cheng
d0b6ed4441
Add ProcMacroClient
2020-03-26 03:29:45 +08:00
veetaha
ce73c43848
ra_cargo_watch: return Result<> from run_cargo(), and don't read stderr for now
...
As stated by matklad, reading the stderr
should be done alngside with
stdout via select() (or I guess poll()),
there is no such implementation in stdlib,
since it is quite low level and platform-dependent and it
also requires quite a bit of unrelated code we don't use it for now.
As referenced by bjorn3, there is an implementation of the needed read2() function
in rustc compiletest. The better solution will be to extract this function
to a separate crate in future:
https://github.com/rust-analyzer/rust-analyzer/pull/3632#discussion_r395605298
2020-03-21 23:37:15 +02:00
Edwin Cheng
d62dd63256
Use target-name for crate-name
2020-03-22 01:09:38 +08:00
Aleksey Kladov
f840fcb2f5
Simplify Arena to use a generic index
2020-03-19 18:46:30 +01: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
2dd887de47
Use dyn-ref instead of impl to impact compile times the least
2020-03-17 14:56:53 +01:00
Emil Lauridsen
5af81b8456
Slight readablity improvement
2020-03-17 14:56:14 +01:00
Emil Lauridsen
e154132c91
Remove outDirOverrides
2020-03-17 14:55:44 +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
Veetaha
9f1adf8498
ra_project_model: migrate to Sysroot::alloc()
2020-03-01 00:16:57 +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
f6816c253b
Update versions
2020-02-18 16:12:40 +02: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
Kirill Bulatov
e29dbdb139
Simplify the command execution
2020-02-18 00:38:01 +02:00
Kirill Bulatov
67d30312d0
Simplify the code further
2020-02-18 00:18:26 +02:00
Kirill Bulatov
addb61df36
Idempotent location and installation of rust src
2020-02-18 00:07:15 +02:00
Kirill Bulatov
5cea8a37b7
Install rust-src when it is not found
2020-02-17 23:40:34 +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
Aleksey Kladov
5a71eb8749
More specific error if rustc --print sysroot
fails
2020-02-10 17:04:18 +01:00
Kirill Bulatov
78092c7c66
Apply the reviews suggestions
2020-02-05 12:47:28 +02:00
Aleksey Kladov
c2e3dba8cb
Add a FIXME note
2020-01-30 18:01:38 +01:00
Edwin Cheng
c32be4bfe8
Ignore illform node id from metadata
2020-01-28 17:08:17 +08:00
Emil Lauridsen
d6da18e99d
Address nit
2020-01-10 22:41:52 +01:00
Emil Lauridsen
1d1eea217d
Slightly more robust cargo watcher root search
2020-01-10 22:10:26 +01:00
Aleksey Kladov
cf5bdf464c
Merge pull request #2732 from detrumi/cargo-toml-not-found-message-toggle
...
Flag to hide cargo.toml not found error
2020-01-09 15:16:39 +01:00
Aleksey Kladov
4223760a7b
Better error message
...
closes #2775
2020-01-09 11:25:44 +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
Wilco Kusee
e7bb82c3a4
Allow disabling Cargo.toml not found error
2020-01-03 15:04:54 +01:00
Wilco Kusee
6c321d7318
Move error to new file
2020-01-03 14:34:16 +01:00
Wilco Kusee
2202891221
Split errors into WorkspaceError enum
2020-01-03 14:04:46 +01:00
Edwin Cheng
4ee3c5202e
Only add features flags if non-empty
2019-12-24 00:27:48 +08:00
Aleksey Kladov
f720855e1e
Use all-features by default
2019-12-14 17:05:12 +01:00
oxalica
af4eb26645
Support setting cargo features
2019-12-13 18:16:34 +08:00
bors[bot]
b0581c2403
Merge #2381
...
2381: Add proc-macro crate type handling r=JasperDeSutter a=JasperDeSutter
Resolves the libproc_macro crate in crates that are the proc-macro type.
This doesn't seem the ideal implementation though, since the compiler still requires you to write `extern crate proc_macro;` (even in 2018 edition).
Co-authored-by: JasperDeSutter <jasper.desutter@gmail.com>
2019-11-24 15:59:47 +00:00
JasperDeSutter
6a8b4f873a
add proc-macro crate type handling
2019-11-24 16:55:56 +01:00
Marco Groppo
e3f8e7d13d
Add alloc to the sysroot
2019-11-24 13:19:47 +01:00
Aleksey Kladov
0861ac061e
Cleanup errors
2019-11-22 14:08:18 +03:00
Aleksey Kladov
2c48fa087b
Add support for environment to CrateGraph
2019-11-22 13:57:25 +03:00
Aleksey Kladov
7e2f4b30db
Disable doctests
2019-11-17 18:35:05 +03:00
Metabaron
53b9c1c8d8
return Error instead of panicking in from_cargo_metadata
2019-11-12 12:01:13 +01:00
Metabaron
b69738590c
Implement FromStr for enum Edition
2019-11-12 12:01:13 +01:00
Matthias Einwag
d634364462
Overwrite the prelude with one defined in a later dependency
...
This removes the special casing for the "core" prelude.
Whenever a later dependency also exports a prelude, it will replace
the formerly imported prelude. The utilized prelude then depends
purely on import order.
2019-11-10 13:15:47 -08:00
Matthias Einwag
799903ba16
Resolve core types
...
This adds support for completion and goto definition of
types defined within the "core" crate. The core crate is
added as a dependency to each crate in the project.
The core crate exported it's own prelude. This caused
now all crates to inherit the core crates prelude instead
of the std crates. In order to avoid the problem the
prelude resolution has been changed to overwrite
an already resolved prelude if this was set to a crate
named core - in order to pick a better prelude like std.
Fixes #2199
2019-11-09 15:22:19 -08:00
kjeremy
e9bab85b65
Bump crates
2019-10-22 13:01:26 -04:00
Aleksey Kladov
857f419c9d
hard-code nightly-only CFGs
2019-10-08 14:43:29 +03:00
Aleksey Kladov
355419d404
use slightly more idiomatic api for cfg
2019-10-08 14:22:49 +03:00
oxalica
c6303d9fee
Use raw cfgs in json project and fix typo
2019-10-05 20:55:27 +08:00
uHOOCCOOHu
1067a1c5f6
Read default cfgs from rustc
2019-10-03 02:28:03 +08:00
uHOOCCOOHu
d2ea776b8f
Enable CfgOptions test
for workspace crates
2019-10-03 02:28:02 +08:00
Alexander Andreev
fdbd6bb11a
Added test for check doc strings in crates.
...
#1856
2019-09-30 11:58:53 +03:00
Aleksey Kladov
ef2b84ddf1
introduce hir debugging infra
...
This is to make debugging rust-analyzer easier.
The idea is that `dbg!(krate.debug(db))` will print the actual, fuzzy
crate name, instead of precise ID. Debug printing infra is a separate
thing, to make sure that the actual hir doesn't have access to global
information.
Do not use `.debug` for `log::` logging: debugging executes queries,
and might introduce unneded dependencies to the crate graph
2019-09-09 12:32:16 +03:00
ivfranco
4854408f28
close #1763
2019-09-05 22:04:56 +08:00
Bastian Köcher
18c7a1ebe7
Make sysroot use RUST_SRC_PATH
if set
2019-08-22 21:59:23 +02:00
Aleksey Kladov
7cd9b1dd7a
don't load sysroot in most heavy tests
2019-08-19 15:41:18 +03:00
Aleksey Kladov
42ae888629
⬆️ deps
2019-08-17 13:53:02 +03:00