Juni 2020 (Version 1.47)
Update 1.47.1: Das Update behebt dieses Sicherheitsproblem Issue.
Update 1.47.2: Das Update behebt diese Issues.
Update 1.47.3: Das Update behebt diese Issues.
Downloads: Windows: x64 Arm64 | Mac: Intel | Linux: deb rpm tarball snap
Willkommen zur Juni 2020-Version von Visual Studio Code. Es gibt eine Reihe von Updates in dieser Version, die Ihnen hoffentlich gefallen werden, einige der wichtigsten Highlights sind
- Barrierefreiheitsverbesserungen - Neue Bildschirmleserfunktionen.
- Windows ARM-Builds - Windows auf ARM ist jetzt stabil verfügbar.
- Neuer JavaScript-Debugger - Debugging im Terminal, Profiling-Unterstützung.
- Vereinheitlichte Ansicht für Quellcodeverwaltung - Alle Repositories werden in einer einzigen Ansicht angezeigt.
- Ausstehende Änderungen anzeigen und sortieren - Dateien als Baum oder Liste anzeigen, sortiert nach Name, Pfad oder Status.
- Komplexe Einstellungen bearbeiten - Objekt-Einstellungen im Einstellungen-Editor bearbeiten.
- Neue HexEditor-Erweiterung - Dateien im Hexadezimalformat innerhalb von VS Code bearbeiten.
- Notebook-UI-Updates - Verbesserte Benutzererfahrung und Rückgängig-/Wiederherstellen-Unterstützung.
- Remote Development Tutorials - Lernen Sie, über SSH, in Containern und in WSL zu entwickeln.
- Java Pack Installer für macOS - Richten Sie die Entwicklung in Java mit VS Code unter macOS ein.
Wenn Sie diese Release Notes online lesen möchten, gehen Sie zu Updates auf code.visualstudio.com.
Seien Sie live dabei am Montag, den 13. Juli um 9 Uhr Pazifikzeit (17 Uhr Londoner Zeit) bei der Livestream-Übertragung des VS Code-Teams, um eine Demo der Neuerungen in dieser Version zu sehen und uns live Fragen zu stellen.
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. Und für die neuesten Nachrichten, Updates und Inhalte von Visual Studio Code folgen Sie uns auf Twitter @code!
Barrierefreiheit
In diesem Meilenstein erhielten wir erneut hilfreiches Feedback von unserer Community, das uns geholfen hat, viele Barrierefreiheitsprobleme zu identifizieren und zu beheben. Highlights
- Kompakte Ordner im Datei-Explorer geben jetzt ordnungsgemäß den erweiterten/reduzierten Zustand und die ARIA-Ebene wieder.
- Bildschirmleser können nun den Cursor-Offset im Editor aktualisieren. Infolgedessen sollte der "Alles sagen"-Befehl des Bildschirmlesers besser funktionieren, wenn er gestoppt und fortgesetzt wird.
- Gleiche ARIA-Live-Nachrichten werden nun vom Bildschirmleser korrekt wiederholt.
Workbench
Objekt-Einstellungen im Einstellungen-Editor bearbeiten
Zuvor konnte der Einstellungen-Editor nur verwendet werden, um Einstellungen von primitiven Datentypen wie Zeichenfolgen und Booleans zu bearbeiten, und Sie mussten settings.json für komplexere Einstellungsarten direkt bearbeiten. Jetzt können Sie nicht verschachtelte Objekt-Einstellungen im Einstellungen-Editor bearbeiten. Erweiterungsautoren können diese Funktionalität nutzen, um die Sichtbarkeit dieser Arten von Einstellungen zu erhöhen.
Vorher
Im Einstellungen-Editor

Und in settings.json

Nachher
Im Einstellungen-Editor

Elemente in einer Listenansicht auswählen und den Fokus behalten
Es gibt einen neuen Befehl, list.selectAndPreserveFocus, mit dem Sie ein Element aus einer Liste auswählen können, während der Fokus auf dieser Liste bleibt. Dies kann hilfreich sein, wenn Sie mehrere Dateien aus einer Liste auswählen möchten, z. B. im Datei-Explorer, ohne dass der Fokus zum Datei-Editor wechselt.
Der Befehl ist standardmäßig keiner Tastenkombination zugeordnet, aber Sie können Ihre eigene Tastenkombination hinzufügen
{
"key": "ctrl+o",
"command": "list.selectAndPreserveFocus"
}
Stabile Windows ARM-Builds
VS Code für Windows auf ARM ist jetzt verfügbar für die stabile Version! 🎉
VSIX-Dateien per Drag & Drop installieren
VS Code unterstützt nun die Installation einer Erweiterungs-VSIX-Datei per Drag & Drop auf die Erweiterungsansicht.
Neue Befehlsargumente für den Sucheditor
Zwei neue Argumente wurden zu den Befehlen des Sucheditors (search.action.openNewEditor, search.action.openNewEditorToSide) hinzugefügt, um Tastenkombinationen zu ermöglichen, die das Verhalten eines neuen Sucheditors konfigurieren können
triggerSearch- Ob eine Suche automatisch ausgeführt werden soll, wenn ein Sucheditor geöffnet wird. Standard ist true.focusResults- Ob der Fokus auf die Suchergebnisse oder die Eingabeaufforderung gelegt werden soll. Standard ist true.
Zum Beispiel wird die folgende Tastenkombination die Suche ausführen, wenn der Sucheditor geöffnet wird, aber der Fokus im Suchabfragefeld bleibt.
{
"key": "ctrl+o",
"command": "search.action.openNewEditor",
"args": { "query": "VS Code", "triggerSearch": true, "focusResults": false }
}
Neuer Standardkontext für den Sucheditor
Die Einstellung search.searchEditor.defaultNumberOfContextLines wurde aktualisiert und hat nun einen Standardwert von 1 anstelle von 0. Das bedeutet, dass vor und nach jeder Ergebniszeile im Sucheditor eine Kontextzeile angezeigt wird. Um zum alten Verhalten zurückzukehren, setzen Sie den Wert zurück auf 0.
Liste/Baum: Dynamisches horizontales Scrollen
Die bereits vorhandene Einstellung workbench.list.horizontalScrolling kann jetzt zur Laufzeit umgeschaltet werden, ohne dass Sie die Werkbank neu laden müssen.
Editor
Änderung der Groß-/Kleinschreibung bei Regex-Ersetzung
VS Code unterstützt jetzt die Änderung der Groß-/Kleinschreibung von Regex-Treffergruppen bei der Suche und Ersetzung im Editor. Dies geschieht mit den Modifikatoren \u\U\l\L, wobei \u und \l ein einzelnes Zeichen groß-/kleinschreiben, und \U und \L den Rest der Treffergruppe groß-/kleinschreiben.
Beispiel

