web-dev-qa-db-ja.com

Visual Studio CodeからRustアプリケーションを起動するには?

RustのVisual Studio Code拡張機能をインストールしました。

enter image description here

プロジェクトを実行したいのですが、クリックする場所がわかりません。

enter image description here

タスクの実行ビルドタスクの実行デフォルトのビルドタスクを設定しますが、妥当なことは何も起こりません。

17

統合端末 を使用する

統合端末で次のコマンドを実行します。

cargo run

注:プロジェクトフォルダーからコードエディターを開き(プロジェクトフォルダーターミナル内のcode .コマンド、またはGUIモード:プロジェクトフォルダー内を右クリックしてOpen With Codeを選択)、Ctrl + `(Ctrl + backtick)を押して統合ターミナルを開き、入力します: cargo run


タスク の使用

デフォルトのタスクとしてcargo runを追加できます。Ctrl + Shift + Pを使用してコマンドパレットを開き、Configure Default Build Taskと入力し、Enterを押して選択します。次に、Rust: cargo buildを選択します。これにより、ワークスペースのtasks.jsonフォルダーに.vscodeファイルが生成されます。 cargo runを使用してプロジェクトを実行するには、.vscode/tasks.jsonの内容を次のように変更します。

{
    // See https://go.Microsoft.com/fwlink/?LinkId=733558
    // for the documentation about the tasks.json format
    "version": "2.0.0",
    "tasks": [
        {
            "label": "cargo run",
            "type": "Shell", // "type": "cargo",
            "command": "cargo run", // "subcommand": "build",
            // "problemMatcher": ["$rustc"],
            "group": {
                "kind": "build",
                "isDefault": true
            }
        }
    ]
}

ここで、Ctrl + Shift + Bを押してタスクを実行するか、Ctrl + Shift + Pを押してコマンドパレットからTasks: Run Build Taskを選択します。


コードランナーの使用

コードランナー 拡張機能をインストールし、ソースファイルを開くと、右上隅にある再生ボタンをクリックするか、デフォルトのショートカットを使用します:Ctrl+Alt+N(ショートカットをFile>Preferences>Keyboard Shortcutsから変更して、code-runner.runと入力できます)検索ボックス内)。
注:端末内でコマンドを実行するには、code-runner.runInTerminalFile>Preferences>Settingsからtrueに設定し(またはCtrl+,を押して)、検索ボックスにcode-runner.runInTerminalと入力します。
Edit:これは開いているファイルのみを実行します(例:rustc main.rs)。 code-runner.executorMapを編集して、コマンドを次から変更できます。

"Rust": "cd $dir && rustc $fileName && $dir$fileNameWithoutExt",

に:

"Rust": "cargo run",

したがって、コードランナーは、[再生]ボタンをクリックするたびに(またはキーボードショートカットを押すたびに)cargo runコマンドを実行します。
メニューから:File>Preferences>Settings(または、Ctrl+,を押します)そして、検索ボックス内で、次のように入力します:
code-runner.executorMap [Edit in Settings.json]をクリックしてから、"code-runner.executorMap": and change "Rust":"cd $dir && rustc $fileName && $dir$fileNameWithoutExt""Rust": "cargo run"に編集します。

または、次の3行をVSCode設定JSON(settings.jsonファイル)に追加するだけです:

"code-runner.executorMap": {
  "Rust": "cargo run # $fileName"
}

Code Runnerカスタムコマンドの使用

カスタムコマンドを実行するように設定できます:"code-runner.customCommand": "cargo run"
メニュー:File>Preferences>Settings(またはCtrl+,を押します)、次に検索ボックス内でcustomCommandと入力し、実行するカスタムコマンドを設定します:cargo run。使いやすいように、このコマンドへのショートカットを変更できます。メニューから:File>Preferences>Keyboard Shortcutsを選択し、検索ボックス内でcustomCommandを入力してから、キーバインドを追加/変更します。プレス:Ctrl+L Ctrl+R


Rust-lang.Rust 拡張機能を使用する

次を使用して、コマンドラインからこの拡張機能をインストールできます。

code --install-extension Rust-lang.Rust

プラグインはタスクを使用します:Ctrl + Shift + Bを押して表示されたオプションを選択できます。現時点では、2つのオプションしかありません。

cargo check
cargo build

したがって、上記のcargo runタスクを使用する必要があります。


vscode-Rust 拡張機能を使用する

でインストール Ctrl+P 「ext install vscode-Rust」と入力します。で実行 Ctrl+Shift+P、「cargo」と入力し、「Cargo:Run」を選択します。

編集:使いやすくするために、このコマンドにショートカットを追加できます。
メニューからFile>Preferences>Keyboard Shortcutsを選択し、検索ボックス内にCargo:Runと入力してからキーバインドを追加します。 Ctrl+L Ctrl+Rを押し、この拡張機能を非RLSモードで使用してターミナルでCargoコマンドを実行している場合:"Rust.executeCargoCommandInTerminal": trueメニューでFile>Preferences>Settingsを設定(またはCtrl+,を押し)してから、検索ボックス内にexecuteCargoCommandInTerminalと入力します。

24
A.R

残念ながら、現時点では良い解決策はありません。基本的に、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"
      ]
    }
  ]
}

A.R. "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"タスクを追加できます。ただし、何らかの理由でそのタスクを追加すると、Ctrl-Shift-Bを押したときにcargo checkおよびcargo buildが表示されないため、これはまだ完全ではありません。

私の解決策は、それらをシェルタスクに変更することです。したがって、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"
    }
  ]
}
5
Timmmm

ARの投稿の修正版を使用して、VSC拡張機能 Rust(rls) を使用して、これを機能させることができました。

"tasks": [
    {
        "type": "Shell",
        "label": "cargo run",
        "command": "wsl",
        "args": [
            "--",
            "~/.cargo/bin/cargo",
             "run"
        ],
        "problemMatcher": [
            "$rustc"
        ],
        "group": {
            "kind": "build",
            "isDefault": true
        }
    }
]
2
Kip