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

September 2019 (Version 1.39)

Update 1.39.1: Das Update behebt diese Probleme, einschließlich einer Korrektur für eine Sicherheitslücke.

Update 1.39.2: Das Update behebt diese Probleme.

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


Willkommen zur September 2019-Version von Visual Studio Code. Diese Version enthält eine Reihe von Updates, 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

Aktualisierte Source Control-Ansicht

Die Source Control-Ansicht wurde aktualisiert, um das neueste Baum-Widget zu verwenden. Sie können nun mit der Schaltfläche Ansichtsmodus umschalten in der Titelleiste von Source Control zwischen einer Listen- und einer Baumansicht wechseln.

Source Control toggle view mode button

Sie können die Standardansicht mit der Einstellung scm.defaultViewMode ändern, die die Werte list oder tree annimmt.

Sie profitieren nun auch von der automatischen Tastaturnavigation und Filterung des aktualisierten Baum-Widgets, indem Sie einfach mit der Eingabe in der Ansicht beginnen.

Updated SCM view

Im Baumansichtsmodus, der Ordner anzeigt, trägt die Git-Erweiterung nun Befehle zu Ordnern bei, z. B. Änderungen stagen, die auf alle Dateien in einem Ordner angewendet werden.

Verbesserte Einstellung für vertrauenswürdige Domänen

Wir haben die Verwaltung vertrauenswürdiger Domänen für die Funktion Schutz ausgehender Links, die in der 1.38-Version eingeführt wurde, vereinfacht.

Sie können nun den Befehl Vertrauenswürdige Domänen verwalten verwenden, um vertrauenswürdige Domänen einfach als JSON-Textdatei hinzuzufügen, zu entfernen oder zu ändern.

Improved trusted domains management

Auswählbare Details für Abschlüsse

Details der automatischen Abschlüsse können nun zum Kopieren und Einfügen ausgewählt werden.

Selectable completion details

Aktualisierte japanische UI-Schriftart unter Windows

Unter Windows haben wir die japanische UI-Schriftart von Meiryo auf Yu Gothic UI und Meiryo UI umgestellt.

Die UI-Schriftarten sparen horizontalen Platz, indem sie schmalere japanische Kana-Zeichen verwenden. Sie können die japanische Benutzeroberfläche verwenden, indem Sie das japanische Sprachpaket installieren und mit dem Befehl Anzeigesprache konfigurieren den Identifikator der Anzeigesprache auf ja setzen.

In der folgenden Abbildung sehen Sie, wie die schmalere UI-Schriftart in der Menüleiste von Insiders (grünes Symbol) aussieht.

Japanese typeface

Verbesserte Anzeige von Monospace-Schriftarten in Vorschlägen und Hover-Infos

Zuvor spezifizierten die Inline-<code>-Segmente in den Suggestion- und Hover-Widgets keine font-family. Unter Windows / macOS wurden diese Segmente mit der Standardwahl von Chrome für font-family: monospace gerendert.

In dieser Iteration haben wir sie mit den System-Sans-Serif-Schriftarten abgeglichen, die in der gesamten VS Code-Benutzeroberfläche verwendet werden.

  • Windows: Courier New -> Consolas (Abgleich mit Segoe UI)
  • macOS: Courier -> SF Mono, Monaco, Menlo (Abgleich mit SF Text und Helvetica Neue)
  • Linux: Keine Änderung. Inline-Code-Segmente werden weiterhin in Liberation Mono gerendert, was unter Linux die Standardeinstellung von Chrome für font-family: monospace ist.

Unten sehen Sie, dass SF Mono den Inline-Codeblöcken ein konsistenteres Erscheinungsbild verleiht.

Suggest and Hover widgets monospace typeface

Validierung für uniqueItems im Einstellungen-Editor

Die Validierung für Zeichenfolgen-Array-Einstellungen, die in der 1.38-Version eingeführt wurde, unterstützt jetzt uniqueItems.

Wenn "uniqueItems": true verwendet wird, zeigen doppelte Einträge im Einstellungen-Editor eine Warnung an.

Codeblock-Hervorhebung in Erweiterungs-READMEs