Die Modifikatoren können auch gestapelt werden – zum Beispiel werden mit \u\u\u$1 die ersten drei Zeichen der Gruppe großgeschrieben, oder mit \l\U$1 das erste Zeichen kleingeschrieben und der Rest großgeschrieben.
Derzeit werden diese nur im Suchfeld des Editors unterstützt, nicht in der globalen **Suche in Dateien**.
Debugging
Neuer JavaScript-Debugger
Unser neuer JavaScript-Debugger, nachdem er letzten Monat der Standarddebugger in Insiders war, ist jetzt der Standarddebugger für JavaScript (Node.js und Chrome) in VS Code. Wenn Sie den Abschnitt "Vorschau-Funktionen" der letzten VS Code-Changelogs übersprungen haben, können Sie sich im Abschnitt Was ist neu der Debugger-README informieren.
Sie sollten keine Einstellungen oder Startkonfigurationen ändern müssen, um von dem neuen Debugger zu profitieren. Wenn Sie auf Probleme stoßen, öffnen Sie bitte ein Issue!
Single-File-Debugging
Bis heute gab es keine Standardmethode im VS Code-Debugger, um anzuzeigen, dass eine Datei im Editor mit einem Klick auf einen Button einfach debuggt werden kann. Einige Debug-Erweiterungen erlaubten dies normalerweise mit einer Debug-Konfiguration, die Sie aufforderte, "Datei im Editor debuggen". Benutzer mussten jedoch immer noch die richtige Konfiguration im Dropdown-Menü der Debug-Konfiguration auswählen, bevor sie **F5** verwenden konnten. Andere Debug-Erweiterungen implementierten eine Fallback-Strategie für **F5**: Wenn keine launch.json existiert, versucht **F5**, die aktuell geöffnete Datei im aktiven Editor zu debuggen.
Da beide Ansätze nicht leicht zu entdecken sind, haben einige Debug-Erweiterungen (z. B. Python) begonnen, einen **Ausführen**-Button zum Titelbereich des Editors hinzuzufügen.
Da wir keinen besseren Ansatz gefunden haben und diese Methode ohne neue APIs implementiert werden kann, haben wir einige Richtlinien für die standardisierte Implementierung geschrieben. Erweiterungsautoren finden diese Richtlinien weiter unten im Abschnitt "Extension Authoring".
Benutzer müssen sich nur diese Symbole merken

Wenn eines oder beide auf der linken Seite des Titelbereichs des Editors erscheinen, ist das Ausführen oder Debuggen der Datei im Editor nur einen Klick entfernt.
Weniger überladene CALL STACK-Ansicht
Wir haben begonnen, den CALL STACK für gängige Fälle weniger überladen zu gestalten: Die CALL STACK-Ansicht unterstützt jetzt das Ausblenden von Debug-Sitzungsknoten, die aus technischen Gründen existieren, aber den Benutzern keinen großen Nutzen bringen.
Die erste Debug-Erweiterung, die diese Funktion nutzt, ist der neue JavaScript-Debugger, der eine übergeordnete Debug-Sitzung eliminieren konnte, wenn nur eine untergeordnete Sitzung vorhanden war.

Wir hoffen, dass andere Debug-Erweiterungen folgen werden. Bitte sehen Sie sich die neue vorgeschlagene API unten an.
Neues Befehlsalias **Nächste Anweisung festlegen** für **Zum Cursor springen**
Um den Befehl **Zum Cursor springen** für Benutzer, die von Visual Studio kommen, leichter auffindbar zu machen, haben wir den Befehlsalias **Nächste Anweisung festlegen** hinzugefügt.
Wenn Sie nicht wissen, was **Zum Cursor springen** tut: Es ermöglicht Ihnen, die Programmausführung an eine neue Stelle zu verschieben, ohne den Quellcode dazwischen auszuführen.
Breakpunkt-Pfad beim Hovern
Beim Hovern über einen Quellcode-Breakpunkt in der BREAKPOINTS-Ansicht zeigt VS Code nun den absoluten Pfad des Breakpunkts an.
Aufgaben
pnpm Paketmanager-Unterstützung
pnpm ist nun eine gültige Wahl für die Einstellung npm.packageManager, zusammen mit npm und yarn, um Ihre Skripte auszuführen.
Quellcodeverwaltung
Einzelansicht
Die Ansicht Quellcodeverwaltung wurde zu einer einzigen Ansicht zusammengefasst

