web-dev-qa-db-fra.com

Comment lancer une application Rust à partir de Visual Studio Code?

J'ai installé les extensions de code Visual Studio pour Rust:

enter image description here

Je veux exécuter mon projet et je ne sais pas où cliquer.

enter image description here

J'ai essayé de cliquer sur Exécuter la tâche , Exécuter la tâche de génération , Configurer la tâche de génération par défaut , mais rien de raisonnable ne se produit.

17
Stepan Yakovenko

Utilisation du terminal intégré

Exécutez la commande suivante dans le terminal intégré:

cargo run

Remarques: Ouvrez l'éditeur de code à partir de votre dossier de projet (code . commande dans le terminal du dossier du projet, ou en mode GUI: cliquez avec le bouton droit dans le dossier du projet et sélectionnez Open With Code) puis appuyez Ctrl + `(Ctrl + backtick) pour ouvrir le terminal intégré, puis entrez: cargo run


Utilisation de tâches

Vous pouvez ajouter cargo run comme tâche par défaut: ouvrez la palette de commandes avec Ctrl + Shift + P et saisissez Configure Default Build Task et appuyez sur Enter pour le sélectionner. Sélectionnez ensuite Rust: cargo build. Cela génère un tasks.json fichier dans votre espace de travail .vscode dossier. Utiliser cargo run pour exécuter le projet, modifiez le contenu de .vscode/tasks.json comme suit:

{
    // 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
            }
        }
    ]
}

Vous pouvez maintenant appuyer sur Ctrl + Shift + B pour exécuter la tâche, ou appuyez sur Ctrl + Shift + P et sélectionnez Tasks: Run Build Task à partir de la palette de commandes.


Utilisation de Code Runner

Installez l'extension Code Runner , puis ouvrez le fichier source, puis vous aurez un bouton de lecture dans le coin supérieur droit pour cliquer, ou utilisez le raccourci par défaut: Ctrl+Alt+N (Vous pouvez changer le raccourci de: File>Preferences>Keyboard Shortcuts et entrez code-runner.run dans le champ de recherche).
Remarque: Pour exécuter la commande à l'intérieur du terminal, vous pouvez définir code-runner.runInTerminal à true de File>Preferences>Settings (ou appuyez sur Ctrl+,), puis saisissez code-runner.runInTerminal dans la zone de recherche.
Modifier : Ceci exécute uniquement le fichier ouvert, par exemple: rustc main.rs. Vous pouvez modifier le code-runner.executorMap pour changer la commande de:

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

à:

"Rust": "cargo run",

Le Code Runner exécute donc le cargo run commande chaque fois que vous cliquez sur le bouton Lecture (ou en appuyant sur le raccourci clavier):
Dans le menu: File>Preferences>Settings (ou appuyez sur Ctrl+,) puis à l'intérieur du champ de recherche, entrez:
code-runner.executorMap puis clique Edit in Settings.json puis modifiez "code-runner.executorMap": and change "Rust":"cd $dir && rustc $fileName && $dir$fileNameWithoutExt" à "Rust": "cargo run".

Ou ajoutez simplement 3 lignes suivantes aux paramètres VSCode JSON (settings.json fichier):

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

Utilisation de la commande personnalisée Code Runner

Vous pouvez définir la commande personnalisée pour qu'elle s'exécute: "code-runner.customCommand": "cargo run"
Menu: File>Preferences>Settings (ou appuyez sur Ctrl+,) puis dans la zone de recherche, entrez customCommand et définissez la commande personnalisée pour qu'elle s'exécute: cargo run. Vous pouvez modifier le raccourci vers cette commande pour en faciliter l'utilisation: Dans le menu, sélectionnez: File>Preferences>Keyboard Shortcuts, puis à l'intérieur du champ de recherche, entrez: customCommand, puis ajoutez/modifiez la liaison de touches, par exemple presse: Ctrl+L Ctrl+R


En utilisant le Rust-lang.Rust extension

Vous pouvez installer cette extension à partir de la ligne de commande en utilisant:

code --install-extension Rust-lang.Rust

Le plugin utilise des tâches: vous pouvez appuyer sur Ctrl + Shift + B puis sélectionnez les options présentées, pour l'instant, il n'y a que deux options:

cargo check
cargo build

Vous devez donc utiliser le cargo run Tâche présentée ci-dessus.


En utilisant le vscode-Rust extension

Installer avec Ctrl+P et tapez "ext install vscode-Rust". Courir avec Ctrl+Shift+P, tapez "cargo" puis sélectionnez "Cargo: Run".

Modifier: vous pouvez ajouter un raccourci à cette commande pour en faciliter l'utilisation:
Dans le menu, sélectionnez: File>Preferences>Keyboard Shortcuts, puis dans la zone de recherche, entrez: Cargo:Run, puis ajoutez la liaison de touches, par exemple presse: Ctrl+L Ctrl+R, et si vous utilisez cette extension en mode non RLS pour exécuter la commande Cargo dans le terminal: vous pouvez définir "Rust.executeCargoCommandInTerminal": true dans File>Preferences>Settings menu (ou appuyez sur Ctrl+,) puis entrez executeCargoCommandInTerminal dans la zone de recherche.

24
A.R

Malheureusement, il n'y a pas de bonne solution pour le moment. Fondamentalement, vous devez ajouter une tâche à tasks.json, qui commence comme ceci:

{
  // 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. a suggéré d'ajouter une autre entrée identique mais avec "subcommand": "run" mais ça ne marche pas. Vous obtenez cette erreur:

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.

Au lieu de cela, vous pouvez ajouter un "type": "Shell" tâche. Cependant, ce n'est toujours pas parfait, car pour une raison quelconque, l'ajout de cette tâche signifie cargo check et cargo build n'apparaît pas du tout lorsque vous appuyez sur Ctrl-Maj-B.

Ma solution consiste simplement à les remplacer par des tâches Shell également, afin que l'ensemble de votre tasks.json est:

{
  // 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

J'ai pu faire fonctionner cela en utilisant l'extension VSC, Rust (rls) , en utilisant une version modifiée du message de AR:

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