Как запустить приложение Rust из кода Visual Studio?
5 ответов
Использование Code Runner
Установите расширение Code Runner, тогда у вас будет кнопка воспроизведения в правом верхнем углу, чтобы нажать.
Используя клавиатуру (оболочку):
Откройте редактор кода из папки вашего проекта, затем нажмите Ctrl+` (backtick) и запустите cargo run
,
Использование задачи сборки:
https://code.visualstudio.com/docs/editor/tasks
Следующим шагом является настройка файла конфигурации задачи tasks.json
, Для этого откройте командную палитру с помощью Ctrl+Shift+P, введите "Настроить задачу по умолчанию" и нажмите Enter, чтобы выбрать ее. Затем выберите "создать файл tasks.json из шаблона". Выберите "Другие", так как мы хотим запустить внешнюю команду. Это создает tasks.json
файл в вашем рабочем пространстве .vscode
папка. Использовать cargo run
чтобы запустить проект, измените содержимое следующим образом:
{
// See https://go.microsoft.com/fwlink/? LinkId=733558
// for the documentation about the tasks.json format
"version": "2.0.0",
"tasks": [
{
"taskName": "cargo run",
"type": "shell",
"command": "cargo run",
"group": "build"
}
]
}
В более сложных средах может быть более одной задачи сборки, поэтому вам будет предложено выбрать задачу для выполнения после нажатия Ctrl+Shift+B ("Выполнить задачу сборки"). Кроме того, он позволяет сканировать выходные данные на наличие проблем компиляции, поэтому выберите "Никогда не сканировать выходные данные сборки" из представленного списка.
Использование расширения vscode-rust
Установите с помощью Ctrl+P и введите "ext install vscode-rust". Запустите с помощью Ctrl+Shift+P, введите "Cargo" и выберите "Cargo:Run".
К сожалению, на данный момент нет хорошего решения. В основном вы должны добавить задачу к tasks.json
, который начинается так:
{
// See https://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
"version": "2.0.0",
"tasks": [
{
"type": "cargo",
"subcommand": "check",
"problemMatcher": [
"$rustc"
]
},
{
"type": "cargo",
"subcommand": "build",
"problemMatcher": [
"$rustc"
]
}
]
}
AR предложил добавить еще одну идентичную запись, но с "subcommand": "run"
но это не работает Вы получаете эту ошибку:
Error: The cargo task detection didn't contribute a task for the following configuration:
{
"type": "cargo",
"subcommand": "run",
"problemMatcher": [
"$rustc"
]
}
The task will be ignored.
Вместо этого вы можете добавить "type": "shell"
задача. Однако это все еще не идеально, потому что по какой-то причине добавление этой задачи означает cargo check
а также cargo build
не появляется, когда вы нажимаете Ctrl-Shift-B вообще.
Мое решение - просто изменить их на задачи оболочки, так что весь ваш tasks.json
является:
{
// See https://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
"version": "2.0.0",
"tasks": [
{
"type": "shell",
"label": "cargo check",
"command": "cargo",
"args": [
"check"
],
"problemMatcher": [
"$rustc"
],
"group": "build"
},
{
"type": "shell",
"label": "cargo build",
"command": "cargo",
"args": [
"build"
],
"problemMatcher": [
"$rustc"
],
"group": "build"
},
{
"type": "shell",
"label": "cargo run",
"command": "cargo",
"args": [
"run"
],
"problemMatcher": [
"$rustc"
],
"group": "build"
}
]
}
Мой быстрый способ создать новый проект:
инициализировать или клонировать новое репо
На vsCode установить расширения (для меня "Rust and Friends")
Создать ящик(и):
cargo new myNewApp cargo run
Выберите main.rs (или другой ржавый файл с исходным кодом xxx.rs)
Нажмите F5
- ХОРОШО
- ДА
Готовый! это создает файл launch.json на основе вашего создания.
Выберите конфигурацию запуска и нажмите F5.
Я смог заставить это работать, используя расширение VSC, Rust (rls), используя модифицированную версию сообщения AR:
"tasks": [
{
"type": "shell",
"label": "cargo run",
"command": "wsl",
"args": [
"--",
"~/.cargo/bin/cargo",
"run"
],
"problemMatcher": [
"$rustc"
],
"group": {
"kind": "build",
"isDefault": true
}
}
]
Если вы хотите запустить приложение Rust в Visual Studio Code с аргументами командной строки, вы можете настроить свою задачу следующим образом:
{
"label":"Run With Arguments",
"type":"process",
"command":"cargo",
"group":"none",
"args":[
"run",
{
"value":"--",
"quoting":"weak"
},
{
"value":"--argumentOne=\"Something\"",
"quoting":"weak"
},
{
"value":"--argumentTwo=\"Something\"",
"quoting":"weak"
}
]
}
С добавлением "--"
и слабое цитирование, вы можете передавать аргументы вашему приложению.