Alle Repositories werden in einer einzigen Ansicht dargestellt, sodass Sie einen besseren Überblick über den gesamten Arbeitsbereichszustand erhalten. Zusätzlich kann die Ansicht Quellcodeverwaltung in das Panel verschoben werden und andere Ansichten können in den Container der Quellcodeverwaltung verschoben werden.
Anzeigen und Sortieren
Wir haben die Unterstützung für die Sortierung Ihrer Änderungen in der Quellcodeverwaltungsansicht nach Name, Pfad (Standard) und Status bei Verwendung der Listenansicht hinzugefügt. Wir haben die Ansichtsoptionen (Liste vs. Baum) und Sortieroptionen in einem neuen Menüpunkt **Anzeigen & Sortieren** im Kontextmenü zusammengefasst.

Git: Squash-Nachricht wiederherstellen
Ähnlich wie beim üblichen git merge-Befehl stellt die SCM-Ansicht nun die SCM-Eingabe mit der Standardnachricht wieder her, wenn sich der Benutzer mitten in einem git merge --squash-Befehl befindet.
Sprachen
TypeScript 3.9.6
VS Code bündelt nun TypeScript 3.9.6. Dieses kleine Update behebt einige Fehler, darunter einen, der den TypeScript-Server bei bestimmten Quellcode-Mustern zum Absturz bringen konnte.
Browserunterstützung
Unterstützung für den Upload großer Dateien
Sie können jetzt große Dateien und Ordner in die Webversion von VS Code hochladen und der Fortschritt wird genau angezeigt, sodass Sie die Anzahl der hochgeladenen Bytes sowie die Upload-Geschwindigkeit verfolgen können.

Auf dem Weg zur Unterstützung von Textdateikodierungen
Während dieses Meilensteins wurde viel Arbeit in die vollständige Unterstützung von Textkodierungen im Browser zum Lesen und Schreiben von Dateien investiert. Wir verlassen uns auf zwei Bibliotheken, die jetzt im Browser unterstützt werden, indem wir webpack nutzen
iconv-litezum Lesen und Schreiben von Kodierungenjschardet: zum Erraten von Kodierungen aus Textinhalten
Diese Arbeit wird im Juli fortgesetzt und sollte bald allgemein verfügbar sein.
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.
Einstellungen-Synchronisierung
In den letzten Monaten haben wir daran gearbeitet, die Synchronisierung von VS Code-Einstellungen über mehrere Rechner hinweg zu unterstützen, und diese Funktion ist in der Insiders-Version zur Vorschau verfügbar.
Sie können die Synchronisierung auf anderen Rechnern jetzt deaktivieren, indem Sie die Kontextmenüaktion **Synchronisierung der Einstellungen deaktivieren** auf dem Rechnereintrag in der Ansicht **Synchronisierte Rechner** verwenden.

Wir haben auch die Fortschrittsinformationen beim Aktivieren der Synchronisierung verbessert.
TypeScript 4.0-Unterstützung
In dieser Iteration haben wir die Unterstützung für TypeScript 4.0 weiter verbessert. Einige Highlights sind
-
Hervorhebung von Aufrufen an veraltete Symbole im Editor mit Durchstreichung

-
Erklärung der Gründe, warum eine bestimmte Refaktorierung nicht angewendet werden kann

