Lade...
 

Visual Studio Code

Visual Studio Code

Visual Studio Code ist ein Open Source Code-Editor von Microsoft. Über ein von ClassiX bereitgestelltes Plugin wird auch InstantView® unterstützt.

Installation

Zur Ausführung des Plugins wird Java mindestens in der Version 1.8 benötigt. Installieren Sie daher Java bitte zuerst. Die aktuellste Version kann unter https://openjdk.java.net/ gefunden werden.

Das Plugin kann einfach über den Visual Studio Code Marketplace installiert werden. Dafür gehen Sie in InstantView auf die Extensions und suchen nach InstantView. Dann sollten Sie das Plugin direkt installieren und finden können.

Einrichtung eines InstantView®-Projekts

Ein InstantView®-Projekt ist ein Basisordner, in dem dann die vom CyberEnterprise® zur Laufzeit benötigten Dateien liegen. Normalerweise liegen in diesem Basisordner die Ordner appswh mit den Modulen des AppsWarehouse®,  projects mit der Startdatei und system mit allen Dateien zur Konfiguration des Systems. In Visual Studio Code wird mit dem Projekt als Ganzes gearbeitet.

Projekt öffnen

Um ein Projekt bearbeiten zu können, sind folgende Schritte notwendig:

  1. Der Ordner wird in Visual Studio Code geöffnet. Gehen Sie dazu auf FileOpen Folder... und wählen anschließend den entsprechenden Basisordner aus.
  2. Den Aufbau eines Projekts erfährt das Plugin über IPC-Dateien. IPC-Dateien sind einfache Textdateien, die genau angeben, wo das Plugin nach Dateien suchen muss. Um die IPC-Datei anzugeben, öffnen Sie die Einstellungen über Strg + , und suchen Sie nach ipc. Es sollte im Suchergebnis der Punkt Instantview > Project: Ipc File auftauchen. Hier wird die IPC-Datei relativ zum Basisordner oder als absoluter Pfad angegeben.
  3. Um die Änderungen in den Einstellungen zu übernehmen, starten Sie Visual Studio Code bitte einmal neu.

Mehrere Projekte öffnen

Es ist in Visual Studio Code auch möglich, mehrere Projekte auf einmal zu öffnen. Die IPC-Datei kann dann für jedes Projekt einzeln konfiguriert werden. Das Vorgehen dafür ist folgendes:

  1. Wählen Sie im Menü FileOpen Folder... und öffnen den Basisordner des ersten Projekts.
  2. Alle weiteren Projekte öffnen Sie , indem Sie im Menü auf FileAdd Folder to Workspace... klicken und jeweils den Basisordner auswählen.
  3. Die IPC-Datei wird je Projekt festgelegt. Klicken Sie dafür jeweils auf den Basisordner im Explorer mit der rechten Maustaste und wählen Open Folder Settings. Hier geben Sie im Suchfeld ipc ein und suchen dann nach dem Eintrag Instantview > Project: Ipc File. Geben Sie die IPC-Datei relativ zum jeweiligen Basisordner oder mit absolutem Pfad ein.

Die Einstellungen eines Workspace, also der Zusammenstellung mehrerer Projekte lässt sich in einer Datei speichern und immer wieder öffnen. Dafür klicken Sie im Menü auf FileSave Workspace As... und wählen einen Dateinamen aus. Später kann der Workspace dann wieder im Menü über FileOpen Workspace... geöffnet werden.

Tipps und Features

Im Folgenden werden einige Tipps gegeben und Features gezeigt, die das InstantView®-Plugin unterstützt.

Vorher sollte aber noch der Begriff Symbol definiert werden: Als Symbole werden alle Definitionen wie Module, Variablen, Prozeduren, Fenster oder Widgets bezeichnet. Sie beinhalten also im Gegensatz zu reinen Textstellen schon die Semantik von InstantView®. Die Symbole einer Datei werden durch Parsen im Hintergrund bestimmt. Die aktuelle Datei wird während Änderungen ständig im Hintergrund neu geparsed, so dass auch alle Symbole in der Datei ständig aktualisiert werden. Die meisten der folgenden Features basieren auf den Symbolen einer Datei. Bitte beachten Sie auch die Hinweise zu Symbolen.

Dateien öffnen

Um Dateien in einem Projekt zu öffnen, können Sie Strg + P drücken. Es öffnet sich dann ein Menü, in das Sie einen Teil des Dateinamen eingeben können. Während des Tippens werden die möglichen Dateinamen gefiltert. Wie im Bild zu sehen ist, müssen die Teile des Dateinamens auch nicht zusammenhängend sein. Nach Auswählen eines Eintrages und Druck auf Enter wird die entsprechende Datei geöffnet.

Anzeige von Problemen

Während des Parsens wird der Quelltext analysiert und Warnungen oder Fehler können angezeigt werden. Zum Öffnen der Übersicht über alle Warnungen und Fehler drücken Sie Strg + Shift + M.

Darüber hinaus werden die Warnungen und Fehler auch durch Unterkringeln um Quelltext angezeigt und weitere Informationen können Sie durch Draufzeigen mit der Maus erhalten:

