
Publié le 2 octobre 2025
par Sébastien Julliand
Aujourd’hui, je partage avec vous quelques-unes de mes « hidden gems » dans VS Code pour IBM i. Alors attention, ce ne sont pas forcément des fonctionnalités secrètes, mais plutôt des pépites : utiles, pratiques, parfois pas très bien documentées, et qui m’ont sauvé la mise plus d’une fois.
Je suis Sébastien Julliand, Tech Lead & IBM i Advocate chez ARCAD Software, et aussi contributeur actif du projet Code for IBM i (le deuxième le plus actif d’ailleurs, ce qui m’a valu un petit badge « champion » – merci IBM 😉).
1. Synchronisation des paramètres VS Code
J’adore cette fonction. Avec un compte GitHub ou Microsoft, tous mes paramètres se synchronisent dans le cloud.
- Je peux tout retrouver si je change de PC.
- J’ai même un historique de mes changements : si je fais une bêtise, je peux revenir en arrière.
- Et franchement, ça fait aussi office de sauvegarde.
À savoir : les mots de passe ne sont pas inclus (ils restent locaux). Mais entre nous, tout le monde utilise bien KeePass, non ? 😉

2. Les profils : changer de contexte en un clic
Avec les profils, je peux passer de mon environnement de dev à celui de test sans me casser la tête.
- Les filtres (objets, IFS), la bibliothèque courante, le répertoire de travail… tout suit.
- Même les variables personnalisées sont sauvegardées.
Et surtout, je n’ai pas besoin de créer une nouvelle connexion à chaque fois. Gain de temps énorme.

3. Les variables personnalisées
Ces petites variables sont très puissantes. Elles s’enregistrent dans les profils et permettent de faire varier le comportement des actions.
Par exemple, j’ai une variable file_attr que j’utilise dans une action « Print File Definition ». Elle ne prend pas la même valeur selon que je sois en dev ou en test. Résultat : un seul script, deux comportements différents.

4. Les actions personnalisées
C’est probablement une des fonctionnalités que j’utilise le plus.
Avec les actions, je peux exécuter :
- des commandes 5250, Shell, QShell,
- sur des membres, des objets, des fichiers stream IFS, ou même mes fichiers locaux.
Et en plus, je peux :
- rafraîchir automatiquement l’explorateur après exécution,
- enregistrer la sortie dans un fichier IFS (très pratique pour garder un historique).
Petite astuce : Ctrl + E lance directement une action.

5. Les prompts d’action
Au lieu de taper tout à la main, je peux avoir des prompts intelligents :
- Si je mets ? devant ma commande, ça ouvre une invite simple.
- Mais je préfère les prompts personnalisés : menus déroulants, champs texte, listes d’options.
Exemple : pour un DSPPGM, j’ai un dropdown avec les paramètres possibles (*PRINT, *OUTFILE…). C’est beaucoup plus agréable qu’un prompt texte brut.


6. Lancer une action sur plusieurs objets
Avant, il fallait lancer une action objet par objet. Maintenant je peux sélectionner plusieurs programmes (Ctrl+clic ou Shift+clic), lancer une seule fois le prompt, et l’action s’exécute sur tous.
J’ai testé en live : sur 3 programmes, 2 ont échoué, mais les résultats restaient accessibles et bien présentés. Pratique pour vérifier.


7. Le mode protégé (Protected Mode)
Qui n’a jamais cassé la prod par erreur ? 😅
Avec le Protected Mode, je peux verrouiller une connexion entière, un répertoire (QSYS, IFS), ou juste un filtre.
Résultat : impossible de supprimer ou modifier quoi que ce soit par inadvertance. Un petit cadenas 🔒 s’affiche pour rappeler que c’est sécurisé. Et honnêtement, ça sauve des vies (ou au moins des jobs).




8. Les paramètres système globaux (/etc/vscode/settings.json)
C’est une nouveauté toute fraîche : on peut définir des règles globales valables pour tout le monde sur une partition.
Exemple : forcer la sauvegarde des source dates (histoire que personne ne les perde).
Une fois défini, impossible de désactiver l’option côté utilisateur. Et grâce à l’auto-complétion dans VS Code, on peut facilement voir tous les paramètres disponibles.

