ist jetzt verfügbar! Lesen Sie über die neuen Funktionen und Fehlerbehebungen vom November.

November 2019 (Version 1.41)

Update 1.41.1: Dieses Update behebt die folgenden Probleme.

Downloads: Windows: x64 | Mac: Intel | Linux: deb rpm tarball snap


Willkommen zur November 2019-Version von Visual Studio Code. Es gibt eine Reihe von Updates in dieser Version, die Ihnen hoffentlich gefallen werden. Einige der wichtigsten Highlights sind:

Wenn Sie diese Release Notes online lesen möchten, gehen Sie zu Updates auf code.visualstudio.com.

Insiders: Möchten Sie neue Funktionen so schnell wie möglich sehen? Sie können die nächtliche Insiders-Build herunterladen und die neuesten Updates ausprobieren, sobald sie verfügbar sind. Und für die neuesten Nachrichten, Updates und Inhalte zu Visual Studio Code folgen Sie uns auf Twitter @code!

Workbench

Kompakte Ordner im Explorer

Im Datei-Explorer rendern wir Ordner mit nur einem Unterordner jetzt in kompakter Form. In dieser Form werden Ordner mit nur einem Unterordner in einem kombinierten Baumelement zusammengefasst. Nützlich für Java-Paketstrukturen beispielsweise.

Die Einstellung explorer.compactFolders steuert dieses Verhalten. Standardmäßig ist diese Einstellung aktiviert.

File Explorer compact folders

Linke Seite in Diff-Ansichten bearbeiten

Wenn Sie zwei bearbeitbare Editoren vergleichen (z. B. aus dem Datei-Explorer, indem Sie zwei Dateien vergleichen oder eine globale Suche & Ersetzung ausführen), ist die linke Seite jetzt ebenfalls bearbeitbar und kann gespeichert werden (⌘S (Windows, Linux Ctrl+S)).

Diff view left hand side edit

Hinweis: Sie können die automatische Speicherung aktivieren (Datei > Automatische Speicherung), wenn Sie es leid sind, ⌘S (Windows, Linux Ctrl+S) zu drücken.

Speichern aus Peek-Editoren

Wenn Sie eine Peek-Ansicht aufrufen und hineinschreiben, können Sie jetzt Änderungen über ⌘S (Windows, Linux Ctrl+S) speichern, wenn der Fokus innerhalb dieses eingebetteten Editors liegt.

Saving in a Peek view

Problems-Panel

Mehr Filter

Dem Problems-Panel wurden weitere vordefinierte Filter hinzugefügt. Sie können Probleme jetzt nach Typ (Fehler, Warnungen und Informationen) filtern und sich Probleme anzeigen lassen, die auf die aktuelle aktive Datei beschränkt sind.

Problems panel filters

Theme: GitHub Sharp Dark, Schriftart: FiraCode

Aktuelles Problem in der Statusleiste anzeigen

Sie können VS Code jetzt so konfigurieren, dass die aktuelle Problembeschreibung in der Statusleiste angezeigt wird. Dadurch können Sie die Zusammenfassung des ausgewählten Problems in der aktiven Datei ohne zusätzliche Tastatur- oder Mausgesten sehen.

Hinweis: Um diese Funktion zu aktivieren, muss die Einstellung problems.showCurrentInStatus aktiviert sein.

Current problem displayed in the Status bar

Theme: GitHub Sharp Dark, Schriftart: FiraCode

Flexibles Layout der Filterbox

Die Filterbox im Problems-Panel passt ihre Position nun an die Position und Größe des Panels an.

Problems panel filter box adjustable layout

Theme: GitHub Sharp Dark, Schriftart: FiraCode

Verbesserte Schriftarten-Darstellung (Windows, Linux)

Als wir im letzten Meilenstein auf Electron 6 aktualisiert haben, berichteten viele Benutzer von einer Verschlechterung der Schriftarten-Darstellung. Insbesondere wurden Schriftarten nicht mehr so glatt dargestellt wie früher. Wir haben das Problem sofort behoben und die Korrektur in einer 1.40-Recovery-Version zur Verfügung gestellt. Andere Bereiche der Benutzeroberfläche litten jedoch immer noch unter einer suboptimalen Schriftarten-Darstellung.

In dieser Version haben wir die Schriftarten-Darstellung in weiteren Teilen der Benutzeroberfläche (für Windows und Linux) verbessert. Die folgenden Screenshots zeigen einen Vorher-Nachher-Vergleich (vergrößert, um den Unterschied zu zeigen). Insbesondere wurden viele Baum- und Listenelemente der Benutzeroberfläche mit Graustufen-Kantenglättung gerendert und werden jetzt mit Subpixel-Kantenglättung gerendert.

Vorher (links) und nachher (rechts)

Improved font rendering before and after

Wir planen, die Schriftarten-Darstellung in noch mehr Teilen der Benutzeroberfläche zu verbessern. Sie können diese Abfrage von Text-Rendering-Problemen einsehen, um den Fortschritt zu verfolgen.

Schnellere Lese-/Schreib-Leistung für Remote-Szenarien

Das Lesen und Schreiben von Dateien (aus dem Texteditor) sollte jetzt schneller für Szenarien sein, in denen das Dateisystem entfernt ist und die Latenz hoch ist (z. B. bei der Verwendung von VS Code in einem Browser mit langsamer Verbindung oder bei der Verbindung zu einem entfernten Host, der sich nicht in derselben Region befindet). Wir sind auf eine streambasierte Implementierung für Lese- und Schreibvorgänge umgestiegen, die den Kommunikations-Overhead erheblich reduziert.

Suchergebnisse während der Eingabe aktualisieren

Bei der Volltextsuche werden die Ergebnisse jetzt während der Eingabe aktualisiert. Dies ist besonders hilfreich in Szenarien wie dem Erstellen komplexer regulärer Ausdrücke, bei denen schnelles Feedback zu einer Abfrage Ihnen helfen kann, den RegEx zu schreiben.

Hier hilft das sofortige Feedback beim Erstellen einer RegEx-Suche-und-Ersetze-Abfrage zur Übernahme der optionalen Verkettungssyntax von TypeScript

Search result updates on type

Theme: Noctis Hibernus, Schriftart: Hasklig

Hinweis: Diese Funktion kann deaktiviert werden, indem search.searchOnType auf false gesetzt wird, und die Verzögerung zwischen Eingabe und Suche kann mit search.searchOnTypeDebouncePeriod angepasst werden, die standardmäßig 300 ms beträgt.

Cursor zu Suchergebnissen hinzufügen

