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

November 2020 (Version 1.52)

Update 1.52.1: Das Update behebt diese Issues.

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


Willkommen zur November 2020-Version von Visual Studio Code. Wie im November-Iterationsplan angekündigt, konzentrierten wir uns zwei Wochen lang auf die Verwaltung von GitHub Issues und Pull Requests, wie in unserem Issue-Grooming-Leitfaden dokumentiert. In allen unseren VS Code-Repositorys haben wir 5242 Issues geschlossen (entweder triagiert oder behoben), was noch mehr ist als bei unserer letzten Housekeeping-Iteration im Oktober 2019, als wir 4622 Issues geschlossen haben. Während wir Issues geschlossen haben, haben Sie 2937 neue Issues erstellt. Das Haupt-Repository vscode hat jetzt 2146 offene Feature-Anfragen und 884 offene Bugs. Darüber hinaus haben wir 144 Pull Requests geschlossen.

Wie jedes Jahr haben wir den Live-Tracker von Benjamin Lannon verwendet, um unseren Fortschritt zu verfolgen.

Burn down chart of VS Code issues

Nachdem wir uns auf die Verwaltung konzentriert haben, haben wir uns auch mit mehreren Feature-Anfragen und Community- Pull Requests beschäftigt. Dies führte zu vielen neuen Funktionen und Einstellungen, einige der wichtigsten Highlights sind:

Workbench

Verbesserungen am Vorschau-Editor

Wir haben mehrere Aktualisierungen vorgenommen, wie wir Vorschau-Editoren basierend auf Benutzerfeedback behandeln.

Die Einstellung workbench.editor.enablePreviewFromQuickOpen ist jetzt standardmäßig deaktiviert, sodass Editoren, die aus dem Schnellzugriff geöffnet werden, nicht mehr im Vorschau-Modus angezeigt werden.

Wenn Sie eine Code-Navigation starten (z. B. mit Gehe zu Definition), wechselt der Editor, von dem Sie starten, aus dem Vorschau-Modus und bleibt geöffnet, während der neue Editor im Vorschau-Modus ist, bis Sie weiter navigieren.

Go to Definition

Wir haben alle unsere benutzerdefinierten Bäume (z. B. die in den Ansichten Erweiterungen oder Git verwendeten) so geändert, dass sie konsistenter wie andere integrierte Bäume (z. B. der Datei-Explorer) funktionieren. Das bedeutet, dass die folgenden Interaktionen jetzt für alle gelten:

  • Doppelklick oder mittlerer Mausklick zum Öffnen im Nicht-Vorschau-Modus.
  • Enter zum Öffnen im Nicht-Vorschau-Modus (Leertaste zum Öffnen im Vorschau-Modus).
  • Alt+Klick zum Öffnen eines Editors neben dem aktiven.

Hinweis: Wenn Sie ein Erweiterungsautor sind, der unsere benutzerdefinierte Baum-API verwendet, profitieren Sie ebenfalls von dieser Änderung. Stellen Sie sicher, dass Sie die Befehle vscode.open oder vscode.diff für TreeItem.command verwenden, um das neue Verhalten des Vorschau-Modus zu erhalten.

Ein neuer Menüpunkt, Editoren offen halten, im Überlaufmenü des Editors ermöglicht es Ihnen, Vorschau-Editoren schnell ganz auszuschalten.

Selecting Keep Editors Open in the overflow menu

Wiederherstellen früherer Sitzungsfenster

Ein neuer Wert preserve für die vorhandene Einstellung window.restoreWindows ermöglicht es Ihnen, zu erzwingen, dass jedes Fenster, das Sie vor dem Schließen von VS Code geöffnet hatten, beim Neustart von VS Code wiederhergestellt wird, auch wenn VS Code ausdrücklich aufgefordert wird, einen bestimmten Ordner oder eine Datei zu öffnen. Ein häufiges Beispiel ist das Doppelklicken auf eine Datei im Datei-Explorer Ihres Systems, um sie in VS Code zu öffnen, oder die Verwendung des Terminals zum Öffnen einer bestimmten Datei oder eines bestimmten Ordners. Ohne die Einstellung window.restoreWindows: preserve öffnet VS Code nur die angegebene Datei oder den Ordner, stellt aber keine anderen Fenster wieder her.

Aufteilen von Editorgruppen beim Ziehen und Ablegen deaktivieren

Eine neue Einstellung workbench.editor.splitOnDragAndDrop verhindert das Aufteilen von Editorgruppen beim Ziehen und Ablegen von Editoren. Es gibt auch eine Möglichkeit, dies bedingt während des Ziehen-und-Ablegen-Vorgangs zu umschalten, indem Sie die Umschalttaste (macOS) oder die Alt-Taste (Windows, Linux) gedrückt halten.

Rückgängigmachen von Dateioperationen im Explorer

Der Datei-Explorer unterstützt jetzt Rückgängigmachen und Wiederholen für alle Dateioperationen: Löschen, Umbenennen, Kopieren, Verschieben, neue Datei und neuer Ordner. Stellen Sie sicher, dass der Fokus im Datei-Explorer liegt und lösen Sie die Befehle Rückgängigmachen oder Wiederholen aus. Ihre letzte Dateioperation wird rückgängig gemacht oder wiederholt. Beachten Sie, dass wir separate Rückgängig-Stacks für den Editor und den Datei-Explorer haben und je nach Fokus wählen, welcher davon rückgängig gemacht werden soll.

Selecting undo from the Edit menu while in the Explorer

Fortschritt für lang laufende Operationen im Explorer

Wir zeigen jetzt den Fortschritt im Datei-Explorer und in der Statusleiste für lang laufende Dateioperationen (länger als 500 ms) an. Es gibt auch eine anfängliche Unterstützung zum Abbrechen lang laufender Operationen. Dies sollte hilfreich sein beim Kopieren großer Ordner oder beim Herunterladen von Ressourcen von Remote-Speicherorten.

Showing progress in the File Explorer

Sortierung der offenen Editoren

Es gibt eine neue Einstellung explorer.openEditors.sortOrder, um die Sortierreihenfolge in der Liste OFFENE EDITOREN zu steuern.

Die Werte sind:

  • editorOrder – Editoren werden in der gleichen Reihenfolge angezeigt, in der die Editor-Tabs angezeigt werden (Standard).
  • alphabetical – Editoren werden innerhalb jeder Editor-Gruppe alphabetisch sortiert.

Die alphabetische Sortierung hat nur Auswirkungen auf die Ansicht „Offene Editoren“ – sie „verschiebt“ keine Tabs.

Dies kann hilfreich sein, wenn Sie viele Dateien geöffnet haben und zusammengehörige Dateien zusammenführen möchten (z. B. hello.component.js und hello.component.html).

Open Editors sorted

Barrierefreiheitskontrolle für Fortschritt

Die Anzeige des Fortschritts der Benutzeroberfläche wurde barrierefreier gestaltet. VS Code setzt die entsprechenden ARIA-Rollen, damit Screenreader den Fortschritt für alle lang laufenden Operationen in VS Code melden können. Die meisten Screenreader kündigen den Fortschritt standardmäßig nur an, wenn er länger als 10 Sekunden dauert.

Änderungen der Quellcodeverwaltung zeigen ihren übergeordneten Ordnerpfad an

