Comment ne pas être perdu avec VSCode quand on vient de RStudio ?

VSCode est très populaire en ce moment dans la communauté #rstats. Je trouve tout ce dont j’ai besoin dans RStudio et j’ai mes petites habitudes, alors comment ne pas être perdu avec VSCode ? Je présente ici les réponses à mes premières explorations sur l’utilisation de VSCode en tant qu’utilisateur R..

Vous verrez qu’il y a quelques fonctionnalités et raccourcis manquants lorsque vous commencez à utiliser VSCode. Je sais que je peux ajouter d’autres plugins et mes propres raccourcis clavier, mais je veux ici montrer ce qui existe au démarrage, sans trop de configuration. En effet, lorsqu’il y a trop de configuration personnelle, l’environnement est difficilement reproductible pour que d’autres utilisateurs puissent le tester. Mais il y a déjà beaucoup de choses possibles avec VSCode, alors explorons ça !

Par ailleurs, je sais que VSCode est beaucoup plus intéressant si vous utilisez d’autres outils de développement comme CSS, HTML, JavaScript, Docker, connexion ssh : tout ce qui est nécessaire pour R en production. Mais ce n’est pas le sujet de ce billet de blog.

Vous devez d’abord installer VSCode et les plugins appropriés comme détaillé à la fin de cet article.

Index

Ce qui m’a gêné avec VSCode en tant qu’utilisateur de RStudio ?

C’est quand tu n’as plus les choses, que tu sais qu’elles étaient importantes dans ta vie (de développeur)…

Puis-je ouvrir un projet RStudio et être dans les mêmes conditions ?

Oui. Vous devez ouvrir votre répertoire directement : Fichier > Ouvrir le dossier.
Le répertoire de travail est la racine du projet.

Puis-je avoir plusieurs sessions VSCode en parallèle ?

Oui. Ouvrez une nouvelle fenêtre, puis vous pouvez ouvrir un nouveau projet : Fichier > Nouvelle fenêtre.

Je ne comprend pas sa façon d’ouvrir des fichiers dans des onglets…

  • Double clic sur le nom du fichier : Ouvrir le fichier
  • SHIFT + double-clic : Ouvrir dans un nouvel onglet
  • CTRL + double-clic : Ouvrir dans un nouvel onglet avec une vue parallèle

Où est l’auto-indentation de mon code ?

Je ne sais pas ! Mais vous pouvez toujours utiliser l’Addin de {styler}

  • Sélectionner son code
  • CTRL + SHIFT + P
  • Trouver “Rstudio Addin”
  • Exécuter “Style selection” de {styler}

C’est quoi tous ces chiffres à côté de mon nom de fichier ?

Les sorties {lintr}. Lorsque vous ouvrez un fichier, {lintr} analyse votre code pour trouver les problèmes et les pratiques qui ne suivent pas le style classique d’écriture du code R.

Les lignes ou les mots problématiques sont soulignés dans le code. Survolez les avec votre souris pour obtenir l’information.

Comment démarrer et utiliser un fichier Rmarkdown ?

Vous le savez peut-être, je suis un grand fan de la méthode ‘Rmd First’ pour développer mes analyses et mes packages. C’est d’ailleurs la raison pour laquelle j’ai développé {fusen} : un package pour développer un package à partir d’un simple fichier Rmarkdown. Du coup, la possibilité de travailler avec un fichier RMarkdown dans VSCode est l’une de mes principales préoccupations.

Je n’ai pas trouvé comment ajouter le modèle par défaut comme dans RStudio. Cependant, vous pouvez démarrer un des deux modèles inclus dans {rmarkdown} :

  • rmarkdown::draft(file = "bonjour", template = "github_document", package = "rmarkdown", edit = FALSE)
  • rmarkdown::draft(file = "bonjour", template = "html_vignette", package = "rmarkdown", edit = FALSE)

Ensuite, ouvrez le fichier et écrivez votre code.

  • Tricoter avec : CTRL + SHIFT + K
  • Il n’y a pas de raccourci par défaut pour ajouter un nouveau chunk, mais vous pouvez créer des raccourcis clavier (voir ci-dessous).

Notez que vous pouvez ouvrir un aperçu en direct du fichier en cliquant sur l’icône de division avec une loupe en haut à droite de votre fichier.

Où est ma console R ?

Elle n’est pas ouverte par défaut lors de l’ouverture de votre projet R, car VSCode n’est pas spécifique aux utilisateurs de R. Mais vous êtes à un clic de l’ouvrir.

Cliquez sur “R: (not attached)” dans la barre de bas de page.

Puis-je utiliser VSCode pour développer un package R ?