Wir haben einen Befehl hinzugefügt, um Cursor zu allen Übereinstimmungen einer Textsuche hinzuzufügen. Mit dem Fokus auf die Suchergebnisse einer Datei in der Suchansicht können Sie ⇧⌘L (Windows, Linux Ctrl+Shift+L) drücken, um alle Übereinstimmungen in dieser einen Datei gleichzeitig zu bearbeiten. Dies ist die gleiche Tastenkombination, die beim Suchen innerhalb eines einzelnen Editors mit dem Such-Widget verwendet wird.

Add cursors to search results

Suchergebnisse standardmäßig erweitern

Zuvor wurden, wenn eine Volltextsuche mehr als 10 Ergebnisse in einer einzigen Datei ergab, diese im Ergebnisbaum eingeklappt angezeigt. Dies erschwerte jedoch manchmal das Auffinden eines bestimmten Ergebnisses. Mit dieser Version werden alle Ergebnisse erweitert angezeigt.

Sie können search.collapseResults auf auto setzen, um zum alten Verhalten zurückzukehren.

Editor

Minimap-Markierungen für Fehler, Warnungen und Inhaltsänderungen

Fehler und Warnungen werden jetzt inline in der Minimap (Code-Übersicht) hervorgehoben. Sie können die Farbe dieser Markierungen mit den neuen Theme-Farben minimap.errorHighlight und minimap.warningHighlight ändern.

Unten sehen Sie, wie die Minimap einen subtilen Tippfehler mit fehlendem Komma hervorhebt

Minimap error and warning decorations

Markierungen für Inhaltsänderungen werden auch im Randbereich der Minimap angezeigt

Minimap content change decorations

Sie können die Farben für Inhaltsänderungen mit

  • minimapGutter.addedBackground
  • minimapGutter.modifiedBackground
  • minimapGutter.deletedBackground

Sie können die Sichtbarkeit von Quellcodeverwaltungsmarkierungen mit der Einstellung scm.diffDecorations ändern, die folgende Werte hat:

  • all - Zeige Quellcodeverwaltungs-Diff-Markierungen an allen Stellen an.
  • gutter - Nur im Randbereich des linken Editors anzeigen.
  • minimap - Nur im Randbereich der Minimap anzeigen.
  • overview - Nur im Übersichtslineal anzeigen.
  • none - Diff-Markierungen nicht anzeigen.

Alternative Befehle für Code-Navigation

VS Code tat früher nichts, wenn man **Gehe zu Definition** auswählte, während man sich bereits an der Definition befand. Mit dieser Version können stattdessen alternative Befehle ausgeführt werden. Zum Beispiel kann **Gehe zu Definition** so konfiguriert werden, dass **Gehe zu Referenzen** ausgeführt wird.

Dies wird über die Einstellung editor.gotoLocation.alternativeDefinitionCommand angepasst. Sie können beispielsweise die Alternative für **Gehe zu Definition** zu **Gehe zu Deklaration** machen und umgekehrt. Sie können die Einstellung leer lassen, wenn Sie das alte Verhalten bevorzugen.

Peek-, Gehe zu- und Finde alle-Befehle

Jeder **Peek**-Befehl hat jetzt ein **Gehe zu**-Gegenstück. Zum Beispiel gibt es jetzt sowohl **Peek Implementierungen** als auch **Gehe zu Implementierungen**. Die Peek-Ansicht ändert nicht den aktuellen Editor und ermöglicht einen schnellen Blick auf den Quellcode vor Ort.

Das folgende Video zeigt die Verwendung von **Peek Implementierungen**, um alle Implementierungen der Schnittstelle ICommandService in einer Peek-Ansicht anzuzeigen

Peek Implementations command

Theme: GitHub Sharp, Schriftart: FiraCode

Im Gegensatz dazu dient **Gehe zu Implementierungen** der Navigation und führt Sie schnell zu einer Implementierung.

Das folgende Video (mit der Einstellung "editor.gotoLocation.multipleImplementations": "goto") navigiert zu allen Implementierungen der Schnittstelle ICommandService, indem wiederholt F12 gedrückt wird

Go to Implementations command with F12

Theme: GitHub Sharp, Schriftart: FiraCode

Zu guter Letzt gibt es, ähnlich wie beim Befehl **Finde alle Referenzen**, jetzt **Finde alle Implementierungen**. Dies präsentiert die Implementierungen als eine stabile Liste neben dem Editor. Dies kann beispielsweise als TODO-Liste verwendet werden, wenn eine Refaktorierung durchgeführt wird, die alle Implementierungen einer Schnittstelle betrifft.

Find All Implementations in the Side bar

Theme: GitHub Sharp, Schriftart: FiraCode

Sprachspezifische Filterung für Breadcrumbs und Outline-Ansicht

Im letzten Meilenstein haben wir die Möglichkeit hinzugefügt, bestimmte Typen wie Variablen aus der Outline-Ansicht und der Breadcrumbs-Navigation zu filtern. Diese Version verfeinert diese Funktion und ermöglicht sprachspezifische Filterung, z. B. keine TypeScript-Variablen anzeigen, aber JavaScript-Variablen schon.

Unten sehen Sie, wie die Konstante value in der Outline-Ansicht für die JavaScript-Datei angezeigt wird, aber nicht für die TypeScript-Version.

Language-specific filter for Outline view

Theme: GitHub Sharp, Schriftart: Fira Code

IntelliSense-Tastenkombinationen unter macOS

IntelliSense wird normalerweise über Ctrl+Space ausgelöst. Unter macOS wird diese Tastenkombination jedoch vom Betriebssystem verwendet, wenn mehrere Eingabequellen konfiguriert sind. Dies führt oft zu Verwirrung und Benutzer denken, IntelliSense sei defekt.

Es gibt jetzt zwei Möglichkeiten, dies zu handhaben

  • Verwenden Sie die neue Tastenkombination Alt+Escape, die wir für macOS hinzugefügt haben.
  • Deaktivieren Sie die Eingabequellenumschaltung über Ctrl+Space in Ihren macOS-Einstellungen unter Einstellungen > Tastatur > Shortcuts > Eingabequellen.

macOS Keyboard Shortcuts Input Sources option

Bildschirmleser-Ausgabe

Es gibt eine neue Einstellung editor.accessibilityPageSize, die die Anzahl der Zeilen im Editor steuert, die von einem Bildschirmleser auf einmal vorgelesen werden können. Beachten Sie, dass dies Leistungseinbußen bei Zahlen größer als dem Standardwert von 10 hat.

Wenn Sie den Befehl **Alle vorlesen** eines Bildschirmlesers verwenden, empfehlen wir, editor.accessibilityPageSize auf 100 oder 1000 einzustellen. Im nächsten Meilenstein werden wir den Standardwert dieser Einstellung ändern.

Neue Option für Klammerabgleich

Es ist jetzt möglich, "editor.matchBrackets": "near" zu konfigurieren, um das alte Verhalten zu erhalten, bei dem übereinstimmende Klammern nur hervorgehoben werden, wenn sich der Cursor auf beiden Seiten einer Klammer befindet. Der Standardwert ist always, der die übereinstimmenden Klammern hervorhebt, die die aktuelle Cursorposition umschließen.

