Mentioned problem matchers and running cargo-watch as a VS Code Task

This commit is contained in:
Michael-F-Bryan 2020-07-16 20:46:54 +08:00
parent 468982e45a
commit a0eaadee55
No known key found for this signature in database
GPG key ID: E9C602B0D9A998DC

View file

@ -369,3 +369,22 @@ Or it is possible to specify vars more granularly:
``` ```
You can use any valid RegExp as a mask. Also note that a full runnable name is something like *run bin_or_example_name*, *test some::mod::test_name* or *test-mod some::mod*, so it is possible to distinguish binaries, single tests, and test modules with this masks: `"^run"`, `"^test "` (the trailing space matters!), and `"^test-mod"` respectively. You can use any valid RegExp as a mask. Also note that a full runnable name is something like *run bin_or_example_name*, *test some::mod::test_name* or *test-mod some::mod*, so it is possible to distinguish binaries, single tests, and test modules with this masks: `"^run"`, `"^test "` (the trailing space matters!), and `"^test-mod"` respectively.
==== Compiler feedback from external commands
Instead of relying on the builtin `cargo check`, rust-analyzer can run a command in the background and use the `$rustc-watch` problem matcher to parse its output to generate inline error markers.
To do this you need to create a new https://code.visualstudio.com/docs/editor/tasks[VS Code Task] and set `rust-analyzer.checkOnSave.enable: false` in preferences.
For example, if you want to run https://crates.io/crates/cargo-watch[`cargo watch`] instead you might add the following to `.vscode/tasks.json`:
```json
{
"label": "Watch",
"group": "build",
"type": "shell",
"command": "cargo watch --package rust-analyzer",
"problemMatcher": "$rustc-watch",
"isBackground": true
}
```