Navigation zu Symbol

Mit der Tastenkombination Strg + Shift + O kann statt zu einer anderen Datei zu einem anderen Symbol in der aktuellen Datei gesprungen werden. Auch hier können die Ergebnisse durch Eingeben eines Teils des Namens gefiltert werden.

Wenn die Taste Strg gedrückt wird und mit der Maus auf ein Symbol im Editor gezeigt wird, erscheint ein Link wenn zu dem Symbol navigiert werden kann. Durch Klick auf den Link kann dann zur Definition des Symbols gesprungen werden.

Anzeigen von Definition

Statt komplett zu einer Definition zu springen und dabei vielleicht noch die aktuelle Stelle in der Datei zu verlieren, kann die Definition des Symbols unter dem Cursor über die Tastenkombination Alt + F12 in den aktuellen Editor eingeblendet werden.

Hilfe

Wenn auf einen Befehl, ein Widget oder eine Message mit der Maus gezeigt wird, so erscheint ein Popup mit einer Hilfe zum entsprechenden Symbol. Wo möglich befindet sich in der kurzen Hilfe auch ein Link zur ausführlichen Dokumentation, die dann im Browser geöffnet wird.

Faltung von Quelltext

Auf der linken Seite des Editors erscheinen an bestimmten Stellen Pfeile mit denen Teile des Quelltextes eingeklappt werden können, um so mehr Übersicht zu erhalten.

Die Hilfe funktioniert auch für Prozeduren, auch aus Providern, und zeigt dann den entsprechenden Kommentar an. Ebenso funktioniert sie bei entsprechenden Kommentaren an Modulen oder Messages.

Autovervollständigung

Beim Tippen werden automatisch Vorschläge zur Vervollständigung des aktuellen Begriffs gemacht. Diese können durch Klicken auf Enter übernommen werden. Sollte die Liste sich mal geschlossen haben, lässt sie sich durch Strg + Leertaste wieder öffnen. Die Vorschläge sind kontextsensitiv, wird also zum Beispiel eine Klasse erwartet, so werden auch nur Klassen angezeigt. Durch weiteres Tippen kann die Liste weiter gefiltert werden.

Für die Vorschläge wird das Modul im Hintergrund während des Tippens ständig neu geparsed und die Struktur ausgewertet. Da die Struktur sich an manchen Stellen verändert sobald ein Text vorhanden ist oder nicht, kann es sein, dass die Vorschläge erst richtig sind sobald mindestens ein Buchstabe eingegeben wurde. Da sich die Vorschläge erst nach Eingeben eines Buchstaben von selbst öffnen betrifft dieser Hinweis vor allem den Fall, wenn an einer leeren Stelle Strg + Leertaste gedrückt wird. Daher sollte stattdessen lieber der erste Buchstabe eingegeben werden.

Dateistruktur

Unter dem Explorer kann der Punkt Outline aufgeklappt werden. Hier wird eine Übersicht über die Symbole in der aktuellen Datei angezeigt. Die Liste kann über das Menü mit den drei Punkten nach Position oder Name sortiert werden. Wird auf ein Symbol geklickt, so springt der Editor an die entsprechende Stelle.

Brotkrümelnavigation

Am oberen Rand des Editors wird angezeigt wo sich der Cursor gerade befindet. Per Klick auf eines der Symbole innerhalb der Navigation werden ähnliche Symbole angezeigt und es kann direkt zu den anderen Symbolen navigiert werden.

Code Lenses

Wenn ein Symbol abgeleitet ist oder in einem abgeleiteten Modul überschrieben wird, so wird das im Editor durch Hinweise über der entsprechenden Stelle, sogenannte Code Lenses, angezeigt. Durch Klick auf die Code Lenses kann zu der entsprechenden Stelle gesprungen werden.

Finden von Referenzen

Wenn der Cursor auf einem Symbol steht, so können mit der Tastenkombination Shift + Alt + F12 alle Verweise auf dieses Symbol gesucht werden. Das Suchergebnis wird dabei in der Seitenleiste angezeigt. Darüber hinaus können die Verweise über das Kontextmenü auch ohne Wechsel der Ansicht gesucht werden und direkt im Editor angezeigt werden. Dafür wählen Sie im Kontextmenü Peek Peek References.

Umbennen eines Symbols

Wenn der Cursor auf einem Symbol steht, kann mittels F2 das Symbol umbenannt werden. Es werden dabei auch automatisch alle Verweise auf das Symbol geändert. Bitte beachten Sie hierzu auch die Hinweise zu Symbolen.

Hinweis zu Symbolen

Als Symbole werden alle Definitionen wie Module, Variablen, Prozeduren, Fenster oder Widgets bezeichnet. Um mögliche Symbole in einer Datei zu finden, muss die entsprechende Datei erst geparsed werden. Der Parser wird immer zu einem Modul auch alle Elternmodule parsen. In der Standardeinstellung werden auch alle Module geparsed, die vom höchsten Elternmodul des aktuellen Moduls direkt oder indirekt abgeleitet sind, so dass alle irgendwie in der Hierarchie vorkommenen Symbole bekannt sein wenn ein Modul geöffnet wird. Dieses Verhalten lässt sich in den Einstellungen mit dem Parameter Parser: Parse Full Hierarchy einstellen.