Oui.
Astuces: Créez un fichier “dev/dev_history.R” dans votre paquet pour stocker toutes les fonctions que vous utilisez pendant le développement, car tous les boutons du RStudio ne sont pas là. Vous pouvez obtenir un exemple de ce fichier dans notre package {attachment} là : https://github.com/ThinkR-open/attachment/blob/master/dev/dev_history.R

Par ailleurs, l’utilisation de {fusen} peut vous aider dans le processus de construction d’un package sans avoir à trop penser à toutes les étapes que vous avez l’habitude de faire, comme documenter, ajouter des dépendances, faire passer le “check”, …

Y a-t-il une autocomplétion des fonctions et de l’aide de R ?

Oui, il y a une autocomplétion dans les fichiers avec l’apparition de la boîte d’aide des fonctions. Il y a une autocomplétion dans la Console R. Il y a aussi l’autocomplétion des balises “roxygen” lors de l’écriture de la documentation des fonctions.

Y a-t-il une autocomplétion pour les chemin de fichiers ?

Oui, si vous installez le plugin Path Intellisense : https://github.com/ChristianKohler/PathIntellisense

  • Vous devrez commencer votre chemin relatif par "./" pour que l’autocomplétion démarre.

Comment puis-je savoir que mon fichier n’est pas encore enregistré ?

Il y a un point à droite de l’onglet du fichier.

Comment je “commit” et “push” mes modifications?

  • Aller dans le menu Git

  • Cliquez sur le + le long du nom du fichier que vous voulez ajouter au prochain commit. Notez des lettres similaires à celles que vous trouvez sur RStudio concernant l’état de vos fichiers (M, U, A, …).

  • Vous pouvez rédiger votre message de commit

  • Appuyez sur “CTRL + Enter” pour créer le commit.

  • Cliquez sur les 3 points ... pour pousser vers le serveur.

    • Liste des opérations sur le dépôt git, comme push ou pull.

Dans le menu git view, lorsque vous ouvrez un des fichiers listés, vous verrez le “diff” avec la version commitée précédente.

Puis-je utiliser le terminal bash ?

Oui. Dans le panneau du bas, cliquez sur le + pour choisir le type de Terminal que vous voulez ouvrir Choose Terminal in VSCode

Quels raccourcis clavier sont les mêmes?

  • CTRL + Enter: Exécuter le code surligné
  • CTRL + F: Chercher un mot dans le fichier en cours
  • CTRL + SHIFT + F: Chercher un mot dans tout le dépôt
  • CTRL + SHIFT + K: Knit un fichier RMarkdown

Puis-je ouvrir un répertoire avec plusieurs dépôts git ?

Oui De cette façon, vous pourrez voir l’état git de tous vos dépôts dans ce répertoire.

Conseils : J’ai un répertoire avec tous mes projets GitHub et je peux connaître leur état avec une vue unique.

Avantages : C’est bien parce que vous pouvez être sûr que vous n’avez pas de commit restant localement, jamais envoyé au serveur.

Inconvénients : Ne vous attendez pas à utiliser ce type de vue pour travailler avec R sur un projet spécifique, car le répertoire de travail ne sera pas celui que vous attendez comme venant de RStudio.

Comment commenter un groupe de lignes avec # ?

  • CTRL + SHIFT + :

Comment explorer le code d’une fonction ?

VSCode n’ouvre pas automatiquement le code d’une fonction comme un fichier texte comme avec F2 et en utilisant browser() ou debugonce().

  • Je peux utiliser manuellement View(function).

Où sont mes “Addins” RStudio ?

  • Utilisez CTRL + SHIFT + P pour ouvrir l’explorateur de commandes.

    • Tapez “RStudio Addin”.

    • Trouvez l’addin que vous voulez utiliser

D’autres astuces ou différences intéressantes ?

  • Utiliser CTRL + SHIFT + P pour ouvrir l’explorateur de commandes

  • Dans Ubuntu, la console R est un terminal. Cela signifie que :

    • CTRL + C : Arrête l’action en cours (pas de copie)

    • SHIFT + Insert : Coller le texte que vous avez copié

  • Les fonctions de {rstudioapi} fonctionnent en l’état avec VSCode

Quels plugins VSCode installer comme kit de départ pour le développement avec R ?

Où trouver VSCode ?

https://code.visualstudio.com/

Comment installer un plugin ?

Cliquez sur l’icône des quatre carrés à gauche de VSCode et commencez à chercher les plugins disponibles.

Requis: Installation de vscode-r

Outils Git

  • GitLens - Git supercharged

    • Permet d’afficher l’historique de git et le “blame” de git en fonction des fichiers ouverts

    • Vue de l’historique Git

Autocompletion de chemins de fichiers

Quels raccourcis clavier dois-je ajouter ?

Trouver tous les raccourcis clavier existants

