Hello Elixir avec VS Code

Pour développer les applications mobiles, nous avons utilisé Android Studio comme EDI. Pour développer la partie serveur en Elixir, nous souhaitons aussi disposer d’un EDI. Ce sera l’objet de cet article.

Elixir est un langage fonctionnel qui annonce permettre des applications sécurisées (ne tombant pas) avec une capacité de prise en charge d’un fort trafic (scalable).

Pour développer confortablement nous souhaitons utiliser un EDI (Environnement de Développment Intégré).

La question est simple : Comment faire de VS Code un EDI pour Elixir ?

Nous allons configurer VS Code comme Environnement de Développement Intégré pour Elixir, avec pour exemple la réalisation du projet Hello World et les outils mix.

Installation d’Elixir

Pour faire de VS Code votre EDI pour Elixir, vous devez dans un premier temps installer Elixir.

Le site officiel d’Elixir donne les liens pour télécharger Elixir.

Le script d’installation d’Elixir va aussi installer Erlang.

Hello Elixir-01-Téléchargement de l'executable d'installation
Hello Elixir-01-Téléchargement de l’exécutable d’installation

Nous enregistrons l’exécutable d’installation dans Téléchargement

Hello Elixir-02-Elixir setup
Hello Elixir-02-Elixir setup

Nous lançons l’installation.

Installation préalable d’Erlang

Elixir est un langage qui s’appuie sur Erlang. Aussi, le script d’installation d’Elixir commence par installer Erlang.

Hello Elixir-03-Elixir setup avec Erlang
Hello Elixir-03-Elixir setup avec Erlang

La version Erlang installée est OTP25.

Hello Elixir-05-Dossier d'installation d'Erlang OTP25
Hello Elixir-05-Dossier d’installation d’Erlang OTP25

Nous choisissons le répertoire d’installation.

Hello Elixir-06-Installation en cours pour Erlang
Hello Elixir-06-Installation en cours pour Erlang

L’installation prend quelques minutes

Après Erlang, installation d’Elixir

Hello Elixir-07-Dossier d'installation d'Elixir
Hello Elixir-07-Dossier d’installation d’Elixir

Nous choisissons le répertoire d’installation d’Elixir

Hello Elixir-08-Ajout au path
Hello Elixir-08-Ajout au path

Ajout d’Erlang et d’Elixir dans le Path

Hello Elixir-09-Installation terminée
Hello Elixir-09-Installation terminée

L’installation est terminée.

Nous vérifions l’installation d’Elixir :

Elixir -v

Hello Elixir-10-Vérification de l'installation
Hello Elixir-10-Vérification de l’installation

Utilisation de l’outil Mix fournit par Elixir

Mix est un outil d’aide à la création de projet Elixir. Il est l’équivalent de Gradle pour java. Mix crée l’ensemble des dossiers et des fichiers d’un projet Elixir.

En se plaçant dans le dossier de notre choix (ici, Elixir/Projets/) la commande « mix new [nom_du_projet] » crée le projet.

mix new my_project

Résultat dans la console :

Hello Elixir-11-Création d'un nouveau projet avec Mix
Hello Elixir-11-Création d’un nouveau projet avec Mix

Utiliser VS Code comme EDI pour développer les projets Elixir

Nous nous plaçons dans le répertoire du projet nouvellement créé (ici [Elixir/Projets/my_project]), et exécutons la commande [code .] pour lancer Vs Code.

cd my_projet
code .

On lance VS Code dans le répertoire du projet :

Hello Elixir-12-Lancement de vsCode
Hello Elixir-12-Lancement de vsCode

Vs Code s’ouvre avec le projet affiché dans l’explorateur.

Hello Elixir-13-Activation de vsCode
Hello Elixir-13-Activation de vsCode

Nous retrouvons tous les dossiers et fichiers créés par [mix new my_projet].

Hello Elixir-14-Le projet HelloWorld avec Elixir dans vsCode
Hello Elixir-14-Le projet HelloWorld avec Elixir dans vsCode

Un projet « Hello World ! » est créé automatiquement avec notre nouveau projet. Un fichier test est aussi créé dans le répertoire my_projet_test.

Hello Elixir-15-Execution de HelloWorld avec Elixir
Hello Elixir-15-Execution de HelloWorld avec Elixir

