Aller au contenu

Extension VS Code

L'extension Elide pour VS Code 1.105 ou plus récent : synchronisation du projet pour l'intelligence de code Kotlin et Java, la barre latérale Elide, les code lens, les tests, le débogage, les tâches et les paramètres.

Sur cette page

L’extension Elide fait de tout dossier contenant un elide.pkl un projet VS Code : elle synchronise les dépendances et les source sets dans le serveur de langage Kotlin, et exécute, teste et débogue via la CLI elide.

Prérequis

PrérequisRemarques
VS Code 1.105 ou plus récentVS Code pour ordinateur, ou une version distante ou serveur avec un système de fichiers local.
Elide 1.5 ou plus récentRecherché via elide.home, $ELIDE_HOME, les emplacements d’installation, puis PATH. Elide 1.6 nécessite l’extension 0.6.0 ou plus récente.
Kotlin by JetBrainsJetBrains.kotlin-server ; installé avec l’extension. Terminez son assistant de premier lancement.
Un JDKPour l’intelligence de code ; définissez elide.jdk.home ou $JAVA_HOME.

L’extension nécessite un espace de travail approuvé : une synchronisation exécute la CLI elide de l’espace de travail.

Installer

curl -LOJ "https://plugins.elide.dev/vscode/files?id=elide.elide"
code --install-extension elide-*.vsix

Help → Get Started → Get started with Elide présente l’installation, le projet, la synchronisation, l’exécution et les tests.

Synchroniser un projet

L’ouverture d’un dossier contenant elide.pkl le synchronise : Elide résout le manifeste, installe les dépendances lorsque le fichier de verrouillage est périmé, et écrit workspace.json pour le serveur de langage Kotlin. Ajoutez workspace.json à .gitignore.

VS CodeSync and the Elide sidebar0:19Add a dependency to elide.pkl, reload when prompted, find it under Dependencies.
Barre d’étatSignification
Elide avec une cocheSynchronisé
Elide avec un indicateur de chargementSynchronisation en cours
Elide: out of dateelide.pkl ou les dépendances résolues ont changé
Elide en couleur d’erreurÉchec de la synchronisation ; Elide: Show Output contient le journal de la CLI

Cliquez sur l’élément de la barre d’état pour ouvrir le menu Elide : synchroniser, exécuter une commande, exécuter tous les tests, ouvrir elide.pkl ou la sortie. Quand elide.pkl change, l’extension propose de recharger (elide.sync.onManifestChange).

La barre latérale Elide

La vue Elide de la barre d’activité liste chaque projet :

GroupeLignesActions
EntrypointsEntrées jvm.main, entrypoint et scriptsRun, Debug
Tasksbuild, test, install, et les Build targets de elide build --inspectRun, Debug sur les cibles qui acceptent --debugger
Source setsChaque source set et ses racines
DependenciesBibliothèques résoluesAfficher dans le gestionnaire de fichiers

Intelligence de code

La complétion, la navigation et les diagnostics Kotlin et Java viennent du serveur de langage Kotlin, qui importe le workspace.json synchronisé : un module par source set, chaque bibliothèque avec ses sources, le JDK et les options Kotlin du manifeste.

VS CodeKotlin code intelligence0:12After a sync, the Kotlin language server completes project members and shows inlay hints.
  • Les JAR de sources sont installés pour les paquets Maven déclarés, si bien que Go to Definition ouvre le code de la bibliothèque (elide.install.classifiers).
  • Le JDK provient de elide.jdk.home, puis de jvm.javaHome, de $JAVA_HOME ou d’un JDK installé correspondant à jvm.target.
  • Un dépôt peut conserver un répertoire .idea d’IntelliJ : l’extension définit intellij.buildTool à json dans les paramètres de l’espace de travail, pour que chaque éditeur lise son propre modèle.

Exécuter

Les code lens exécutent ce que le projet déclare :

EmplacementCode lens
Au-dessus d’une fonction main JVMRun with Elide, Debug with Elide
jvm.main et entrypoint dans elide.pklRun, Debug
Entrées scriptsRun script
Entrées artifactsBuild ; les binaires Native Image ont aussi Run et Debug
VS CodeRun with Elide0:08The code lens above main runs the entrypoint with elide run in a task terminal.

Les exécutions sont des tâches VS Code de type elide ; les erreurs du compilateur deviennent des entrées de Problems sur le fichier et la ligne signalés.

CommandeEffet
Elide: Run Elide Command…Exécute build, test, install ou run <entrypoint> comme tâche.
Elide: Sync Project(s)Synchronise à nouveau.
Elide: Show MenuLe menu de la barre d’état.
Elide: New Project…Crée un projet à partir d’un modèle de la CLI installée.
Elide: Add Workspace Member…Crée un projet dans celui-ci et l’ajoute à workspace.members.
Elide: Open generated Kotlin LSP workspaceOuvre workspace.json.
Elide: Show OutputAffiche la sortie de la CLI et le journal de synchronisation.

