Wenn man es genau nimmt hätte dieses Jahr ja eigentlich die Hölle zufrieren müssen, denn Microsoft hat tatsächlich einen Ableger von Visual Studio für Linux veröffentlicht: den Texteditor Visual Studio Code. Bei VSCode handelt es sich allerdings um keinen vollwertigen IDE, wie man beim Namen eigentlich vermuten könnte, sondern um einen Texteditor, der aber immerhin einen Debugger, Autocompletion und GIT-Support mitbringt. Der Editor untersützt C#, HTML, CSS, JS und Node.JS.
Da ich für das Projekt NETRP Node.JS mit dem Express-Webserver verwende und dafür schon länger auf der Suche nach einem guten Editor bin, habe ich die Preview-Version des Microsoft-Editor gleich mal ausprobiert. Meine Erfahrungen dabei möchte ich euch nicht vorenthalten.
Installation
Die Installation ist denkbar einfach und besteht daraus ein Zip zu entpacken und das Binary im Programmordner auszuführen.
Autocompletion
Wie bei anderen Texteditoren, muss man in VSCode keine Projekte anlegen, sondern öffnet einfach den Ordner im Editor. Wenn man eine beliebige JavaScript-Datei öffnet funktioniert grundlegende Autocompletion, Compiler-Warnungen und das Syntax-Highlighting bereits automatisch.
Ohne jegliche Konfiguration kennt die Autocompletion aber momentan nur die Symbole die direkt im Code definiert wurden oder die Built-In-Objects. Beim Hovern über ein unbekanntes Symbol wird einem aber gleich ein Quick Fix angeboten um dieses Problem zu beheben: VSCode fragt im Hintergrund die Datenbank Definitely Typed ab, die Typskriptdefinitionen für sehr viele übliche JavaScript-Libraries bereitstellt. Diese Dateien können dann direkt in eingebunden und vom Autocompleter verwendet werden um das Interface der verfügbaren Funktionen nachzuschlagen.
Debugging
Fürs Debuggen benötigen wir mindestens die Version 3.12 der Mono-Runtime. Da ich aber noch Fedora20 verwende und es hier im Repository relativ düster aussieht, installiere ich die Version direkt vom Mono-Project.
Die Dokumentation von VSCode sagt uns, dass wir zuerst launch.json auf den Einstiegspunkt zeigen lassen müssen, bei NETRP liegt diese Datei in: src/netrp_server/netrp.js. Die launch.json wird automatisch generiert und ins Projekt eingefügt, sobald man die Debugging-Konfiguration des erste mal öffent.
Der Dokumentation zu folge, sollte nach F5 jetzt eigentlich bereits die Anwendung und den Debugger starten, stattdessen überrascht VSCode mit dem wenig aussagekräftigen Fehler „Connection failed„.
Eventuell existiert irgendein Problem mit der Run-Konfiguration, aber aufgrund der fehlenden Fehlerbeschreibung versuche ich lieber einfach direkt einen anderen Ansatz: den Debugger an den vorhandenen Prozess anhängen. Wenn man die Anwendung mit node –debug-brk netrp selbst startet und den Debugger stattdessen über einen TCP-Port and den Prozess anhängt, funktioniert es auch schon einwandfrei:
In der aktuellen Vorabversion unterstützt der Debugger nur die typischen Kernfeatures, also das Setzen von Breakpoints und das manuelle Stepping. Zumindest in der Linuxversion wirkt das Stepping in der Preview aber noch etwas träge und es gibt ein spürbare Verzögerung beim Bedienen des Debuggers.
Git
Das Git-Repository wird automatisch erkannt und der Reiter „Git“ zeigt alle Änderungen an. Es ist möglich komplette Dateien zu stagen und Commits zu erstellen, für feinere Aktionen ist weiterhin die CLI notwendig.
Fazit
Der Editor lässt sich schnell einrichten und verwenden und besonders das einfache beschaffen von TypeScript-Definitionen für JS-Libraries hat mich beeindruckt. Sobald das Projekt in einer finalen Version ist werde ich es wohl definitiv als Editor für meine Node-Projekte in Betracht ziehen.
Das beschriebene Problem mit dem Debugger liegt daran, dass gnome-terminal die Option „–disable-factory“ nicht mehr unterstützt, und sich sofort beendet, wenn diese mitgegeben wird.
Kann man den Fehlermeldungen entnehmen, wenn man VSCode in einem Terminal startet.
Gibt auch einen Bugreport dazu, mit Status „fix pending“.