Nous exécutons le fichier test qui nous donne la compilation et l’exécution des tests.

mix test

Configurer VS Code comme un EDI pour exécuter les projets Élixir

Hello Elixir-16-Execution dans vsCode
Hello Elixir-16-Execution dans vsCode

Nous pouvons aussi exécuter les tests directement dans Vs Code. En (1), nous avons le débogueur. Le bouton [Exécuter et déboguer](2) lance le test. Ici, c’est notre première activation du test. Un message nous indique que nous devons créer un fichier launch.json qui n’est pas présent. Ce script est celui qui est activé par le bouton [Exécuter et déboguer]. Le message d’alerte nous propose de trouver les extensions Elixir.

Hello Elixir-17-Extention proposée par vsCode
Hello Elixir-17-Extention proposée par vsCode

Parmi les extensions possibles « ElixirLS support and debugger »propose les outils de débogage. Nous allons l’installer.

Hello Elixir-18-Extention proposée par vsCode installée
Hello Elixir-18-Extention proposée par vsCode installée

L’extension est installée, et nous avons un message nous indiquant une incompatibilité avec une autre extension : vscode-elixir« .

Hello Elixir-19-Incompatibilité d'installation dans vsCode
Hello Elixir-19-Incompatibilité d’installation dans vsCode

Nous allons désinstaller l’extension vscode-elixir pour ne garder que ElixirLS.

Hello Elixir-20-Desinstallation d'une extention dans vsCode
Hello Elixir-20-Desinstallation d’une extension dans vsCode

Nous recherchons dans la liste des extensions installées celle à supprimer.

Hello Elixir-21-Les options d'activation du debugger dans vs Code
Hello Elixir-21-Les options d’activation du debugger dans vs Code

Nous pouvons maintenant activer le débogueur de Vs Code. Celui-ci affiche 2 options :

  • mix (default link) qui est l’exécution du projet
  • mix test : qui lance les tests
Hello Elixir-22-Debug dans vs Code
Hello Elixir-22-Debug dans vs Code

Le test consiste à exécuter le code de my_project_test. La console debug affiche le résultat des tests. On peut ouvrir cette console dans le menu [Affichage>Ouvrir la vue…>Console de débogage].

Le débogueur de Vs Code utilise le fichier launch.json.

Hello Elixir-23-Le script launch-json installer par ElixirLS
Hello Elixir-23-Le script launch-json installer par ElixirLS

Ce fichier montre la configuration utilisée avec les deux options de type mix-task :

  • name : mix (default task)
  • name : mix test

Ce sont les noms utilisés par Vs Code dans le combo-box lors de l’activation du débogueur.

Utilisation de VS Code comme EDI pour Elixir

Nous venons d’installer VS Code avec les extensions ElixirLS afin de pouvoir utiliser VS Code comme Environnement de Développement Intégré pour Elixir.

Nous avons la possibilité d’activer le débogueur directement dans Vs Code et d’ouvrir la fenêtre de debug.

VS Code et le projet mix test

Nous exécutons les tests dans Vs Code en lançant en (1), puis en choisissant l’option [mix test] et en activant le bouton [run] en (2).

Hello Elixir-24-Execution des test pour le projet Elixir dans Vs Code
Hello Elixir-24-Execution des test pour le projet Elixir dans Vs Code

La console de débogage montre le résultat des tests avec 1 test et O failure. Le débogueur affiche le nom du test présent dans le code ligne 5 : test « greets the world ».

VS Code et le projet mix (Default task)

Nous activons maintenant le projet proprement dit.

Nous exécutons les tests dans Vs Code en lançant en (1), puis en choisissant l’option [mix (Default task)] et en activant le bouton [run] en (2).

Hello Elixir-25-Execution du projet Elixir dans Vs Code
Hello Elixir-25-Execution du projet Elixir dans Vs Code

Dans la console de Débogage, nous avons un message d’activation « Started ElixirLS Debugger v0.13.0…. ».

Sous la zone de débogage, nous avons une zone de saisie (3). Nous saisissons « MyProject.hello », et Elixir nous donne la réponse en affichant l’atom :world (4).

Nous avons dans la copie d’écran réalisé deux fois la saisie afin de voir le résultat en (4), et l’assistance à la saisie en (3).