Neue Option für automatische Einrückung

Die Einstellung editor.autoIndent kann jetzt verschiedene Werte annehmen. Diese Einstellung wirkt sich auf mehrere Funktionen aus, z. B. beim Drücken von Enter, beim Drücken von Tab oder beim Einrücken und Ausrücken von Zeilen. Sie können die Einstellung wie einen "Schieberegler" betrachten, der immer opinierter wird

  • "none": Drücken von Enter fügt \n ein und nichts weiter.
  • "keep": Drücken von Enter behält die Einrückung der aktuellen Zeile bei.
  • "brackets": Alles oben Genannte und spezielle Logik für sprachspezifische Klammern.
  • "advanced": Alles oben Genannte und Berücksichtigung sprachspezifischer Regeln, die über onEnterRules definiert sind.
  • "full" (Standard): Alles oben Genannte und Berücksichtigung sprachspezifischer Regeln, die über indentationRules definiert sind.

Tastenkombinationen für Code Action-Menü

Die Menüs für Code Actions und Refactoring zeigen jetzt benutzerdefinierte Tastenkombinationen an, falls vorhanden.

A keybinding for extract constant

Integriertes Terminal

Minimales Kontrastverhältnis

Anwendungen, die mit Farben im Terminal arbeiten, können knifflig sein und die folgenden Farben für Text verwenden

  • Die Standardvordergrundfarbe
  • Eine Palette von 16 Farben, wie vom Terminal-Theme definiert
  • Eine Reihe von 240 festen Farben
  • Jede RGB-Farbe (16 Millionen)

Das Problem ist, dass die Anwendung die Standardhintergrundfarbe oder Vordergrundfarbe nicht kennt und ob sie einen guten Kontrast zu den von der Anwendung verwendeten Farben hat. Um dieses Problem zu lösen, kann das Terminal jetzt die Vordergrundfarbe des Textes dynamisch ändern, um ein bestimmtes Kontrastverhältnis zu erfüllen.

Stellen Sie die Vordergrundfarbe auf das gewünschte Kontrastverhältnis von 1 bis 21 ein

// 4.5 is recommended for baseline website accessibility
"terminal.integrated.minimumContrastRatio": 4.5

Die Terminalfarben werden ihre Luminanz erhöhen oder verringern, bis entweder das Kontrastverhältnis erreicht ist oder die Vordergrundfarbe #000000 oder #ffffff wird.

Terminal minimum contrast ratio setting

Theme: Sapphire, Schriftart: Hack

Neuer experimenteller WebGL-Renderer

Ein neuer WebGL-basierter Renderer ist für das Terminal verfügbar, der Leistungsgewinne von bis zu 900 %* gegenüber dem alten Canvas-basierten Ansatz bietet.

Sie können diesen neuen Renderer mit der folgenden Einstellung aktivieren

"terminal.integrated.rendererType": "experimentalWebgl"

Die Geschwindigkeitsverbesserungen sind auf viele Dinge zurückzuführen, hier sind die Highlights

  • WebGL ermöglicht uns eine direktere Kommunikation mit der GPU, anstatt über die CanvasRenderingContext2D API der Webplattform zu gehen.
  • Der Renderer arbeitet fast ausschließlich mit Zahlen und typisierten Arrays, die extrem schnell sind. Die Erstellung von Objekten und Arrays wird ebenfalls minimiert, um unnötige Garbage Collection zu vermeiden.
  • Alle Zeichen werden jetzt in einem Texturatlas zwischengespeichert, anstatt nur ASCII-Zeichen mit einer begrenzten Auswahl an Stilen. Das bedeutet, dass das wiederholte Zeichnen desselben Zeichens viel schneller ist.

Wir beobachteten, dass die Rendering-Zeiten stark variierten, abhängig von der Hardware/Umgebung eines Benutzers mit dem Canvas-Renderer. Jeder Frame dauerte typischerweise zwischen 1 ms und 40 ms, konnte aber in extremen Fällen über 200 ms erreichen, wenn Hardwareprobleme eine Rolle spielten. Bisher scheint WebGL viel konsistenter zu sein und liegt typischerweise im Bereich von 0,2 ms bis 2 ms

WebGL frames are much faster

Die Zuverlässigkeit ist eine der Dinge, die wir nach der Integration voraussichtlich verbessern werden. Beim Canvas-Renderer versuchte der Browser, clever zu sein und auf die CPU-basierte Darstellung zurückzufallen, wenn Probleme mit der GPU/Canvas auftraten, aber wir möchten nie, dass das passiert, da wir einen DOM-basierten Renderer haben, der dafür besser geeignet ist. Mit WebGL sollte es entweder wie erwartet funktionieren oder hart fehlschlagen (ein WebGL-Kontext kann nicht erworben werden), in welchem Fall wir auf den DOM-Renderer zurückfallen können.

Da das Rendering so wenig Zeit in Anspruch nimmt, wird die CPU frei, um sich auf das Parsen eingehender Daten zu konzentrieren, was zu mehr gerenderten Frames und schneller laufenden Befehlen führt. Die folgenden Leistungsdaten wurden aus der Ausführung von ls -lR im vscode-Repository generiert

Commands run faster on the WebGL renderer

Der neue Renderer behebt auch einen ärgerlichen Fehler im Canvas-Renderer, bei dem die Seiten von Zeichen abgeschnitten wurden, wenn sie größer als die Zellengröße waren. Dieses Problem wurde am häufigsten bei bestimmten Schriftarten unter Linux mit Unterstrichen beobachtet.

* Weitere Informationen zu Benchmarks finden Sie unter xtermjs/xterm.js#1790

Quellcodeverwaltung

Git: Relative Pfade in git.ignoredRepositories

Die Einstellung git.ignoredRepositories unterstützt jetzt relative Pfade, die nützlich sind, wenn Sie Workspace-Einstellungen konfigurieren und bestimmte Repositories in VS Code ignorieren möchten.

Git: Übernahme von FileSystemProvider

Die Git-Erweiterung verwendet jetzt die FileSystemProvider API, die neben der Behebung bestimmter Kodierungsprobleme eine leistungsfähigere und zuverlässigere Methode zur Anzeige älterer Versionen Ihrer Dateien aus einem Git-Repository bietet.

Sprachen

HTML-Spiegelcursor

VS Code fügt jetzt einen "Spiegelcursor" hinzu, wenn Sie HTML-Tags bearbeiten. Dieses Verhalten wird durch die Einstellung html.mirrorCursorOnMatchingTag gesteuert, die standardmäßig aktiviert ist.

