Commit graph

23546 commits

Author SHA1 Message Date
Emilio Cobos Álvarez bd49d01906
ide: Remove unnecessary continue. 2022-10-22 15:15:10 +02:00
Emilio Cobos Álvarez 7ee72256eb
scip: minor clean-ups
Avoids a couple redundant hash map lookups and so.
2022-10-22 14:14:43 +02:00
Justin Mott e4ef0e5df9 addressed https://github.com/rust-lang/rust-analyzer/issues/12536 2022-10-21 13:28:59 -04:00
bors 8ee23f4f0a Auto merge of #13453 - Veykril:disabled-commands, r=Veykril
internal: Properly handle commands in the VSCode client when the server is stopped
2022-10-21 14:05:25 +00:00
Lukas Wirth 1cb46079e4 internal: Properly handle commands in the VSCode client when the server is stopped 2022-10-21 16:00:43 +02:00
bors 69f01fdff5 Auto merge of #13451 - Veykril:lang-config, r=Veykril
internal: Properly handle language configuration config changes
2022-10-20 19:15:30 +00:00
Lukas Wirth a8e0a20ce4 internal: Properly handle language configuration config changes 2022-10-20 21:14:36 +02:00
bors 2481721211 Auto merge of #13447 - Veykril:didsavedoc-block, r=Veykril
fix: Fix DidSaveDocument requests blocking the server on startup

Follow up to https://github.com/rust-lang/rust-analyzer/pull/13428
Fixes https://github.com/rust-lang/rust-analyzer/issues/13434
2022-10-20 18:13:09 +00:00
bors 7741e3dc73 Auto merge of #13448 - yotamofek:python-ext-polyfill-workaround, r=Veykril
Workaround the python vscode extension's polyfill

Fixes #13442

`String.replaceAll` and `String.replace` behave the same when given a (/g-flagged) Regex, so fix is very simple.
2022-10-20 17:59:14 +00:00
Yotam Ofek e05df93b8e Workaround the python vscode extension's polyfill 2022-10-20 17:56:51 +00:00
Lukas Wirth de195ff97c fix: Fix DidSaveDocument requests blocking the server on startup 2022-10-20 19:55:04 +02:00
not_joon 8ebc96a8a9 fix broken links in guide.md 2022-10-20 22:06:00 +09:00
bors f3cce5feea Auto merge of #13365 - feniljain:master, r=Veykril
feat: add multiple getters mode in `generate_getter`

This commit adds two modes to generate_getter action.
First, the plain old working on single fields.
Second, working on a selected range of fields.

Should partially solve #13246
If this gets approved will create a separate PR for setters version of the same

### Points to help in review:

- `generate_getter_from_record_info` contains code which is mostly taken from assist before refactor
- Same goes for `parse_record_fields`
- There are changes in other assists, as one of the methods in utils named `find_struct_impl` is changed, before it used to accept a single `fn_name`, now it takes a list of function names to check against. All old impls are updated to create a small list to pass their single element.

### Assumptions:

- If any of the fields have an implementation, the action will quit.
2022-10-20 12:07:28 +00:00
feniljain 5bff6c55de feat: add multiple getters mode in generate_getter
This commit adds two modes to generate_getter action.
First, the plain old working on single fields.
Second, working on a selected range of fields.
2022-10-20 16:47:23 +05:30
bors 32614e27fb Auto merge of #13444 - Veykril:rethrow-err, r=Veykril
fix: Don't catch the server activation error

We are are rethrowing and showing errors higher up in the call stack already. This just ate the error hiding the stacktrace unnecessarily.
2022-10-20 09:34:06 +00:00
Lukas Wirth 69b845674c Don't catch the server activation error 2022-10-20 11:32:02 +02:00
bors a77ac93b2a Auto merge of #13128 - Veykril:invocation-strategy, r=Veykril
Implement invocation strategy config

Fixes https://github.com/rust-lang/rust-analyzer/issues/10793

This allows to change how we run build scripts (and `checkOnSave`), exposing two configs:
- `once`: run the specified command once in the project root (the working dir of the server)
- `per_workspace`: run the specified command per workspace in the corresponding workspace

This also applies to `checkOnSave` likewise, though `once_in_root` is useless there currently, due to https://github.com/rust-lang/cargo/issues/11007
2022-10-19 21:53:19 +00:00
Lukas Wirth 46732369f4 Remove simplistic interpolation for manifest-path 2022-10-19 23:53:00 +02:00
Lukas Wirth 7db50294a3 {manifest-path} interpolation 2022-10-19 23:21:34 +02:00
Lukas Wirth 5174b65ed8 Use correct invocation strategy config for checkOnSave 2022-10-19 23:21:34 +02:00
Lukas Wirth 4a287d2525 Implement invocation strategy config for checkOnSave
Note that due to how cargo works, none of the modes currently work for r-a
2022-10-19 23:21:34 +02:00
Lukas Wirth 7e2c41dbd6 Implement invocation strategy config for build scripts 2022-10-19 23:21:29 +02:00
bors 82ac6f7d48 Auto merge of #13441 - Veykril:sysroot-logging, r=Veykril
Add some sysroot logging
2022-10-19 20:27:09 +00:00
Lukas Wirth 653dafa7b1 Add some sysroot logging 2022-10-19 22:26:44 +02:00
bors 339257397d Auto merge of #13439 - Veykril:simplify, r=Veykril
Simplify
2022-10-19 19:18:00 +00:00
Lukas Wirth 9d3e616f82 Simplify 2022-10-19 21:17:11 +02:00
bors 97b357e41b Auto merge of #13433 - rust-lang:revert-13354-try-stuff, r=Veykril
Revert "feat: Diagnose some incorrect usages of the question mark operator"