-
Verbesserte automatische Importe - Lesen Sie mehr im TypeScript 4.0 Blogbeitrag.
Sie können diese Funktionen noch heute ausprobieren, indem Sie die TypeScript nightly extension installieren.
Teilweise IntelliSense-Unterstützung während des Ladens großer JavaScript- oder TypeScript-Projekte
Die TypeScript 4.0 Beta bringt auch eine neue Funktion, die die Wartezeit beim Laden eines großen JavaScript- oder TypeScript-Projekts verkürzen soll. Um zu erklären, wie dies funktioniert, müssen wir zunächst ein wenig Hintergrundwissen über die Funktionsweise aktueller TypeScript-Versionen vermitteln.
Wenn Sie eine JavaScript- oder TypeScript-Datei in VS Code öffnen, ermittelt der TypeScript-Sprachdienst, zu welchem Projekt die Datei gehört, und lädt dann das entsprechende Projekt. Manchmal kann dieses Projekt recht groß sein, wie z. B. der Kern-Code von VS Code, der aus vielen Tausend TypeScript-Dateien besteht. Während ein Projekt geladen wird, kann VS Code grundlegende Syntaxoperationen durchführen, wie z. B. die Dokumentengliederung abrufen und Code-Faltung aktivieren, aber es kann derzeit kein IntelliSense oder andere erweiterte Sprachfunktionen bereitstellen, da diese das Verständnis des gesamten Projekts erfordern. Um beispielsweise automatische Importe bereitzustellen, muss der TypeScript-Sprachdienst alle exportierten Symbole in einem Projekt kennen.
Die Änderungen in TypeScript 4.0 machen es VS Code möglich, IntelliSense und andere erweiterte Sprachfunktionen bereitzustellen, während ein großes Projekt noch geladen wird. Die Einschränkung besteht darin, dass das IntelliSense, das wir bereitstellen können, auf die aktuelle Datei beschränkt ist und nicht auf das gesamte Projekt. Das bedeutet, dass Funktionen wie Vorschläge und **Zur Definition springen** funktionieren, aber wir zeigen nur Vorschläge aus der aktuellen Datei an und Sie können nur **Zur Definition springen** verwenden, um zu einem anderen Symbol in der aktuellen Datei zu springen.
Wenn Sie mit großen JavaScript- und TypeScript-Projekten arbeiten, sind wir an Ihrem Feedback zu dieser neuen Funktion interessiert. Sie können sie noch heute mit der TypeScript nightly extension ausprobieren. Wir hoffen, dass sie es Ihnen ermöglicht, fast sofort mit Ihrer Arbeit zu beginnen, bis das vollständigere, projektweite IntelliSense verfügbar ist.
Rückgängig-/Wiederherstellen für Code-Aktionen
Wir arbeiten daran, Code-Aktionen und Refactorings rückgängig machen und wiederherstellen zu können. Ein herausragendes Beispiel ist die Java-Klassenumbenennungs-Refaktorierung, die eine Textänderung vornimmt und die Datei auf der Festplatte umbenennt. Dies kann nun rückgängig gemacht werden, erfordert aber immer noch, dass Undo zweimal ausgelöst wird. Bleiben Sie dran, während wir dies weiter verbessern, und geben Sie uns bitte frühzeitig Feedback.
Beiträge zu Erweiterungen
Notebooks
Das VS Code-Team arbeitet weiterhin an der nativen Unterstützung für Notebooks. Um die Entwicklung zu unterstützen, haben wir eine GitHub Issue Notebooks-Erweiterung erstellt, mit der Sie GitHub Issues und Pull Requests durchsuchen können. Diese Erweiterung befindet sich noch in der Vorschau und erfordert die Verwendung von VS Code Insiders, ermöglicht Ihnen aber, Notebooks aus erster Hand zu erleben und wir freuen uns über Ihr Feedback.
Aktualisierte UI
Wir haben das visuelle Erscheinungsbild von Notebook-Zellen für ein kompakteres Design aktualisiert. Wir haben auch Schattenkonturen zu ausgewählten Zellen hinzugefügt, um den Auswahlstatus deutlicher zu machen.

Notebook Hot Exit-Unterstützung
Wir haben die Hot Exit-Unterstützung in Notebooks hinzugefügt, damit Erweiterungen Backups und Wiederherstellungen handhaben können. Ihre ungespeicherten lokalen Änderungen können nun von Erweiterungen serialisiert und beim erneuten Öffnen des Arbeitsbereichs wiederhergestellt werden.
Undo/Redo-Verbesserung
Wir haben Unterstützung dafür hinzugefügt, dass Erweiterungen zu den Undo/Redo-Stacks beitragen können. Erweiterungen können jetzt steuern, welche Operationen rückgängig gemacht werden können. Zum Beispiel können Sie in einem GitHub Issue Notebook auf die Schaltfläche **Sperren** klicken, um den Zelleninhalt schreibgeschützt zu machen, und diese Operation auch über die normalen Undo/Redo-Befehle rückgängig machen und wiederholen.

Thema: GitHub Theme
Ungespeichertes Notebook erstellen
Wir haben den Befehl **Neue Datei** (⌘N (Windows, Linux Ctrl+N)) erweitert, um die Erstellung neuer, ungespeicherter Notebook-Dateien zu unterstützen. Sie können zum Beispiel die folgende Tastenkombination verwenden, um schnell ein GitHub Issue Notebook zu erstellen und Abfragen auszuführen.
{
"key": "cmd+i",
"command": "workbench.action.files.newUntitledFile",
"args": { "viewType": "github-issues" }
}

Thema: GitHub Theme
Notebook-Farb-Token
Wir haben auch die folgenden Farb-Token für Notebooks hinzugefügt
notebook.cellBorderColor: Die Rahmenfarbe für Notebook-Zellennotebook.cellHoverBackground: Die Hintergrundfarbe einer Zelle, wenn über sie gehovert wirdnotebook.cellInsertionIndicator: Die Farbe des Einfügungsindikators für Notebook-Zellennotebook.focusedCellBackground: Die Hintergrundfarbe einer Zelle, wenn die Zelle den Fokus hatnotebook.focusedCellBorder: Die Farbe des oberen und unteren Rahmens der Zelle, wenn die Zelle den Fokus hatnotebook.focusedCellShadow: Die Farbe des Zellenschatten, wenn Zellen den Fokus habennotebook.focusedEditorBorder: Die Farbe des Rahmens des Notebook-Zelleneditors
Zwei neue Beispiele zeigen, wie man das Debugging in Notebooks unterstützt
-
Beispiel: Debugging in einem JavaScript Notebook
Dieses Beispiel zeigt, wie die Notebook-Debugging-Funktionalität basierend auf den bestehenden VS Code-Debuggerweiterungen implementiert wird.