Diff-Editoren, die aus der Quellcodeverwaltungsansicht geöffnet werden, zeigen nun ihren Dateipfad an (wenn Tabs deaktiviert sind). Zuvor wurde nur der Dateiname angezeigt, jetzt erscheint der übergeordnete Ordner, wenn sich die vorherigen und nachfolgenden Dateien im selben Ordner befinden.

SCM changes showing parent folder path

Neuer Proxy-Login-Dialog standardmäßig aktiviert

Unser neuer Proxy-Login-Dialog ist jetzt standardmäßig aktiviert. Weitere Details finden Sie in unseren vergangenen Versionshinweisen. Die Einstellung window.enableExperimentalProxyLoginDialog kann verwendet werden, um den alten Dialog zu aktivieren, aber wir werden diese Unterstützung in naher Zukunft entfernen. Wenn Sie ein Problem mit dem neuen Login-Dialog feststellen, teilen Sie uns dies bitte mit, indem Sie ein Issue einreichen.

Verbesserte Handhabung der Terminalumgebung (Linux, macOS)

Wenn Sie VS Code unter Linux oder macOS zum ersten Mal über das Dock oder einen Launcher (und nicht über das Terminal) starten, startet VS Code einen Hintergrundprozess, um Ihre Shell-Umgebung (wie in .bashrc oder .zshrc definiert oder geändert) aufzulösen. Alle erkannten Umgebungsvariablen werden dann von VS Code verwendet, sodass es keinen Unterschied macht, ob Sie vom Terminal oder vom Dock/Launcher aus starten, was wichtig für das Debuggen oder die Ausführung von Aufgaben ist.

Leider öffnet sich VS Code erst, nachdem dieser Hintergrundprozess ausgeführt wurde. Um den Start nicht zu lange zu blockieren, beginnt VS Code nach 10 Sekunden mit dem Öffnen. In diesem Fall informiert VS Code Sie nun darüber, dass die Shell-Umgebung nicht aufgelöst werden konnte, und bietet einen Link zum Weiterlesen an.

Shell environment error after being unable to resolve in a reasonable time

Ebenso zeigt VS Code nach drei Sekunden eine Warnung an, die darauf hinweist, dass der Start von VS Code durch die Auflösung Ihrer Shell-Umgebung blockiert wurde.

Shell environment warning if it takes longer than 3 seconds

Wir arbeiten aktiv daran, unsere Strategie zu ändern, um VS Code nicht am Start zu hindern, während wir die Shell-Umgebung im Hintergrund auflösen, aber dies wird erst in zukünftigen Meilensteinen möglich sein.

Weitere erwähnenswerte Änderungen in diesem Bereich sind:

  • Sie können nun Umgebungsvariablen aus einem Terminal definieren und ändern, bevor Sie ein zweites VS Code-Fenster starten, und diese überschreiben ordnungsgemäß die Variablen vom ersten Start, was effektiv pro Fenster Umgebungsvariablen ermöglicht (dies ermöglicht es Ihnen beispielsweise, die Node.js-Version über ein Tool wie nvm pro Fenster vor dem Start zu ändern).
  • Umgebungsvariablen, die von einem Terminal vor dem Start eines zweiten VS Code-Fensters gesetzt werden, bleiben nun erhalten, auch wenn Sie Ordner in diesem zweiten Fenster wechseln.

Verbesserte Überlaufanzeige der Benutzeroberfläche

Wenn nicht genügend Platz vorhanden ist, um alle Ansichten in der Benutzeroberfläche unterzubringen, zeigt VS Code nun Scrollbalken an, um den Inhalt zu durchlaufen und Ihnen den Zugriff auf alles zu ermöglichen. Dies gilt für mehrere Bereiche der Benutzeroberfläche, wie die Seitenleiste, das Editor-Raster und mehr.

Improved workbench overflow

Randfarbe des Sashes im Hover-Zustand

Sie können nun eine Rand-Hover-Farbe für Sashes (sash.hoverBorder) in der gesamten Benutzeroberfläche anpassen.

Sash hover border color

Baum: Erweiterungsmodus

Eine neue Einstellung workbench.tree.expandMode ermöglicht es Ihnen zu steuern, wie Ordner in Bäumen erweitert werden: per Einzel- oder Doppelklick.

macOS Big Sur Aktualisierungen

Aufgrund eines Electron 9-Problems wird VS Code bei Auswahl von Neustart zum Aktualisieren nicht automatisch neu gestartet, sondern einfach beendet. Bis zur nächsten VS Code-Version, die Electron 11 enthalten sollte, müssen Sie VS Code nach einem solchen Vorfall manuell neu starten. Lesen Sie mehr in Issue #109728.

Quellcodeverwaltung

Zustand der Quellcodeverwaltungsansicht beibehalten

Der Zustand der Quellcodeverwaltungsansicht wird nun über Sitzungen hinweg beibehalten. Eingeklappte Baumknoten bleiben auch nach dem Beenden und Neustarten von VS Code eingeklappt.

Aktion am Rand der Quellcodeverwaltung

Die neue Einstellung scm.diffDecorationsGutterAction ermöglicht es Ihnen zu steuern, was passiert, wenn Sie die Quellcodeverwaltungs-Randdekorationen auf der linken Seite des Editors auswählen. Die möglichen Werte sind:

  • diff – Öffnen Sie die Inline-Diff-Peek-Ansicht beim Klicken (Standard).
  • none – Deaktiviert jede Aktion.

Git: Neue Befehle

Mehrere neue Git-Befehle wurden der Befehlspalette hinzugefügt:

  • Git: Cherry Pick... – Wenden Sie einen bestimmten Commit auf Ihren Branch an.
  • Git: Umbenennen – Führen Sie eine Git-Umbenennung der aktiven Datei durch.
  • Git: Tags pushen – Pushen Sie alle lokalen Tags zum Remote-Repository.
  • Git: Checkout zu (Detached)... – Führen Sie einen Checkout im Detached-Modus durch.

Git: Neue Einstellungen

Zusätzlich wurden neue Git-Einstellungen hinzugefügt:

  • git.pruneOnFetch – Bewirkt, dass VS Code git fetch --prune ausführt, wenn Remote-Refs abgerufen werden.
  • git.ignoreSubmodules – Sie können nun sicherstellen, dass VS Code Änderungen in Submodul-Repositorys ignoriert, was in großen Monorepos nützlich ist.
  • git.openAfterClone – Steuert, ob und wie ein Ordner nach dem Klonen eines Git-Repositorys geöffnet wird: im aktuellen Fenster, in einem neuen Fenster, wenn kein Ordner geöffnet ist, und durch Aufforderung des Benutzers.
  • git.useCommitInputAsStashMessage – Ermöglicht VS Code, die Commit-Nachricht im Quellcodeverwaltungs-Eingabefeld als Stash-Nachricht zu verwenden, wenn Git: Stash ausgeführt wird.
  • git.followTagsWhenSync – Verfolgt Tags beim Ausführen von Git: Sync.
  • git.checkoutType – Steuert, welche Refs angezeigt werden und in welcher Reihenfolge, wenn Sie den Befehl Git: Checkout... ausführen.

Git: Aufforderung zum Speichern von Dateien vor dem Stashen

VS Code wird Sie nun auffordern, ungespeicherte Dateien zu speichern, wenn Sie versuchen, Änderungen zu stashen.

