Zum Inhalt springen

VS-Code-Erweiterung

Die Elide-Erweiterung für VS Code 1.105 oder neuer: Projektsynchronisierung für die Code-Intelligenz in Kotlin und Java, die Elide-Seitenleiste, Code Lenses, Tests, Debugging, Tasks und Einstellungen.

Auf dieser Seite

Die Elide-Erweiterung macht jeden Ordner mit einer elide.pkl zu einem VS-Code-Projekt: Sie synchronisiert Abhängigkeiten und Source-Sets in den Kotlin-Language-Server und führt aus, testet und debuggt über die elide-CLI.

Voraussetzungen

VoraussetzungHinweise
VS Code 1.105 oder neuerVS Code für den Desktop oder ein Remote- bzw. Server-Build mit lokalem Dateisystem.
Elide 1.5 oder neuerWird über elide.home, $ELIDE_HOME, die Installationsorte und zuletzt PATH gefunden. Elide 1.6 erfordert die Erweiterung 0.6.0 oder neuer.
Kotlin by JetBrainsJetBrains.kotlin-server; wird mit der Erweiterung installiert. Schließen Sie die Abfrage beim ersten Start ab.
Ein JDKFür die Code-Intelligenz; setzen Sie elide.jdk.home oder $JAVA_HOME.

Die Erweiterung braucht einen vertrauenswürdigen Workspace: Eine Synchronisierung führt die elide-CLI des Workspace aus.

Installation

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

Help → Get Started → Get started with Elide führt durch Installation, Projekt, Synchronisierung, Ausführen und Testen.

Projekt synchronisieren

Wenn Sie einen Ordner mit elide.pkl öffnen, wird er synchronisiert: Elide löst das Manifest auf, installiert Abhängigkeiten, wenn das Lockfile veraltet ist, und schreibt workspace.json für den Kotlin-Language-Server. Nehmen Sie workspace.json in .gitignore auf.

VS CodeSync and the Elide sidebar0:19Add a dependency to elide.pkl, reload when prompted, find it under Dependencies.
StatusleisteBedeutung
Elide mit HäkchenSynchron
Elide mit LadesymbolWird synchronisiert
Elide: out of dateelide.pkl oder die aufgelösten Abhängigkeiten haben sich geändert
Elide in FehlerfarbeSynchronisierung fehlgeschlagen; Elide: Show Output enthält das CLI-Log

Ein Klick auf das Element in der Statusleiste öffnet das Elide-Menü: synchronisieren, einen Befehl ausführen, alle Tests ausführen, elide.pkl oder die Ausgabe öffnen. Ändert sich elide.pkl, fragt die Erweiterung, ob neu geladen werden soll (elide.sync.onManifestChange).

Die Elide-Seitenleiste

Die Ansicht Elide in der Aktivitätsleiste listet jedes Projekt auf:

GruppeZeilenAktionen
EntrypointsEinträge jvm.main, entrypoint und scriptsRun, Debug
Tasksbuild, test, install sowie Build targets aus elide build --inspectRun, Debug bei Zielen, die --debugger annehmen
Source setsJedes Source-Set und seine Wurzeln
DependenciesAufgelöste BibliothekenIm Dateimanager anzeigen

Code-Intelligenz

Vervollständigung, Navigation und Diagnosen für Kotlin und Java liefert der Kotlin-Language-Server, der die synchronisierte workspace.json importiert: ein Modul pro Source-Set, jede Bibliothek mit ihren Quellen, das JDK und die Kotlin-Optionen des Manifests.

VS CodeKotlin code intelligence0:12After a sync, the Kotlin language server completes project members and shows inlay hints.
  • Für deklarierte Maven-Pakete werden Quell-JARs installiert, sodass Go to Definition den Bibliothekscode öffnet (elide.install.classifiers).
  • Das JDK stammt aus elide.jdk.home, danach aus jvm.javaHome, $JAVA_HOME oder einem installierten JDK, das zu jvm.target passt.
  • Ein Checkout kann ein .idea-Verzeichnis von IntelliJ behalten: Die Erweiterung setzt intellij.buildTool in den Workspace-Einstellungen auf json, sodass jeder Editor sein eigenes Modell liest.

Ausführen

Code Lenses führen aus, was das Projekt deklariert:

WoLenses
Über einer JVM-Funktion mainRun with Elide, Debug with Elide
jvm.main und entrypoint in elide.pklRun, Debug
Einträge in scriptsRun script
Einträge in artifactsBuild; Native-Image-Binärdateien zusätzlich Run und Debug
VS CodeRun with Elide0:08The code lens above main runs the entrypoint with elide run in a task terminal.

Ausführungen sind VS-Code-Tasks vom Typ elide; Compilerfehler erscheinen unter Problems an der gemeldeten Datei und Zeile.