Soll ein systemweites Refactoring vorgenommen werden, so lässt sich in den Einstellungen über den Parameter Parser: Parse All Files auch einstellen, dass beim Start alle Module geparsed werden. Damit sind dann auch alle Symbole und deren Verwendungen bekannt. Da das aber beim Start etwas dauert, ist das nicht die Standardeinstellung. Wird ohne Parsen aller Module ein Symbol umbenannt, so ist nicht garantiert, dass auch wirklich alle Verwendungen mit angepasst werden.

Nach Änderung einer der oben angegeben Einstellungen muss Visual Studio Code neu gestartet werden, damit die Änderungen übernommen werden.

Debugging

Das Plugin bietet die Möglichkeit ein laufendes CyberEnterprise® zu debuggen.

Debugger verbinden

Um eine Instanz des CyberEnterprise® zu debuggen, rechtsklicken Sie bitte bei gehaltener Alt-Taste auf ein geöffnetes Fenster und wählen Sie im neu geöffneten Monitor Window die Schaltfläche bug_blue.png Enable Debugging. Das Icon sollte sich nun grün bug_green.png färben, was anzeigt, das diese Instanz des CyberEnterprise® zum Debuggen bereit ist.

Visual Studio Code benötigt für das Debugging eine Konfigurationsdatei launch.json. Sollten Sie noch keine besitzen, lässt diese sich leicht anlegen. Klicken Sie dafür auf das Debug-Symbol in der Leiste links. Klicken Sie dann auf Show all automatic debug configurations, anschließend wählen Sie Add Configuration... und zum Schluss InstantView Debugger.

Sobald eine Konfigurationsdatei exisitert, können Sie das Debuggen über den grünen Pfeil starten. Zuerst wird nach zu debuggenden Instanzen des CyberEnterprise® gesucht und sobald Sie keine ausgewählt haben, wird der Debugger mit dieser Instanz verbunden. Sie erkennen die erfolgreiche Verbindung daran, dass die Statusleiste von Visual Studio Code orange wird.

Übersicht

Das folgende Bild zeigt eine Übersicht der Informationen und Steuerungsmöglichkeiten während des Debuggings:

Am oberen Rand befinden sich die Kontrollelemente für das Debugging. Ganz links kann die Ausführung unterbrochen oder fortgesetzt werden. Mit den folgenden Schaltflächen kann der nächste Befehl ohne oder mit Hineinspringen ausgeführt werden mit der nächsten aus dem aktuellen Befehl herausgesgesprungen werden und mit der letzten Schaltfläche kann die Verbindung zwischen Debugger und CyberEnterprise® getrennt werden.

Auf der rechten Seite wird der Quelltext angezeigt und auf der linken Seite von oben nach unten der aktuelle Stack, der aktuelle Call Stack und alle gesetzten Breakpoints.

Breakpoints können entweder durch Klicken auf die Fläche links neben einer Zeilennummer gesetzt werden. Dann wird beim ersten Befehl einer Zeile angehalten. Alternativ kann der Cursor an eine Stelle gesetzt und Shift + F9 gedrückt werden. Dann erscheitn der Breakpoint direkt vor dem entsprechenden Befehl und die Ausführung würde dort anhalten.

Direktsprung in Quelltext

Es ist möglich aus der ClassiX-Shell heraus direkt an die entsprechende Stelle im Quelltext zu springen. Dafür ist die Konfiguration der Umgebungsvariablen CX_EDITOR nötig. Diese muss auf den Wert

code.cmd -r -g %s:%d:%d

gesetzt werden. Das kann entweder über die Systemeinstellungen oder in der bat-Datei zum Starten von ClassiX® eingestellt werden. Es ist wichtig zu wissen, dass in einer bat-Datei die Prozentzeichen doppelt gesetzt werden müssen.

Mit dieser Einstellung wird die Datei in einer bereits geöffneten Instanz von Visual Studio Code geöffnet oder eine neue Instanz gestartet wenn keine offen ist. Sollte eine neue Instanz gestartet und die Datei darin geöffnet werden, wird der Basisordner nicht geöffnet, das bedeutet das Projekt wird auch nicht geladen. Es empfiehlt sich daher Visual Studio Code zuvor selbst im richtigen Ordner zu starten. Ansonsten sind bis auf die Syntaxhervorhebung alle Funktionalitäten nicht verfügbar. Alternativ kann auch noch eine Workspace-Datei angegeben werden, dann funktioniert auch das Öffnen des richtigen Projektes. Liegt die Workspace-Datei zum Beispiel unter C:\ClassiX\classix.code-workspace, ändert sich der Befehl zu:

code.cmd -r -g %s:%d:%d "C:\ClassiX\classix.code-workspace"

InstantView Scriptsprache