Git: Bessere Differenz für gelöschte Datei-Merge-Konflikte

Gelöschte Datei-Merge-Konflikte haben nun eine verbesserte Diff-Erfahrung, die die tatsächliche Änderung in der Datei auf dem gegenüberliegenden Branch zur Löschung anzeigt.

Git: Fetch bei Remote-Hinzufügung

VS Code führt nun git fetch unmittelbar nach dem Hinzufügen eines Remotes aus und holt alle Refs von diesem Remote ab.

Git: Checkout im Detached-Modus

Es ist nun möglich, Refs im Detached-Modus von VS Code aus auszuchecken.

Selecting Git: Checkout to (detached)... and then selecting a ref to checkout in detached mode

Git: Ausgabe des Befehls bei Fehler anzeigen

Wenn ein Git-Befehl einen Fehler auslöst, können Sie nun die gesamte Fehlermeldung mit der neuen Option Ausgabe des Befehls anzeigen sehen.

Show command output option in error message

Git: Neue Optionen für den Befehl git.api.getRemoteSources

Die Optionen des Git-API-Befehls git.api.getRemoteSources unterstützen nun eine optionale Eigenschaft branch?: boolean, die Git den Benutzer auffordert, einen Branch aus einer Remote-Quelle auszuwählen, sofern dies vom Anbieter der Remote-Quelle unterstützt wird.

Zusätzlich unterstützt der Befehl nun eine Option providerName?: string, die es dem Aufrufer ermöglicht, die Auswahl der Remote-Quelle durch den Benutzer zu umgehen und direkt einen bestimmten Anbieter zu verwenden.

Debugging

Haltepunkte-Ansicht: Bedingungen für Ausnahmepunkte

VS Code unterstützt nun die Bearbeitung von Bedingungen für Ausnahmepunkte über die Haltepunkte-Ansicht mit der Kontextmenüaktion Bedingung bearbeiten.

Derzeit hat nur die Mock Debug-Erweiterung (gefälschte) Ausnahmepunkt-Bedingungsunterstützung, aber bald werden auch andere Debugging-Erweiterungen folgen – wie der JavaScript-Debugger.

Edit Condition menu item

Exception Condition

Barrierefreiheit des Ausnahmebereichs

Der Ausnahmeinformationsbereich im Editor wurde barrierefreier gestaltet. Während des Debuggens verschiebt VS Code den Fokus automatisch in den Ausnahmebereich, sobald eine Ausnahme auftritt. Dies ermöglicht Screenreadern, die Ausnahme-Details und den Stack-Frame zu melden. Es ist nun auch möglich, den Ausnahmebereich mit der Esc-Taste oder der Schaltfläche X oben rechts im Ausnahmebereich zu schließen.

Es ist nun auch möglich, den Ausnahmebereich mit der Esc-Taste oder der X-Schaltfläche oben rechts im Ausnahmebereich zu schließen.

UI-Verbesserungen

Debuggte Zeile im Übersichtslineal angezeigt

Die aktuell debuggte Zeile wird nun im Übersichtslineal auf der rechten Seite des Editors angezeigt. Für diese Dekoration verwenden wir die bereits vorhandene Farbe editor.stackFrameHighlightBackground. Zusätzlich zeigt VS Code die aktuell fokussierte debuggte Zeile im Übersichtslineal mit der Farbe editor.focusedStackFrameHighlightBackground an (fokussierte debuggte Zeilen sind Nicht-Top-Stack-Frame-Positionen, die manuell in der Call Stack-Ansicht ausgewählt werden).

Verbesserungen bei der automatischen Debug-Konfiguration

Zuvor haben wir eine Funktion eingeführt, damit Debugging-Erweiterungen das aktuelle Projekt analysieren und automatisch Debug-Konfigurationen anbieten können. Diese Debug-Konfigurationen werden dynamisch erstellt und erscheinen daher nicht in der Konfigurationsdatei launch.json. In diesem Meilenstein bewahren wir auch kürzlich verwendete automatische Debug-Konfigurationen über VS Code-Neustarts (und -Neuladen) hinweg auf, um die gesamte Erfahrung reibungsloser zu gestalten. Falls eine automatische Debug-Konfiguration nach einem Neustart nicht mehr gültig ist, wird VS Code Sie auffordern, eine neue automatische Konfiguration vom selben Anbieter auszuwählen, sobald das Debugging gestartet wird.

Debug-Hover: Hilfetext/-tipp unten zum Umschalten auf normalen Hover

Unten im Debug-Hover befindet sich nun ein Hilfetext, um den Alt-Switch zum Editor-Sprach-Hover während des Debuggens besser auffindbar zu machen. Zur Erinnerung: Wenn Sie debuggen, hat der Debug-Hover Vorrang vor dem Sprach-Hover, was es unmöglich macht, den Sprach-Hover anzuzeigen. Sie können vom Debug-Hover zum Sprach-Hover zurückwechseln, indem Sie die Modifikatortaste Alt gedrückt halten. Solange Alt gedrückt ist, wird der Sprach-Hover anstelle des Debug-Hovvers angezeigt. Dies erleichtert das Lesen von Hovers wie Javadoc-Beschreibungen während des Debuggens erheblich.

Debug hover showing the message "Hold Alt key to switch to editor language hover"

Debug-Konsole: identische Zeilen zusammenklappen

Die Debug-Konsole klappt nun identische Ausgaben zusammen und zeigt die Anzahl der Vorkommen an. Diese Funktion erleichtert das Erfassen wiederkehrender Programmausgaben erheblich.

Debug Console collapsing identical lines

Neue Variablen für launch.json und tasks.json

Die folgenden neuen Variablen wurden eingeführt:

  • ${fileWorkspaceFolder} – Wird zum Workspace-Ordnerpfad der im aktiven VS Code-Editor geöffneten Datei aufgelöst.
  • ${fileDirnameBasename} – Wird zum Namen des Ordners aufgelöst, in dem sich die im aktiven VS Code-Editor geöffnete Datei befindet.
  • ${pathSeparator} – Wird zum vom Betriebssystem verwendeten Zeichen aufgelöst, das Komponenten in Dateipfaden trennt.

serverReadyAction: andere Debug-Konfiguration nach Name starten

Die serverReadyAction konnte bisher einen Browser oder Chrome-Debugging starten, indem eine URL abgeglichen wurde. Diese Version fügt eine neue Option hinzu, um eine andere beliebige Konfiguration nach Namen zu starten. Sie können beispielsweise in Ihrer launch.json angeben:

"serverReadyAction": {
  "action": "startDebugging",
  "pattern": "listening on port ([0-9]+)",
  "name": "Launch Browser"
}

Dies ermöglicht es Ihnen, zusätzliche Optionen in Standard-Chrome-Debugging-Konfigurationen zu übergeben und andere Debugger mit der serverReadyAction zu verwenden.

Automatisches Anhängen vorübergehend deaktivieren

Automatisches Anhängen kann nun vorübergehend über den Eintrag Automatisches Anhängen in der Statusleiste oder über den Befehl Debug: Automatisches Anhängen umschalten deaktiviert werden. Das Deaktivieren des automatischen Anhängens auf diese Weise gilt nur für das aktuelle Fenster und erfordert kein Neustarten Ihres Terminals. Es kann auf die gleiche Weise wieder aktiviert werden.

