VSCode pour faire du : une (R)évolution ?

Présentation de l’IDE et retour d’expérience

lundi 3 juin 2024

Introduction

Bonjour 👋

  • Statisticien @ INRAE | UR “Environnement, Territoires en Transition, Infrastructures, Sociétés”
  • Ecologue de formation ayant mal tourné 🤓
  • R nerd depuis ~10ans : Traitement de données, Packages R, Applis Shiny, extensions Quarto
  • Propageur de bonnes pratiques (renv, targets, tidyverse/models, etc.)
  • Apprenti devops (gitlab cicd, docker, k8s) -> Projet SK8
R logo python logo postgresql logo quarto logo tidyverse logo tidymodels logo shiny logo VSCode logo gitlab logo docker logo odk logo Bootstrap

Et vous, vous codez avec quoi ?

  • Environnement de développement intégré (IDE) Open-Source développé par Rstudio Posit ©️

  • Indissociable de

  • Posit mise sur vscode pour Quid de l’IDE Rstudio ?

  • Quarto vs Rmarkdown == vscode vs Rstudio ?

Vscode, c’est quoi ? 🤔

Visual Studio Code

  • IDE Open-Source développé par Microsoft
  • Disponible sous et (electron.js)
  • LA référence des IDE gratuits, particulièrement auprès des développeurs web
  • Entièrement modulable (.json) et formidable bibliothèque d’extensions (>40k)
  • Excellente intégration de et
  • Prise en charge d’une 100aine de langages : C, C#, C++, CSS, HTML, Java, JavaScript, Markdown, PHP, Python…
  • … y compris !

Open source ? Pas tout à fait…

  • Le depôt microsoft/vscode dans Github est effectivement déposé sous licence libre (MIT), MAIS…
  • Le produit commercial proposé au téléchargement rajoute une couche de télémétrie/tracking en + avec données envoyées à
  • Le projet vscodium propose une version compilée directement à partir du code source vscode, sans la couche M$
  • vscodium est en tout point identique à vscode (UI, extensions,etc.) mais plus “privacy friendly”

Ca ressemble à quoi ?

A ce que l’on veut !!

Les principales fonctionnalités

L’explorateur de fichiers

  • Possibilité de glisser-déposer depuis l’explorateur de fichier
  • Renommage à la volée
  • thèmes d’icônes
  • copy/paste depuis le presse-papier (+ génération syntaxe markdown)
  • Rechercher/Remplacer dans un fichier / dans un répertoire (rapidité++ et regex)

La configuration

Ces options sont synchronisables avec votre compte Github

La palette de commandes

Un raccourci pour les gouverner tous : CTRL + MAJ + P

Les snippets

Fichier .Qmd

Fichier .R

Outils développeurs

Linting, diagnostics, mise en forme automatique…

Git

Git

Git

GitHub / GitLab

Et dans tout ça ?

Un peu de configuration

  1. install.packages("languageserver")
  2. Installer l’extension vscode REditorSupport
  3. Installer radian, une console R (basée sur python) plus conviviale que le terminal R de base
  4. install.packages("httpgd") pour l’affichage de graphiques
  5. Configurations diverses et ajout des raccourcis (pipe etc.)

C’est quoi les arguments déjà ? 🤔

Autocomplétion et aide contextuelle dans l’éditeur de script

C’est quoi les arguments déjà ? 🤔

Autocomplétion plus limitée, on ne développe pas dans la console 😉

Mais où sont mes objets ?

Mais où est mon projet ? 😨

Pas de projets à la Rstudio (.RProj)

Les workspaces vscode sont définis arbitrairement à l’échelle des répertoires (détection de dépôts git)

Quarto dans vscode

Extension vscode Quarto

  • Quarto semble très (mieux) optimisé sur vscode

Autocomplétion

Autocomplétion du YAML et du contenu Quarto

Editeur visuel

Pas encore convaincus ?

Les extensions !

Rainbow CSV


Excel Viewer


Peacock


Better Comments


Color Picker



CodeSnap



IA générative (Copilot, LLMs…)

Github Copilot (Microsoft) et intégrations de LLMs (ex : LLama3)

Database Manager



Github Actions

Gitlab Workflow

SSH Remote

Python / Jupyter (+Quarto)

Shiny

LaTeX

FOAM

Un Obsidian dans vscode !

Pour les démodés 😉

Et bien d’autres !!

https://marketplace.visualstudio.com

Conclusion

Les (quelques) inconvénients

  • Pas de templates de projet R en GUI (ex : R package with devtools)
  • Autocompletion différente (console vs radian)
  • Beaucoup de bidouille (gestion de python, configs, raccourcis, conflits d’extensions)
  • Renv : Quelques subtilités (vscode a besoin de 2 packages pour fonctionner)
  • TROP de possibilités de customisation
  • Outils spécifiquement développés pour rstudio non accessibles (type addin)

A retenir

  • Formidable outil très personnalisable qui ouvre vers une communauté de dev bien plus large que
  • Nécessite un peu plus de compétences en bidouille informatique
  • Prend tout son sens lorsque le travail devient polyglotte ( ) et/ou sur serveur
    • Si vous restez sous en local uniquement, RStudio reste un IDE 100% dédié, maintenu et tout à fait adapté
  • Fonctionnement hybride possible : RStudio pour du en local, vscode pour de la connexion SSH, du git avancé ou pour d’autres langages ?

Merci ! Des questions ?



Slides consultables ici :
https://dcarayon.fr/slides/Insee-vscode

Slides made with …

https://github.com/davidcarayon/quarto-inrae-extension

Demo Time !

References …

Partie1. « Faire du R dans VSCode ? Même pas peur ! - ThinkR - Certification & Formation langage R ». https://thinkr.fr/faire-du-r-dans-vscode-meme-pas-peur/.
Partie2. « Poursuivons notre route avec VSCode : les projets, les scripts, les notebooks ... tout est là ! - ThinkR - Certification & Formation langage R ». https://thinkr.fr/poursuivons-notre-route-avec-vscode-les-projets-les-scripts-les-notebooks-tout-est-la/.
Partie3. « Créer un package R et le versionner avec VSCode ? Mission possible ! - ThinkR - Certification & Formation langage R ». https://thinkr.fr/creer-un-package-r-et-le-versionner-avec-vscode-mission-possible/.