September 2021 (Version 1.61)
Update 1.61.1: Das Update behebt diese Issues.
Update 1.61.2: Das Update behebt diese Issues.
Downloads: Windows: x64 Arm64 | Mac: Universal Intel silicon | Linux: deb rpm tarball Arm snap
Willkommen zur September 2021-Version von Visual Studio Code. Es gibt viele Updates in dieser Version, die Ihnen hoffentlich gefallen werden. Einige der wichtigsten Highlights sind:
- Editoren innerhalb derselben Gruppe teilen – Erstellen Sie schnell nebeneinanderliegende Editoren für dieselbe Datei.
- Gesperrte Editoren-Gruppen – Wählen Sie Editorentypen aus, um sie automatisch in einer Editoren-Gruppe zu sperren.
- Bessere Anzeige gelöschter und schreibgeschützter Editoren – Tab-Dekorationen heben gelöschte und schreibgeschützte Dateien hervor.
- Klammerpaar-Leitfäden – Zeigen Sie vertikale Leitfäden an, um passende Klammerpaare zu verbinden.
- Feste Terminal-Dimensionen – Legen Sie die Breite und Höhe eines aktiven Terminals fest.
- Jupyter Notebook-Verbesserungen – Inhaltsverzeichnisansicht, vollständige Debugging-Unterstützung.
- Plattformspezifische Erweiterungen – Veröffentlichen Sie verschiedene Erweiterungsversionen für Windows, macOS und Linux.
- Anleitung für virtuelle Arbeitsbereiche (Virtual Workspaces) – Erfahren Sie, wie Sie Ihre Erweiterung für virtuelle Umgebungen aktualisieren.
- Erweiterte Container-Konfiguration – Tipps, Codebeispiele und Videos zur Konfiguration von Entwicklungcontainern.
Wenn Sie diese Release Notes online lesen möchten, gehen Sie zu Updates auf code.visualstudio.com.
Schauen Sie sich eine Zusammenfassung der neuen Funktionen in dieser Version auf der Release-Party des VS Code-Teams an. Die Aufzeichnung der Veranstaltung finden Sie auf unserem YouTube-Kanal.
Insiders: Möchten Sie neue Funktionen so schnell wie möglich ausprobieren? Sie können den nächtlichen Insiders-Build herunterladen und die neuesten Updates ausprobieren, sobald sie verfügbar sind.
Workbench
Einen Editor teilen, ohne eine neue Gruppe zu erstellen
Ein neuer Befehl In Gruppe teilen (⌘K ⇧⌘\ (Windows, Linux Ctrl+K Ctrl+Shift+\)) wurde hinzugefügt, um einen Editor in zwei Seiten zu teilen, ohne dass eine zweite Editoren-Gruppe erforderlich ist. Dies ermöglicht es Ihnen, in zwei Editoren nebeneinander an derselben Datei zu arbeiten. Sie können das Layout auch zwischen vertikaler und horizontaler Teilung umschalten, indem Sie auf die Schaltfläche Layout umschalten klicken, wie im kurzen Video zu sehen ist.
Es gibt eine neue Einstellung workbench.editor.splitInGroupLayout, wenn Sie das Teilen lieber vertikal oder horizontal bevorzugen.
Es gibt neue Befehle, um diese Funktion über Tastenkombinationen zu nutzen
workbench.action.splitEditorInGroupworkbench.action.toggleSplitEditorInGroupworkbench.action.joinEditorInGroupworkbench.action.toggleSplitEditorInGroupLayout
Und um zwischen den Seiten zu navigieren
workbench.action.focusFirstSideEditorworkbench.action.focusSecondSideEditorworkbench.action.focusOtherSideEditor
Die neue Farbe sideBySideEditor.border legt die Farbe für den Rand fest, um eine Seite von der anderen zu trennen.
Gesperrte Editor-Gruppen
Wir haben im letzten Meilenstein gesperrte Editoren-Gruppen als experimentelle neue Funktion eingeführt. In diesem Meilenstein wurde die Einstellungen-Erfahrung verbessert, sodass Sie einfach einen Editor auswählen können, der eine Gruppe beim Öffnen automatisch sperren soll.

Die Einstellung heißt jetzt workbench.editor.autoLockGroups. Ebenso wurden die Befehle im Zusammenhang mit dem Sperren von Editoren-Gruppen umbenannt und sind nicht mehr experimentell.
workbench.action.lockEditorGroupworkbench.action.unlockEditorGroupworkbench.action.toggleEditorGroupLock
Gelöschte und schreibgeschützte Editoren über Dekorationen anzeigen
Geöffnete Editoren können anzeigen, ob sie schreibgeschützt sind oder ob ihre zugehörige Ressource von der Festplatte gelöscht wurde. Diese Anzeige erfolgte durch Anhängen von „gelöscht“ und/oder „schreibgeschützt“ an das Editor-Label, was ziemlich viel Platz beanspruchte.
VS Code verwendet nun Dekorationen für diesen Zweck
- Editoren mit gelöschten Ressourcen erscheinen durchgestrichen und in Rot.
- Editoren mit schreibgeschützten Ressourcen erscheinen mit einem Schloss-Symbol.