Showing the auto attach Quick Pick with an option that reads "Temporarily disable auto attach in this session"

JavaScript-Debugger

Eine vollständige Liste der Änderungen finden Sie im Changelog des Debuggers.

Breakpoint Diagnostic Tool

Es gibt ein neues Tool, das dazu dient, Probleme bei der Erstellung oder Konfiguration zu beheben, die das Debuggen verhindern oder das Binden von Haltepunkten verhindern. Um es zu verwenden, führen Sie den Befehl Debug: Diagnostische Informationen für die aktuelle Sitzung erstellen aus, während eine Debug-Sitzung läuft. In einer späteren VS Code-Version wird ein Hinweis auf dieses Diagnosetool automatisch angezeigt, wenn es angebracht ist.

Einstellung für Standard-Ausführbare-Dateipfade

Es gibt eine Benutzereinstellung, debug.javascript.defaultRuntimeExecutable, mit der Sie die Standardpfade von Node.js- oder Chrome-Binärdateien angeben können. Zum Beispiel verwendet { "pwa-chrome": "dev" } den "dev"-Build von Chrome, wann immer Sie mit Chrome-Typ-Konfigurationen debuggen.

Beachten Sie, dass Sie für die Verwendung dieser neuen Option sicherstellen müssen, dass Ihre Startkonfiguration pwa-node anstelle von node oder pwa-chrome anstelle von Chrome ist.

Aufgaben

npm

Die Einstellung npm.packageManager der integrierten npm-Erweiterung hat einen neuen Standardwert: auto. Der Wert auto führt dazu, dass der Paketmanager automatisch anhand der .lock-Dateien und des Paketmanagers, der zum Installieren von Abhängigkeiten im Workspace verwendet wurde, erkannt wird. Wenn mehrere .lock-Dateien erkannt werden, wird dennoch ein Paketmanager ausgewählt, und eine Warnung zeigt an, dass ein Konflikt aufgetreten ist.

Kürzliche Aufgaben entfernen

Die Aufgaben-Schnellauswahl hatte schon immer einen Abschnitt Kürzliche Aufgaben ganz oben. Da dies ein wertvoller Ort ist, können Sie jetzt Ihre kürzlichen Aufgaben besser verwalten, indem Sie sie mit der Schaltfläche Zuletzt verwendete Aufgabe entfernen auf der rechten Seite aus der Schnellauswahl entfernen.

Remove recent task from Quick Pick menu

Erweiterungen

In diesem Meilenstein haben wir eine Reihe von Verbesserungen an der Erweiterungsansicht und den Seiten mit Erweiterungsdetails vorgenommen.

Erweiterungsansichten werden nun automatisch aktualisiert. Zum Beispiel wird eine Erweiterung sofort nach der Installation in der Liste Erweiterungen: Installiert angezeigt. Sie können die Ansicht auch manuell mit der Schaltfläche zum Aktualisieren in der Titelleiste aktualisieren.

Extension view auto refresh

Thema: GitHub Light

Eine Detailseite einer Erweiterung zeigt nun ein Kontextmenü mit allen Aktionen für eine Erweiterung, wie in der Erweiterungsansicht.

ESLint extension details page showing editor actions

Thema: GitHub Light

Die Registerkarte Feature-Beiträge auf der Detailseite einer Erweiterung zeigt nun die Aktivierungsereignisse für eine Erweiterung an.

Extension Activation Events

Thema: GitHub Light

Sie können nun eine Erweiterung und ihre Abhängigkeiten gemeinsam deaktivieren. Es gibt eine Benachrichtigung mit einer Aktion Alle deaktivieren, wenn Sie versuchen, eine Erweiterung mit Abhängigkeiten zu deaktivieren.

Showing option to disable all dependent extensions when disabling an extension

Thema: GitHub Light

Sie können eine Erweiterung zu den Workspace-Empfehlungen hinzufügen oder daraus entfernen, indem Sie die Aktionen Zu Workspace-Empfehlungen hinzufügen oder Aus Workspace-Empfehlungen entfernen verwenden, die im Kontextmenü einer Erweiterung in der Erweiterungsansicht verfügbar sind.

Add to Workspace Recommendations menu item

Thema: GitHub Light

Erweiterungsempfehlungsbenachrichtigungen zeigen nun die Dropdown-Aktion "Installieren" an, wenn die Einstellungen-Synchronisation aktiviert ist, genau wie in der Erweiterungsansicht.

Extension recommendation notification

Wir haben die Konfiguration von Erweiterungsempfehlungen vereinfacht, indem wir die Einstellung extensions.showRecommendationsOnlyOnDemand deprecate. Sie können nun die Einstellung extensions.ignoreRecommendations verwenden, um Benachrichtigungen über Erweiterungsempfehlungen zu steuern, und die Sichtbarkeitsaktionen der Erweiterungsansicht, um die Empfehlungen standardmäßig auszublenden.

Fehlerbehebung: Extension Bisect

Die wahre Stärke von VS Code sind seine Erweiterungen: Thema-Erweiterungen fügen schöne Farben und Symbole hinzu, Sprach-Erweiterungen bieten IntelliSense und ermöglichen Code-Navigation, Debugger-Erweiterungen ermöglichen es Ihnen, in Fehler einzutauchen. Manchmal ist es nicht offensichtlich, ob ein Problem von einer Erweiterung verursacht wird und wenn ja, von welcher. Bis heute mussten Sie alle Erweiterungen deaktivieren und dann einzeln wieder aktivieren, um eine problematische Erweiterung zu finden. Dieser Prozess wird nun mit einer neuen Funktion namens Extension Bisect erleichtert. Sie verwendet den binären Suchalgorithmus, um schnell eine problematische Erweiterung zu identifizieren. Im Wesentlichen deaktiviert sie die Hälfte Ihrer Erweiterungen und bittet Sie, das aufgetretene Problem zu überprüfen. Wenn das Problem behoben ist, muss sich die fehlerhafte Erweiterung in der Liste der deaktivierten Erweiterungen befunden haben, nicht in der Liste der aktuell aktivierten Erweiterungen. Dieser Vorgang wird wiederholt, bis nur noch eine einzige Erweiterung übrig ist.

Sie können Extension Bisect über den Befehl Hilfe: Extension Bisect starten aus der Befehlspalette (⇧⌘P (Windows, Linux Ctrl+Shift+P)) starten. Es führt Sie dann durch den Prozess des wiederholten Deaktivierens und Reaktivierens von Erweiterungen. Nach jedem Neuladen werden Sie aufgefordert zu bestätigen, ob das Problem weiterhin besteht.

Start Extension Bisect

Extension Bisect prompting during process

Extension Bisect wird Sie wiederholt fragen, ob das Problem auftritt oder nicht. Sie können jederzeit über Bisect stoppen abbrechen, und wenn Sie die Bisect-Benachrichtigung schließen, können Sie über den Befehl Hilfe: Extension Bisect fortsetzen fortfahren.

Extension Bisect done

Wenn der Extension Bisect-Prozess abgeschlossen ist, werden Sie aufgefordert, ein Issue gegen die Erweiterung einzureichen. Sie können die Erweiterung auch von hier aus deaktiviert lassen.

Editor für Tastenkombinationen