Reverts rust-lang/rust-analyzer#13354

It seems like we are getting stuck with inference variables here, not just placeholders and errors so there is probably more wrong here that I don't understand. Reverting seems like the best solution right now as I don't have the time to look into this this week.
2022-10-18 12:19:58 +00:00
Lukas Wirth 8047512dca
Revert "feat: Diagnose some incorrect usages of the question mark operator" 2022-10-18 14:18:59 +02:00
bors 4d4c05d32b Auto merge of #13428 - Veykril:fmt-stuck, r=Veykril
fix: Fix formatting requests hanging when r-a is still starting

The reason for that was that we were calculating the crate defmaps of the file we are saving by accident causing us to get stuck waiting on their expensive computation, while we only need the relevant crate id.

Closes https://github.com/rust-lang/rust-analyzer/issues/4054
Closes https://github.com/rust-lang/rust-analyzer/issues/11654
2022-10-17 16:21:32 +00:00
Lukas Wirth a762baca02 fix: Fix formatting requests hanging when r-a is still starting
The reason for that was that we were calculating the crate defmaps
of the file we are saving by accident causing us to get stuck waiting
on their expensive computation, while we only need the relevant crate
id.
2022-10-17 18:21:18 +02:00
bors 106285b5c4 Auto merge of #13427 - Veykril:cancel-check, r=Veykril
feat: Make flycheck workdone progress reports cancellable

In clients that support this (like VSCode), the clients will now render a cancel button on the notification message which can be clicked to cancel the flycheck instead.

Closes https://github.com/rust-lang/rust-analyzer/issues/6895
![Code_VbXgP3SbFD](https://user-images.githubusercontent.com/3757771/196205329-2df93451-c143-4d1b-a700-d988edf55efa.gif)
2022-10-17 14:41:57 +00:00
Lukas Wirth e41023ce46 Make flycheck workdone progress reports cancellable 2022-10-17 16:32:47 +02:00
bors 067c410c45 Auto merge of #13426 - Veykril:client-refactor, r=Veykril
Refactor language client handling

Follow up to https://github.com/rust-lang/rust-analyzer/pull/12847 (turns out they fixed parts of the problem)

The PR will attempt to allow us to dispose more resources at will, so that we can implement restarts for the server properly instead of restating the entire extension as well as allowing us to implement a stop command.

Closes https://github.com/rust-lang/rust-analyzer/issues/12936
Closes https://github.com/rust-lang/rust-analyzer/issues/4697
2022-10-17 14:12:01 +00:00
Lukas Wirth d63c44e650 Cleanup output channels 2022-10-17 16:01:39 +02:00
Lukas Wirth 7b5c943129 Downgrade vscode types dependency 2022-10-17 15:48:36 +02:00
Lukas Wirth 0421756b42 Implement stop and start server commands 2022-10-17 15:45:57 +02:00
Lukas Wirth d68616a140 Make more things private 2022-10-17 15:05:20 +02:00
Lukas Wirth 8aaafddee8 Properly reload changed configs for server start 2022-10-17 14:53:46 +02:00
Lukas Wirth 6f435977df Refactor language client handling 2022-10-17 14:21:12 +02:00
bors f0797929e5 Auto merge of #13302 - Veykril:auto-publish, r=Veykril
Don't auto-publish lib crates

I believe this should *just* work? With this cargo-workspaces should not consider them
2022-10-17 10:22:25 +00:00
bors 40cbeb5b3d Auto merge of #13423 - Veykril:vscode-vars, r=Veykril
Substitute some VSCode variables in the VSCode client

cc https://github.com/rust-lang/rust-analyzer/issues/13405
2022-10-17 10:08:12 +00:00
bors a2e4f783a2 Auto merge of #13399 - DropDemBits:assists-format-args-capture-pt2, r=Veykril
Migrate assists to format args captures, part 2

Continuation of #13379

Migrates:

- `generate_constant`
- `generate_default_from_enum_variant`
- `generate_default_from_new`
- `generate_delegate_methods`
- `generate_deref`
- `generate_documentation_template`
- `generate_enum_is_method`
- `generate_enum_projection_method`
- `generate_from_impl_for_enum`
- `generate_function`
- `generate_getter`
- `generate_impl`
- `generate_new`
- `generate_setter`
2022-10-17 09:54:07 +00:00
Lukas Wirth d5f467aa4a Substitute some VSCode variables in the VSCode client 2022-10-16 19:45:08 +02:00
bors 0531aab522 Auto merge of #13397 - zyctree:zyctree-patch-2, r=lnicola
fix link in syntax.md
2022-10-16 17:40:21 +00:00
zyctree ea8b62f9b0 update link in syntax.md 2022-10-17 01:39:19 +08:00
zyctree 5df03c2c18 update link in syntax.md 2022-10-16 23:41:32 +08:00
bors ee2d9eddb6 Auto merge of #13354 - Veykril:try-stuff, r=Veykril
feat: Diagnose some incorrect usages of the question mark operator

Trying to figure out how the type stuff in r-a works some more, I think I am doing this correct here but I am not quite sure :)
2022-10-16 11:11:08 +00:00
Lukas Wirth 381366f1dd Diagnose incorrect usages of the question mark operator 2022-10-16 12:58:24 +02: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