Teilen eines Editors in eine bestehende Gruppe
Wenn Sie einen Editor zur Seite teilen, öffnet VS Code eine neue Editoren-Gruppe, auch wenn daneben eine bestehende Gruppe vorhanden ist. Es gibt jedoch Zeiten, in denen Sie einen Editor in eine bereits bestehende Gruppe teilen möchten.
Um dies zu unterstützen, wurden neue Befehle hinzugefügt
workbench.action.splitEditorToPreviousGroup: In die vorherige Gruppe teilen.workbench.action.splitEditorToNextGroup: In die nächste Gruppe teilen.workbench.action.splitEditorToAboveGroup: In die Gruppe oberhalb der aktuellen teilen.workbench.action.splitEditorToBelowGroup: In die Gruppe unterhalb der aktuellen teilen.workbench.action.splitEditorToLeftGroup: In die Gruppe links von der aktuellen teilen.workbench.action.splitEditorToRightGroup: In die Gruppe rechts von der aktuellen teilen.workbench.action.splitEditorToFirstGroup: In die erste Gruppe teilen.workbench.action.splitEditorToLastGroup: In die letzte Gruppe teilen.
Kürzere Labels für Diff-Editoren
Wenn Sie zwei Dateien vergleichen, wurde der arbeitsbereichsrelative Ordnerpfad den Dateinamen vorangestellt, was das Erkennen der verglichenen Dateinamen erschwerte.
In dieser Version wird der Ordner nun aus dem Label ausgeblendet, es sei denn, beide Dateinamen sind identisch, was dem Verhalten für normale Editor-Labels entspricht.
Wenn beide Dateinamen identisch sind, wird eine Beschreibung angezeigt, die auf den Ordnerunterschied hinweist.

macOS: Änderungen im Datei-Menü
Unter macOS können Sie, wenn Sie den Menüpunkt Öffnen... aus dem Menü Datei auswählen, sowohl Dateien als auch Ordner öffnen. Für neue Benutzer mag dies überraschend sein, und Benutzer versuchten, den Befehl Arbeitsbereich öffnen zu verwenden, um einen Ordner zu öffnen, obwohl dieser Menüpunkt speziell zum Öffnen einer .code-workspace-Datei dient.
Um Verwirrung zu vermeiden, haben wir leichte Anpassungen am Datei-Menü unter macOS vorgenommen.
- Ein neuer Eintrag Ordner öffnen... öffnet einen Ordner.
- Arbeitsbereich öffnen... wurde in Arbeitsbereich aus Datei öffnen... umbenannt.

Telemetrie-Einstellungen
Es gibt eine neue Telemetrie-Einstellung, telemetry.telemetryLevel, die eine höhere Konfigurationsgranularität bietet und es Benutzern ermöglicht zu wählen, ob sie nur Fehler-Telemetrie und keine allgemeinen Nutzungsdaten senden möchten. Die Werte sind on, error und off. Die Werte on und error aktivieren auch den Absturzreporter.
Die vorhandenen Einstellungen telemetry.enableTelemetry und telemetry.enableCrashReporter wurden zugunsten der neuen Einstellung telemetry.telemetryLevel als veraltet markiert, werden aber weiterhin berücksichtigt.
Minimap-Hintergrundtransparenz
Es ist nun möglich, die Hintergrundopazität der Minimap unabhängig von der Opazität des Minimap-Texts mithilfe der neu hinzugefügten Farboption minimap.foregroundOpacity zu konfigurieren.
Aktualisierte Hilfe-Menüpunkte
Mit den fortlaufenden Verbesserungen der „Erste Schritte“-Erfahrung wurden die Menüpunkte unter Hilfe in gebräuchlichere Namen umbenannt. Dies basiert auf Erkenntnissen von neuen Benutzern, soll aber hoffentlich jedem die Hilfeerleichterung erleichtern. Einführungsvideos heißt jetzt Video-Tutorials und Interaktiver Playground wurde zu Editor Playground. Sie finden die neuen Namen sowohl im Menü Hilfe als auch in der Befehlspalette. Das Menü Hilfe enthält auch einen Eintrag Alle Befehle anzeigen als zusätzlichen Einstiegspunkt zum Öffnen der Befehlspalette.
Editor
Klammerpaar-Leitfäden
Der Editor unterstützt nun rudimentäre Klammerpaar-Leitfäden. Klammerpaar-Leitfäden verwenden dieselben Farben und Algorithmen wie die Klammerpaar-Farbkodierungsfunktion. Die Algorithmen zur Klammerpaar-Zuordnung sind im kürzlich erschienenen Blogbeitrag „Bracket pair colorization 10,000x faster“ detailliert beschrieben.
Ähnlich wie bei Einrückungsleitfäden wird der aktive Klammerpaar-Leitfaden hervorgehoben.

Klammerpaar-Leitfäden können durch Konfiguration der Einstellung editor.guides.bracketPairs (standardmäßig false) aktiviert werden. Wir werden diese Funktion weiter ausbauen und im nächsten Release vertikale Leitfäden untersuchen.
Einstellungen für Einrückungsleitfäden
Die Einstellungen editor.renderIndentGuides und editor.highlightActiveIndentGuide wurden zugunsten von editor.guides.indentation und editor.guides.highlightActiveIndentation als veraltet markiert.
Quellcodeverwaltung
Veröffentlichen oder Synchronisieren von „Aktionsschaltflächen“ für Git-Repositories
Die Git-Erweiterung fügt der Ansicht „Quellcodeverwaltung“ nun eine neue „Aktionsschaltfläche“ hinzu, um das Veröffentlichen oder Synchronisieren nicht übertragener Änderungen zu erleichtern.

Theme: Amethyst Theme
Standardmäßig fügt die Git-Erweiterung eine Schaltfläche Änderungen synchronisieren (wie oben gezeigt) hinzu, wenn nicht übertragene Commits vorhanden sind, oder eine Schaltfläche Änderungen veröffentlichen, wenn der Branch noch nicht veröffentlicht wurde. Zusätzlich können Benutzer dieses Verhalten anpassen, indem sie die Einstellung git.showUnpublishedCommitsButton konfigurieren, die standardmäßig auf whenEmpty gesetzt ist, sodass die Schaltfläche nur angezeigt wird, wenn nicht übertragene Commits vorhanden sind und keine anderen Änderungen in der Ansicht vorhanden sind.
Diese neue Aktionsschaltfläche ist als neue vorgeschlagene API für Quellcodeverwaltungs-Erweiterungen verfügbar. Weitere Details finden Sie im Abschnitt Vorgeschlagene API unten.
Und schließlich können Benutzer die Sichtbarkeit von Aktionsschaltflächen in der Ansicht „Quellcodeverwaltung“ vollständig deaktivieren, indem sie die neue Einstellung scm.showActionButton verwenden, die das Verhalten jeder Quellcodeverwaltungs-Erweiterung überschreibt.
Erhöhtes Limit für die Anzeige von geänderten Dateien
Vor dieser Version hatte die Git-Erweiterung ein festes Limit von 5000 Änderungen, die sie in der Ansicht „Quellcodeverwaltung“ anzeigen konnte. Das Limit sollte verhindern, dass der Benutzer zu lange warten muss, während VS Code alle von Git gemeldeten Änderungen verarbeitet. Dieses Limit wurde nun auf 10.000 Änderungen erhöht und es gibt eine neue Einstellung git.statusLimit, mit der Benutzer das Limit anpassen können (nach Bedarf pro Repository). Diese Einstellung kann auch auf 0 gesetzt werden, um das Limit vollständig zu deaktivieren. Beachten Sie jedoch, dass dies bei vielen Änderungen zu langen Aktualisierungszeiten führen kann.
Zusätzlich haben wir diesen Warnhinweis am Eingabefeld hinzugefügt, wenn das Limit überschritten wurde.