BefehlWirkung
Elide: Run Elide Command…Führt build, test, install oder run <entrypoint> als Task aus.
Elide: Sync Project(s)Synchronisiert erneut.
Elide: Show MenuDas Menü der Statusleiste.
Elide: New Project…Legt ein Projekt aus einer Vorlage der installierten CLI an.
Elide: Add Workspace Member…Legt ein Projekt innerhalb dieses Projekts an und fügt es zu workspace.members hinzu.
Elide: Open generated Kotlin LSP workspaceÖffnet workspace.json.
Elide: Show OutputZeigt die CLI-Ausgabe und das Synchronisierungs-Log.

In .vscode/tasks.json:

{ "type": "elide", "command": "test", "args": ["src/api"], "options": { "bail": 3 } }
FeldWert
commandbuild, run, test oder install
argsPositionsargumente: Build-Ziele, Testpfade, der Einstiegspunkt
optionsCLI-Optionen: { "no-cache": true } fügt --no-cache hinzu; false entfernt eine geerbte Option
flagsBuild-Flags -f NAME[=VALUE]
programArgsArgumente nach --
env, projectUmgebung; Projektwurzel relativ zum Workspace-Ordner

Testen

JUnit-Tests in den Test-Source-Sets erscheinen in der Ansicht Testing, mit Symbolen in der Randleiste an jeder Klasse und Methode. Ein Lauf ruft elide test --reporter=tap für die Auswahl auf und meldet jeden Test, sobald er fertig ist; ein Fehlschlag zeigt seine Assertion-Meldung und verlinkt auf die fehlschlagende Zeile.

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

Das Profil Debug führt dieselben Tests im Debugger aus.

Run with Coverage führt die Auswahl mit --coverage aus und zeigt das Ergebnis in der Randleiste des Editors und in der Ansicht Test Coverage: JavaScript und TypeScript aus LCOV, Java und Kotlin aus einem JaCoCo-XML-Bericht. Fordern Sie den XML-Bericht in elide.pkl an:

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.

Debuggen

Debug with Elide startet elide run --debugger und hängt sich an. Haltepunkte in Kotlin- und Java-Quellen halten das Programm an; das Beenden der Sitzung beendet Elide.

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

In .vscode/launch.json:

{
  "type": "elide",
  "request": "launch",
  "name": "Elide: Run (debug)",
  "entrypoint": "src/main/kotlin/shop/Main.kt"
}
FeldWert
commandrun (Standard), test oder build mit targets
entrypointDatei, Skript oder Einstiegspunkt; leer verwendet den des Manifests
argsProgrammargumente
elideArgs, options, flags, env, projectWie bei Tasks

elide.debug.adapter wählt den Debugger: intellij (Standard, aus der Kotlin-Erweiterung) oder java (Debugger for Java). Der Debugger lauscht auf Port 5005, daher läuft immer nur eine Sitzung. Zum Debuggen von JavaScript, TypeScript und Python über CDP und DAP siehe Debugging.

Native Image

Der Starttyp elide-native baut ein Native-Image-Artefakt und debuggt die Binärdatei unter GDB, über die Erweiterung C/C++ (ms-vscode.cpptools):

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

Fügen Sie für Haltepunkte auf Quellcodeebene -g zu den options.flags des Artefakts in elide.pkl hinzu; Debug-Informationen werden nur unter Linux erzeugt. program debuggt eine vorhandene Binärdatei, build: false überspringt den Build.

Workspaces

Ein Manifest mit workspace.members wird als ein Build synchronisiert. Jedes Mitglied ist ein Projekt in der Seitenleiste, der Testing-Ansicht, den Tasks und den Startkonfigurationen, und die Code-Intelligenz folgt project("name")-Abhängigkeiten zwischen Mitgliedern ohne Build. Beim Öffnen des Verzeichnisses eines Mitglieds wird angeboten, die Workspace-Wurzel zu öffnen. Siehe Workspaces.

Einstellungen

EinstellungStandardWirkung
elide.home""Installationswurzel von Elide. Leer: $ELIDE_HOME, Installationsorte, zuletzt elide im PATH.
elide.jdk.home""JDK für die Code-Intelligenz.
elide.sync.onStartuptrueSynchronisiert beim Öffnen des Workspace.
elide.sync.onManifestChange"prompt"always, prompt oder never.
elide.kotlinLsp.writeWorkspaceJsontrueSchreibt workspace.json.
elide.install.classifiers["sources"]Zusätzliche JARs pro Maven-Paket: sources, docs.
elide.flags[]Flags -f NAME[=VALUE] für jeden Aufruf, einschließlich der Synchronisierung.
elide.build.options{}Standardoptionen für elide build; ebenso elide.run.options, elide.test.options und elide.install.options.
elide.codeLens.enabledtrueZeigt die Code Lenses Run und Debug.
elide.debug.adapter"intellij"intellij oder java.
elide.debug.nativeMiMode"auto"gdb, lldb oder auto für Native-Image-Sitzungen.
elide.debug.miDebuggerPath""GDB- oder lldb-mi-Binärdatei für Native-Image-Sitzungen.

War diese Seite hilfreich?