Diese Funktion funktioniert, indem ein Multi-Cursor zum übereinstimmenden Tag hinzugefügt wird, wenn Ihr Cursor in einen HTML-Tag-Namensbereich bewegt wird. Genau wie im Multi-Cursor-Modus können Sie wortweise löschen oder wortweise auswählen. Der gespiegelte Cursor wird entfernt, wenn Sie den Cursor aus dem Tag-Namensbereich bewegen.

Ein Sonderfall ist die Eingabe von Leerzeichen, wenn sich der Cursor am Ende des öffnenden Tags befindet, z. B. am Ende eines div wie <div|></div|>. In diesem Fall entfernt VS Code das eingefügte Leerzeichen nach dem schließenden Tag-Namen und beendet den Spiegelcursor-Modus, sodass Sie HTML-Attribute weiterhin bearbeiten können.

HTML mirror cursor

Theme: Nord, Schriftart: Input Mono

HTML: Tags umbenennen

Sie können jetzt F2 verwenden, um die öffnenden/schließenden Tag-Paare in HTML umzubenennen.

HTML rename tag

Rangfolge von autovervollständigten CSS-Eigenschaften

Die CSS-Autovervollständigung ordnet Eigenschaften jetzt nach ihrer Popularität.

CSS suggestions ranked by popularity

Die Nutzungsdaten stammen von ChromeStatus.org.

Unterstützung für Sass-Module

Sass hat kürzlich ein neues Modulsystem eingeführt.

Wir haben Syntaxhervorhebung und Sprachfunktionen für Sass-Module in SCSS-Dateien hinzugefügt. Die Sprachfunktionen umfassen

  • Automatische Vervollständigung von @use und @forward.
  • Pfadvervollständigung für @use und @forward-Pfade.
  • Automatische Vervollständigung von Sass eingebauten Modulen wie sass:math und sass:color.
  • Dokumentenlinks für @use und @forward-Importpfade.

Sass module support

JSON

Um Leistungsprobleme bei großen JSON-Dateien zu vermeiden, unterstützt die JSON-Sprachunterstützung jetzt eine Obergrenze für die Anzahl der Faltungsbereiche und Dokumentensymbole, die sie berechnet (für die Outline-Ansicht und Breadcrumbs). Standardmäßig beträgt das Limit 5000 Elemente, Sie können das Limit jedoch mit der Einstellung json.maxItemsComputed ändern.

JSON large file warning

TypeScript 3.7

VS Code wird jetzt mit TypeScript 3.7.3 ausgeliefert. Dieses große Update bringt einige Verbesserungen der TypeScript-Sprache – einschließlich optionaler Verkettung, Nullish Coalescing und Assertion-Funktionen – sowie einige neue Tooling-Funktionen für JavaScript und TypeScript. Wie immer enthält diese Version auch eine Reihe wichtiger Fehlerbehebungen.

Sie können mehr über die TypeScript 3.7-Funktionen im TS 3.7 Blog-Post lesen.

Unterstützung für optionale Verkettung in JavaScript und TypeScript

Dank TypeScript 3.7 unterstützt VS Code jetzt optionale Verkettung sofort für JavaScript und TypeScript. Dies beinhaltet Syntaxhervorhebung und IntelliSense.

Optional chaining and nullish coalescing

Zusätzlich kann VS Code automatisch ein ?. einfügen, wenn Sie eine Vervollständigung für eine optionale Eigenschaft akzeptieren.

Selecting a completion on a potentially undefined value automatically inserts an optional chain

Die automatische Einfügung von ?. hängt davon ab, ob die strikte Nullprüfung aktiviert ist. Die automatische ?.-Einfügung kann mit den Einstellungen "typescript.suggest.includeAutomaticOptionalChainCompletions" oder "javascript.suggest.includeAutomaticOptionalChainCompletions" deaktiviert werden.

Refactoring "Schnittstelle extrahieren" für TypeScript

Das neue Refactoring **"Schnittstelle extrahieren"** ermöglicht es Ihnen, einen Inline-Typ schnell in eine Schnittstelle zu extrahieren, damit er wiederverwendet werden kann.

Selecting the new 'extract interface' refactoring

Unten sehen Sie, dass die Schnittstelle "Neural" aus "keyes" extrahiert wurde

After extracting the 'Neural' interface out of 'keyes'

Formatierungsoptionen für Semikolons für JavaScript und TypeScript

Die neuen Formatierungsoptionen javascript.format.semicolons und typescript.format.semicolons ermöglichen Ihnen, zu steuern, wie der Formatter Semikolons in JavaScript- und TypeScript-Dateien behandelt.

Gültige Werte für Semikolon-Formatierungsoptionen sind

  • ignore - Fügt keine Semikolons hinzu oder entfernt sie (Standard).
  • insert - Fügt Semikolons am Ende von Anweisungen ein.
  • remove - Entfernt unnötige Semikolons.

Prüfung auf nicht aufgerufene Funktionen

VS Code wird Sie jetzt benachrichtigen, wenn Sie vergessen, eine Funktion in einer Bedingung aufzurufen.

Betrachten Sie den folgenden TypeScript-Codeausschnitt

import * as fs from 'fs';

fs.stat('/path/to/file', function(err, stats) {
  if (stats.isDirectory) {
    handleDirectory(stats);
  }
});

Das obige Beispiel verwendet die Node.js fs.stat API, um Informationen über eine Datei zu erhalten. Aber es gibt einen Fehler! .isDirectory ist tatsächlich eine Funktion, keine Eigenschaft! Das bedeutet, dass handleDirectory bei jeder Datei aufgerufen wird, nicht nur bei Verzeichnissen wie beabsichtigt, da die Funktion isDirectory definiert ist und zu true ausgewertet wird.

VS Code can alert when you forget to call a function

Beachten Sie, dass Sie diese Diagnose nur sehen, wenn die strikte Nullprüfung aktiviert ist.

Debugging

Debug START-Ansicht

Wir haben eine neue Debug START-Ansicht eingeführt, um es Benutzern zu erleichtern, das Debuggen in einem neuen Workspace zu starten und zu konfigurieren. Basierend auf der aktiven Datei wählen wir die entsprechende Debug-Erweiterung aus und ermöglichen das Debuggen oder Ausführen Ihrer Anwendung. Für aufwendigere Debug- und Ausführungskonfigurationen ist es weiterhin am besten, eine launch.json-Datei zu konfigurieren.

Unten sehen Sie, wie Sie schnell mit dem Debuggen einer Express-JavaScript-Anwendung beginnen und dann eine launch.json-Datei erstellen, wenn mehr Kontrolle benötigt wird.

Debug Start view

Frame neu starten als Inline-Aktion in der CALL STACK-Ansicht