Codeblöcke in Erweiterungs-READMEs, die im Detailbereich der Erweiterungsansicht angezeigt werden, werden jetzt in VS Code hervorgehoben.

A block of JSON being highlighted

Die Hervorhebung verwendet das aktuelle Farbschema.

Editor

Umschalten des Faltens

Sie können nun eine Faltregion mit dem Befehl Umschalten Faltbereich (⌘K ⌘L (Windows, Linux Ctrl+K Ctrl+L)) erweitern und reduzieren.

Minimap-Editor-Auswahldekorationen

Die Editor-Auswahl wird jetzt im Minimap hervorgehoben.

Minimap displays the editor selection

Sie können die Farbe dieser Dekorationen ändern, indem Sie die Themafarbe minimap.selectionHighlight anpassen.

Touch-Ereignisse für den Minimap

Der Minimap-Schieberegler kann nun per Touch bedient werden.

Neue Option für das Einfügen mehrerer Cursor

In der Vergangenheit prüfte VS Code beim Einfügen von mehrzeiligem Text aus der Zwischenablage, ob die Zeilenanzahl des Zwischenablage-Textes mit der Cursoranzahl übereinstimmte. Wenn ja, wurde jeder Zeile ein Cursor "zugewiesen" oder "verteilt". Sie können dieses Verhalten nun mit der Einstellung editor.multiCursorPaste steuern, die folgende Werte annehmen kann:

  • spread - Jeder Cursor fügt eine Zeile Text ein (Standard).
  • full - Jeder Cursor fügt den gesamten Zwischenablage-Text ein.

Integriertes Terminal

Terminal mit benutzerdefinierten Arbeitsverzeichnissen öffnen

Es gibt einen neuen Befehl, der die Erstellung von Terminals mit einem benutzerdefinierten aktuellen Arbeitsverzeichnis (cwd) ermöglicht.

{
  "key": "cmd+shift+h",
  "command": "workbench.action.terminal.newWithCwd",
  "args": {
    "cwd": "${fileDirname}"
  }
}

Sie können Ihre eigenen Tastenkombinationen erstellen, um neue Terminals in beliebig vielen nützlichen Arbeitsverzeichnissen zu öffnen. Der cwd-Wert kann entweder ein normaler Pfad oder eine Variable sein.

Bessere Lokalisierungs-Erkennung

Die Einstellung terminal.integrated.setLocaleVariables wurde durch die neue Einstellung terminal.integrated.detectLocale ersetzt. Der Standardwert ist auto, was die Variable $LANG in Ihrer Terminalsitzung auf den erkannten UTF-8-Wert der Sprache setzt, aber nur, wenn sie nicht explizit vom Benutzer konfiguriert wurde. Dieser verbesserte Standard sollte zu weniger Problemen im Zusammenhang mit Sprache und Codierung im Terminal führen.

Sprachen

HTML ARIA-Attribut-Referenz

Automatische Vorschläge und Hover-Informationen für HTML ARIA-Attribute enthalten jetzt einen Verweis auf die entsprechende WAI-ARIA-Dokumentation.

HTML ARIA reference

CSS-Eigenschaftsabschluss mit Semikolon

Der Abschluss von CSS-Eigenschaften fügt jetzt am Ende einer Zeile ein Semikolon ein.

Sie können diese Funktion mit Strg+Eingabetaste (Windows / Linux) oder Cmd+Eingabetaste (macOS) verwenden, um eine neue Zeile zu erstellen, ohne das abschließende ; in die neue Zeile zu verschieben.

Sie können diese Funktion mit den Einstellungen [css|scss|less].completion.completePropertyWithSemicolon steuern.

CSS property completion semicolon

Vorschau auf CSS-Farben für Variablenabschlüsse

Beim Vervollständigen von CSS-Variablen zeigt VS Code, wenn die ursprüngliche Variable eine Farbzeichenfolge ist, den Abschluss-Eintrag mit seiner Farbe an.

CSS variable completion with color swatch

markdown.links.openLocation

Die neue Einstellung markdown.links.openLocation steuert, wo Links in Markdown-Dateien geöffnet werden.