Dans .vscode/tasks.json :

{ "type": "elide", "command": "test", "args": ["src/api"], "options": { "bail": 3 } }
ChampValeur
commandbuild, run, test ou install
argsArguments positionnels : cibles de build, chemins de tests, le point d’entrée
optionsOptions de la CLI : { "no-cache": true } ajoute --no-cache ; false retire une option héritée
flagsOptions de build -f NAME[=VALUE]
programArgsArguments après --
env, projectEnvironnement ; racine du projet relative au dossier de l’espace de travail

Tester

Les tests JUnit des source sets de test apparaissent dans la vue Testing, avec des icônes dans la gouttière sur chaque classe et chaque méthode. Une exécution appelle elide test --reporter=tap pour la sélection et rapporte chaque test dès qu’il se termine ; un échec affiche son message d’assertion et renvoie à la ligne en échec.

VS CodeTests in the Testing view0:10JUnit tests run through elide test and report per test.

Le profil Debug exécute les mêmes tests sous le débogueur.

Run with Coverage exécute la sélection avec --coverage et affiche le résultat dans la gouttière de l’éditeur et dans la vue Test Coverage : JavaScript et TypeScript à partir de LCOV, Java et Kotlin à partir d’un rapport XML JaCoCo. Demandez le rapport XML dans elide.pkl :

import "elide:Coverage.pkl" as Coverage

coverage {
  jvm {
    reports { Coverage.xmlReport() }
  }
}
VS CodeRun with Coverage0:10Run the tests with coverage and read covered lines in the gutter and the Test Coverage view.

Déboguer

Debug with Elide lance elide run --debugger et s’y attache. Les points d’arrêt dans les sources Kotlin et Java arrêtent le programme ; terminer la session arrête Elide.

VS CodeDebug with Elide0:13Stop on a breakpoint and inspect variables in a Kotlin program run by Elide.

Dans .vscode/launch.json :

{
  "type": "elide",
  "request": "launch",
  "name": "Elide: Run (debug)",
  "entrypoint": "src/main/kotlin/shop/Main.kt"
}
ChampValeur
commandrun (par défaut), test, ou build avec targets
entrypointFichier, script ou point d’entrée ; vide, celui du manifeste est utilisé
argsArguments du programme
elideArgs, options, flags, env, projectComme pour les tâches

elide.debug.adapter choisit le débogueur : intellij (par défaut, fourni par l’extension Kotlin) ou java (Debugger for Java). Le débogueur écoute sur le port 5005, donc une seule session peut s’exécuter à la fois. Pour le débogage CDP et DAP de JavaScript, TypeScript et Python, voir Débogage.

Native Image

Le type de lancement elide-native construit un artefact Native Image et débogue le binaire sous GDB, via l’extension C/C++ (ms-vscode.cpptools) :

{ "type": "elide-native", "request": "launch", "name": "Elide: Debug Native Image", "artifact": "bin" }

Ajoutez -g aux options.flags de l’artefact dans elide.pkl pour des points d’arrêt au niveau du source ; les informations de débogage ne sont émises que sous Linux. program débogue un binaire existant, build: false saute le build.

Espaces de travail

Un manifeste avec workspace.members se synchronise comme un seul build. Chaque membre est un projet dans la barre latérale, la vue Testing, les tâches et les configurations de lancement, et l’intelligence de code suit les dépendances project("name") entre membres sans build. À l’ouverture du répertoire d’un membre, l’extension propose d’ouvrir la racine de l’espace de travail. Voir Espaces de travail.

Paramètres

ParamètrePar défautEffet
elide.home""Racine d’installation d’Elide. Vide : $ELIDE_HOME, les emplacements d’installation, puis elide dans le PATH.
elide.jdk.home""JDK pour l’intelligence de code.
elide.sync.onStartuptrueSynchronise à l’ouverture de l’espace de travail.
elide.sync.onManifestChange"prompt"always, prompt ou never.
elide.kotlinLsp.writeWorkspaceJsontrueÉcrit workspace.json.
elide.install.classifiers["sources"]JAR supplémentaires par paquet Maven : sources, docs.
elide.flags[]Options -f NAME[=VALUE] pour chaque invocation, synchronisation comprise.
elide.build.options{}Options par défaut de elide build ; de même pour elide.run.options, elide.test.options et elide.install.options.
elide.codeLens.enabledtrueAffiche les code lens Run et Debug.
elide.debug.adapter"intellij"intellij ou java.
elide.debug.nativeMiMode"auto"gdb, lldb ou auto pour les sessions Native Image.
elide.debug.miDebuggerPath""Binaire GDB ou lldb-mi pour les sessions Native Image.

Cette page vous a-t-elle aidé ?