Terminal
Feste Dimensionen
Sie können nun statisch Terminal-Dimensionen über den Befehl Terminal: Feste Dimensionen festlegen (workbench.action.terminal.setDimensions) festlegen. Dies ist nützlich in Fällen, in denen Zeilenumbrüche störend oder ablenkend sein können.
Der Befehl zeigt eine Eingabeaufforderung an, in der Sie die gewünschte Breite und/oder Höhe eingeben können.

Benutzerdefinierter Titel und Beschreibung
Terminalnamen sind normalerweise der Name des Prozesses, mit dem sie verbunden sind, und es kann manchmal schwierig sein, zwischen Terminals zu unterscheiden.
Sie können nun sowohl den Titel als auch die Beschreibung mithilfe von Variablen in den Einstellungen terminal.integrated.tabs.title und terminal.integrated.tabs.description konfigurieren.
Die aktuellen Standardwerte sind
{
"terminal.integrated.tabs.title": "${process}",
"terminal.integrated.tabs.description": "${task}${separator}${local}${separator}${cwdFolder}"
}
Verfügbare Variablen sind
${cwd}– Das aktuelle Arbeitsverzeichnis des Terminals${cwdFolder}– Das aktuelle Arbeitsverzeichnis des Terminals.${workspaceFolder}– Der Arbeitsbereich, in dem das Terminal gestartet wurde.${local}– Zeigt ein lokales Terminal in einem Remote-Arbeitsbereich an.${process}– Der Name des Terminalprozesses.${separator}– Ein bedingter Trenner („ – “), der nur angezeigt wird, wenn er von Variablen mit Werten oder statischem Text umgeben ist.${sequence}– Der von xterm.js an den Prozess übergebene Name.${task}– Zeigt an, dass dieses Terminal einer Aufgabe zugeordnet ist.
Emoji-IMEs
Emojis werden nun für Eingabemethoden-Editoren (IME) unter macOS unterstützt.

Alt-Puffer aktiver Kontextschlüssel
Einige Terminal-UI-Anwendungen, wie z. B. nano, verwenden Tastenkombinationen, die vom VS Code-Workbench verbraucht werden, was ihre Funktionalität bei der Integration in VS Code einschränkt. Ein neuer When-Clause-Kontextschlüssel, TerminalContextKeys.altBufferActive, leitet Tastenkombinationen an das Terminal und nicht an den Workbench weiter, wenn der Alt-Puffer aktiv ist, um dies zu umgehen.
Sprachen
Neues Sprachstatus-Element für JavaScript und TypeScript
Die aktuelle TypeScript-Version und der IntelliSense-Status werden nun im Sprachstatus-Element der Statusleiste angezeigt.

Zuvor wurde die TypeScript-Version immer in der Statusleiste angezeigt. Sie können die Version festpinnen, um das alte Verhalten wiederherzustellen.
Das Sprachstatus-Element zeigt auch die aktuelle jsconfig/tsconfig-Datei an und zeigt an, ob Sie sich gerade im Teilmodus befinden.
IntelliSense für unbenannte Dateien
Alle unbenannten JavaScript- und TypeScript-Dateien werden nun als Teil desselben Projekts behandelt. Das bedeutet, dass globale Symbole, die in einer unbenannten Datei definiert sind, nun als Vorschläge in anderen Dateien angezeigt werden.
Dies entspricht besser dem Verhalten von Dateien auf der Festplatte im Arbeitsbereich. Sie können eine import- oder export-Anweisung zu einer unbenannten Datei hinzufügen, um sie in ein Modul umzuwandeln, was ihre globalen Variablen vor anderen Dateien verbirgt.
IntelliSense über Dateien im Web hinweg
IntelliSense funktioniert nun über JavaScript- und TypeScript-Dateien auf vscode.dev oder github.dev hinweg, wenn VS Code in einem Browser ausgeführt wird.

Beachten Sie, dass VS Code im Browser nur Zugriff auf Ihre aktuell geöffneten Dateien hat. Daher kann VS Code keine projektweiten IntelliSense-Funktionen wie automatische Importe bereitstellen.
Konsistenteres Falten von JSX-Tags
Wenn Sie ein JSX-Tag in JavaScript oder TypeScript falten, zeigt VS Code nun weiterhin das schließende Tag an.