CTRL + K, CTRL + S

Comment ajouter mes raccourcis clavier ?

Lorsque vous êtes dans la liste des raccourcis clavier, cliquez sur le bouton supérieur droit

Quelques raccourcis clavier intéressants à ajouter à “keybindings.json” pour commencer

Comme dit plus haut, je ne vous propose pas trop de modifications des fonctionnalités originales pour que l’environnement soit similaire entre utilisateurs.

// Place your key bindings in this file to override the defaultsauto[]
[
    // assignment
    {
        "key": "alt+-",
        "command": "type",
        "when": "editorLangId == r || editorLangId == rmd && editorTextFocus",
        "args": {
            "text": " <- "
        }
    },
    // Pipe
    {
        "key": "ctrl+shift+m",
        "command": "type",
        "when": "editorLangId == r || editorLangId == rmd && editorTextFocus",
        "args": {
            "text": " |> "
        }
    },
    // Insert a chunk
    {
        "key": "ctrl+alt+i",
        "command": "type",
        "when": "editorLangId == r || editorLangId == rmd && editorTextFocus",
        "args": {
            "text": "```{r}\n\n```"
        }
    },
    // Roxygen skeleton
    {
        "key": "ctrl+alt+shift+r",
        "command": "type",
        "when": "editorLangId == r || editorLangId == rmd && editorTextFocus",
        "args": {
            "text": "#' Title\n#'\n#'Description\n#'\n#'@param $$\n#'\n#'@export\n#'\n#'@example\n#'"
        }
    }
]

Pour aller plus loin

Restez à l’écoute du développement de “vscode-R” : https://github.com/REditorSupport/vscode-R

A noter que le Wiki présente les différentes possibilités offertes par le plugin : https://github.com/REditorSupport/vscode-R/wiki

La grande question : est-ce que je vais quitter RStudio pour VSCode ?

En tant qu’utilisateur régulier de R, je ne vois pas pourquoi je quitterais RStudio où je trouve tout ce dont j’ai besoin pour créer mes projets, écrire mon fichier RMarkdown, faire mon analyse et la partager avec git sur GitLab ou GitHub. Le menu de navigation pour les titres des sections de mes fichiers Rmarkown ou R script est vraiment confortable. Je dirais aussi que l’éditeur visuel change la donne dans RStudio, en particulier pour coller des captures d’écran comme je l’ai fait dans cet article de blog.

En tant que développeur de package R, les outils de développement et de débogage inclus dans RStudio rendent la vie vraiment facile. Comme le bouton pour tester un fichier de test unique, ouvrir le fichier lors du débogage, exécuter les “checks” dans une session séparée, vérifier la version du paquet installé, …

En tant que co-développeur de R en production, je pense que les plugins disponibles dans VSCode vont changer ma vie comme lorsque je travaille avec Docker, des connexions à des serveurs distants, développe dans d’autres langages web et de programmation. Je trouve la liste d’exploration des dossiers/fichiers avec le cacher/afficher des fichiers beaucoup plus confortable que le volet “Files” de RStudio. Je trouve l’exploration des branches git, de l’historique git, … très utile. Et le “Live sharing” permettra probablement des sessions de programmation en binôme plus intéressantes.

En tant que formateur à R, je vais rester dans RStudio. Il y a déjà beaucoup de choses à apprendre quand on commence un nouveau langage. Quel que soit le niveau sur lequel j’enseigne, débutants, développement de package, Shiny pour la production, … Je pense que comme RStudio est centré sur R, il y a moins de bruit autour, et nous pouvons nous concentrer sur R et pas trop sur la compréhension de l’IDE. On peut penser que le “Live Sharing” pourrait probablement être quelque chose qui manque à RStudio pour l’enseignement à distance, mais je préfère personnellement expliquer ce qu’il faut faire plutôt que de l’écrire moi-même dans le code des participants, afin qu’ils comprennent mieux ce qu’ils font.

Et vous ? Vous avez essayé ?
C’est quoi vos plugins et raccourcis préférés ?



Citation :

Merci de citer ce travail avec :
Rochette Sébastien. (2021, oct.. 09). "Comment ne pas être perdu avec VSCode quand on vient de RStudio ?". Retrieved from https://statnmap.com/fr/2021-10-09-comment-ne-pas-etre-perdu-avec-vscode-quand-on-vient-de-rstudio/.


Citation BibTex :
@misc{Roche2021Comme,
    author = {Rochette Sébastien},
    title = {Comment ne pas être perdu avec VSCode quand on vient de RStudio ?},
    url = {https://statnmap.com/fr/2021-10-09-comment-ne-pas-etre-perdu-avec-vscode-quand-on-vient-de-rstudio/},
    year = {2021}
  }