markdown.links.openLocation hat zwei Werte:

  • currentGroup - Öffnet Links in der aktuellen Editor-Gruppe (Standard).
  • beside - Öffnet Links neben dem aktuellen Markdown-Editor.

"markdown.links.openLocation": "beside" kann bei der Arbeit an Dokumentationen nützlich sein.

Debugging

Verbesserte Benutzeroberfläche für Spalten-Breakpoints

Beim Debuggen zeigt VS Code nun alle möglichen Breakpoint-Positionen Inline an. Dies erleichtert dem Benutzer das Platzieren eines Breakpoints an einer genaueren Stelle. Um die Benutzeroberfläche nicht zu überladen, werden mögliche Breakpoints nur angezeigt, wenn es mehr als eine mögliche Position in der Zeile gibt.

Sie können direkt mit Inline-Breakpoints interagieren; Klicken Sie, um sie zu aktivieren und zu deaktivieren, und rufen Sie ihr Kontextmenü für weitere Aktionen auf.

Inline breakpoints

Beachten Sie, dass diese Funktion Unterstützung durch die zugrunde liegende Laufzeit oder den Debugger erfordert, und wir erwarten, dass nur wenige Debug-Erweiterungen diese Funktion in Zukunft nutzen werden. Für diese Version unterstützen Node Debug und Debugger for Chrome dies. Als Beispiel für Erweiterungsautoren "simuliert" unsere Mock Debug-Erweiterung die Unterstützung dafür.

Inline-Debug-Aktionen in der CALL STACK-Ansicht

Wenn Sitzungen oder Threads in der CALL STACK-Ansicht angezeigt werden, zeigen wir nun beim Überfahren mit der Maus Inline-Debug-Aktionen an. Dies erleichtert die Steuerung des Debug-Flusses beim Debuggen mehrerer Sitzungen oder Threads. Sie müssen keinen Fokus mehr auf eine Sitzung oder einen Thread setzen, um eine Aktion darauf auszuführen.

Wenn eine Sitzung nur einen Thread hat, werden alle Aktionen auf der Sitzung angezeigt, da der Thread nicht angezeigt wird. Andernfalls werden alle Aktionen in ihrem Kontext angezeigt (Sitzungsaktionen auf Sitzungen und Thread-Aktionen auf Threads).

Inline debug actions from the Call Stack view

Verbessertes Verhalten der CALL STACK-Ansicht

Wir haben die Funktionalität der CALL STACK-Ansicht verbessert.

  • Das Klicken auf die Debug-Sitzung oder den Thread erweitert sie nicht mehr. Sie müssen direkt auf das Pfeil-Symbol (>) klicken. Dies verhindert ein versehentliches Erweitern einer Sitzung oder eines Threads, wenn Sie nur den Fokus verschieben möchten.
  • VS Code fokussiert neue Debug-Sitzungen nicht mehr automatisch, wenn sie nicht unterbrochen wurden.

VS Code erkennt nun Links in Ausdrücken in der Debug-Konsole, nicht nur in der Zeichenfolgenausgabe. Der Link-Erkennungsalgorithmus wurde ebenfalls verbessert.

PreLaunchTask kann nun auf Standardbuild verweisen

Mit der Einführung einer neuen Variable ${defaultBuildTask} ist es nun möglich, eine generische preLaunchTask zu haben, die immer auf den Standard-Build-Task verweist.

{
  "name": "Hello World",
  "type": "node",
  "request": "launch",
  "preLaunchTask": "${defaultBuildTask}"
}

${defaultBuildTask} wird zum Namen des Tasks aufgelöst, der ausgeführt wird, wenn der Befehl Tasks: Build-Task ausführen ausgeführt wird. Ähnlich wie bei der Verwendung des Befehls Build-Task ausführen wird, wenn es mehrere Standard-Build-Tasks gibt oder keinen Standard-Build-Task, eine Schnellauswahl angezeigt, um den Build-Task auszuwählen.

Speichern der Wahl bei Fehlern von preLaunchTask