Um die Auffindbarkeit der Aktion **Frame neu starten** zu verbessern, gibt es jetzt eine Inline-Aktion in der CALL STACK-Ansicht, die beim Überfahren mit der Maus sichtbar ist. Das Neustarten von Frames ist eine praktische Möglichkeit, den vorherigen Quellcode nach dem Erreichen eines Breakpoints erneut auszuführen. Wenn die Debug-Erweiterung das Neustarten von Frames nicht unterstützt, wird diese Aktion nicht angezeigt.

Restart frame button

Debug-Konsole zeigt Ein- und Ausgabe an

Um die Eingabe und Ausgabe in der Debug-Konsole besser unterscheiden zu können, haben wir links Eingabe- > und Ausgabe- < Markierungen hinzugefügt.

Debug console input and output decorations

Inline-Anzeige von Breakpoints

Eine neue Einstellung debug.showInlineBreakpointCandidates steuert, ob Inline-Breakpoint-Kandidaten-Markierungen im Editor während des Debuggens angezeigt werden. Standardmäßig sind sie sichtbar.

Vorschau-Funktionen

Vorschau-Features sind noch nicht zur Veröffentlichung bereit, aber funktionsfähig genug, um sie zu nutzen. Wir freuen uns über Ihr frühes Feedback, während sie sich in der Entwicklung befinden.

Such-Editor

In diesem Meilenstein haben wir mit der Arbeit begonnen, Suchergebnisse in einem dedizierten Editor anzuzeigen. Dies bietet mehr Platz zur Anzeige von Suchergebnissen und ermöglicht es Ihnen, mehrere Sammlungen von Suchergebnissen gleichzeitig zu verwalten.

Mit dieser Version können Sie in einem Sucheditor

  • Zu Ergebnissen navigieren mit Befehlen der **Gehe zu Definition**-Familie, einschließlich **Peek Definition** und **Definition nach rechts öffnen**.
  • Eine Suche erneut ausführen, um die Liste der Ergebnisse zu aktualisieren.
  • Quellcodezeilen rund um ein Ergebnis anzeigen.
  • Ergebnisse auf der Festplatte speichern, um sie später zu referenzieren oder sogar in der Quellcodeverwaltung zu verfolgen.

Wir werden in den kommenden Versionen weiterhin Funktionalität hinzufügen und die Benutzerfreundlichkeit verbessern.

Search Editor

Theme: A Touch of Lilac, Schriftart: Hasklig

Hinweis: Sie können diese Funktion in der Vorschau anzeigen, indem Sie search.enableSearchEditorPreview auf true setzen.

Call Hierarchy-Ansicht

Die Call Hierarchy API ist in der stabilen Version verfügbar und Sprachautoren arbeiten daran, sie zu implementieren. Daher haben wir eine Call Hierarchy-Ansicht hinzugefügt. Diese ergänzt die Ansicht **Peek Call Hierarchy** und teilt sich die gleiche Seitenleistenansicht wie **Finde alle Referenzen** und **Finde alle Implementierungen**. Sobald eine Sprachspezialerweiterung die Call Hierarchy API unterstützt, können Sie **Call Hierarchy anzeigen** aus dem Kontextmenü oder der Befehlspalette auswählen, um die Ansicht zu sehen.

Call Hierarchy view

Theme: GitHub Sharp, Schriftart: FiraCode

Die Call Hierarchy-Ansicht ermöglicht es Ihnen, die Aufrufer von und die Aufrufe eines Symbols zu untersuchen. Sie hebt Aufrufe im aktiven Editor hervor, ermöglicht die Umordnung der Ansicht von beliebigen Kindern und behält eine Historie früherer Ausführungen bei.

JavaScript Debugger

Wir arbeiten an einem neuen Debugger für Node.js und Chrome. Sie können die nächtliche Erweiterung js-debug-nightly installieren und sie als Drop-in-Ersatz verwenden, indem Sie Ihre Einstellungen aktualisieren, um Folgendes hinzuzufügen:

{
  "debug.chrome.useV3": true,
  "debug.node.useV3": true
}

Sie sollten Ihre bestehenden Startkonfigurationen nicht ändern müssen, um den neuen Debugger zu verwenden.

Der Debugger bietet eine Vielzahl neuer Funktionen, wie z. B. die Möglichkeit, Webworker zu debuggen und schrittweise zu durchlaufen

An animation showing stepping through postMessage calls to and from a webworker

Theme: Earthsong, Font: Fira Code

... npm-Skripte ohne zusätzliche Konfiguration oder Flags zu debuggen...

An animation dispatching the "run npm script" command, selecting "npm start", and then hitting a breakpoint in an executed script

...und mehr! Wenn Sie auf Probleme stoßen, melden Sie bitte ein Problem.

Beiträge zu Erweiterungen

Remote-Entwicklung

Die Arbeit an den Remote Development-Erweiterungen wird fortgesetzt. Diese ermöglichen es Ihnen, einen Container, eine Remote-Maschine oder das Windows Subsystem for Linux (WSL) als voll ausgestattete Entwicklungsumgebung zu nutzen.

Funktions-Highlights in 1.41 sind:

  • Dev Containers: Einfacheres Ausprobieren von Beispiel-Repositories (z. B. vscode-remote-try-python) in einem Container.
  • Dev Containers: Verbesserte Leistung beim Erstellen eines Containers und neue Optionen für devcontainer.json.
  • WSL: Unterstützung auf Windows 10 ARM-basierten PCs wie Surface Pro X.
  • Der Remote Explorer kann jetzt verfügbare Ansichten auf bestimmte Remote-Typen beschränken.

Sie können sich über neue Erweiterungsfunktionen und Fehlerbehebungen in den Remote Development Release Notes informieren.

Sie können auch einen aktuellen Blog-Beitrag über Inspecting Containers with VS Code lesen und das aktualisierte Tutorial Using C++ and WSL in VS Code ausprobieren.

ESLint

Verbesserungen an der ESLint-Erweiterung

  • Bessere Unterstützung für ESLint 6.x - In den meisten Fällen ist es nicht mehr notwendig, Arbeitsverzeichnisse bei der Verwendung von ESLint 6.x zu konfigurieren.
  • Verbesserte TypeScript-Erkennung - Sobald TypeScript in ESLint korrekt konfiguriert ist, benötigen Sie keine zusätzliche Konfiguration mehr über die eslint.validate-Einstellung von VS Code. Das Gleiche gilt für HTML- und Vue.js-Dateien.
  • Glob-Arbeitsverzeichnis-Unterstützung - Projekte mit komplexer Ordnerstruktur, die die Arbeitsverzeichnisse über eslint.workingDirectories anpassen müssen, können jetzt Glob-Muster anstelle der Auflistung jedes Projektordners verwenden. Zum Beispiel passt code-* auf alle Projektordner, die mit code- beginnen. Zusätzlich wechselt die Erweiterung jetzt standardmäßig das Arbeitsverzeichnis. Sie können diese Funktion mit der neuen !cwd-Eigenschaft deaktivieren.
  • Verbessertes Auto-Fix beim Speichern - Auto-Fix beim Speichern ist jetzt Teil der Code-Action-On-Save-Infrastruktur von VS Code und berechnet alle möglichen Korrekturen in einer Runde. Sie wird über die Einstellung editor.codeActionsOnSave angepasst. Die Einstellung unterstützt die ESLint-spezifische Eigenschaft source.fixAll.eslint. Die Erweiterung berücksichtigt auch die generische Eigenschaft source.fixAll.

