Divekit Language Plugin IntelliJ

July 26, 2021 · View on GitHub

Beschreibung

Dieses Repository enthält den Sourcecode für das Divekit-IntelliJ Plugin. Zusammen mit den Repositorys divekit-language-plugin-vscode und divekit-language-server bildet es die Codebasis für das Praxisprojekt "Entwicklung eines IDE Plugins zur Unterstützung bei der Erstellung individualisierter Praktika-und Klausuraufgaben".

Eine ausführliche Dokumentation der verschiedenen Projektbestandteile befindet sich im Wiki.

Nutzung

Das Plugin ist für die Nutzung im Projekt automated-repo-setup entwickelt worden.

Nach der Installation sind noch folgende Schritte erforderlich:

  • Divekit Language Server JAR muss auf dem lokalen Dateisystem vorhanden sein. Dies kann durch clonen des Language Server Repositorys und anschließendes bauen der JAR mit mvn package erreicht werden.

  • Der absolute Pfad zur JAR muss in den Einstellungen(STRG + ALT + S) unter Tools -> Divekit: Settings eingetragen werden.

  • Optional kann noch der absolute Pfad zu den Dateien variationsConfig.json und variableExtensionsConfig.json in den Einstellungen eingetragen werden. Sind diese Felder leer, wird das Projekt vom Root-Folder aus nach den Dateien durchsucht. Achtung: Das Plugin startet den Language Server nur, wenn die beiden Config-Dateien gefunden werden.

  • Anschließend kann das Projekt automated-repo-setup gestartet werden. Wenn es vorher schon geöffnet war, muss es einmal geschlossen und wieder geöffnet werden. Wenn unten rechts die Meldung erscheint, dass der Language Server in diesem Projekt genutzt werden kann, hat alles funktioniert.

Weiterentwicklung & Anpassungen

  • Probleme & Fehler können auf GitHub zuerst unter der Issues eingetragen werden und anschließend von da abgearbeitet werden.

  • Vor dem Mergen empfiehlt sich in der Regel ein Pull-Request, da so die Code-Qualität hoch gehalten werden kann.

  • Über den Gradle-Task runIde unter dem Menüpunkt intellij in der Gradle Sidebar lässt sich eine neue IntelliJ Instanz mit installiertem Plugin zum schnellen Testen der Funktionalität öffnen.

Testen

  • Der DivekitCodeCompletionTest testet die Funktionalität des Plugins in Zusammenspiel mit dem Divekit-Language-Server. Wenn der Test erfolgreich ist, funktioniert die Code Completion wie erwartet. Der Test ist im Code ausführlich durch Kommentare beschrieben.

  • Um den Test lokal laufen zu lassen muss in Zeile 163 der absolute Pfad zur Divekit Language Server JAR-Datei eingetragen werden.