Sie können nun Ihre Wahl merken, wenn es einen preLaunchTask-Fehler gibt, mit der Checkbox Meine Wahl in Benutzereinstellungen merken. Ihre Wahl wird in den Benutzereinstellungen unter debug.onTaskErrors gespeichert, was drei Werte annehmen kann: prompt (Standard), debugAnyway und showErrors.

PreLaunchTask error choice dialog

Beiträge zu Erweiterungen

Remote-Entwicklung (Vorschau)

Die Arbeit an den Remote Development-Erweiterungen wurde fortgesetzt. Diese ermöglichen es Ihnen, einen Container, eine Remote-Maschine oder das Windows Subsystem für Linux (WSL) als voll funktionsfähige Entwicklungsumgebung zu nutzen.

Feature-Highlights in 1.39 beinhalten:

  • Remote Explorer unterstützt jetzt die WSL-Erweiterung und ermöglicht Ihnen den einfachen Anschluss an installierte Linux-Distributionen.
  • Neuer Befehl Repository in Container-Volume klonen, damit Sie an Quellcode-Repositorys in Isolation arbeiten können.
  • Experimentelle Unterstützung für SSH-Verbindungsfreigabe und die Verwendung von SSH für die Verbindung zu Windows-Remote-Maschinen.

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

Sie können auch zwei aktuelle Blogbeiträge lesen, die Folgendes beschreiben:

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.

TypeScript 3.7-Beta-Unterstützung

Obwohl VS Code TypeScript 3.7 erst nach dessen offizieller Veröffentlichung bündeln wird, haben wir bereits daran gearbeitet, alle spannenden neuen Funktionen von TypeScript 3.7-Beta zu unterstützen.

Dazu gehören:

  • Syntaxhervorhebung für optionale Verkettung und Nullish Coalescing in JavaScript- und TypeScript-Dateien.
  • Unterstützung für optionale Verkettung im Abschluss.
  • Steuerung von Semikolons mit den neuen Einstellungen javascript.format.semicolons und typescript.format.semicolons.

Sie können all diese neuen TypeScript 3.7-Funktionen noch heute ausprobieren, indem Sie die TypeScript Nightly-Erweiterung installieren. Bitte geben Sie Feedback und lassen Sie uns wissen, wenn Sie auf Fehler bei der TypeScript 3.7-Beta stoßen!

Erweiterungs-Authoring

Extension Terminal API

Die Extension Terminal API wurde finalisiert und ermöglicht es einer Erweiterung, auf Terminaleingaben zu reagieren und deren Ausgabe vollständig zu steuern. Das Folgende erstellt ein Terminal einer Erweiterung und gibt beim Start 'Hello world' in roter Farbe aus:

const writeEmitter = new vscode.EventEmitter<string>();
const pty: vscode.Pseudoterminal = {
  onDidWrite: writeEmitter.event,
  open: () => writeEmitter.fire('\x1b[31mHello world\x1b[0m'),
  close: () => {}
};
vscode.window.createTerminal({ name: 'My terminal', pty });

Weitere Details finden Sie in der API-Referenz und im Beispiel für Erweiterungs-Terminals.

Deprecations-Tags für Symbole und Abschlüsse

Die Symbol-Tag-API, die es ermöglicht, Abschluss-Elemente und Symbole als veraltet zu markieren, wurde finalisiert. Erfahren Sie mehr darüber in den Release Notes zu 1.38.

Hier sehen Sie, wie die Java-Erweiterung SymbolTag.Deprecated verwendet, um Quellcode, der veraltete Typen oder Member referenziert, mit einem durchgestrichenen Text anzuzeigen.

Java deprecated method

Debug-Sitzungsname ist nicht mehr schreibgeschützt

Es ist möglich, den Namen der DebugSession zu ändern. Der Name der Debug-Sitzung wird anfänglich aus der DebugConfiguration übernommen. Alle Änderungen werden korrekt in der Benutzeroberfläche widergespiegelt.

Warnung, wenn Webviews Webview.asWebviewUri nicht für lokale Ressourcen verwenden

Bei der Entwicklung einer Erweiterung, die die Webview API verwendet, protokollieren wir nun eine Warnung, wenn Sie ein Webview erstellen, das lokale Ressourcen unter Verwendung von vscode-resource:-URIs direkt lädt, anstatt die neue Webview.asWebviewUri API zu verwenden.

