# Utilisation de Visual Studio Code

Visual studio code est un éditeur de texte. Il en existe de nombreux, mais celui-ci est devenu courant dans l'industrie et s'adapte à de nombreux cas d'usage.

Ce document regroupe des informations pour vous aider à prendre en main VSCode.

## Mise en route

Lancez Visual Studio Code depuis le menu démarrer de votre machine. Vous verrez une interface comme ci-dessous. Sur la capture d'écran, les sections dont vous aurez besoin en TP sont indiquées par des flèches.

![alt text](./images/image-3.png)

![alt text](./images/image-8.png)


### Ouvrir un répertoire

Créez un sous-répertoire dans votre espace personnel, sous `projets/python/nom_du_tp/` et selectionnez-le. Cochez la case et cliquez sur `Yes, I trust the authors` si la fenêtre ci-dessous s'ouvre.
    ![alt text](./images/image-4.png)

```admonish tip title="Astuce"
L'explorateur de VSCode montre le contenu de votre répertoire de travail. Mais vous l'avez toujours sous les yeux, ce qui est bien plus pratique pour jongler entre de nombreux fichiers.
```

### Extension Python

Vérifiez dans le menu extensions que l'extension Python proposée par Microsoft soit bien installée. Sinon, recherchez-la dans la barre de recherche du menu des extensions et installez-la.

![alt text](./images/image-6.png)

Cette extension vous permettra d'avoir une coloration syntaxique ainsi que des suggestions pour écrire le code qui vous seront très utiles. Elle vous permettra aussi de détecter des erreurs de syntaxe, ce qui pourra vous permettre de progresser plus vite.

### Terminal 

Ouvrez le menu `Terminal`, et cliquez sur `Nouveau terminal`. Vous verrez apparaître un volet en bas avec un terminal prêt à l'emploi. 

![alt text](./images/image-7.png)

Ce terminal vous permettra de saisir des commandes systèmes.

### Python en mode interactif
Dans le terminal, tapez la commande `python`. Vous verrez apparaître l'invite de commande de l'interpréteur python. Vous pourrez l'utiliser pour essayer des commandes python au cours du TP. 

En attendant, essayez de taper `print("Hello, World!")` dans l'interpréteur pour vérifier que tout fonctionne.

![alt text](./images/image-9.png)

```admonish warning title="Attention"
Il faut bien distinguer le terminal système de la console Python.

- Le terminal système a une invite qui commence par PS (pour PowerShell, sous windows) ou qui contient votre nom (sous linux)
- La console Python permet de taper du code Python directement. Son invite commence par `>>>`

Visual studio code va parfois essayer de lancer des commandes dans le premier terminal à sa disposition, sans faire attention s'il s'agit d'une console Python. Vous verrez alors des erreurs. 

**Vérifiez toujours d'être dans le bon type de terminal**. Dans le doute, fermez-les et laissez VSCode ouvrir ce dont il a besoin.
```

### Exécuter un script Python

Dans l'explorateur, faites un clic droit et créez un nouveau fichier que vous appellerez `main.py` (ou tout autre nom plus adapté, en évitant les espaces et les majuscules). Dans ce fichier, ajoutez la ligne `print("Hello, World!")`.

![alt text](./images/image-5.png)

#### 1e méthode : ligne de commande
Dans un nouveau terminal (vous pouvez cliquer sur le petit + en haut à droite du volet terminal actuel) tapez `python main.py`. Vous devriez voir s'afficher `Hello, World!` dans le terminal.
    ![alt text](./images/image-10.png)

#### 2e méthode : via l'interface VSCode
Cliquez maintenant sur le triangle en haut à droite de votre fichier. Vous devriez voir un nouveau terminal s'ouvrir et votre script sera exécuté.

![alt text](./images/image-11.png)

Remarquez que dans ce second cas, VSCode utilise des chemins absolus (depuis `C:/`).


### Sauvegarder un fichier

Pour sauvegarder un fichier n'oubliez pas d'appuyer sur <kbd>Ctrl</kbd>+<kbd>S</kbd> régulièrement.

Vous pouvez aussi faire `Fichier > Sauvegarder` (ou `File > Save` si l'interface est en anglais) dans le menu.

Pour savoir si un fichier a des modifications en cours, regardez son onglet : 

Modifications en attente (on a un rond plein à droite):
![alt text](images/image.png)

Tout est correctement sauvegardé (on a une croix à droite):
![alt text](images/image-saved.png)