Wir haben in diesem Meilenstein mehrere Verbesserungen am Editor für Tastenkombinationen vorgenommen.

Sie können nun eine Tastenkombination für einen Befehl über die Befehlspalette konfigurieren, indem Sie auf die Zahnradschaltfläche Tastenkombination konfigurieren auf der rechten Seite klicken.

Configure keybinding for a command from the Command Palette

Thema: GitHub Light

Sie können dem Editor für Tastenkombinationen mehrere Tastenkombinationen zu einem Befehl hinzufügen.

Add multiple keybindings

Thema: GitHub Light

Sie können nun auch nach einer bestimmten Spalte des Editors für Tastenkombinationen filtern

  • @command:commandId – Filtert nach Befehls-ID. Zum Beispiel @command:workbench.action.showCommands.
  • @keybinding:keybinding – Filtert nach Tastenkombination. Zum Beispiel @keybinding:f1.
  • @source:user|default|extension – Filtert nach Quelle.

Sie können die Suchhistorie im Editor für Tastenkombinationen mit den Pfeiltasten Nach oben und Nach unten navigieren.

Keyboard Shortcut editor command ID filtering

IntelliSense

Wortbasierte Vorschläge aus anderen Dokumenten

VS Code unterstützt einfache wortbasierte Vorschläge. Diese sind nützlich, wenn kein Sprachdienst verfügbar ist oder wenn ein Sprachdienst keine Ergebnisse liefern kann, z. B. beim Tippen in Kommentaren. Mit dieser Version kann VS Code nun so konfiguriert werden, dass Wörter aus anderen geöffneten Dateien vorgeschlagen werden. Verwenden Sie die Einstellung editor.wordBasedSuggestionsMode mit allDocuments, um Wörter aus allen geöffneten Dateien vorzuschlagen, verwenden Sie matchingDocuments, um Wörter aus geöffneten Dateien derselben Sprache vorzuschlagen (Standard), und verwenden Sie currentDocument, um nur Wörter aus der aktuellen Datei vorzuschlagen.

Word based suggestions

Inline-Details ausblenden

Vorschläge in VS Code haben Details, die in einem separaten Flyout neben dem Vorschlag angezeigt werden. Die Detailansicht kann geschlossen werden, und dann wird eine Vorschau der Details inline mit den Vorschlägen angezeigt. Das Anzeigen der Details inline mit dem Vorschlag kann zu viel Platz beanspruchen und kann daher nun über eine neue boolesche Einstellung, editor.suggest.showInlineDetails, deaktiviert werden.

TypeScript-Vorschläge zeigen Pfad an

TypeScript kann Vervollständigungen liefern, die auch eine Importanweisung hinzufügen. Wenn es jedoch mehrere Symbole mit demselben Namen gibt, ist es schwierig, die richtige Vervollständigung auszuwählen. Diese Version macht dies einfacher, da die Pfade von Auto-Import-Vervollständigungen mit dem Label angezeigt werden.

TypeScript show import path

CodeLens anpassen

Sie können nun die Schriftart und -größe von CodeLens-Elementen konfigurieren.

Custom CodeLens font

Im obigen Screenshot sind Schriftart und Größe mit diesen beiden Einstellungen angepasst:

"editor.codeLensFontFamily": "Comic Sans MS",
"editor.codeLensFontSize": 12,

Editor

Feste Tabulatorstopps beim Einrücken mit Leerzeichen

Wenn Sie Ihren Code bevorzugt mit Leerzeichen einrücken, gibt es eine neue Einstellung namens editor.stickyTabStops, die VS Code dazu bringt, Cursorbewegungen in führenden Leerzeichen ähnlich wie Tabs zu behandeln.

Sticky Tab Stops

Befehl "Wort löschen"

Die bestehenden Aktionen zum Löschen von Wörtern löschen entweder vom aktuellen Cursor-Position bis zum Anfang des Wortes (z. B. Strg+Rücktaste unter Windows/Linux) oder bis zum Ende des Wortes (Strg+Entf unter Windows/Linux). Es gibt nun einen neuen Befehl, der das gesamte Wort unter dem Cursor löscht, genannt Wort löschen.

Zeilenumbruch im Diff-Editor

Sowohl die Side-by-Side- als auch die Inline-Ansicht des Diff-Editors unterstützen jetzt den Zeilenumbruch. Im Allgemeinen respektiert der Diff-Editor die Editor-Einstellungen für den Zeilenumbruch. Bei Markdown-Dateien, die standardmäßig umgebrochen werden, werden diese auch im Diff-Editor umgebrochen.

Word wrap in the diff editor

Wenn Sie möchten, dass der Diff-Editor entweder nie oder immer umgebrochen wird, können Sie die neue Einstellung diffEditor.wordWrap verwenden und sie auf "on" oder "off" konfigurieren (der Standardwert ist "inherit", was bedeutet, dass der Diff-Editor die Einstellungen des Editors für den Zeilenumbruch erbt).

Snippets

Erweiterungs-Snippet ausblenden

Von Erweiterungen beigesteuerte Snippets können nun aus IntelliSense ausgeblendet werden. Diese Funktion ist über die Einfügen-Snippet-Auswahl verfügbar, wenn Sie Snippet einfügen ausführen. Suchen Sie ein Erweiterungs-Snippet, das Sie ausblenden möchten, und wählen Sie das Augen-Symbol rechts aus.

Hide Extension Snippet

Ausgeblendete Snippets werden nicht in IntelliSense angezeigt, können aber weiterhin über Snippet einfügen verwendet werden. Schließlich werden bei der Verwendung von Einstellungen-Synchronisation die Einstellungen für ausgeblendete Snippets über Ihre Geräte hinweg synchronisiert.

Snippets ohne Präfix

Beim Erstellen von Snippets können Sie nun die Präfix-Eigenschaft weglassen. Snippets ohne Präfix werden nicht in IntelliSense angezeigt, können aber über Snippet einfügen verwendet werden.

Integriertes Terminal

Terminal-Konfigurationsunterstützung

Sie können nun Terminaleinstellungen ändern, indem Sie Terminaleinstellungen konfigurieren im Dropdown-Menü des Terminals auswählen.

Configure Terminal Settings

Verwaltung von Tastenkombinationen

Standardmäßig werden Tastenkombinationen wie in der Einstellung terminal.integrated.commandsToSkipShell angegeben an das Workbench und nicht an das Terminal gesendet. Eine neue Benachrichtigung informiert den Benutzer, wenn er eine Tastenkombination eingegeben hat, die einem dieser Befehle entspricht, und bietet die Möglichkeit, die relevanten Einstellungen zu konfigurieren.

Um die meisten Tastenkombinationen an das Terminal und nicht an das Workbench zu senden, können Sie terminal.integrated.sendKeybindingsToShell setzen.

Send Keybindings to Shell

Sprachen

Markdown Inline Smart Select

Auswahl in Markdown-Dokumenten mit den folgenden Befehlen erweitern und verkleinern

  • Erweitern: ⌃⇧⌘→ (Windows, Linux Shift+Alt+Right)
  • Verkleinern: ⌃⇧⌘← (Windows, Linux Shift+Alt+Left)

Die Auswahl gilt für kursive Texte, Fettdruck, Inline-Codeblöcke und Links.

Smart select within a Markdown document expands from the content within an inline Markdown type to include the Markdown symbols.

