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.
Nous enregistrons l’exécutable d’installation dans Téléchargement
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.
La version Erlang installée est OTP25.
Nous choisissons le répertoire d’installation.
L’installation prend quelques minutes
Après Erlang, installation d’Elixir
Nous choisissons le répertoire d’installation d’Elixir
Ajout d’Erlang et d’Elixir dans le Path
L’installation est terminée.
Nous vérifions l’installation d’Elixir :
Elixir -v
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 :
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 :
Vs Code s’ouvre avec le projet affiché dans l’explorateur.
Nous retrouvons tous les dossiers et fichiers créés par [mix new my_projet].
Un projet « Hello World ! » est créé automatiquement avec notre nouveau projet. Un fichier test est aussi créé dans le répertoire my_projet_test.
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
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.
Parmi les extensions possibles « ElixirLS support and debugger »propose les outils de débogage. Nous allons l’installer.
L’extension est installée, et nous avons un message nous indiquant une incompatibilité avec une autre extension : vscode-elixir« .
Nous allons désinstaller l’extension vscode-elixir pour ne garder que ElixirLS.
Nous recherchons dans la liste des extensions installées celle à supprimer.
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
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.
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).
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).
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.
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.
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 :
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].
Nous exécutons le code avec [MyProject.bonjour « Charles »]
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.
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