3774: Simplify SemanticTokensBuilder build method r=matklad a=kjeremy
This matches the next stable vscode api
Co-authored-by: kjeremy <kjeremy@gmail.com>
3666: Reload part of the server configuration without restarts r=matklad a=SomeoneToIgnore
Partially addresses https://github.com/rust-analyzer/rust-analyzer/issues/2857Closes#3751
Reloads all server configuration that's not related to VFS without restarts.
The VFS-related parameters are not considered, since VFS is planned to be rewritten/replaced in the future and I have a suspicion that with the current code, swapping the VFS and the file watchers on the fly will cause big troubles.
I have to store and process the config request id separately, since the `workspace/configuration` response returns `any[]` (https://microsoft.github.io/language-server-protocol/specifications/specification-current/#workspace_configuration), if there's a better way to handle those responses, let me know.
Co-authored-by: Kirill Bulatov <mail4score@gmail.com>
3761: Append new match arms rather than replacing all of them r=matklad a=mattyhall
This means we now retain comments when filling in match arms. This fixes#3687. This is my first contribution so apologies if it needs a rethink! I think in particular the way I find the position to append to and remove_if_only_whitespace are a little hairy.
Co-authored-by: Matthew Hall <matthew@quickbeam.me.uk>
3755: Update docs to mention vscode installation path on macOS r=matklad a=klochowicz
It took me a while to find it on macOS so I thought I'd spare the effort for others ;)
Co-authored-by: Mariusz Klochowicz <klochowicz@pm.me>
Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
3745: Fix merge-imports assist for wildcard imports r=matklad a=piotr-szpetkowski
Refs #3728
Besides the case mentioned in issue merging two diff-prefix wildcard uses will now work as well e.g.
```rust
use std::cell::*;
use std::str::*;
```
will translate into:
```rust
use std::{cell::*, str::*}
```
I'd also like to explore usage of the `merge-imports` for same-prefix uses to simplify redundancy, but it seems like an idea for another issue and I'm not sure if it's something that this assist should do e.g.:
```rust
use std::cell::Cell;
use std::cell::*;
```
into:
```rust
use std::cell::*;
```
Co-authored-by: Piotr Szpetkowski <piotr.szpetkowski@pyquest.space>