Debug warning for a webview that uses vscode-resources

Obwohl alte vscode-resource:-URIs weiterhin funktionieren, möchten wir, dass alle Webview-Erweiterungen zur Webview.asWebviewUri API migrieren, da die neue API:

  • Einige knifflige Randfälle beim Laden lokaler Ressourcen von Netzwerklaufwerken behandelt.
  • Es ermöglicht, ein Webview zu haben, das eine Mischung aus lokalen und entfernten Inhalten laden kann.
  • Wird für Webversionen von VS Code zuverlässiger funktionieren.

TreeView-Nachrichten-API

Die API zum Festlegen einer Nachricht in einer Baumansicht wurde finalisiert. Ein Beispiel für die Verwendung der Nachrichten-API finden Sie im Beispiel für Baumansichts-Erweiterungen.

Aktualisierter Octicons-Stil

Wir haben unsere Octicons aktualisiert, um unserem neuen Umriss-Stil zu entsprechen, damit unsere gesamte Ikonografie konsistent ist.

Updated Octicons

SCM-Ordner-Menü

Die aktualisierte SCM-Ansicht unterstützt nun die Darstellung von Änderungen als Baum. Als SCM-Provider können Sie Befehle zum Menü eines Ordners mit der Kontextmenü-ID scm/resourceFolder/context beitragen.

Language Server Protocol

Die Spezifikation der Version 3.15.0 des Language Server Protocol ist verfügbar. Die Version ist noch nicht endgültig, daher ist Feedback weiterhin als Issue oder Pull-Request im Language Server Protocol-Repository willkommen. Streaming- und Fortschrittsberichte werden in der nächsten Version des Language Server Protocol unterstützt. Implementierungen für den Node-Server und den VS Code-Client sind als vscode-languageserver@6.0.0-next.1 bzw. vscode-languageclient@6.0.0-next.1 verfügbar.

Debug Adapter Protocol

Abbruchunterstützung

Eine neue Anfrage cancel wurde zum Debug Adapter Protocol hinzugefügt, die dem Debug Adapter einen Hinweis geben kann, dass der Frontend-Client nicht mehr an dem für eine frühere Anfrage erzeugten Ergebnis interessiert ist.

Diese Anfrage hat einen Hinweischarakter: Es kann nur erwartet werden, dass ein Debug Adapter eine "Best-Effort"-Einhaltung dieser Anfrage leistet, es gibt jedoch keine Garantien. Ein Frontend-Client kann diese Anfrage nur aufrufen, wenn die Fähigkeit supportsCancelRequest definiert ist und den Wert true hat.

Die abgebrochene Anfrage muss immer noch eine Antwort zurücksenden. Dies kann entweder ein normales Ergebnis oder eine Fehlermeldung sein. Die Rückgabe von Teilergebnissen aus einer abgebrochenen Anfrage ist möglich, aber beachten Sie, dass ein Frontend-Client keine generische Möglichkeit hat, zu erkennen, ob eine Antwort teilweise ist oder nicht.

In der September-Version unterstützt VS Code den Abbruch für die Anfragen stacktrace, scopes und variables (verwendet in den Ansichten CALL STACK und VARIABLES) sowie die Anfragen completions (verwendet in der Debug-Konsole).

Beachten Sie, dass ab September nur die Mock Debug-Erweiterung den Abbruch implementiert.

Finden möglicher Breakpoints in einem Quellbereich

Die neue Anfrage breakpointLocations kann von einem DAP-Client verwendet werden, um alle möglichen Breakpoint-Positionen in einem bestimmten Quellbereich zu finden. Dies kann in der Benutzeroberfläche verwendet werden, um die Auffindbarkeit von "Inline"-("Spalten"-)Breakpoints zu verbessern.

Ein Client darf die Anfrage breakpointLocations nur aufrufen, wenn die Fähigkeit supportsBreakpointLocationsRequest definiert ist und den Wert true hat.

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. Wir werden wahrscheinlich wichtige Änderungen in der nächsten Version vornehmen und wollen niemals bestehende Erweiterungen brechen.

