Commit graph

1268 commits

Author SHA1 Message Date
Ryo Yoshida 332dd6ad6e
fix: merge multiple intersecting ranges 2022-12-31 22:08:53 +09:00
Lukas Wirth 8f8200eb14 Simplify 2022-12-21 21:34:01 +01:00
bors 6e8a54d0f6 Auto merge of #13490 - HKalbasi:layout, r=jonas-schievink
Compute data layout of types

cc #4091

Things that aren't working:
* Closures
* Generators (so no support for `Future` I think)
* Opaque types
* Type alias and associated types which may need normalization

Things that show wrong result:
* ~Enums with explicit discriminant~
* SIMD types
* ~`NonZero*` and similar standard library items which control layout with special attributes~

At the user level, I didn't put much work, since I wasn't confident about what is the best way to present this information. Currently it shows size and align for ADTs, and size, align, offset for struct fields, in the hover, similar to clangd. I used it some days and I feel I liked it, but we may consider it too noisy and move it to an assist or command.
2022-12-07 15:22:03 +00:00
hkalbasi 05906da0ec use rustc crates instead of copy paste 2022-12-07 01:59:38 +03:30
Wilco Kusee fc627e637b Update to Chalk 88 2022-12-05 17:29:23 +01:00
Wilco Kusee 16bf32fcdd Update Chalk to version 87 2022-11-29 15:25:09 +01:00
Mateusz Mikuła 46417add8d Update several crates to bring support for the new Tier 3 Windows targets 2022-11-13 22:45:09 +01:00
Lukas Wirth 1dcc25a70a internal: Use a process group for flycheck 2022-11-05 16:28:04 +01:00
Laurențiu Nicola 956b96a19d Switch to upstream positionEncoding 2022-10-25 14:43:26 +03:00
bors 4876693708 Auto merge of #13408 - lowr:patch/bump-chalk-0.86, r=Veykril
Bump chalk

There's a bug in current chalk that prevents us from properly supporting GATs, which is supposed to be fixed in v0.86. Note the following:
- v0.86 is only going to be released next Sunday so I'll keep this PR as draft until then.
- This doesn't compile without https://github.com/rust-lang/chalk/pull/779, which I hope will be included in v0.86. I confirmed this compiles with it locally.