-
Beispiel: Jupyter Notebook Debugging mit dem Xeus Kernel
Dieses Beispiel zeigt, wie die Notebook-Debugging-Funktionalität basierend auf dem Xeus Kernel und seiner nativen Unterstützung für das Debug Adapter Protocol implementiert wird.

Notebook-Erweiterungsanleitung
Wenn Sie daran interessiert sind, Notebook-Erweiterungen für VS Code zu erstellen, gibt es eine neue Anleitung, die die Notebook API detailliert beschreibt. Sie lernen die API sowie die Details der VS Code Notebook-Infrastruktur und bewährte Praktiken für die Entwicklung von Notebook-Erweiterungen kennen.
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.47 umfassen
- Remote - SSH: Der Remote-Server kann auf einem Socket statt auf einem Port lauschen.
- Dev-Container: Aufforderung zum Öffnen des Repositorys in einem Volume.
- Dev-Container und WSL: Schauen Sie sich den aktuellen Blogbeitrag Verwendung von Dev-Containern in WSL 2 an.
Informationen zu neuen Erweiterungsfunktionen und behobenen Fehlern finden Sie in den Release Notes für Remote Development.
Wenn Sie neu bei VS Code Remote Development sind, können Sie mit diesen einführenden Tutorials beginnen
Azure Account
Die neueste Version der Azure Account-Erweiterung stellt jetzt ein Anmeldeinformations-Objekt zur Verfügung, das mit dem neuesten Azure SDK verwendet werden kann.
GitHub Pull Requests und Issues
Die Arbeit an der GitHub Pull Requests and Issues-Erweiterung, mit der Sie Pull Requests und Issues bearbeiten, erstellen und verwalten können, geht weiter. Einige Updates für diese Version umfassen
- Markdown-Hovers in der Issues-Ansicht.
- Label-Vorschläge im neuen Issue-Editor.
- Hover-Unterstützung für Issues, die als GH-123 formatiert sind.
Um alle neuen Funktionen und Updates zu erfahren, können Sie das vollständige Changelog für die Version 0.18.0 der Erweiterung einsehen.
Hex-Editor
Die HexEditor-Erweiterung wird weiter verbessert, um eine native Hexadezimal-Bearbeitungserfahrung innerhalb von VS Code zu bieten. Die wichtigsten Updates für die Erweiterung in dieser Version umfassen einfache Bearbeitungsunterstützung (ermöglicht Benutzern das Rückgängigmachen, Wiederherstellen, Bearbeiten vorhandener Hex-Zellen und Hinzufügen neuer Zellen am Ende des Dokuments) und Optimierung für große Dateien, die es Benutzern ermöglicht, Dateien über 18 MB zu öffnen, was zuvor nicht möglich war.

Eine vollständige Liste der bemerkenswerten Änderungen finden Sie im CHANGELOG. Jegliches Feedback oder auftretende Probleme können im vscode-hexeditor Repository eingereicht werden.
Erweiterungs-Authoring
AccessibilityInformation
Wir haben die AccessibilityInformation in den Elementen TreeItem, StatusBarItem und TimelineItem zur Unterstützung von Bildschirmlesern finalisiert. AccessibilityInformation enthält ein label und eine role. Das label wird vom Bildschirmleser vorgelesen, sobald das Element den Fokus erhält. Die role des Elements definiert, wie ein Bildschirmleser damit interagiert. Die role sollte in besonderen Fällen gesetzt werden, wenn zum Beispiel ein Baum-ähnliches Element wie eine Checkbox funktioniert. Wenn die role nicht angegeben ist, wählt VS Code die entsprechende role automatisch aus.
Fallback-Nachricht für "An Ort springen"
Der Befehl editor.action.goToLocations kann nun eine Fallback-Nachricht anzeigen, wenn keine Orte gefunden werden konnten. Dies ermöglicht es Erweiterungen, Funktionen wie **Zur Superklasse springen** zu implementieren, die genauso funktionieren wie integrierte Funktionen, z. B. **Zur Definition springen**. Der folgende Ausschnitt ist ein vollständiges Beispiel für eine Erweiterung, die diesen Befehl aufruft
vscode.commands.executeCommand(
'editor.action.goToLocations',
vscode.window.activeTextEditor.document.uri, //anchor uri and position
vscode.window.activeTextEditor.selection.start,
[], // results (vscode.Location[])
'goto', // mode
'No Super Types Found' // <- message
);
Richtlinien zur Verbesserung der Single-File-Debug-Erfahrung
Für Debug-Erweiterungen, die die Single-File-Debug-Erfahrung verbessern möchten, indem sie einen "Ausführen"- und/oder "Debuggen"-Button zum Editor hinzufügen, empfehlen wir, diese Richtlinien für ein konsistentes Erscheinungsbild zu befolgen
- Tragen Sie Run- und/oder Debug-Befehle in der package.json bei (siehe Mock Debug)
- Verwenden Sie die Befehlsnamen "Datei ausführen"/"Datei debuggen" oder "Python-Datei ausführen"/"Python-Datei debuggen".
- Verwenden Sie das Symbol
$(play)für Ausführen und$(debug-alt-small)für Debuggen.
- Fügen Sie die Befehle zum Titelbereich des Editors hinzu (siehe Mock Debug)
- Um die Befehle nur für bestimmte Sprachen sichtbar zu machen, verwenden Sie eine "when"-Klausel, z. B.
"resourceLangId == python". - Platzieren Sie den Ausführungsbefehl in der Gruppe
1_run@10und den Debug-Befehl in der Gruppe1_run@20.
- Um die Befehle nur für bestimmte Sprachen sichtbar zu machen, verwenden Sie eine "when"-Klausel, z. B.
CodeActionProviderMetadata.documentation
Die neue Eigenschaft documentation auf CodeActionProviderMetadata ermöglicht es Erweiterungen, statische Dokumentation für die von ihnen zurückgegebenen Code-Aktionen bereitzustellen. Diese Dokumentation wird am Ende der Liste der Code-Aktionen angezeigt, wenn der Anbieter eine Code-Aktion zurückgibt