Comment déboguer un projet Elixir dans VS Code

Nous venons de voir comment activer une fonction d’un module dans Vs Code. Nous allons modifier Myproject.hello pour ajouter des traces dans la console.

Déboguer avec IO.inspect

La première méthode est d’utiliser IO.inspect avec le pipe « |> ». Le pipe permet de chainer les traitements. Chaque ligne de code reçoit comme premier argument la valeur de retour de la ligne précédente. Comme IO.inspect/2 restitue la valeur reçue, cela permet d’ajouter IO.inspect/2 n’importe où dans le code sans en changer le sens.

Hello Elixir-26-IO.inspect pour débogueur un projet Elixir dans Vs Code
Hello Elixir-26-IO.inspect pour débogueur un projet Elixir dans Vs Code

Nous avons activer le code MyProject.hello depuis la console.

Comment afficher la documentation Elixir dans VS Code

La documentation Elixir est accessible dans Vs Code. L’affichage s’active lorsque nous laissons la souris sur la méthode dont nous voulons voir la documentation.

Hello Elixir-27-Documentation de la méthode IO.inspect dans Vs Code
Hello Elixir-27-Documentation de la méthode IO.inspect dans Vs Code

Afficher les arguments d’une fonction avec IO.inspect

Nous ajoutons dans notre module la fonction Bonjour, qui prend en argument un nom.

Nous pouvons activer cette fonction comme vue précédemment dans Vs Code en passant notre argument soit entre parenthèse, soit sans parenthèse :

Hello Elixir-28-Activer une methode Elixir avec passage de parametre dans Vs Code
Hello Elixir-28-Activer une méthode Elixir avec passage de paramètre dans Vs Code

Nous allons maintenant ajouter IO.inspect pour connaitre la valeur passée en argument.

Cela se fait par IO.inspect binding() à placer juste en dessous de la déclaration de la fonction.

Lorsque la console de débogage n’est pas visible, nous demandons son affichage. Pour ce faire nous allons dans [Affichage>Ouvrir la vue…>console de débogage].

Hello Elixir-29-Afficher la console de debogage dans VS Code
Hello Elixir-29-Afficher la console de débogage dans VS Code

Nous exécutons le code avec [MyProject.bonjour « Charles »]

Hello Elixir-30-IO.inspect affiche les arguments de la methode Elixir
Hello Elixir-30-IO.inspect affiche les arguments de la methode Elixir

Nous voyons [nom: « Charles »] s’afficher dans la console. Nous avons bien récupéré l’argument passé en appel de la fonction MyProject.bonjour/1 du projet Elixir.

Mise en forme du code Elixir et formatage dans VS Code

Nous pouvons mettre en forme le code directement dans VS Code.

Hello Elixir-31-Formatter le code dans VS Code
Hello Elixir-31-Formatter le code dans VS Code

Nous avons une liste de commandes accessible dans le menu [Affichage>Palette de commandes…]. Une boite de dialogue permet de faire une recherche sur les commandes disponibles. Nous entrons le mot clé Format, VS Code nous propose [Mettre le document en forme] avec le raccourcis correspondant [MAJ+Alt+F].

VS Code comme EDI pour Elixir

Nous avons vu que VS Code nous permet de créer des projets en Elixir. Voilà la méthode que nous avons exploré dans le cadre de cet article :

Créer un dossier manuellement pour accueillir notre projet.
Ouvrir une boite de commande pour exécuter [mix new my_project] afin de créer le projet dans le répertoire.
Ajouter un fichier de commande launchVsCode.bat dans le dossier avec la ligne [code .] afin d’ouvrir le projet dans VS Code.
Retrouver toute la structure du projet dans l’explorateur de VS Code.
Exécuter les tests unitaires avec l’outil de débogage de VS Code.
Activer chacune des fonctions du projet dans la console de Débogage avec [NomDuModule.nomDeLaFonction list_des_paramètres].
Placer des traces dans le code avec [IO.inspect binding()] et [|> IO.inspect].
Formater le code avec le raccourcis [MAJ+Alt+F].

La liste des raccourcis vsCode pour Windows







Si vous avez aimé l'article vous êtes libre de le partager :-)

Laisser un commentaire