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.
3777: Add basic task support r=matklad a=Timmmm
This adds basic support for running `cargo build`, `cargo run`, etc.
Fixes#1935
I have tested this and it seems to work. There are two things I'm not sure about:
1. The workspace folder handling seems wrong - just get the first workspace folder? Is this just a TODO item? I don't know if it is right to lift `workspaceFolder` up to `activate()` but I couldn't see another way.
2. If you manually add an entry to `tasks.json` like this:
```
{
"type": "cargo",
"command": "build",
"problemMatcher": [
"$rustc"
],
"group": "build"
}
```
then VSCode somehow magically knows to run `cargo build`. The documentation for `resolveTask` *sounds* like I should have to implement that for it to work:
```
* Resolves a task that has no [`execution`](#Task.execution) set. Tasks are
* often created from information found in the `tasks.json`-file. Such tasks miss
* the information on how to execute them and a task provider must fill in
* the missing information in the `resolveTask`-method.
```
But then it also says this:
```
* This method will not be
* called for tasks returned from the above `provideTasks` method since those
* tasks are always fully resolved. A valid default implementation for the
* `resolveTask` method is to return `undefined`.
```
Either way, it works without implementing it so the only thing I can think is that it is doing some kind of crazy pattern matching of the tasks returned by `provideTasks()` and the ones found in `tasks.json`.
3784: Ignore createProgress request in tests r=matklad a=matklad
closes#3783
bors r+
🤖
Co-authored-by: Tim <tdhutt@gmail.com>
Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
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>