Ein Befehl wird ausgeführt, wenn der Benutzer den Dokumentationseintrag auswählt. Dieser Befehl kann die Dokumentation im Editor anzeigen oder im Browser öffnen.
Titel für Öffnen- und Speichern-Dialoge
Die API zur Bereitstellung eines title für Öffnen- und Speichern-Dialoge über OpenDialogOptions und SaveDialogOptions wurde finalisiert. Beachten Sie, dass nicht alle Betriebssysteme die Einstellung dieses Titels zulassen, daher kann das Verhalten je nachdem, wo Ihre Erweiterung ausgeführt wird, variieren.
Neue Erweiterungskategorien
Sie können nun die folgenden neu hinzugefügten Kategorien verwenden, um Ihre Erweiterungen zu kategorisieren.
- Data Science
- Maschinelles Lernen
- Visualisierung
- Testen
- Notebooks
Sekundärer Button-Stil
Wir haben einen sekundären Button-Stil eingeführt, der verwendet werden kann, wenn ein Button weniger prominent gemacht werden soll
button.secondaryForegroundbutton.secondaryBackgroundbutton.secondaryHoverBackground
GitHub Workflow-Badges
Sie können jetzt GitHub Workflow-Badges zur Liste der Badges einer veröffentlichten Erweiterung hinzufügen, da github.com zur Liste der genehmigten Badge-Quellen hinzugefügt wurde.

Aktivierung von Proposed API über argv.json
Das Feld enable-proposed-api wird nun in argv.json unterstützt. Dies ermöglicht es Erweiterungsautoren, ihre Proposed API-Erweiterung in veröffentlichten Builds für langfristiges Dogfooding auszuführen, ohne VS Code über die Befehlszeile öffnen und das CLI-Flag --enable-proposed-api übergeben zu müssen.
Neue Codicon-Icons
Wir haben die folgenden neuen Icons zu unserer Codicon-Bibliothek hinzugefügt
debug-alt-smallvm-connect
![]()
Language Server Protocol
Unterstützung für semantische Token und lazy-resolving von zusätzlichen Textedits in Completion Items wurde zur kommenden 3.16-Spezifikation hinzugefügt.
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.
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.
Terminal-Link-Provider
Aufbauend auf dem neuen Link-System des Terminals, das in der vorherigen Version hinzugefügt wurde, ermöglicht diese neue Vorschlag window.registerLinkProvider einer Erweiterung, Links im Terminal anzufügen, einschließlich eines Tooltip-Labels, das beim Hovern angezeigt wird.

