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

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

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

Object setting in the old Settings editor

Und in settings.json

Object setting in the JSON editor

Nachher

Im Einstellungen-Editor

Object setting in the new Settings 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

Changing case while doing find and replace

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

Run and debug action in editor title

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.

Screenshot of two "Call Stack" views. Without compaction, there is an extra child session between the parent session and each attached worker processes.

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

Source Control with a single view

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.

View & Sort in Source Control

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.

Web upload indicator in bottom Status bar

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-lite zum Lesen und Schreiben von Kodierungen
  • jschardet: 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.

Turn off preferences sync for a machine

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

    Call to a deprecated function rendered in the editor

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

    Displaying the reason a refactoring cannot be applied

  • 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.

Updated Notebook UX

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.

Undo/Redo in GitHub Issue Notebook

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" }
}

Create Untitled GitHub Issue Notebook

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-Zellen
  • notebook.cellHoverBackground: Die Hintergrundfarbe einer Zelle, wenn über sie gehovert wird
  • notebook.cellInsertionIndicator: Die Farbe des Einfügungsindikators für Notebook-Zellen
  • notebook.focusedCellBackground: Die Hintergrundfarbe einer Zelle, wenn die Zelle den Fokus hat
  • notebook.focusedCellBorder: Die Farbe des oberen und unteren Rahmens der Zelle, wenn die Zelle den Fokus hat
  • notebook.focusedCellShadow: Die Farbe des Zellenschatten, wenn Zellen den Fokus haben
  • notebook.focusedEditorBorder: Die Farbe des Rahmens des Notebook-Zelleneditors

Zwei neue Beispiele zeigen, wie man das Debugging in Notebooks unterstützt

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.

Editing in the HexEditor extension

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@10 und den Debug-Befehl in der Gruppe 1_run@20.

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

A documentation entry in the Code Actions menu

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.secondaryForeground
  • button.secondaryBackground
  • button.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.

GitHub Workflow badge

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-small
  • vm-connect

Codicons icons

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.json Ihrer Erweiterung haben: "enableProposedApi": true.
  • Kopieren Sie die neueste Version der Datei vscode.proposed.d.ts in den Quellcode-Speicherort Ihres Projekts.

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

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.

Terminal Link Provider

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.

CMake Tools extension

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.

Java Pack installer for macOS

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

Beiträge zu vscode

Beiträge zu vscode-extension-samples

Beiträge zu vscode-eslint

Beiträge zu debug-adapter-protocol

Beiträge zu language-server-protocol

Beiträge zu vscode-languageserver-node

Beiträge zu vscode-css-languageservice

Beiträge zu node-jsonc-parser

Beiträge zu vscode-generator-code

Beiträge zu vscode-vsce

© . This site is unofficial and not affiliated with Microsoft.