Dies entspricht der Funktionsweise des Faltens in HTML.
Vorschau-Funktionen
Unterstützung für TypeScript 4.5
Dieses Update enthält anfängliche Unterstützung für die kommende Version von TypeScript 4.5. Weitere Informationen zu den neuen Sprach- und Tooling-Funktionen finden Sie in der TypeScript 4.5 Beta-Ankündigung. Einige Tooling-Highlights:
- Erste Unterstützung für JSX-Attribut-Vervollständigungen.
- Genauere Referenzanzahlen für die Referenz-CodeLens.
Um die TypeScript 4.5 Nightly Builds zu nutzen, installieren Sie die TypeScript Nightly extension.
Bitte geben Sie uns Feedback und lassen Sie uns wissen, wenn Sie auf Fehler bei TypeScript 4.5 stoßen.
Terminal-Sitzungen über Anwendungsneustarts hinweg wiederherstellen
Terminalprozesse werden verworfen, wenn ein VS Code-Fenster geschlossen wird. In dieser Version gibt es eine neue Opt-in-Einstellung zum Aufzeichnen und Wiederherstellen des Puffers und dessen Verwendung zur Neuerstellung von Prozessen. Setzen Sie terminal.integrated.persistentSessionReviveProcess auf true, um dies zu aktivieren.

Größe des Terminals auf Inhaltsbreite umschalten
Sie können die Terminalbreite zwischen der Anpassung an den vollständigen Inhalt und umgebrochenen Zeilen über ⌥Z (Windows, Linux Alt+Z) oder über die Kontextmenüaktion des Tabs Größe auf Inhaltsbreite umschalten umschalten.
Dies ähnelt dem Umschalten von Zeilenumbrüchen im Editor und teilt sich die Tastenkombination mit dieser Funktion.
Beiträge zu Erweiterungen
Jupyter
Inhaltsverzeichnis
Das Inhaltsverzeichnis für Jupyter Notebooks kann nun über den Befehl Jupyter: Inhaltsverzeichnis anzeigen in der Befehlspalette aufgerufen werden. Diese Funktion kann auch über ein Symbol in der Notebook-Symbolleiste aufgerufen werden.
Diese Funktion gilt für alle Notebooks innerhalb von VS Code und ist daher über die Gliederungsansicht im Datei-Explorer zugänglich.
Neue Notebooks über das Menü „Neue Datei“ erstellen
Sie können nun ein neues Jupyter Notebook über den Menüpunkt Datei > Neue Datei... erstellen. Dieses Menü kann auch über den Eintrag Neue Datei... auf der Willkommensseite oder in der Befehlspalette aufgerufen werden.
Debugging
VS Code unterstützt nun vollständige Debugging-Funktionen für Jupyter Notebooks. Um dies auszuprobieren, stellen Sie sicher, dass Sie ipykernel v6+ als Kernel ausgewählt haben, setzen Sie einen Haltepunkt und wählen Sie den Befehl Zelle debuggen.
Remote-Debugging
Sie können auch Zeile für Zeile ausführen verwenden und Jupyter Notebooks mit Remote-Kernels debuggen. Um dies auszuprobieren, verbinden Sie sich mit Ihrem Remote-Kernel über den Befehl Jupyter: Lokalen oder Remote-Jupyter-Server für Verbindungen angeben, stellen Sie sicher, dass Sie ipykernel v6+ als Kernel ausgewählt haben, und verwenden Sie Zeile für Zeile ausführen oder das Debugging wie gewohnt.
Separate Renderer-Erweiterung
Jupyter Notebook-Renderer wurden in eine separate Erweiterung (Jupyter Notebook Renderers) ausgelagert, sodass Benutzer Notebook-Ausgaben wie Plotly, Vega, LaTeX und ähnliches auf vscode.dev und github.dev anzeigen können.
Python
Neues Python-Walkthrough
Die Python-Erweiterung bietet nun ein Walkthrough mit einigen grundlegenden Einrichtungsschritten, um die „Erste Schritte“-Erfahrung für Python in VS Code zu verbessern.

Verbesserte Debugging-Erfahrung
Wenn Sie mit Arbeitsbereichen ohne launch.json-Konfigurationsdatei arbeiten, zeigte die Python-Erweiterung jedes Mal ein Debugging-Konfigurationsmenü an, wenn Sie mit dem Debuggen einer Python-Datei oder eines Projekts begannen. Dies konnte besonders ärgerlich sein, wenn Sie eine Webanwendung mit benutzerdefinierten Argumenten (wie Flask, Django oder FastAPI) debuggen.
Sie müssen nun nicht mehr jedes Mal eine Konfiguration auswählen, wenn Sie mit dem Debuggen beginnen, da die erste Auswahl, die Sie treffen, für den Rest der Sitzung wiederverwendet wird.
GitHub Pull Requests und Issues
Die Arbeit an der GitHub Pull Requests and Issues-Erweiterung wird fortgesetzt, mit der Sie Pull Requests und Issues bearbeiten, erstellen und verwalten können. Sehen Sie sich das Changelog für die Version 0.31.0 der Erweiterung an, um die Highlights zu sehen.
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.
Feature-Highlights in 1.61 umfassen
- DNS-Namen in weitergeleiteten Ports.
- Einfache Auswahl zusätzlicher Container-Funktionen.
- Dev Containers-Erweiterung kann CLI-Befehle in WSL ausführen.
Neue Erweiterungsfunktionen und Fehlerbehebungen finden Sie in den Release Notes für Remote Development.
Erweiterungs-Authoring
Plattformspezifische Erweiterungen
Erweiterungen können nun für jede von VS Code unterstützte Plattform (Windows, Linux, macOS) unterschiedliche VSIXs veröffentlichen. Ab VS Code Version 1.61.0 sucht VS Code nach dem Erweiterungspaket, das zur aktuellen Plattform passt. Ab Version 1.99.0 unterstützt das vsce-Tool zur Veröffentlichung von Erweiterungen das Veröffentlichen von plattformspezifischen Erweiterungen.
Plattformspezifische Erweiterungen sind nützlich, wenn Ihre Erweiterung plattformspezifische Bibliotheken oder Abhängigkeiten hat, sodass Sie die genauen Binärdateien kontrollieren können, die in einem plattformspezifischen Paket enthalten sind. Ein gängiger Anwendungsfall ist, wenn eine Erweiterung native Node-Module verwendet.
Mehr dazu finden Sie in unserer Dokumentation zu plattformspezifischen Erweiterungen.
Test-Tags und Nicht-Fehler-Ausgabe
Diesen Monat haben wir zusätzliche APIs für Erweiterungen veröffentlicht, die auf den neuen Test-APIs aufbauen.
-
Test-Tags ermöglichen es Ihnen zu konfigurieren, ob und wie bestimmte Tests ausgeführt werden können – oder auch nicht.
-
Nicht-Fehler-Ausgabe ermöglicht es Ihnen, zusätzliche Konsolenausgaben bestimmten Testfällen zuzuordnen.
Nachrichten aus der Ausgabe werden inline angezeigt, ähnlich wie Fehlermeldungen.