Dies steht im Gegensatz zu der zuvor vorgeschlagenen (nun veralteten) "Link-Handler"-API, die es Ihrer Erweiterung erlauben würde, den betreffenden Link möglicherweise zu verarbeiten, und wenn nicht, gäbe es eine Fallback-Kette. Dieses neue Modell, bei dem Links definitiv behandelt werden, passt besser zur Vision, dass Links eine Liste möglicher Aktionen haben könnten.
Neue API für "Ohne Debugging ausführen"
Die Funktion "Ohne Debugging ausführen" von VS Code ist eine Variante des Debuggings, bei der eine vorhandene Debug-Konfiguration zum Ausführen eines Programms wiederverwendet wird, anstatt es zu debuggen. Eine Folge dieses Ausführungsmodus ist, dass das Programm weder beim Erreichen von Breakpoints noch aus irgendeinem anderen Grund in den Debugger eintritt.
In diesem Meilenstein stellen wir eine offizielle Erweiterungs-API für "Ohne Debugging ausführen" bereit: Eine neue Eigenschaft noDebug wurde zur DebugSessionOptions der Funktion debug.startDebugging hinzugefügt. noDebug steuert, ob die zu startende Sitzung mit oder ohne Debugging ausgeführt werden soll. Wenn die Eigenschaft noDebug fehlt, wird der Wert der übergeordneten Sitzung (falls vorhanden) verwendet. Wenn keine übergeordnete Sitzung vorhanden ist, wird für eine fehlende noDebug-Eigenschaft der Wert 'false' angenommen.
Bitte beachten Sie: Zuvor war es möglich, ein noDebug-Flag zu einer Startkonfiguration hinzuzufügen, um denselben Effekt zu erzielen. Diese inoffizielle API ist nun veraltet (aber immer noch unterstützt), und wir empfehlen, dass Erweiterungen zur neuen API wechseln.
Neue API zur Reduzierung der Unübersichtlichkeit in der CALLSTACK-Ansicht
Mit der Einführung ausgefeilter Debugger-Erweiterungen und Debugging-Setups erscheinen mehr Debugging-Sitzungen in der CALL STACK-Baumansicht und lassen diese überfüllt erscheinen. In den meisten Fällen sind die Debugging-Sitzungen für Benutzer nützlich und sie benötigen die volle Kontrolle darüber. In anderen Fällen sind einige Debugging-Sitzungen lediglich Implementierungsartefakte oder ein Gruppierungsmechanismus für eine Reihe von Kind-Sitzungen.
Um die CALL STACK-Ansicht in gängigen Fällen weniger überfüllt zu machen, haben wir eine Funktion eingeführt, um einen übergeordneten Debugging-Sitzungsknoten auszublenden, wenn er nur eine einzige Kind-Sitzung hat. Diese Funktion wird "Kompaktmodus" genannt und ist über eine neue optionale compact-Eigenschaft auf den DebugSessionOptions der debug.startDebugging-Funktion verfügbar.
Wenn compact auf true gesetzt ist, wird die übergeordnete Debugging-Sitzung der neu erstellten Debugging-Sitzung in der CALL STACK-Ansicht ausgeblendet, solange sie nur ein einzelnes Kind hat. Wenn compact false ist oder fehlt, bleibt der übergeordnete Knoten sichtbar (was das aktuelle Verhalten ist).
Markdown-Hovers in Bäumen
Es gibt eine neue vorgeschlagene API, die es dem tooltip eines TreeItem ermöglicht, ein MarkdownString zu sein. Neben der Unterstützung von Markdown für den Tooltip gibt es auf dem TreeDataProvider auch ein neues resolveTreeItem. Die Idee hinter resolveTreeItem ist, dass Eigenschaften, deren Berechnung länger dauern kann (derzeit nur der tooltip**), später aufgelöst werden können, anstatt für jedes Tree-Element im Voraus berechnet zu werden. Sie können resolveTreeItem und den Markdown-tooltip in Aktion sehen in der GitHub Pull Requests and Issues extension.
Technik
Verwendung von TypeScript 4.0 zur Erstellung von VS Code
VS Code wird jetzt mit einem Nightly Build von TypeScript 4.0 erstellt.
Diese neue TypeScript-Version hat uns geholfen, einige potenzielle Fehler im Zusammenhang mit Accessoren zu finden und hilft uns auch, die kommende TypeScript-Veröffentlichung zu testen.
Dokumentation und Erweiterungen
CMake Tools für C++
Neues Tutorial für die Entwicklung von C++-Anwendungen mit CMake und der CMake Tools-Erweiterung.

Java Pack Installer für macOS
Der Visual Studio Code for Java Pack Installer lädt die notwendigen Abhängigkeiten und Erweiterungen für die Java-Entwicklung in Visual Studio Code unter macOS herunter.