Die folgende Einstellung aktiviert Auto-Fix für alle Anbieter, einschließlich ESLint

    "editor.codeActionsOnSave": {
        "source.fixAll": true
    }

Im Gegensatz dazu aktiviert diese Konfiguration dies nur für ESLint

    "editor.codeActionsOnSave": {
        "source.fixAll.eslint": true
    }

Sie können ESLint auch selektiv deaktivieren über

    "editor.codeActionsOnSave": {
        "source.fixAll": true,
        "source.fixAll.eslint": false
    }

vscode-scss

Die vscode-scss-Erweiterung bietet dateiübergreifende Sprachunterstützung für SCSS-Variablen, Mixins und Funktionen. In diesem Meilenstein haben wir ihre Entwicklung für eine neue Version, 0.8.0, unterstützt.

Die neue Version verbessert

  • Bessere Auflösung von Importpfaden
  • Farbvorschau für autovervollständigte Farbvariablen
  • Bessere Leistung

Erweiterungs-Authoring

Figma Design Toolkit

Wir haben ein Figma Design Toolkit erstellt, um Erweiterungsautoren besser beim Entwerfen von Benutzeroberflächen für ihre Erweiterungen zu unterstützen. Schauen Sie sich das Toolkit-Repository auf GitHub an, das Anweisungen zur Verwendung des Toolkits enthält.

Unten sehen Sie ein Beispiel für einige der enthaltenen Komponenten

Figma design toolkit components

Alle Komponenten sollten in der Größe veränderbar und bearbeitbar sein.

Editing Figma components

Wenn Sie auf Probleme stoßen oder Wünsche für bestimmte Komponenten haben, erstellen Sie bitte ein Problem im Toolkit-Repository, damit wir die Anfragen sichten und verfolgen können.

Debug-Icon-Farbtokens

Wir haben eine Reihe neuer Farbtokens für die Debug-Ansicht hinzugefügt.

Debug-Symbolleiste

  • debugIcon.startForeground
  • debugIcon.continueForeground
  • debugIcon.disconnectForeground
  • debugIcon.pauseForeground
  • debugIcon.restartForeground
  • debugIcon.stepBackForeground
  • debugIcon.stepIntoForeground
  • debugIcon.stepOutForeground
  • debugIcon.stepOverForeground
  • debugIcon.stopForeground

Debug toolbar colors

Theme: Min Dark, Schriftart: Input Mono

Debug-Breakpoints

  • debugIcon.breakpointForeground
  • debugIcon.breakpointDisabledForeground
  • debugIcon.breakpointUnverifiedForeground
  • debugIcon.breakpointStackframeForeground
  • debugIcon.breakpointCurrentStackframeForeground

Debug breakpoint colors

Theme: Min Dark, Schriftart: Input Mono

Workspace-Datei-Ereignisse

Es gibt neue Ereignisse für Datei- und Ordneränderungen

  • vscode.workspace.on[Will|Did]CreateFile
  • vscode.workspace.on[Will|Did]RenameFile
  • vscode.workspace.on[Will|Did]DeleteFile

Die Ereignisse werden ausgelöst, wenn Dateien aus dem Explorer oder von Erweiterungen über die API vscode.workspace.applyEdit(WorkspaceEdit) erstellt, umbenannt oder gelöscht werden, aber nicht, wenn Dateien auf der Festplatte geändert werden oder wenn Dateien über die API vscode.workspace.fs geändert werden.

Ein möglicher Anwendungsfall für diese Ereignisse ist ein Sprachserver, der den Inhalt einer Datei aktualisieren könnte, bevor sie umbenannt wird, oder Projektdateien nach dem Löschen/Erstellen von Dateien aktualisiert.

SnippetString

Der Typ SnippetString hat jetzt eine Builder-Methode für Choice-Elemente.

Strikte getWordRangeAtPosition

Die API TextDocument.getWordRangeAtPosition ist jetzt strikter und wird statt ungültige reguläre Ausdrücke, die zu leeren Zeichenfolgenübereinstimmungen führen, zu ignorieren, einen Fehler auslösen.

Veralteter String-Typ für extensionKind

Erweiterungsautoren können die Eigenschaft extensionKind in package.json verwenden, um anzugeben, wo eine Erweiterung im Remote-Fall ausgeführt werden soll. In der Veröffentlichung (1.40) konnte dieser Wert ein String oder ein Array sein. Ab dieser Version unterstützt diese Eigenschaft nur noch einen Array-Wert und die Verwendung eines Strings ist veraltet. Weitere Informationen finden Sie in der Remote Development-Dokumentation.

DAP-Quellen in URIs konvertieren

Die VS Code-Erweiterungs-API verwendet Dokument-URIs, wenn sie sich auf Ressourcen beziehen, die in Editoren geöffnet werden können, während das Debug Adapter Protocol auf Source Deskriptoren basiert. In diesem Meilenstein haben wir eine API hinzugefügt, um die beiden Welten zu verbinden. Die Funktion debug.asDebugSourceUri erstellt einen URI aus einem DAP Source-Objekt. Dies erleichtert das Öffnen einer DAP-Quelle in einem VS Code-Editor

export async function openDAPSource(
  session: vscode.DebugSession,
  source: DebugProtocol.Source
) {
  const uri = vscode.debug.asDebugSourceUri(source, session);
  vscode.window.showTextDocument(vscode.workspace.openTextDocument(uri));
}

Vorgeschlagene Erweiterungs-APIs

Jeder Meilenstein bringt neue vorgeschlagene APIs mit sich, und Erweiterungsautoren können sie ausprobieren. Wie immer freuen wir uns über Ihr Feedback. So probieren Sie eine vorgeschlagene API aus:

  • Sie müssen Insiders verwenden, da sich vorgeschlagene APIs häufig ändern.
  • Sie müssen diese Zeile in der Datei package.json Ihrer Erweiterung haben: "enableProposedApi": true.
  • Kopieren Sie die neueste Version der Datei vscode.proposed.d.ts in den Quellcode-Speicherort Ihres Projekts.

Beachten Sie, dass Sie keine Erweiterung veröffentlichen können, die eine vorgeschlagene API verwendet. Möglicherweise gibt es in der nächsten Version Breaking Changes, und wir möchten niemals bestehende Erweiterungen brechen.