Dateisystemanbieter können eine Datei als schreibgeschützt deklarieren
Dateisystemanbieter können nun einzelne Dateien als schreibgeschützt markieren, indem sie eine neue Eigenschaft permissions im FileStat-Objekt verwenden und den Wert der Eigenschaft auf FilePermission.Readonly setzen. Schreibgeschützte Dateien sind nicht editierbar.
Hinweis: Wenn alle Dateien als schreibgeschützt behandelt werden sollen, können Sie die vorhandene Option isReadonly verwenden, wenn Sie registerFileSystemProvider aufrufen.
Erweiterungskategorien im Einstellungseditor
Der Einstellungseditor zeigt nun einen Unterbaum für den contributes.configuration-Endpunkt einer Erweiterung an, wenn Kategorien vorhanden sind.
Um mehrere Kategorien zu erstellen, akzeptiert contributes.configuration ein Array von Konfigurationen, und der Schlüssel title jeder Konfiguration wird für die Abschnittsüberschriften verwendet. Es gibt auch ein Feld order, mit dem Kategorien innerhalb des Unterbaums neu angeordnet werden können.

Typenhierarchie
Der API-Vorschlag zum Hinzufügen von Typenhierarchie-Anbietern wurde finalisiert.
WebviewOptions.enableForms
Die neue Eigenschaft enableForms auf WebviewOptions ermöglicht es Ihnen, Formulare innerhalb von Webviews zu aktivieren oder zu deaktivieren. Aus Gründen der Abwärtskompatibilität ist enableForms standardmäßig auf true gesetzt, wenn Sie bereits enableScripts gesetzt haben. Andernfalls ist der Standardwert false.
Wir empfehlen, Formulare zu deaktivieren, es sei denn, der Inhalt Ihres Webviews benötigt sie.
Terminalstatus
Eine neue Eigenschaft state wird für das Terminal-Objekt bereitgestellt, zusätzlich zu einem entsprechenden Ereignis window.onDidChangeTerminalState. Sie gibt an, ob ein Terminal vom Benutzer bedient wurde oder nicht. Eine Erweiterung könnte beispielsweise warten wollen, bis ein Benutzer das Terminal bedient hat, um eine Aktion auszuführen.
Ausführen von Web-Erweiterungstests mit Testdaten
Das Node-Modul @vscode/test-web bietet eine CLI und API zum Testen von Web-Erweiterungen in Chromium, Firefox oder Webkit.
Neu in diesem Meilenstein ist die Option folderPath, um VS Code für das Web mit Testdaten zu öffnen. Ein In-Memory-Dateisystem enthält die Ressourcen des angegebenen Speicherorts, damit die Tests Dateien zur Verfügung haben.
vscode-test-web --browserType=chromium --extensionDevelopmentPath=$extensionLocation $testDataLocation
Aktualisierte Codicons
Die folgenden neuen Icons wurden unserer Codicon-Bibliothek hinzugefügt:
![]()
beaker-stopbracket-dotbracket-errorbracketdebug-continue-smallgraph-linegraph-scatterpie-chart
Webview UI Toolkit für Visual Studio Code
Das Webview UI Toolkit für Visual Studio Code ist eine Komponentenbibliothek zum Erstellen von webview-basierten Erweiterungen in Visual Studio Code.