vscode.env.uiKind

Eine neue vorgeschlagene API vscode.env.uiKind wurde hinzugefügt, die es einer Erweiterung ermöglicht, aus der Art der Benutzeroberfläche, von der aus die Erweiterung verwendet wird, zu ermitteln. In Vorbereitung auf die Unterstützung der Ausführung von VS Code in einem Browser sind die möglichen Werte UIKind.Desktop und UIKind.Web.

vscode.env.asExternalUri

Die vorgeschlagene API vscode.env.asExternalUri ermöglicht es einer Erweiterung, eine externe URI – wie z. B. eine http:- oder https:-URI – von dort, wo die Erweiterung läuft, zu einer URI für dieselbe Ressource auf dem Client-Computer aufzulösen. Dies ist eine Ergänzung zur API vscode.env.openExternal, nur dass anstatt die aufgelöste URI mit einem externen Programm zu öffnen, das Ergebnis an die Erweiterungen zurückgegeben wird.

import * as vscode from 'vscode';
import * as http from 'http';

const PORT = 3000;

export function activate(context: vscode.ExtensionContext) {
  startLocalServer(PORT);

  context.subscriptions.push(
    vscode.commands.registerCommand('example.command', async () => {
      const resolved = vscode.env.asExternalUri(
        vscode.Uri.parse(`https://:${PORT}`)
      );
      vscode.window.showInformationMessage(
        `Resolved to: ${resolved} on client and copied to clipboard`
      );
      vscode.env.clipboard.writeText(resolved.toString());
    })
  );
}

function startLocalServer(port: number) {
  const server = http.createServer((req, res) => {
    res.end('Hello world!');
  });
  server.on('clientError', (err, socket) => {
    socket.end('HTTP/1.1 400 Bad Request\r\n\r\n');
  });
  server.listen(port);
  vscode.window.showInformationMessage(`Started local server on port: ${port}`);
}

vscode.env.asExternalUri unterstützt derzeit nur http:- und https:-URIs. Es ist eine No-Op, wenn die Erweiterung auf dem Client-Computer läuft. Wenn die Erweiterung jedoch remote läuft, stellt vscode.env.asExternalUri automatisch einen Port-Forwarding-Tunnel von der lokalen Maschine zu target auf dem Remote-System her und gibt eine lokale URI zum Tunnel zurück.

Schreibgeschützte Webview-Editoren für Ressourcen

Sie finden VS Code-Erweiterungen zum Vorschauen von allem, von Shadern über Excel-Dateien bis hin zu 3D-Modellen. Einige mutige Erweiterungen haben komplexe Editor-ähnliche Erfahrungen für die visuelle Bearbeitung von Binär- oder XML-Dateien erstellt. Obwohl es großartig ist, dass all dies bereits mit der bestehenden Erweiterungs-API von VS Code möglich ist, erfordert die Erstellung einer Vorschau oder eines benutzerdefinierten Editors die Kombination einer Reihe von APIs auf nicht-intuitive Weise. Es überlässt auch viel den Erweiterungen selbst, was oft zu Benutzererfahrungen führt, die nicht mit dem Rest von VS Code konsistent sind. Der Vorschlag für die Custom Editor API zielt darauf ab, dies zu verbessern.

Die Custom Editor API bietet ein Framework für Erweiterungen, um vollständig anpassbare Lese-/Schreibeditoren zu erstellen, die anstelle des Standardtexteditors von VS Code für bestimmte Ressourcen verwendet werden. Ein XAML-Custom-Editor könnte zum Beispiel einen WYSIWYG-Editor für Ihre .xaml-Dateien anzeigen. Unser Endziel ist es, Erweiterungen die größtmögliche Flexibilität zu bieten und gleichzeitig VS Code schnell, schlank und konsistent zu halten.

In dieser Iteration teilen wir die ersten Teile des Custom Editor API-Vorschlags: schreibgeschützte, webview-basierte Custom Editoren. Eine Übersicht über den Custom Editor-Vorschlag finden Sie hier. Custom Editoren werden bereits zur Unterstützung der integrierten Bildvorschau von VS Code verwendet.