CodeAction.disabled

VS Code ermutigt Erweiterungen, Refactoring-Funktionalitäten über Code Actions zu implementieren. Es kann jedoch schwierig für Benutzer sein, zu entdecken, welche Refactorings eine Erweiterung unterstützt und zu verstehen, warum eine bestimmte Refactoring-Option für eine spezifische Auswahl nicht verfügbar ist. Der API-Vorschlag CodeAction.disabled zielt darauf ab, Erweiterungen dabei zu unterstützen, ihre Refactorings besser auffindbar zu machen.

Die vorgeschlagene .disabled-Eigenschaft auf CodeAction ist ein lesbarer String, der beschreibt, warum eine bestimmte Code Action nicht möglich ist. Hier ist ein Beispiel für die Verwendung von .disabled in unserer CodeAction-Beispielerweiterung.

import * as vscode from 'vscode';

export class Emojizer implements vscode.CodeActionProvider {

    public provideCodeActions(document: vscode.TextDocument, range: vscode.Range): vscode.CodeAction[] | undefined {
        const action = new vscode.CodeAction(`Convert to ${emoji}`, vscode.CodeActionKind.Refactor.append('emojize'));

        if (!this.isAtStartOfSmiley(document, range)) {
            // Tell the user why our action is not available
            action.disabled = 'Selection is not currently on a :)';
            return [action];
        }

        action.edit = new vscode.WorkspaceEdit();
        action.edit.replace(document.uri, new vscode.Range(range.start, range.start.translate(0, 2)), '😀');
        return action;
    }

    ...
}

Wenn der Benutzer versucht, eine deaktivierte Code Action über eine Tastenkombination anzuwenden, zeigt VS Code dem Benutzer die Fehlermeldung .disabled an.

Showing the '.disabled' error in the editor

Um die Auffindbarkeit zu verbessern, werden deaktivierte Code Actions zudem im Kontextmenü **Refactor** und **Source Action** ausgegraut dargestellt.

A '.disabled' Code Action in the Refactor menu

Beachten Sie, dass deaktivierte Aktionen im übergeordneten Glühbirnenmenü nicht angezeigt werden.

Wenn Ihre Erweiterung Code Actions verwendet, teilen Sie uns bitte mit (lassen Sie es uns wissen), ob CodeAction.disabled etwas ist, das Sie nützlich finden und implementieren könnten.

Bearbeitungsfähigkeiten für benutzerdefinierte Editoren

Wir haben in dieser Iteration weiter an dem Vorschlag für benutzerdefinierte Editoren gearbeitet. Zur Erinnerung: Benutzerdefinierte Editoren sind Webview-basierte Ansichten, die für bestimmte Dateitypen anstelle des normalen Texteditors von VS Code verwendet werden können. Seit VS Code 1.41 können benutzerdefinierte Editoren nun mit der Rückgängig-/Wiederherstellen- und Speicherfunktionalität von VS Code integriert werden, was viele interessante Anwendungsfälle ermöglicht, darunter die Verwendung als visuelle und WYSIWYG-Editoren.

Sie finden den aktuellen API-Vorschlag in vscode.proposed.d.ts und wir haben auch einige sehr einfache Erweiterungsbeispiele zusammengestellt, die die Verwendung von benutzerdefinierten Editoren für Text- und Binärdateien demonstrieren.

Wenn Sie an benutzerdefinierten Editoren interessiert sind, teilen Sie bitte Ihr Feedback zu dem aktuellen Vorschlag mit und lassen Sie uns wissen, ob Sie ihn implementieren könnten.

Semantic Tokens Provider

Wir haben eine neue vorgeschlagene API für einen Semantic Tokens Provider hinzugefügt. Die neue API ermöglicht es Erweiterungen, zusätzliche Token-Informationen bereitzustellen, die vom Editor verwendet werden, um die TextMate-basierte Syntaxhervorhebung zu verbessern.

Jedes semantische Token annotiert einen Bereich mit einem Token-Typ und beliebig vielen Token-Modifikatoren. Zum Beispiel würden die Typen variable und die Modifikatoren member und modification den Schreibzugriff auf eine Member-Variable beschreiben. Die Token-Typen und Modifikatoren werden dann verwendet, um Stile im Editor hinzuzufügen.

Stile können sowohl in Farbthemen als auch in Benutzereinstellungen konfiguriert werden

    "editor.tokenColorCustomizationsExperimental": {
        "variable.member": {
            "foreground": "#35166d"
        },
        "*.modification": {
            "fontStyle": "underline"
        }
    }

Wenn Sie an dieser Funktion interessiert sind, würden wir uns über Ihr Feedback zum aktuellen Vorschlag freuen und ermutigen Sie gerne zu Experimenten und ersten Implementierungen.

Ein vollständiges Beispiel finden Sie im Repository vscode-extensions-samples.

Language Server Protocol

Es gibt jetzt eine vorgeschlagene Unterstützung für die Aufrufhierarchie-Ansicht über LSP.

Browserunterstützung

Verbesserte Unterstützung für Firefox und Safari (macOS & iPadOS)

Während dieses Meilensteins konzentrierten wir uns auf die Verbesserung der Benutzererfahrung von VS Code im Browser mit Firefox oder Safari. Wir haben viele Probleme behoben, um beide Browser zu unterstützen (Firefox, Safari). Unter Firefox haben wir aufgrund von Blockern im Upstream noch keine vollständige Unterstützung für Tastenkombinationen, und weitere Details finden Sie unter Tracking-Issue #85252.

Wir haben auch viele Probleme behoben, um grundlegende VS Code-Funktionalitäten in Safari auf iPadOS zu ermöglichen. Kern-UI-Elemente sind nun für Touch- und Zeigergeräte zugänglich. Es gibt jedoch noch wichtige Blockaden in Bezug auf vordefinierte Tastenkombinationen (Escape und Function-Tasten), Hover-Effekte und Touch-freundliche Benutzeroberfläche/UX. Weitere Informationen finden Sie unter Issue #85254.

Weitere Funktionen in der Browserversion verfügbar

Im letzten Meilenstein haben wir die Unterstützung für die Ausführung von yarn web aus unserem Repository eingeführt, um VS Code im Browser einzurichten (Unterstützung eingeführt). Diese Einrichtung ist weiterhin für das Testen von Problemen in Browsern vorgesehen und nicht für die Entwicklung.

In diesem Meilenstein haben wir weitere Funktionen hinzugefügt, die getestet werden können.

  • Debuggen
  • Suchen
  • Aufgaben
  • Probleme

Hier ist ein Video, das die neuen Funktionen in Aktion zeigt.

VS Code running in a browser