9. Upload / Download de fichiers
Simple et efficace :
- Télécharger un membre ou un fichier source complet.
- Télécharger des fichiers ou dossiers de l’IFS.
- Uploader un fichier local dans un membre ou l’IFS.
En démo, j’ai même uploadé un fichier « Jurassic Park » juste pour le fun. Oui, ça marche 😁

10. Le drag & drop entre local et IFS
Encore plus intuitif : je prends un fichier depuis mon explorateur Windows/Mac et je le dépose dans l’IFS Explorer de VS Code.
Ça fonctionne dans ce sens-là, mais pas l’inverse (limitation de l’API VS Code).

11. Comparaison standard VS Code
VS Code sait comparer nativement :
- deux fichiers ouverts (Ctrl+clic → Compare selected),
- la version active et la version sauvegardée,
- le contenu du presse-papiers avec l’éditeur actif.
Perso, je m’en sers beaucoup avant de sauvegarder un membre pour vérifier mes modifs.


12. Comparaison avec Code for IBM i
Et si on veut aller plus loin, l’extension IBM i permet de comparer :
- deux membres,
- un membre avec un streamfile,
- un fichier local avec un fichier IBM i,
- ou encore un objet avec l’éditeur actif.
Bref, impossible de dire « je ne trouve pas la différence ».

13. Historique des requêtes DB2
Combien de fois vous avez écrit une super requête… et oublié de la sauvegarder ?
Pas de panique : VS Code garde un historique des requêtes DB2 par partition (LPAR), classées par semaine, mois ou plus ancien.
Il suffit de rouvrir la requête et de la relancer. Un vrai gain de temps.

14. Les processors SQL
Il suffit de préfixer une requête pour changer son comportement :
- json → sortie JSON,
- csv → sortie CSV,
- update → rendre les résultats éditables directement,
- cl → exécuter une commande CL,
- rpg → générer une structure RPG adaptée aux résultats d’un SELECT.
J’ai montré ça en live : transformer une requête en JSON ou CSV, c’est instantané.
15. Les Notebooks DB2
C’est un de mes coups de cœur.
Un fichier .inb peut mélanger du SQL, du CL, du Shell, du Markdown… et afficher les résultats en tableau ou en graphique (camembert, barres).
On peut même exporter le tout en HTML → pratique pour fournir un rapport rapide à son manager, sans outil BI complexe.
Perso, je les utilise aussi pour créer des tutos interactifs. C’est pédagogique et visuel.


Bonus : GitHub Gists & Sandbox
Get the Gist : j’utilise l’extension GistPad pour stocker mes snippets et requêtes sur GitHub. Exemple : Scott Forstie publie plein de requêtes DB2 utiles sous forme de Gists, accessibles directement dans VS Code.

IBM i Sandbox : un environnement partagé en ligne (1 jour gratuit) pour tester Code for IBM i sans installation locale.

En conclusion
Voilà, vous connaissez maintenant mes 15 fonctionnalités préférées de VS Code pour IBM i.
Elles ne sont pas toutes spectaculaires, mais croyez-moi : elles font gagner un temps fou, elles sécurisent vos environnements, et elles rendent le travail plus agréable.
Alors, à vous de jouer : testez-les, personnalisez-les, et surtout… amusez-vous avec VS Code et IBM i !

Sébastien Julliand, Tech Lead et IBM i Advocate chez ARCAD Software, œuvre depuis plus de 10 ans à rapprocher IBM i et les systèmes ouverts. Expert en développement multi-langages (RPGLE, Java, TypeScript), il est référent fonctionnel et technique au sein du département R&D. Impliqué dans le développement de plusieurs produits ARCAD, il est chef de produit d’ARCAD CodeChecker et des extensions ARCAD pour VS Code, sur lesquels il apporte son expertise DevOps au quotidien. Speaker sur les congrès IBM i et contributeur open-source, notamment sur Code for IBM i, il a été reconnu IBM Champion en 2024 et 2025.

DEMANDEZ VOTRE DÉMO
Parlons de votre projet !
Nos experts vous conseillent