WasTabon, в общем вот список моих екстеншенов (копировал extension id чтобы легко можно было найти):
- vadimcn.vscode-lldb (для отладки)
- bungcip.better-toml (чтобы была подсветка в cargo.toml)
- serayuzgur.crates (для автодополнения имён и версий пакетов)
- matklad.rust-analyzer (самое главное)
- swellaby.vscode-rust-test-adapter (чтобы тесты запускать через боковую панель)
- jscearcy.rust-doc-viewer (чтобы документацию удобнее смотреть)
Все остальные расширения советую удалить дабы точно не было конфликтов.
Вот мои файлы когда только создал проект:
Rust-analyzer сразу добавил линзу "Debug" около мейна, жму на неё.
И вот результат, всё работает:
PS:
❯ cargo -V
cargo 1.58.0 (7f08ace4f 2021-11-24)
❯ rustup toolchain list
stable-x86_64-pc-windows-msvc (default)
PPS: о launch.json
Вот тут есть вполне очевидная кнопка/ссылка "create a launch.json file"
При её нажатии возникает вполне понятный вопрос:
Если на него ответить "Yes", то в папке .vscode появится файл launch.json с вот таким содержимым:
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"type": "lldb",
"request": "launch",
"name": "Debug executable 'rust-demo'",
"cargo": {
"args": [
"build",
"--bin=rust-demo",
"--package=rust-demo"
],
"filter": {
"name": "rust-demo",
"kind": "bin"
}
},
"args": [],
"cwd": "${workspaceFolder}"
},
{
"type": "lldb",
"request": "launch",
"name": "Debug unit tests in executable 'rust-demo'",
"cargo": {
"args": [
"test",
"--no-run",
"--bin=rust-demo",
"--package=rust-demo"
],
"filter": {
"name": "rust-demo",
"kind": "bin"
}
},
"args": [],
"cwd": "${workspaceFolder}"
}
]
}
Тут у нас появляется две конфигурации - одна для запуска приложения, а другая для запуска тестов.
Работает эта шняга абсолютно также, как показал выше.
UPD: оформил в виде статьи
https://habr.com/ru/post/645797/