Hinweis: Verwenden Sie diese Einrichtung nicht für ernsthafte Entwicklungszwecke. Ziel ist es, der Community zu ermöglichen, Änderungen an VS Code beizusteuern, um die allgemeine Benutzererfahrung im Browser zu verbessern.

Technik

Insiders im Yum-Repository verfügbar

Der Insiders-Build ist jetzt im Yum-Repository verfügbar und wird automatisch veröffentlicht, genau wie beim Apt-Repository. Folgen Sie den Anweisungen auf der Website, um das Repository einzurichten und die Installation mit sudo dnf install code-insiders durchzuführen.

Kontinuierlicher Build für Monaco Editor

In dieser Iteration haben wir einen kontinuierlichen Build und eine Testpipeline für den Monaco Editor hinzugefügt. Wir bauen den Monaco Editor Core aus dem Hauptzweig des VS Code-Repositorys und führen Sanity-Tests durch, um potenzielle Fehler oder unerwartete Breaking Changes so früh wie möglich zu erkennen.

Bemerkenswerte Fehlerbehebungen

  • 51039: Diff-Editor schließt sich, wenn die linke Editor-Seite in einem anderen Tab geschlossen wird.
  • 83746: Web: keine Möglichkeit, Composites & Views (Aktivitätsleiste, Panel) per Drag & Drop zu verschieben.
  • 80026: Graue Attribute in launch.json sind verwirrend, bitte entfernen Sie sie.
  • 83449: Barrierefreiheit: Strg+Rechts im Barrierefreiheitsmodus (CursorWordAccessibilityRight) sollte zum Anfang des nächsten Wortes springen, anstatt zum Ende.
  • 83753: Deaktivieren von console.debug.wordWrap entfernt Zeilenumbrüche und Leerzeichen.
  • 85086: Rückverweise werden in der globalen Suche nicht unterstützt, wenn search.usePCRE2 deaktiviert ist.
  • 36219: Git: Befehl "Ausgewählte Bereiche stagen" ändert die Kodierung zu UTF-8.

Vielen Dank

Nicht zuletzt ein großes Dankeschön! an die folgenden Personen, die dazu beigetragen haben, VS Code noch besser zu machen

Beiträge zu unserer Fehlerverfolgung

Beiträge zu vscode

Beiträge zu language-server-protocol

Beiträge zu vscode-css-languageservice

Beiträge zu debug-adapter-protocol

Beiträge zu vscode-chrome-debug-core

Beiträge zu vscode-vsce

Beiträge zu localization

Es gibt über 800 Cloud + AI Localization Community-Mitglieder, die die Microsoft Localization Community Platform (MLCP) nutzen, mit über etwa 100 aktiven Mitwirkenden zu Visual Studio Code. Wir freuen uns über Ihre Beiträge, sei es durch neue Übersetzungen, das Abstimmen über Übersetzungen oder das Vorschlagen von Prozessverbesserungen.

Hier ist eine Momentaufnahme der Mitwirkenden. Details zum Projekt, einschließlich der Liste der Mitwirkenden, finden Sie auf der Projektseite unter https://aka.ms/vscodeloc.

  • Bosnisch (Latein, Bosnien und Herzegowina): Sead Mulahasanović, Ismar Bašanović, Adnan Rizvan.
  • Dänisch: Lasse Stilvang.
  • Niederländisch: Lemuel Gomez, Gideon van de Laar.
  • Englisch (Vereinigtes Königreich): Martin Littlecott, Alonso Calderon, Daniel Imms, Kamalsinh Solanki.
  • Finnisch: Tuula P.
  • Französisch: Antoine Griffard, Thierry DEMAN-BARCELÒ, Edouard Choinière, Joel Monniot, Rodolphe NOEL, Alain BUFERNE, Xavier Laffargue, DJ Dakta.
  • Deutsch: Pascal Wiesendanger, Jakob von der Haar, jan-nitsche, Michael Richter.
  • Griechisch: Valantis Kamayiannis, Θοδωρής Τσιρπάνης.
  • Hebräisch: Ariel Bachar.
  • Hindi: Kiren Paul, Niraj Kumar, Preeti Madhwal, Jaadu Jinn, Mahtab Alam.
  • Ungarisch: József Cserkó, Kiss Attila Csaba, Krisztián Papp.
  • Chinesisch (vereinfacht): Yizhi Gu, Tingting Yi, Justin Liu, Charles Dong, Peng Zeng, Tony Xia, 斌 项, Yixing Zheng, paul cheung, 普鲁文, Sheng Jiang, 钟越, Joel Yang, 一斤瓜子, Zhiqiang Li, Yiting hu, Alexander ZHANG, 张锐, Libing Yang, ZHENGCHENG CHEN, 光宇 朴, 石岩 詹, 舜杰 杨, WJ Wang, Siam Chen.
  • Chinesisch (traditionell): Winnie Lin, 船長, Alan Tsai, TingWen Su.
  • Indonesisch: Eriawan Kusumawardhono, Arif Fahmi, Laurensius Dede Suhardiman, Christian Elbrianno.
  • Italienisch: Alessandro Alpi, Luigi Bruno.
  • Japanisch: Takayuki Fuwa, 貴康 内田, Kyohei Uchida, Koichi Makino, TENMYO Masakazu, Aya Tokura.
  • Koreanisch: Hongju.
  • Lettisch: Andris Vilde.
  • Norwegisch: Frode Aarebrot, Anders Stensaas, Thomas Ødegård, Thomas Isaksen.
  • Polnisch: Makabeus Orban, Wojciech Maj, Kacper Łakomski, Oskar Janczak, Szymon Seliga, Mateusz Redynk, Franx Bar.
  • Portugiesisch (Brasilien): Marcelo Fernandes, Albert Tanure, Arthur Lima, Nylsinho Santos, Pudda, Matheus Vitti Santos, Rodrigo Crespi, Roberto Fonseca, Felipe Nascimento.
  • Portugiesisch (Portugal): Francisco Osorio, Luís Chaves, Ricardo Sousa Vieira, João Fernandes.
  • Rumänisch: LaServici, Dan Ichim.
  • Russisch: Vadim Svitkin.
  • Serbisch Kyrillisch: Dusan Milojkovic.
  • Spanisch: José María Aguilar, Gustavo Gabriel Gonzalez.
  • Tamil: MUTHU VIJAY, Sankar Raj, Kadhireshan S, Pandidurai R, Madhu Chakravarthy, Madhu Maha.
  • Türkisch: Mehmet Yönügül, mehmetcan Gün, Misir Jafarov, Fırat Eşki, Gökberk Nur, Safa Selim.
  • Ukrainisch: Arthur Murauskas, Oleksandr Krasnokutskyi.
  • Vietnamesisch: Dat Nguyen, Vương, Dao Ngo, Van-Tien Hoang, ng-hai.
© . This site is unofficial and not affiliated with Microsoft.