Как запустить приложение Rust из кода Visual Studio?

Я установил расширения кода Visual Studio для Rust:

Я хочу запустить свой проект, и я не понимаю, где нажать.

Я попытался нажать " Выполнить задачу", " Выполнить задачу сборки", " Настроить задачу сборки по умолчанию", но ничего разумного не произошло.

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"
    }
  ]
}

Мой быстрый способ создать новый проект:

  1. инициализировать или клонировать новое репо

  2. На vsCode установить расширения (для меня "Rust and Friends")

  3. Создать ящик(и):

            cargo new myNewApp
    cargo run
    
  4. Выберите main.rs (или другой ржавый файл с исходным кодом xxx.rs)

  5. Нажмите F5

  1. ХОРОШО

  1. ДА

Готовый! это создает файл 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"
      }
   ]
}

С добавлением "--" и слабое цитирование, вы можете передавать аргументы вашему приложению.

Другие вопросы по тегам