Daniel Esser

Im April diesen Jahres hat Microsoft eine neue Code Editor mit dem Namen Visual Studio Code vorgestellt. Optisch erinnert der Editor an moderne Pendants wie Atom und in der Tat setzen beide Editoren auf der gleichen Basis auf (Electron). Microsoft setzt nun auch beim Thema Code Editor auf diese bekannte Open Source Plattform.

Momentan lässt sich der Funktionsumfang von Visual Studio und Visual Studio Code nur schwer vergleichen, da die beiden Editoren sich in der Basis unterscheiden und nicht miteinander kompatibel sind. Der Editor unterstützt die gängigsten Programmiersprachen aus dem eigenen Hause wie C#, PowerShell, F#, Visual Basic aber auch viele offene Standards wie Python, Ruby oder Lua. Viele bekannte Erweiterungen, wie zum Beispiel das SQL Server Data Tools Plugin, sind leider nicht verfügbar. Darüber hinaus ist der Editor im Gegensatz zu seinem Vetter Visual Studio plattformunabhängig für Linux, Mac und Windows verfügbar. In punkto Modularität sind beide Editoren gleich auf; im Visual Studio Marketplace finden sich Erweiterungen für Visual Studio, Visual Studio Code und Visual Studio Team Services; gleichwohl Microsoft nun die Chance hat mit dem neuen Editor einiges an Altlasten über Board zu werfen. Ein kurzer Blick auf die aktuellen Möglichkeiten:

Bracket Matching

Klammern werden hervorgehoben sobald der Cursor in die nähe kommt.

Selection & Multi-Cursor

VS Code unterstützt Multi-Cursors. Es können mehrere Cursor hinzugefügt werden. Jeder Cursor operiert unabhängig voneinander.

Shrink/expand selection

Selektionen können einfach gefaltet oder expandiert werden.

IntelliSense

VS Code hat ein fest eingebaute Wortvervollständigung. Für Hochsprachen wie JavaScript, JSON, HTML, CSS, C# etc. pp. wird IntelliSense unterstützt. Mögliche Vervollständigungen werden während der Eingabe angeboten.

Parameter Hints

In JavaScript, C# und TypeScript werden Parameter Hints beim Methodenaufruf angeboten. Zwischen den verschiedenen Methodenaufrufen kann mit der Tastatur gewechselt werden.

Snippets and Emmet Abbreviations

VS Code hat Code Snippets für die verschiedensten Sprachen. Darüber hinaus werden Emmet abbreviations für die Sprachen HTML, Razor, CSS, Less, Sass, XML und Jade unterstützt. Es können auch eigene Snippets hinterlegt werden.

Go to Definition

Wenn eine Hochsprache es durch ein Plugin unterstützt kann mit F12 zur Definition gewechselt werden.

Goto Symbol

Innerhalb einer Datei kann zwischen verschiedenen Symbolen gewechselt werden. Durch tippen von : öffnen sich alle möglichen Symbole nach Kategorien gruppiert.

Open symbol by name

In C# und TypeScript kann zwischen den verschiedenen Symbolen zwischen den einzelnen Dateien gewechselt werden.

Gutter indicators

Wenn eine Datei unter Versionskontrolle geöffnet wird werden im Editor für Änderungen visuell markiert. Folgende Änderungen werden unterstützt.

  • Ein rotes Dreieck markiert eine gelöschte Zeile
  • Ein grüner Strich markiert eine neue Zeile
  • Ein blauer Strich markiert geänderte Zeilen

Peek

Ein Kontext-Switch beeinträchtigt den Arbeitsfluss. Wird schnell etwas überprüft z.B. über eine Referenz-Suche oder Peek-Definition wird das Ergebnis direkt neben dem eigentlich Inhalt dargestellt.

Hover

Für unterstützte Sprachen werden zusätzliche Informationen in einer kleinen Hover-Box dargestellt. Hier ein CSS Beispiel.

Reference information

C# unterstützt Inline-Referenz-Informationen. Klicken auf ein Symbol erlaubt verschiedene Aktionen, z.B. das Auffinden von Referenzen.

Rename symbol

TypeScript und C# unterstützt das umbenennen von Symbolen. Alle Referenzen werden umbenannt.

Code action

JavaScript und CSS unterstützen Code Aktionen. Zum Beispiel ist __dirname eine Node.js Variable. Die Code Aktion kann eine fehlenden Referenz auf node.d.ts hinzufügen.

Fazit

Viele der Möglichkeiten die VS Code bietet finden in diesem Artikel keine Erwähnung und können direkt der Dokumentation auf https://code.visualstudio.com/Docs/ nachgelesen werden. Viel interessanter ist aber wie Microsoft VS Code weiterentwickelt und ob sich bestehende Plugins wie z.B. SQL Server Data Tools in VS Code integrieren.