TypeScript 4.1

Diese Version von VS Code enthält TypeScript 4.1.2. Dieses wichtige TypeScript-Update bringt Unterstützung für eine Reihe neuer Sprachfeatures - darunter Template Literal Types und Unterstützung für die Factories von [React 17 - sowie verbesserte Sprachwerkzeuge für JavaScript und TypeScript. Wie immer enthält es auch eine Reihe von Fehlerkorrekturen.

Sie können mehr über TypeScript 4.1 im TypeScript Blog lesen.

Initiale Unterstützung für JSDoc @see-Tags

JSDoc @see-Tags ermöglichen es Ihnen, in Ihren JSDoc-Kommentaren auf andere Funktionen und Klassen zu verweisen. Das folgende Beispiel zeigt die Funktion crash, die auf die Klasse WrappedError aus einer anderen Datei verweist.

// @filename: somewhere.ts
export class WrappedError extends Error { ... }

// @filename: ace.ts
import { WrappedError } from './somewhere'

/**
 * @see {WrappedError}
 */
function crash(kind) {
    throw new WrappedError(kind);
}

VS Code wird nun grundlegende @see-Referenzen bei Umbenennungen einbeziehen. Sie können auch Zu Definition gehen für den Inhalt eines @see-Tags ausführen, und @see-Tags werden auch in der Liste der Referenzen angezeigt.

Wir planen, die Unterstützung für @see-Tags in zukünftigen Versionen weiter zu verbessern.

Neue Einstellungen für IntelliSense-Verhalten und Typüberprüfung

Es gibt zwei neue Einstellungen, die das IntelliSense- und Typüberprüfungsverhalten in JavaScript- und TypeScript-Dateien steuern, die nicht Teil eines expliziten tsconfig- oder jsconfig-Projekts sind.

  • Die Einstellung js/ts.implicitProjectConfig.strictNullChecks aktiviert strikte Null-Prüfungen. Sie ist standardmäßig false.

    Wenn Sie in TypeScript arbeiten, möchten Sie auf jeden Fall strikte Null-Prüfungen aktivieren, da diese viele häufige Programmierfehler aufdecken können.

    Strikte Null-Prüfungen sind auch bei der Arbeit mit JavaScript hilfreich. Wenn strikte Null-Prüfungen aktiviert sind, zeigen Hover- und IntelliSense-Informationen an, welche Typen undefined und null sein können. Wenn Sie die Typüberprüfung in Ihrem JavaScript aktivieren, kann VS Code auch strikte Null-Prüfungen verwenden, um einige häufige Programmierfehler aufzudecken.

  • Die Einstellung js/ts.implicitProjectConfig.strictFunctionTypes aktiviert strikte Funktionstypen. Sie ist standardmäßig true.

    Strikte Funktionstypen sind schwieriger zu erklären, verbessern aber im Allgemeinen IntelliSense und können einige Programmierfehler aufdecken.

Beachten Sie, dass diese Einstellungen beide überschrieben werden, wenn eine Datei Teil eines jsconfig- oder tsconfig-Projekts ist.

Umbenennung anderer impliziter JS/TS-Projekteinstellungen

Die anderen impliziten Projekteinstellungen für JavaScript und TypeScript wurden umbenannt, um sie genauer zu machen.

  • javascript.implicitProjectConfig.checkJs -> js/ts.implicitProjectConfig.checkJs
  • javascript.implicitProjectConfig.experimentalDecorators -> js/ts.implicitProjectConfig.experimentalDecorators

Diese Einstellungen wurden umbenannt, da sie für JavaScript- und TypeScript-Dateien gelten, die nicht Teil eines jsconfig- oder tsconfig-Projekts sind. Die bisherigen Einstellungsnamen deuteten darauf hin, dass sie nur für JavaScript-Dateien gelten.

HTML

Neue Formatierungseinstellungen

Die HTML-Erweiterung verwendet JSBeautify als Formatierer. Das Update auf die neueste Version von JSBeautify (1.13) bringt einige neue Formatierungseinstellungen.

  • html.format.wrapAttributesIndentSize: Ausrichtunggröße bei Verwendung von force aligned und aligned multiple in html.format.wrapAttributes oder null zur Verwendung der Standard-Einrückungsgröße.
  • html.format.templating: Berücksichtigt Django-, ERB-, Handlebars- und PHP-Vorlagensprachen-Tags.
  • html.format.unformattedContentDelimiter: Hält Textinhalte zwischen dieser Zeichenkette zusammen.

Die letzte Einstellung ermöglicht es Ihnen, ein Tag festzulegen, um Bereiche zu markieren, die nicht formatiert werden sollen.

"html.format.unformattedContentDelimiter": "<!-- DoNotFormat -->"

Unformatted tag example

Neuer Einstellungsname für onTypeRename

Die Funktion On Type Rename zum Bearbeiten eines Tags, wenn sein passender schließender Tag geändert wird, heißt jetzt Linked Editing. Der Befehl zum Aktivieren von Linked Editing ist Start Linked Editing (⇧⌘F2 (Windows, Linux Ctrl+Shift+F2)) und Escape deaktiviert den Linked Editing-Modus.

Die Einstellung zur Aktivierung ist jetzt

"editor.linkedEditing": true

Beiträge zu Erweiterungen

Remote-Entwicklung

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

Feature-Highlights in 1.52 sind unter anderem

  • Automatische Portweiterleitung auf Linux-Remotes.
  • Neuer Befehl zur lokalen Installation von Remote-Erweiterungen.
  • Sie können nun einen Branch auswählen, wenn Sie ein Repository in einem Container öffnen.
  • Leistungsverbesserungen beim Serverstart durch Hintergrundinstallation von Erweiterungen.

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

Notebooks

Das VS Code-Team arbeitet weiterhin an der nativen Unterstützung für Notebooks und der Verbesserung seiner UX und Leistung.

Verbesserte Darstellung großer Textausgaben

Der native Notebook-Editor kürzt die Ausgabe nun, wenn ihr Inhalt zu groß ist, um sicherzustellen, dass die Benutzeroberfläche immer reaktionsschnell bleibt. Sie können den vollständigen Rohinhalt der Ausgabe immer noch in einem Texteditor öffnen.

Large Output Rendering Optimization

Erweiterungs-Authoring

File Decoration API

Die FileDecorationProvider API ist nun final und kann von jeder Erweiterung verwendet werden. Mit dieser API können Umgebungsdaten zu Dateien hinzugefügt werden, für die SCM- und Fehlerdekorationen, die im Explorer angezeigt werden, wird diese API verwendet.

Rückgängigmachen von Ressourcenänderungen

Explorer-Operationen wie Datei erstellen, Datei umbenennen oder Datei löschen lösen Ereignisse aus, die eine Teilnahme ermöglichen, z.B. onWillCreateFiles, onWillRenameFiles oder onWillDeleteFiles. Diese Version fügt Unterstützung für das Rückgängigmachen solcher Explorer-Operationen hinzu und Sie sollten wissen, dass die oben genannten Ereignisse beim Rückgängigmachen einer Operation nicht ausgelöst werden.

Neue Theme-Farben

  • statusBarItem.errorBackground: Hintergrundfarbe für Fehlereinträge in der Statusleiste. Fehlereinträge heben sich von anderen Statusleisteneinträgen ab, um Fehlerbedingungen anzuzeigen.
  • statusBarItem.errorForeground: Vordergrundfarbe für Fehlereinträge in der Statusleiste. Fehlereinträge heben sich von anderen Statusleisteneinträgen ab, um Fehlerbedingungen anzuzeigen.

Fehler-Hintergrundfarben

Theme-Autoren können nun neue Theme-Farben für Fehler im Editor nutzen. Editorfehler, Warnungen und Informationen können nun über

  • editorError.background
  • editorWarning.background
  • editorInfo.background

Error background colors

Aktualisierte Codicons

Wir haben die folgenden neuen Symbole zu unserer Codicon-Bibliothek hinzugefügt

  • check-all
  • circle-large-filled
  • circle-large-outline
  • pass-filled
  • pinned-dirty

Codicons updates

Unterstützung für Codicons für Ansichtscontainer & Ansichten

Sie können nun Codicons als Icons für Ansichtscontainer und Ansichten verwenden. Beispiel:

"views": {
      "explorer": [
        {
          "id": "npm",
          "name": "NPM Scripts",
          "icon": "$(code)",
          "visibility": "hidden"
        }
      ]
  }

Siehe die Icon-Liste für eine Liste verfügbarer Icons.

Linked Editing Range Provider

Was früher als OnTypeRenameProvider bekannt war, ist jetzt eine öffentliche API als LinkedEditingRangeProvider.

Für eine gegebene Position in einem Dokument verknüpft ein LinkedEditingRangeProvider Bereiche mit demselben Inhalt. Eine Änderung an einem der Bereiche kann auf alle anderen Bereiche angewendet werden.

Dies ist beispielsweise in HTML zu sehen. Beim Bearbeiten des Namens eines öffnenden Tags wird auch der schließende Tag automatisch aktualisiert.

FoldingRangeProvider.onDidChangeFoldingRanges

FoldingRangeProvider.onDidChangeFoldingRanges wurde zu einer öffentlichen API gemacht. Es ist ein optionales Ereignis, um zu signalisieren, dass sich die Faltungsbereiche eines Anbieters geändert haben.

Öffnen des Editors für Tastenkombinationen mit Abfragefilter

Erweiterungen können nun Abfragetext übergeben, wenn sie den Editor für Tastenkombinationen mit dem Befehl workbench.action.openGlobalKeybindings öffnen.

vscode.commands.executeCommand('workbench.action.openGlobalKeybindings', 'query');

fs.isWritableFileSystem

Die neue API fs.isWritableFileSystem ermöglicht es Ihnen zu prüfen, ob ein bestimmtes Dateisystem Schreibvorgänge unterstützt. Zum Beispiel, um zu prüfen, ob ein Dokument mit der URL example:/path/to/file auf einem beschreibbaren Dateisystem liegt.

switch (vscode.fs.isWritableFileSystem('example')) {
  case true:
    // The `example` filesystem supports writing.
    // Keep in mind the permissions or other issues may still prevent
    // a file from being written.
    break;

  case false:
    // The `example` filesystem does not support writing (it is readonly).
    break;

  case undefined:
    // VS Code does not know about the `example` filesystem
    break;
}

Benutzerdefinierte Editoren können fs.isWritableFileSystem verwenden, um zu bestimmen, ob sie eine schreibgeschützte Benutzeroberfläche anzeigen.

Markdown Tree Tooltip API

Die API für die Verwendung von Markdown für tooltip auf TreeItem ist nun final. Sie können den tooltip auf eine Markdown-Zeichenkette setzen, wenn Sie das TreeItem erstellen, oder, wenn Ihr Markdown zusätzliche Zeit zur Berechnung benötigt, können Sie den neuen TreeDataProvider.resolveTreeItem verwenden, um den Tooltip zu setzen.

Markdown tree tooltip

TreeItem Highlights API

Die lang erwartete TreeItemLabel API ist nun final. Diese API kann verwendet werden, um Hervorhebungen auf dem label eines TreeItem zu setzen. Sie können sie in Aktion in der Referenzansicht sehen.

Tree item highlights

listDoubleSelection und listMultiSelection

Die Verwendung der Kontextwerte listDoubleSelection und listMultiSelection für die Aktivierung von Befehlen in beigesteuerten Baumansichten funktioniert nun.

Ansicht "Willkommensinhalt"-Schaltflächen-Aktivierung

Sie können nun eine Aktivierungsklausel für Abschnitte des Ansichts-Willkommensinhalts festlegen.

View welcome content button enablement

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.

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.

API für Hintergrundfarbe von Statusleisteneinträgen

Wir schlagen eine neue Eigenschaft backgroundColor für StatusBarItem vor, um die Hintergrundfarbe eines Statusleisteneintrags festzulegen. Derzeit wird nur statusBarItem.errorBackground unterstützt, um zu vermeiden, dass die Statusleiste zu bunt aussieht. Wir können diese Unterstützung in Zukunft auf weitere Farben ausweiten.

Status bar error in red

Der Anwendungsfall für diese neue API ist es, Erweiterungen die Möglichkeit zu geben, Fehlerbedingungen in der Statusleiste anzuzeigen. Zum Beispiel könnte die ESLint-Erweiterung diese Farbe verwenden, um den Benutzer darauf aufmerksam zu machen, dass ESLint für einen Arbeitsbereich noch nicht aktiviert wurde.

Weitere themenbezogene Icons

Die Arbeit an den Produkt-Icon-Themen wurde wieder aufgenommen. Produkt-Icon-Themen sind ein vorgeschlagenes Feature, das es Ihnen ermöglicht, VS Code mit einem benutzerdefinierten Satz von Icons zu gestalten. Es funktioniert für alle Icons in den integrierten Ansichten sowie für alle Erweiterungen, die Icons aus der Codicon-Bibliothek verwenden. Produkt-Icon-Themen werden im nächsten Meilenstein veröffentlicht.

Viele weitere Icon-Namen wurden hinzugefügt, insbesondere für die Debug-, Erweiterungs- und Terminalansichten sowie für die Einstellungen und Notebook-Editoren.

Sehen Sie sich die aktualisierte Icon-Liste an.

Entfernung der vorgeschlagenen Logging-API

Ein Vorschlag für eine Logging-API, LogLevel und onDidChangeLogLevel, existierte vor etwa einem Jahr und wurde nun entfernt. Erweiterungen können die Output-Kanal-API zum Protokollieren verwenden oder, wenn sie einen benutzerdefinierten Logger verwenden, ExtensionContext#logUri nutzen.

Initiale Ergänzung der vorgeschlagenen Testing-API

Wir untersuchen Testing in VS Code, und die erste Version der API ist nun in vscode.proposed.d.ts vorhanden. Bitte lesen Sie das verlinkte Issue für zusätzlichen Kontext und beteiligen Sie sich, wenn Sie Input geben möchten. Wir gehen davon aus, dass der Provider-Teil der API deutlich früher ausgeliefert wird als der Observer-Teil.

Neue Kontextschlüsseloperatoren

<, <=, > oder >= können nun für Kontextschlüsselausdrücke verwendet werden. Hier ist ein Beispiel für die Beisteuerung eines Befehls, der nur angezeigt wird, wenn zwei oder mehr Arbeitsordner geöffnet sind.

"contributes": {
  "menus": {
    ...
    "when": "workspaceFolderCount >= 2"
    ...
  }
}

Language Server Protocol

Der Funktionsumfang für die Version 3.16 des Language Server Protocol ist abgeschlossen und auf der LSP-Protokollseite verfügbar. Die wichtigsten Highlights der Version 3.16 sind:

Das detaillierte Änderungsprotokoll enthält auch alle kleineren Verbesserungen an bestehenden Anfragen.

Debug Adapter Protocol

Unterstützung für bedingte Ausnahmen

In diesem Meilenstein wurde der Vorschlag für bedingte Ausnahmen vom September 2020 finalisiert und ist nun Teil der Version 1.43 des Debug Adapter Protocol (DAP).

Die Protokollergänzung erweitert die Anfrage setExceptionBreakpoints um eine neue optionale Eigenschaft filterOptions zum Festlegen von Ausnahmefiltern und deren Bedingungen. Ein Debug-Adapter kann über die Fähigkeit supportsExceptionFilterOptions mitteilen, dass er die Funktion bedingter Ausnahmen unterstützt.

Klärung der Semantik von StackTraceResponse.totalFrames

Die Beschreibung der supportsDelayedStackTraceLoading-Fähigkeit im Debug Adapter Protocol legt nahe, dass der Adapter das Feld totalFrames der StackTraceResponse mit der **korrekten** Anzahl verfügbarer Stack-Frames füllen muss, damit das verzögerte Laden von Stack-Frames funktioniert. Für einige Debugger oder Laufzeiten ist dieser Wert jedoch nicht einfach zu berechnen, was die Unterstützung des verzögerten Ladens von Stack-Frames teuer macht.

Da die Gesamtzahl der Frames nie in der Benutzeroberfläche angezeigt wird, haben wir die ursprüngliche – etwas mangelhafte – Semantikbeschreibung von totalFrames geklärt: Ein Debug-Adapter kann nun frei einen großen (falschen) Wert für totalFrames angeben, und ein Client sollte darauf vorbereitet sein, weniger Frames als angefordert zu erhalten, und dies als Hinweis darauf verwenden, dass das Ende des Stacks erreicht wurde.

Klärung der Semantik von RunInTerminalRequestArguments.cwd

Da die Eigenschaft cwd ("current working directory") der Anfrage runInTerminal **nicht** optional ist, ist es nicht möglich, die Eigenschaft wegzulassen, um den "egal"-Fall auszudrücken. Wenn beispielsweise ein Debug-Adapter weiß, dass die "cwd" bereits korrekt ist und es keinen Bedarf gibt, dass der Client einen "Change Directory"-Befehl generiert, beschreibt die DAP-Spezifikation nicht, wie dies erreicht werden kann.

Um diese Lücke zu schließen, haben wir die DAP-Spezifikation geklärt, indem wir hinzugefügt haben, dass ein Client nur dann erwartet wird, einen Change Directory-Befehl auszuführen, wenn die cwd-Eigenschaft einen nicht leeren Pfad enthält.

Technik

Sandbox und Kontextisolierung für Issue Reporter und Process Explorer aktiviert

Um mehr Feedback von der Aktivierung der Sandbox und Kontextisolierung von Electron zu erhalten, haben wir sie für unsere Process Explorer- und Issue Reporter-Fenster aktiviert. Diese Konfiguration wird schließlich auch für das Haupt-VS-Code-Fenster zum Standard.

  • sandbox aktiviert
  • contextIsolation aktiviert
  • Ressourcen werden von einem benutzerdefinierten vscode-file Schema (und nicht file) bedient.

Sichere Lieferkette für NPM-Abhängigkeiten

Wir haben unsere NPM-Abhängigkeitslieferkette durch die Nutzung von Quellcode-Scan- und Testdiensten verbessert, um die Sicherheit und Zuverlässigkeit unserer Build-Pipeline zu erhöhen.

Linux ARM Repositories

VS Code für ARM-Architekturen (aarch64 und armhf) wird nun in den folgenden Linux-Repositories veröffentlicht.

Neue Befehle

Taste Befehl Befehls-ID
Fokus auf primäre Seite im Diff-Editor workbench.action.compareEditor.focusPrimarySide
Fokus auf sekundäre Seite im Diff-Editor workbench.action.compareEditor.focusSecondarySide
Fokus auf andere Seite im Diff-Editor workbench.action.compareEditor.focusOtherSide

Dokumentation

Remote-Entwicklung

Es gibt mehrere neue Möglichkeiten, mehr über VS Code Remote Development zu erfahren.

Learn module for Docker and VS Code

GitHub-Integration

Learn module for GitHub and VS Code

Wie wir VS Code Open Source entwickeln

Sehen Sie sich die Aufzeichnung der Session der Entwickler Alex Ross und Benjamin Pasero auf dem GitHub Universe an: How we make VS Code in the open, um zu erfahren, wie unser Team VS Code Open Source entwickelt und auf GitHub mit der Community zusammenarbeitet.

VS Code auf Chromebooks

Wussten Sie schon, dass Sie VS Code auf einem Chromebook ausführen können? Wir halten dies für eine großartige Option für Studenten und angehende Programmierer. Erfahren Sie, wie Sie VS Code unter Chrome OS (über Crostini) einrichten, mit unserem Blogbeitrag Lernen mit VS Code auf Chromebook, der Anleitungen für den Einstieg ins Programmieren mit JavaScript und Python enthält.

Bemerkenswerte Fehlerbehebungen

  • 39543: Übereinstimmende Wörter im Übersichtslinien-Editor für geteilte JSON-Einstellungen hervorheben.
  • 67905: Mehrere Extension VSIX-Dateien gleichzeitig installieren
  • 83187: Umgebungsvariablen aus einer Konfiguration tropfen in eine andere.
  • 88703: Fehler bei Feldern mit URI-Format werden in der Einstellungen-UI nicht gemeldet.
  • 97202: ${config} Variablen werden in Launch-Konfigurationen für Multi-Root-Workspaces nicht aufgelöst.
  • 98041: Emmet ignoriert Auswahl bei Auswertung von mathematischen Ausdrücken.
  • 107320: Der Theme-Selektor sollte nicht erscheinen, wenn eine Erweiterung installiert wird, die ein Hauptmodul enthält.
  • 107461: Verlauf der Debug-Konsole nicht beibehalten.
  • 109111: Die Debug-Konsole respektiert die Benutzereinstellungen nicht.
  • 110077: Daten-Breakpoints werden nicht in der Breakpoints-Ansicht angezeigt.
  • 110426: Unterstützung des --diff Parameters beim Lesen von stdin.
  • 110738: Ermöglichen, dass Erweiterungen das Editorlabel für benutzerdefinierte Dateisystemschemata festlegen.
  • 110775: Die Option "Dauerhaft löschen" fehlt beim Rechtsklick mit Shift.
  • 110854: Unterstützung für schreibgeschützte Änderungen von Dateisystemanbietern in geöffneten Editoren.
  • 110905: CLI: Keine Kontaktaufnahme mit dem Marketplace, wenn die Erweiterung bereits installiert ist, es sei denn, sie wird erzwungen.

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 language-server-protocol

Beiträge zu vscode-languageserver-node

Beiträge zu vscode-eslint

Beiträge zu vscode-js-debug

Beiträge zu vscode-html-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.