Bemerkenswerte Fehlerbehebungen
- 71291: Horizontales Scrollen bricht das Rendering im Baum
- 93230: Lokale Variablen werden auf störende Weise eingeklappt
- 98309: Unterstützung mehrerer Dateien im Working Copy File Service
- 99061: Ermöglicht das erneute Öffnen geschlossener Diff-Editoren
- 99290: Git: Diff-Editoren beim Neuladen wiederherstellen
- 99704: Die oberste Zeile der Debug-Sitzung zeigt "paused" an, obwohl sie nicht angehalten ist
- 99786: Kann keine zusätzliche Sitzung starten, wenn die Debug Tool Bar Location angedockt ist
- 100524: SCM-Dekorationen fehlen
- 101132: Release Notes können nie geöffnet werden, nachdem versucht wurde, sie offline zu öffnen
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)
- Simon Chan (@yume-chan)
- ArturoDent (@ArturoDent)
- Alexander (@usernamehw)
Beiträge zu vscode
- AlexStrNik (@AlexStrNik): Korrigiert #97526 PR #97611
- Anoesj Sadraee (@Anoesj): Fügt die Option "pnpm" zur Einstellung "npm.packageManager" hinzu PR #100654
- @champignoom: Staged ibus-gtk3, um zu versuchen, ibus zum Laufen zu bringen PR #100480
- Daniel Davis (@daniel-j-davis)
- Fügt die Erkennung von .git/SQUASH_MSG zur automatischen Vervollständigung von Commit-Nachrichten hinzu #101078 PR #101114
- Ermöglicht das Einfügen im Debug-Fenster #100235 PR #100288
- Daybrush (Younkue Choi) (@daybrush): Unterstützt
metaKeyfür iOS PR #100869 - Don Jayamanne (@DonJayamanne): Deaktiviert automatisches Speichern von unbenannten Notebooks PR #100256
- Dan Foad (@foad): Ermöglicht numerische CLI-Argumente PR #99540
- John Murray (@gjsjohnmurray)
- Korrigiert #99854: Macht "Edit in settings.json" zum Hinzufügen von Objekttypen-Standardwerten PR #99912
- Korrigiert #71295: Erlaubt Befehls-URIs in markdownDescription von Erweiterungseinstellungen PR #100304
- Korrigiert #100068: Bessere "Mehr/Weniger anzeigen"-Hinweise für Suggest-Widget-Steuerelemente PR #100070
- Fedor Nezhivoi (@gyzerok)
- Aktualisiert iconv-lite-umd auf 0.6.4 für #79275 PR #101213
- Wechselt zur Verwendung von iconv-lite-umd für #79275 PR #100472
- Entkoppelt vs/base/node/encoding.ts von Node-Streams für #79275 PR #99413
- Verschiebt Encoding nach Common für #79275 PR #100539
- Andrii Dieiev (@IllusionMH)
- Ermöglicht tabellenspezifische Tags für Markdown in Hovers (korrigiert #99983) PR #99988
- Überspringt Ersatzzeichenpaare bei Null-Längen-Übereinstimmungen (korrigiert #100134) PR #100482
- 谭九鼎 (@imba-tjd): Verwendet HTTPS für Stackoverflow PR #100655
- Ken (@irridia): Initiale Implementierung: Unterstützt Ersetzungsmodifikatoren \U\u\L\l PR #96128
- Jean Pierre (@jeanp413)
- Korrigiert Fehler "Cannot read property 'id' of undefined" beim Ziehen einer Ansicht in ein Panel ohne angeheftete Ansichten PR #99582
- Korrigiert, dass sich die Position des Symbols für Terminal-Umgebungsvariablen nicht aktualisiert PR #98015
- Bessere Erfahrung beim Ersetzen von Ordnern beim Web-Upload PR #99601
- Korrigiert, dass angeheftete Tabs beim Zusammenführen von Editor-Gruppen nicht beibehalten werden PR #100344
- Korrigiert, dass das Ziehen eines Aktivitätssymbols über das Hamburger-Menü es am Ende platziert PR #98050
- Korrigiert, dass der Fokus-Umriss des Problemsfilter im Paneel-Header abgeschnitten ist PR #97438
- Korrigiert, dass der fokussierte Statusleisteneintrag einen orangen Rahmen verwenden sollte, wenn das High-Contrast-Theme verwendet wird PR #99453
- Justin Hutchings (@jhutchings1): Fügt CodeQL-Sicherheitsüberprüfung hinzu PR #99411
- Keshav Bohra (@keshav-bohr): Wortkorrekturen PR #100301
- Wenlu Wang (@Kingwl): Fügt Unterstützung für veraltete ts/js hinzu PR #97742
- Rhitik Bhatt (@lambainsaan)
- Fügt eine grundlegende Tastenkombination zum Fokussieren eines Elements im Gliederungsfenster hinzu PR #91799
- Korrigiert fehlerhaftes onEnter-Verhalten bei Verwendung mit Generator-Methoden PR #100076
- Mads Kristensen (@madskristensen)
- Verwendet HTTPS-URLs für SchemaStore.org PR #101047
- Korrigiert SchemaStore.org-URLs PR #101046
- Milo Moisson (@MrNossiom): Aktualisiert das Logging PR #100657
- @nlchar: Wiederherstellung des Status beim erneuten Öffnen des Feedback-Fensters korrigiert PR #101074
- Noelle Caldwell (@noellelc): Fügt einen Rich-Navigation-Workflow hinzu PR #100014
- Pascal Fong Kye (@pfongkye): Dateivorgangsereignisse unterstützen mehrere Ressourcen PR #98988
- Robert Massaioli (@robertmassaioli): Aktualisiert die for-in-Schleife, um mit eslint:recommended zu funktionieren PR #99721
- Stoyan Nikolov (@stoyannk): Entfernt ein redundantes 'resolve' in SimpleFileDialog durch Wiederverwendung des bereits … PR #99432
- Arman Tabaddor (@tabaddor): Fügt den Terminalnamen hinzu, wenn auf eine Textarea fokussiert wird PR #100087
- Thibault Malbranche (@Titozzz): Korrigiert (search): Ersetzt Crash-Muster für leere Strings PR #101017
- @VoidNoire: Macht POSIX-konform, um die Portabilität zu erhöhen und die Abhängigkeit von
bashzu entfernen… PR #100145
Beiträge zu vscode-extension-samples
- Matt Petty (@lodestone): Verbessert Kommentare PR #317
Beiträge zu vscode-eslint
- Jimmy Yuen Ho Wong (@wyuenho): Korrigiert Tippfehler PR #989
Beiträge zu debug-adapter-protocol
- Lukas Zima (@zimlu02): Aktualisiert die Broadcom-Erweiterung PR #121
- Dave Holoway (@adelphes): Fügt Android-Debuggeradapter hinzu PR #125
Beiträge zu language-server-protocol
- Sacha Ayoun (@giltho): Gibt die logTrace-Benachrichtigung an PR #953
- Josh Soref (@jsoref): Rechtschreibung und Grammatik PR #1027
- Radek Simko (@radeksimko): website: Tippfehler korrigiert (Genernal -> General) PR #1035
Beiträge zu vscode-languageserver-node
- Sacha Ayoun (@giltho): Richtet den Sprachserver an der Protokoll-Proposition aus PR #611
- Andrew Arnott (@AArnott)
Beiträge zu vscode-css-languageservice
- Justin Hutchings (@jhutchings1): Fügt CodeQL-Sicherheitsüberprüfung hinzu PR #218
Beiträge zu node-jsonc-parser
- Michael Bullington (@mbullington): Ermöglicht Array-Modifikationen, fügt die Option "inPlace"-Formatierung hinzu. PR #35
Beiträge zu vscode-generator-code
- Pranav Shikarpur (@snpranav): Erstellt Dockerfile für den Generator PR #210
Beiträge zu vscode-vsce
- Adam S (@ItsMajestiX): Ermöglicht Badges von Github Workflows PR #396
- Tomas (@viktomas)