Two breaking changes from v0.84:
- `TypeFolder` has been split into `TypeFolder` and `FallibleTypeFolder` (https://github.com/rust-lang/chalk/pull/772)
- `ProjectionTy::self_type_parameter()` has been removed (https://github.com/rust-lang/chalk/pull/778)
2022-10-16 10:57:23 +00:00
Ryo Yoshida 310a72bf47
Bump chalk to 0.86
Two breaking changes:
- `TypeFolder` has been split into `TypeFolder` and `FallibleTypeFolder`
- `ProjectionTy::self_type_parameter()` has been removed
2022-10-16 19:23:34 +09:00
Laurențiu Nicola b513111f3c Bump the rest of the deps 2022-10-15 13:06:10 +03:00
Laurențiu Nicola 119e1bafcc Bump notify 2022-10-15 13:03:39 +03:00
Laurențiu Nicola f5bbf9a06a Bump proc-macro2 2022-10-15 13:02:10 +03:00
Laurențiu Nicola 792920f441 Bump pulldown-cmark-to-cmark 2022-10-15 13:00:41 +03:00
Laurențiu Nicola 275848803b Bump mimalloc 2022-10-15 12:59:56 +03:00
Laurențiu Nicola 39777bf941 Bump rowan 2022-10-15 12:58:57 +03:00
Laurențiu Nicola 97eebbfab6 Bump url 2022-10-15 12:57:30 +03:00
Laurențiu Nicola e294640484 Bump libc 2022-10-15 12:55:56 +03:00
Laurențiu Nicola 3a5f6a705e Bump dashmap 2022-10-15 12:54:25 +03:00
Laurențiu Nicola 6e74a22918 Bump home 2022-10-15 12:53:26 +03:00
Laurențiu Nicola bb6990c4c9 Bump tracing 2022-10-15 12:52:34 +03:00
Laurențiu Nicola 50f990c46f Bump smallvec 2022-10-15 12:52:34 +03:00
Laurențiu Nicola cbce0cda08 Bump anyhow, arbitrary, itertools, semver, serde 2022-10-15 12:52:34 +03:00
Laurențiu Nicola df7d39b2ed Bump once_cell 2022-10-08 21:25:11 +03:00
Aleksey Kladov 39fa8b5c39 internal: ⬆️ xflags
The main change here should be that flags are not inhereted, so

   $ rust-analyzer analysis-stats . -v -v

would do what it should do

We also no longer Don\'t
2022-10-08 15:35:07 +01:00
Lukas Wirth 1a6c1595fe Don't retry requests that have already been cancelled 2022-09-27 17:39:15 +02:00
bors 11bf2e7ffb Auto merge of #13058 - dpaoliello:extraenv, r=Veykril
Add a new configuration settings to set env vars when running cargo, rustc, etc. commands: cargo.extraEnv and checkOnSave.extraEnv

It can be extremely useful to be able to set environment variables when rust-analyzer is running various cargo or rustc commands (such as `cargo check`, `cargo --print cfg` or `cargo metadata`): users may want to set custom `RUSTFLAGS`, change `PATH` to use a custom toolchain or set a different `CARGO_HOME`.

There is the existing `server.extraEnv` setting that allows env vars to be set when the rust-analyzer server is launched, but using this as the recommended mechanism to also configure cargo/rust has some drawbacks:
- It convolutes configuring the rust-analyzer server with configuring cargo/rustc (one may want to change the `PATH` for cargo/rustc without affecting the rust-analyzer server).
- The name `server.extraEnv` doesn't indicate that cargo/rustc will be affected but renaming it to `cargo.extraEnv` doesn't indicate that the rust-analyzer server would be affected.
- To make the setting useful, it needs to be dynamically reloaded without requiring that the entire extension is reloaded. It might be possible to do this, but it would require the client communicating to the server what the overwritten env vars were at first launch, which isn't easy to do.

This change adds two new configuration settings: `cargo.extraEnv` and `checkOnSave.extraEnv` that can be used to change the environment for the rust-analyzer server after launch (thus affecting any process that rust-analyzer invokes) and the `cargo check` command respectively. `cargo.extraEnv` supports dynamic changes by keeping track of the pre-change values of environment variables, thus it can undo changes made previously before applying the new configuration (and then requesting a workspace reload).
2022-09-18 17:43:46 +00:00
Lukas Wirth b73fa0be9c Use memmem when searching for usages in ide-db 2022-09-16 16:26:54 +02:00
Daniel Paoliello c407cc554e Add cargo.extraEnv setting 2022-09-13 11:29:14 -07:00
Lukas Wirth d025c5d8d6 Make use of NoHash hashing for FileId and CrateId 2022-08-25 20:41:49 +02:00
Lukas Wirth 2a26b054b7 Use lsp-types DECORATOR token type 2022-08-23 14:06:19 +02:00
TJ DeVries 50ecb09da4 feat: emit SCIP via rust-analyzer 2022-08-22 15:13:46 -04:00
Lukas Wirth f9d1b26a96 Replace crossbeam with std's scoped threads 2022-08-22 14:55:13 +02:00
Laurențiu Nicola e5d3ac58b3 Bump notify 2022-08-19 21:37:05 +03:00
Laurențiu Nicola f5f689588f Bump deps 2022-08-19 21:33:09 +03:00
bors 3805067bf5 Auto merge of #12905 - HKalbasi:master, r=Veykril
Generate rust type from json

fix #10118

Should this be a diagnostic? I made it a diagnostic because of issue label.
2022-08-08 11:46:22 +00:00
hkalbasi c1a175f61e Generate rust type from json 2022-07-29 20:06:01 +04:30
Amos Wenger 5f54ec0e85 Add a proc-macro-srv-cli crate 2022-07-25 15:19:57 +02:00
bors 0b131bc78e Auto merge of #12849 - Veykril:no-parse, r=Veykril
internal: Don't parse files unnecessarily in scope_for_offset
2022-07-22 23:00:35 +00:00
Lukas Wirth cb6703fe06 internal: Don't parse files unnecessarily in scope_for_offset 2022-07-23 00:50:59 +02:00
Amos Wenger 32ee097580 Run proc macro expansion in a separate thread (for the thread-local interner) 2022-07-21 18:11:50 +02:00
Amos Wenger 05d8f5fee7 Use a thread-local for the symbol interner (1/2) 2022-07-21 14:57:09 +02:00
Amos Wenger d25b61030e Add literal/ident conversion, tests pass 2022-07-20 19:18:39 +02:00
Amos Wenger 1b416473a3 Upgrade to expect-test@1.4.0
cf. https://github.com/rust-analyzer/expect-test/issues/33
cf. https://github.com/rust-lang/rust/pull/99444#issuecomment-1188844202
2022-07-19 13:00:45 +02:00
Jonas Schievink d2fd137252 Use SmallVec to slightly shrink ModPath size 2022-07-06 19:49:05 +02:00
Laurențiu Nicola 993a19a19a Bump the rest of the deps 2022-07-03 10:24:07 +03:00
Laurențiu Nicola 78beb4c444 Bump chalk 2022-07-03 10:22:10 +03:00
Laurențiu Nicola e05e6c60a7 Bump object 2022-07-03 10:14:48 +03:00
Laurențiu Nicola 5381811368 Bump tracing-subscriber 2022-07-03 10:12:58 +03:00