Comme Ansible, Terraform utilise un langage déclaratif pour décrire
le résultat attendu. Mais plutôt que le YAML, que l'on voit partout,
HashiCorp a préféré créer son propre langage de description, le HCL, ce
qui bouscule nos habitudes.
Heureusement, HashiCorp fournit une extension Visual Studio Code qui permet d'écrire plus rapidement du code HCL : sa page sur le Marketplace.
Fonctionnalité de l'extension Terraform
Bien sûr, nous allons tout de suite profiter de la coloration syntaxique, mais ce n'est pas tout !
Autocomplétion
Cette extension prend en charge l'auto-complétion pour les providers, les ressources, les sources de données, les attributs, les modules, etc.
Le raccourci [CTRL]+[SPACE] permet de :
- De créer directement tout type de bloc avec le choix des types en fonction des providers installés.
- Faire apparaître les options possibles des ressources, des sources de données, etc.

Capture : extension HashiCorp Terraform, © HashiCorp, licence MPL-2.0 (source).
Validation de la syntaxe
La syntaxe du code est validée directement à l'aide de la commande
terraform validate. Pour rappel, cette
commande
ne se connecte pas aux services distants pour faire ses contrôles.
Comptage des références utilisées
En activant cette fonctionnalité, VS Code affiche le nombre de fois où cette référence de bloc est utilisée dans le code. En cliquant sur ce compteur, vous naviguez ensuite vers chacune de ses utilisations.


Navigation dans la structure du projet
Dans l'onglet explorateur de Visual Code, la structure du projet permet de naviguer plus rapidement dans le code.

Formatage du code
Pour formater le code selon les conventions de Terraform, utilisez le raccourci [Maj]+[Alt]+[F].
Explorateur de module et providers
L'extension ajoute à l'explorateur deux vues, qui listent les modules appelés par le projet et les providers qu'il utilise.

Capture : extension HashiCorp Terraform, © HashiCorp, licence MPL-2.0 (source).
Configuration
La plupart des paramètres sont accessibles via l'interface de Visual Studio Code, mais pas tous. Le mieux est d'aller sur la documentation de l'extension.
Achèvement du code
Cette extension possède des fonctionnalités expérimentales dont l'achèvement de code. Cette fonctionnalité permet quand on crée un bloc de préremplir celui-ci avec les paramètres obligatoires.