Funktionen der Bibliothek umfassen:
- Implementiert die Designsprache von Visual Studio Code: Erstellen Sie Erweiterungen, die ein konsistentes Aussehen und Verhalten mit dem Rest des Editors haben.
- Automatische Unterstützung für Farbthemen: Alle Komponenten sind auf die Thematisierung ausgelegt und zeigen automatisch das aktuelle Editor-Thema an.
- Verwenden Sie jeden Tech-Stack: Die Bibliothek wird als Satz von Webkomponenten geliefert, was bedeutet, dass Entwickler das Toolkit unabhängig vom Tech-Stack (React, Vue, Svelte usw.) verwenden können, mit dem ihre Erweiterung erstellt wurde.
- Sofort zugänglich: Alle Komponenten werden mit Web-Standard-konformen ARIA-Labels und Tastaturnavigation geliefert.
Anleitung für virtuelle Arbeitsbereiche (Virtual Workspaces)
Es gibt eine neue Anleitung für virtuelle Arbeitsbereiche (Virtual Workspaces), die Erweiterungsautoren dabei hilft, ihre Erweiterung zu testen und zu aktualisieren, wenn VS Code in virtuellen Umgebungen ausgeführt wird. Mit der Einführung von Erweiterungen wie GitHub Repositories, die ein eigenes virtuelles Dateisystem erstellen, und neuen Workflows wie vscode.dev und github.dev, wo VS Code in Ihrem Browser läuft, können Erweiterungen nicht mehr davon ausgehen, dass sie direkten Zugriff auf ein Dateisystem auf der Festplatte oder auf Plattformfunktionen haben.
Die Anleitung für virtuelle Arbeitsbereiche deckt ab:
- Ob Ihre Erweiterung ohne Änderungen in virtuellen Arbeitsbereichen funktioniert.
- Wie Sie Ihre Erweiterung aktualisieren, damit sie in einem virtuellen Arbeitsbereich ohne Dateisystem auf der Festplatte funktioniert.
- Wie Sie VS Code signalisieren, ob Ihre Erweiterung in einem virtuellen Arbeitsbereich aktiviert oder deaktiviert werden soll.
Vorgeschlagene Erweiterungs-APIs
Jeder Meilenstein bringt neue vorgeschlagene APIs mit sich und Erweiterungsautoren können sie ausprobieren. Wie immer wünschen wir uns Ihr Feedback. Hier erfahren Sie, wie Sie eine vorgeschlagene API ausprobieren können
- Sie müssen Insiders verwenden, da sich vorgeschlagene APIs häufig ändern.
- Sie müssen diese Zeile in der Datei
package.jsonIhrer Erweiterung haben:"enableProposedApi": true. - Kopieren Sie die neueste Version der Datei vscode.proposed.d.ts in den Quellcode-Speicherort Ihres Projekts.
Sie können keine Erweiterung veröffentlichen, die eine vorgeschlagene API verwendet. Es kann zu Breaking Changes in der nächsten Version kommen und wir möchten niemals bestehende Erweiterungen beeinträchtigen.
TaskPresentationOptions-Eigenschaft „close“
Die Eigenschaft close, die eine presentation-Eigenschaft im tasks.json-Schema ist, ist in der TaskPresentationOptions-API verfügbar. Sie funktioniert auf die gleiche Weise wie die entsprechende tasks.json-Eigenschaft, indem sie steuert, ob das Terminal nach Abschluss der Aufgabe geschlossen wird.
Tabs-API
Es gibt eine vorgeschlagene API zum Lesen und Bearbeiten von Tabs. Dies ermöglicht die Umsetzung gängiger Funktionsanfragen, wie z. B. den Zugriff auf die Liste der geöffneten Ressourcen, wenn kein zugrunde liegender textDocument vorhanden ist. Sie können Feedback zu dieser API in Issue #133532 geben.
MarkdownString.supportHtml
Die neu vorgeschlagene Eigenschaft supportHtml auf MarkdownString ermöglicht die Darstellung einer sicheren Teilmenge von rohem HTML, das im Markdown-Text erscheint.
Die Eigenschaft supportHtml ist standardmäßig auf false gesetzt. Wenn sie deaktiviert ist, entfernt VS Code alle rohen HTML-Tags, die im Markdown-Text vorkommen.
Controller-Renderer-Skripte verwenden nun JavaScript-Module
NotebookController.rendererScripts ermöglicht es Notebook-Controllern, einen Satz von JavaScript-Dateien in das Notebook vorab zu laden, bevor Renderer ausgeführt werden. Diese Skripte können das Notebook initialisieren oder globale Symbole definieren, von denen die Renderer abhängen.
Die Renderer-Skripte waren zuvor normale JavaScript-Dateien. Diese Skripte konnten ein von VS Code exportiertes globales Symbol verwenden, um VS Code-spezifische APIs aufzurufen.
Dieses globale Symbol war nicht auffindbar und gab VS Code auch nicht viel Kontrolle über die Renderer-Skripte selbst. Um dies zu beheben, verwenden Renderer-Skripte nun JavaScript-Module, die eine activate-Funktion exportieren. Dieser Funktion wird die VS Code-API übergeben.
interface KernelPreloadContext {
readonly onDidReceiveKernelMessage: Event<unknown>;
postKernelMessage(data: unknown): void;
}
export function activate(ctx: KernelPreloadContext): Promise<void> | undefined {
...
}
Diese Änderung gleicht auch die Renderer-Skripte eines NotebookController besser mit den Rendering-Skripten ab, die von einem beigesteuerten Notebook-Renderer bereitgestellt werden.
Quick Pick keepScrollPosition-Eigenschaft
Die Eigenschaft keepScrollPosition des QuickPick-Objekts, das Sie von window.createQuickPick() erhalten, wurde als vorgeschlagene API hinzugefügt. Dies ermöglicht es Ihnen zu steuern, ob die Scroll-Position (cursorTop) in der Quick Pick zur Oberseite der Liste zurückkehrt oder nicht.
Hier sind einige Anwendungsfälle für diese API:
- Implementierung einer Option „Dieses Element aus der Liste entfernen“ mit der vorgeschlagenen API
QuickPickItemButtons (z. B. Strg/Cmd + PxQuickPickItemButton). - Implementierung einer Option „Dieses Element auf eine bestimmte Weise umschalten“ mit der vorgeschlagenen API
QuickPickItemButtons (z. B. Befehl Snippet einfügen). - Asynchrones Laden von Elementen in der Quick Pick (wie
setInterval, das ein Element zur Liste hinzufügt, indem die Eigenschaft.itemsneu zugewiesen wird, wobei die Scroll-Position nicht an den Anfang springen sollte).
Ohne die Möglichkeit, die Scroll-Position zu steuern, würde jede dieser Operationen dazu führen, dass die Scroll-Position der Quick Pick an den Anfang der Liste springt. keepScrollPosition ermöglicht es Erweiterungsautoren, dieses Verhalten zu steuern.
SourceControl.actionButton
Die Source Control API enthält nun eine Eigenschaft actionButton im SourceControl-Objekt, die es SCM-Providern ermöglicht, bedingt eine „Aktionsschaltfläche“ unter dem Eingabefeld anzuzeigen. Die Git-Erweiterung verwendet diese neue Eigenschaft beispielsweise, um eine Veröffentlichungs- oder Synchronisierungsschaltfläche anzuzeigen, wenn nicht übertragene Änderungen vorhanden sind.
Language Server Protocol
Eine neue nächste Version des Language Server Protocol, zusammen mit den entsprechenden npm-Modulen, wurde veröffentlicht. Die neue Version enthält eine vorgeschlagene Implementierung für Typenhierarchien.
Technik
Umstellung auf DOMPurify zur Bereinigung von gerendertem HTML
Wir haben intern auf DOMPurify umgestellt, um HTML zu bereinigen, das im Haupt-Workbench gerendert wird. Dies wird hauptsächlich zur Bereinigung von gerendertem Markdown verwendet.
DOMPurify wird gut gepflegt und ist sofort mit Trusted Types konform. Dieser Wechsel schützt Benutzer und gibt uns mehr Vertrauen, Funktionen wie MarkdownString.supportHtml zu aktivieren.
Verwendung des Open-Befehls für Big Sur CLI
Unter macOS Big Sur verwenden wir nun den Befehl `open`, um VS Code beim Starten von der Kommandozeile aus zu erzeugen. Diese Änderung ermöglicht es VS Code, so geöffnet zu werden, als ob es aus dem macOS Dock gestartet worden wäre, was einige Probleme mit Berechtigungen behebt.
Dateiüberwachungsänderungen
Der Dateiwächter, der zum Erkennen von Änderungen an Dateien und Ordnern auf der Festplatte verwendet wurde, wurde zu einer Bibliothek geändert, die alle unsere unterstützten Plattformen (Windows, Linux, macOS) verarbeiten kann und den Aufwand für die Wartung verschiedener Wächter für verschiedene Plattformen reduziert. Wir planen, diese Bibliothek standardmäßig auf allen Plattformen zu aktivieren. In dieser Iteration haben wir sie unter Windows und macOS aktiviert und planen, sie bald unter Linux zu aktivieren.
Der neue Wächter sollte beim Start schneller sein und zu weniger CPU-Zyklen bei großen Ordnern führen. Ein Nachteil der Verwendung der Bibliothek ist, dass der Dateiwächter unter macOS keine Ordner in einem Arbeitsbereich, die symbolische Links sind, mehr automatisch erkennt. Wenn Sie eine solche Einrichtung haben, können Sie die neue Einstellung files.watcherInclude verwenden, um explizit symbolische Linkpfade für die Dateiüberwachung hinzuzufügen. Auf der positiven Seite können Sie diese neue Einstellung unter Windows verwenden, um explizit symbolische Linkordner innerhalb des Arbeitsbereichs einzuschließen – etwas, das unter Windows zuvor nicht möglich war.
Sie sollten keine Unterschiede in Ihrer täglichen Arbeit bemerken, aber wenn die Dateiüberwachung für Sie nicht funktioniert, melden Sie bitte ein Problem. Es gibt eine Einstellung files.legacyWatcher, um den alten Wächter zu aktivieren, falls Sie auf Probleme stoßen.
Dokumentation
Erweiterte Container-Konfiguration
Es gibt einen neuen Abschnitt, der die Dev Containers Erweiterung und ihre erweiterte Containerkonfiguration behandelt.
In der Containerdokumentation erfahren Sie, wie Sie
- Umgebungsvariablen festlegen
- Lokale Festplattenlaufwerke einbinden
- Einen Nicht-Root-Benutzer hinzufügen
- Mit mehreren Containern arbeiten
- Und mehr...
Die Dokumentation zur erweiterten Containerkonfiguration enthält Tipps und Codebeispiele für die Einrichtung Ihrer Entwicklungcontainer sowie kurze YouTube-Videos.
Bemerkenswerte Fehlerbehebungen
- 69665: Terminal zeigt manchmal eine beschädigte Textur an, wenn das Betriebssystem aus einem Ruhezustand wiederhergestellt wird
- 130407: [trivial] Einstellungen>Dateien: Ausschlussmuster ändern als (leer) nicht löschbar
- 133149: Task-Terminal als fehlgeschlagen für Probleme auf Info-/Warnungs-Ebene markiert.
- 133567: Barrierefreiheit: Die Beschriftungen für die obersten Ebenenknoten in "Referenzen suchen" lesen alle nur "true"
- 133910: Fehler anzeigen, wenn das Auflösen der Shell-Umgebung fehlschlägt oder abläuft
- 133976: Ermöglicht das Öffnen einer
.code-workspace-Datei über ein Protokoll-URL
Vielen Dank
Last but certainly not least, ein großes Danke an die folgenden Personen, die diesen Monat zu VS Code beigetragen haben
Beiträge zu unserer Fehlerverfolgung
- John Murray (@gjsjohnmurray)
- Andrii Dieiev (@IllusionMH)
- CodeCrazy-ywt (@CodeCrazy-ywt)
- ArturoDent (@ArturoDent)
- Alberto Santin (@albertosantini)
- Tarunav.BA (@TarunavBA)
- Simon Chan (@yume-chan)
Beiträge zu vscode
- @adaex (Aex)
- Update auf das neueste seti-ui Icon-Theme PR #131856
- Update auf das neueste seti-ui Icon-Theme PR #132512
- @aghArdeshir (aghArdeshir): IE-Unterstützung für Clipboard-Daten entfernen PR #133679
- @AiverReaver (Ashish Vagish): Feature hinzugefügt, um Tastenkombination zu Copy Command Title hinzuzufügen (fix #131350) PR #131436
- @AkatQuas (Akat)
- fix(html-language-feature): vage Aussage entfernen PR #132508
- fix: frühe Rückgabe bei Abbruch PR #132523
- @akosyakov (Anton Kosyakov): Installationsoptionen für Erweiterungen aus vsix-Dateien anwenden PR #131786
- @armanio123 (Armando Aguirre): jsxAttributeCompletionStyle-Einstellung hinzufügen PR #133920
- @CGNonofr (Loïc Mangeonjean): resolveCodeAction zu monaco registerCodeActionProvider hinzufügen PR #133335
- @crackalak (Dan Hughes):
ariaContainerElementzuIStandaloneEditorConstructionOptionshinzugefügt PR #131865 - @crimx (CRIMX): fix: Korrekte Berechnung der Untermenüposition PR #133596
- @davidanthoff (David Anthoff): setKernelSpecAndLanguageInfo zur ipynb-Erweiterung hinzufügen PR #132298
- @door-bell (Tim): Formatierung der Beschreibung der Einstellung für die Empfindlichkeit der Workbench-Scrollanzeige korrigiert PR #132214
- @DragWx: Ermöglicht es Klammerpaaren, offene oder schließende Tokens im Kolorierer zu teilen PR #132504
- @fwcd (FW): Hinzufügen des Citation File Format (
.cff) zu den erkannten YAML-Dateierweiterungen PR #131323 - @gjsjohnmurray (John Murray)
- Hinweistext an Platzhalter anhängen, wenn die Eingabe den Verlauf unterstützt PR #129324
- Verhindern von doppelten `(nur Lese-Modus)`-Suffixen im Fenstertitel (#_132127) PR #132134
- @heartacker: cmd+i (mac), ctrl+i (linux/win) als zusätzliche IntelliSense-Umschaltvorschlagsdetails hinzufügen PR #131976
- @IllusionMH (Andrii Dieiev): Korrigieren der Schlüssel zur Auflösung von Terminaleinstellungen PR #132851
- @jackos (Jack Clayton): Hinzufügen des Feldes `close` in der vscode.d.ts-Schnittstelle TaskPresentationOptions PR #131127
- @jeanp413 (Jean Pierre): Behebt, dass der Terminaleditor-Tab Inhalte aus einem anderen Terminaleditor-Tab anzeigt PR #131211
- @jwei98 (Justin Wei): Schließendes Tag nicht falten PR #132316
- @LEGOL2 (Sebastian Łużyński): Maximale Dateigröße für den Dateivergleich erhöhen PR #127860
- @MarkZuber (Mark Zuber): Telemetrie zum Erfolg/Fehlschlag des Erweiterungshost-Starts hinzufügen PR #131917
- @MasterOdin (Matthew Peveler): Docs: Grammatik in Sprach- und Wert-Docstrings korrigieren PR #132782
- @matkoniecz (Mateusz Konieczny): .geojson als json erkennen, behebt #129329 PR #129330
- @philnagel (Philipp Nagel): .pyt-Dateien in der Python-Erweiterung erkennen PR #133546
- @SNDST00M (SNDST00M: M.U.N.I.N): Kommentare in allen JSON-Dateien erlauben PR #129206
- @ssigwart (Stephen Sigwart)
- Behebt das Springen von Falten ohne übergeordnete Falte PR #130309
- Machen Sie den nächsten/vorherigen Faltungsbereich intuitiver PR #133363
- Behebt Typescript NLS JSON PR #134179
- @Suven-p (Suven-p): Farbige Klammerpaare für reine Textdateien entfernen PR #132534
- @Un-index: iframe.ts aktualisieren PR #132577
- @utajum (Vladimir Tasic): Minimap - alle Vorkommen des ausgewählten Wortes hervorheben PR #132584
- @youngjuning (洛竹): fix: GetSessionOptions -> AuthenticationGetSessionOptions PR #131644
- @yume-chan (Simon Chan)
- fix: Fortschrittstext auf der Willkommensseite PR #133812
- fix: Stackoverflow vermeiden, wenn Klammerführer für große Dateien geladen werden PR #134189
- @goldst (Leonard Goldstein): Mehrere Tab-Bezeichnungen für Diff-Editoren PR #116178
Beiträge zu vscode-eslint
- @eungyeole (Eungyeol): Ausnahme zu einer .gitignore hinzufügen PR #1332
- @geekanant (Anant Patni): fix: tasks Tippfehler PR #1342
Beiträge zu vscode-html-languageservice
- @domdomegg (Adam Jones): Groß-/Kleinschreibung von method und formmethod HTML-Attributen aktualisieren PR #113
- @ssigwart (Stephen Sigwart): Einstellungsoption `doNotAddAttributeQuotes` zum Deaktivieren automatischer Anführungszeichen hinzufügen PR #112
Beiträge zu vscode-json-languageservice
- @dsherret (David Sherret): fix: den lokalen Cache für einzelne Ressourcen von
JsonSchemaServicebei Schemaänderungen leeren PR #105
Beiträge zu vscode-languageserver-node
- @AkatQuas (Akat): fix: einige Kommentare in JSDoc ändern PR #817
- @link89: Fix import des jsonrpc-Moduls PR #805
Beiträge zu vscode-pull-request-github
- @burkeholland (Burke Holland)
- Behebt #2259 PR #2909
- Berücksichtigt den Remote-Linktyp für Upstream PR #2929
- Buttongrößen sehen nicht richtig aus, wenn der PR-Titel umgebrochen wird PR #2966
- Fokusrand wird bei Zuweisungen verwendet, wenn diese nicht fokussiert sind PR #2967
- Der horizontale Abstand des Commit-Auswahlfeldes ist zu groß PR #2970
- Behebt, dass das Tick-SVG nicht richtig aussieht #2950 PR #2971
- Vor X Minuten erstellter PR wird in kleinen Tabs abgeschnitten PR #2985
- Kleinbuchstaben für Branch-Namen PR #2986
- Übersprungene Statusprüfungen werden als ausstehend angezeigt PR #3005
- @lgarron (Lucas Garron): GitHub-Permalinks: Zeilennummer deduplizieren, wenn der Bereich eine einzelne Zeile ist. PR #2980
- @moshfeu (Mosh Feu): fix: Pending Checks "Show" Button / Link zugänglich machen PR #2972
Beiträge zu vscode-references-view
- @Eskibear (Yan Zhang): Typenhierarchie anzeigen PR #71
Beiträge zu vscode-vsce
- @prashantvc (Prashant Cholachagudda): Behebt ein Problem, bei dem die Suche ADO und VSIDE zurückgibt PR #606
- @wangweixuan (Wang Weixuan): Unterstützt Repository-Kürzel PR #598
- @youngjuning (洛竹): chore: Standard-Ignorier-Element hinzufügen PR #614
Beiträge zu language-server-protocol
- @larshp (Lars Hvam): Semantisches Hervorhebungsintervall gibt keine Delta zurück PR #1345
- @rcjsuen (Remy Suen): Wörter neu anordnen, um die Grammatik zu korrigieren PR #1347
Beiträge zu monaco-editor-webpack-plugin
- @six-ponies (马騳骉): fix: Ausführung von 'importScripts' auf 'WorkerGlobalScope' fehlgeschlagen: Die URL xxx ist ungültig. PR #160