Der aktuelle Vorschlag ist nur ein erster Schritt und wird wahrscheinlich stark überarbeitet werden. Wir werden die Custom Editor API in den kommenden Monaten weiterentwickeln.

TreeView-Titel

Der Titel der Baumansicht wurde bisher aus der package.json-Datei der Erweiterung übernommen. Jetzt wird ein Baumansichts-Titel anfänglich aus der package.json übernommen, kann aber später geändert werden. Änderungen an der title-Eigenschaft werden in der Benutzeroberfläche im Titel der Ansicht korrekt widergespiegelt.

startDebugging-Konsolenmodus-Option zum Zusammenführen von Debug-Konsolen

Um hierarchische Debug-Sitzungen besser zu unterstützen, haben wir ein optionales Argument consoleMode zur API vscode.debug.startDebugging hinzugefügt. Dieses Argument steuert, ob VS Code die Debug-Konsole der übergeordneten und untergeordneten Debug-Sitzungen zusammenführen soll. Dies ist zum Beispiel besonders nützlich für Cluster-Debugging, bei dem viele untergeordnete Sitzungen vorhanden sind und es viel übersichtlicher ist, wenn alle Debug-Sitzungen in dieselbe Debug-Konsole gehen.

Veraltete Terminal.onDidWriteData API entfernt

Die vorgeschlagene API Terminal.onDidWriteData wurde zugunsten des globalen Ereignisses window.onDidWriteTerminalData entfernt.

Technik

Website-Aktualisierung

Wir haben die Icons und Farben der Visual Studio Code-Website aktualisiert, um besser zu unserer Marke zu passen. Dies spiegelt sich auf der gesamten Website und auf den Dokumentationsseiten wider.

Website colors updated

JavaScript-Minifizierung mit Terser

Wir haben den Minifier für die Minifizierung von JavaScript für den Produkt-Build auf Terser umgestellt. Zuvor verwendeten wir eine ältere Version von uglify-es. Die Terser-Entwickler waren sehr hilfreich bei der Unterstützung während der Einführung.

Datei-Watcher-Update (Chokidar)

Während dieses Meilensteins haben wir unseren Datei-Watcher für macOS und Linux auf Version 3.x aktualisiert, was eine verbesserte Leistung, einen reduzierten Speicherverbrauch und eine geringere Paketgröße mit sich bringt. Mehr erfahren Sie im Chokidar-Repository und im Chokidar 3 Blogbeitrag.

Integrationstests werden gegen den echten Build ausgeführt

Unsere Produkt-Builds führen als Teil des Builds eine große Suite von Integrationstests aus. Zuvor wurden diese Tests gegen VS Code ausgeführt, das aus Quellen lief. Jetzt verwenden diese Tests die erstellte Version von VS Code, um zu überprüfen, ob der Build zur Veröffentlichung bereit ist.

VS Code mit TypeScript 3.6 bauen

VS Code Core und die integrierten Erweiterungen werden jetzt mit TypeScript 3.6 erstellt.

Bildvorschau in eine integrierte Erweiterung verschoben

Die Bildvorschau-Funktionalität von VS Code wurde aus dem Kern-Code entfernt und in eine integrierte Bildvorschau-Erweiterung verschoben. Die Funktionalität von Bild-Vorschauen sollte fast genau dieselbe sein wie zuvor.

The built-in Image Preview extension

Das Extrahieren der Bildvorschau in eine integrierte Erweiterung erleichtert die Behebung von Fehlern und das Hinzufügen von Funktionen und wird es Erweiterungen schließlich ermöglichen, die integrierte Bildvorschau von VS Code einfacher zu überschreiben.

Diese Änderung wurde durch die Arbeit an der Custom Editor API ermöglicht, die wir in dieser Iteration abgeschlossen haben.

Neue Dokumentation

Node.js-Bereitstellungstutorials

Die Node.js-Bereitstellungstutorials wurden in das Azure JavaScript Developer Center auf learn.microsoft.com verschoben.

Dort finden Sie Tutorials zur Verwendung von Visual Studio Code für:

Bemerkenswerte Fehlerbehebungen

  • 78984: Touch funktioniert nicht im Suggest-Widget
  • 79196: Debug-Konsole zeigt REPL-Ergebnisse und console.log-Ausgabe in falscher Reihenfolge an
  • 80003: Reguläre Breakpoints haben keinen Titel-Tooltip
  • 55106: Breakpoints erscheinen als verifiziert, wenn sie von mindestens einer Sitzung verifiziert wurden
  • 80435: Bitte lassen Sie mich den leeren Ordnerbereich in der Explorer-Seitenleiste ausblenden
  • 80464: Fehlermeldung von SetVariable-Anfrage wird nicht angezeigt
  • 80402: Debug-UI bereinigt keine Spinner nach dem Ende der Debug-Sitzung
  • 82047: Neue Titelvariable zur Angabe des Remote-Namens

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

Bitte besuchen Sie unsere Community Issue Tracking-Seite, wenn Sie uns bei der Verwaltung eingehender Probleme helfen möchten.

Beiträge zu vscode

Beiträge zu vscode-eslint

Beiträge zu vscode-languageserver-node

Beiträge zu language-server-protocol

Beiträge zu debug-adapter-protocol

Beiträge zu vscode-debugadapter-node

Beiträge zu vscode-css-languageservice

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.

  • Dänisch: Mark Drastrup, Lasse Stilvang.
  • Niederländisch: Niels ter Haar, Laurens Kwanten.
  • Englisch (Vereinigtes Königreich): Martin Littlecott, s.benson, sonali Dixit.
  • Finnisch: Kiti Suupohja, Tommi Finnilä.
  • Französisch: Thierry DEMAN-BARCELÒ, Maxime Coquerel, Antoine Griffard, Rodolphe NOEL, DJ Dakta.
  • Deutsch: Christof Opresnik.
  • Griechisch: Θοδωρής Τσιρπάνης.
  • Hebräisch: Yonatan Bachar, Snir Broshi.
  • Hindi: mtar05, निरव आडतिया, Amit Gusain, Degant Puri.
  • Chinesisch (vereinfacht): Justin Liu, Yizhi Gu, paul cheung, yungkei fan, 斌 项, Yiting Zhu, 一斤瓜子, Tianzhi Zeng, cool yang, Peng Zeng, Y!an, Joel Yang, 楠 姜, 建 周.
  • Chinesisch (traditionell): Winnie Lin, 蔡牧村, 謝政廷, Yi-Jyun Pan, Poy Chang.
  • Indonesisch: Eriawan Kusumawardhono, Riwut Libinuko, William Surya Permana, Septian Adi, Laurensius Dede Suhardiman.
  • Italienisch: Luigi Bruno, Alessandro Alpi, Claudio Mezzasalma, Marco Dal Pino.
  • Japanisch: Michihito Kumamoto, Hiroyuki Mori, Aya Tokura, 井上 圭司, Yuzo Konishi, Yoshihisa Ozaki, Kogesaka, Yuta Ojima, TENMYO Masakazu, Koichi Makino, Takayuki Fuwa.
  • Koreanisch: Hongju, Sungjin Jeong, Seikwang Chung.
  • Lettisch: Andris Vilde.
  • Litauisch: Renatas Laužadis.
  • Polnisch: Kacper Łakomski.
  • Portugiesisch (Brasilien): Marcelo Fernandes, Marcondes Alexandre, Felipe Oliveira, Alan Bueno.
  • Portugiesisch (Portugal): Pedro G..
  • Rumänisch: Mihail-Gabriel Alexe.
  • Russisch: konpl.
  • Spanisch: José María Aguilar, Abdón Rodríguez P., Ricardo Estrada Rdez, Anix Cormak, Carlos Mendible.
  • Tamil: Rajeshkumar Ramasamy.
  • Türkisch: Safa Selim.
  • Ukrainisch: Oleksandr Krasnokutskyi, Arthur Murauskas.
  • Vietnamesisch: Vương, Van-Tien Hoang, Hai Nguyen, Tuan Duong.
© . This site is unofficial and not affiliated with Microsoft.