Januar 2023 (Version 1.75)
Update 1.75.1: Das Update behebt diese Issues.
Downloads: Windows: x64 Arm64 | Mac: Universal Intel silicon | Linux: deb rpm tarball Arm snap
Willkommen zur Januar 2023-Version von Visual Studio Code. Diese Version enthält viele Updates, die Ihnen hoffentlich gefallen werden. Einige der wichtigsten Highlights sind:
- Profile – Erstellen und teilen Sie Profile, um Erweiterungen, Einstellungen, Verknüpfungen und mehr zu konfigurieren.
- Signierung von VS Marketplace-Erweiterungen – Veröffentlichte Erweiterungen sind jetzt standardmäßig codegesignet.
- Verbesserungen der Barrierefreiheit – Terminal-Bildschirmlesermodus, neue Tastenkombinationen.
- Einfacheres Ändern der Größe mehrerer Ansichten – Ziehen Sie Layout-Ecken, um mehrere Ansichten gleichzeitig zu skalieren.
- Suchverlauf in Baumansichten – Wiederholen Sie schnell frühere Suchen in Baumansichten.
- Bessere Erkennung von Links im Terminal – Erkennt Links, die Leerzeichen, Klammern, Zeilen- und Spaltenformate enthalten.
- Neue Git-Befehle – Commits zwischenspeichern und Remote-Tags direkt in VS Code löschen.
- Dark+ und Light+ V2-Designs – Probieren Sie die experimentellen Farbdesigns aus und geben Sie uns Feedback.
- Jupyter Notebook-Themen – Verwendung von Notebooks im Web, Verwaltung von Jupyter-Kernels.
- KI-Tools in VS Code – Erfahren Sie mehr über KI-gestützte Vervollständigungen mit GitHub Copilot.
Wenn Sie diese Release Notes online lesen möchten, gehen Sie zu Updates auf code.visualstudio.com.
Insiders: Möchten Sie neue Funktionen so schnell wie möglich ausprobieren? Sie können den nächtlichen Insiders-Build herunterladen und die neuesten Updates ausprobieren, sobald sie verfügbar sind.
Haushaltsführung
In früheren Versionshinweisen hat das Team über unsere Aufräumarbeiten berichtet, und wir wollten hier dasselbe tun.
Wie wir bereits im November 2022 angekündigt haben, nutzten wir den Dezember für die Bereinigung unserer GitHub-Issues und Pull Requests (siehe unseren Leitfaden zur Issue-Bereinigung). Über alle unsere Repositories hinweg haben wir eine Netto-Reduzierung von 3637 offenen Issues und Pull Requests erreicht. Wenig überraschend entfiel der Löwenanteil der Reduzierung auf unsere Top 5 Repositories: microsoft/vscode (2520), microsoft/vscode-jupyter (374), microsoft/vscode-remote-release (278), microsoft/vscode-python (220) und microsoft/vscode-pull-request-github (160).
Barrierefreiheit
Verbesserungen bei der Diff-Navigation
Zum nächsten/vorherigen Wechsel springen hat jetzt Audio-Hinweise, um anzuzeigen, ob eine Zeile eingefügt, gelöscht oder geändert wurde. Zusätzlich wird die Zeile der Änderung ausgewählt, sodass sie von einem Bildschirmleser gelesen werden kann.
Barrierefreiheitsmodus des Terminals
Der Befehl Terminal: Zugänglichen Puffer fokussieren (⌥F2 (Windows Alt+F2, Linux Shift+Alt+F2)) ermöglicht es Bildschirmlesern, den Terminal-Puffer per Tastatur zu navigieren.
Hilfe zur Barrierefreiheit des Terminals
Ähnlich wie der Befehl Hilfe zur Barrierefreiheit anzeigen im Editor, bietet der Befehl Terminal: Hilfe zur Barrierefreiheit des Terminals anzeigen () wichtige Informationen für Benutzer von Bildschirmlesern.

Tastenkombinationen für den Workspace Trust Editor
Um die Tastaturbedienbarkeit des Workspace Trust-Editors zu verbessern, der über Arbeitsbereiche: Workspace Trust verwalten geöffnet werden kann, können Sie nun den Vertrauensstatus des aktuellen Arbeitsbereichs mit der Tastatur durch `Strg/Cmd+Enter` oder für den übergeordneten Ordner mit `Strg/Cmd+Shift+Enter` umschalten.

Verbesserte Tastaturnavigation für Indikatoren des Einstellungen-Editors
Bei Einstellungen mit mehreren Indikatoren, wie einem "Woanders geändert"-Indikator und einem "Standardwert geändert"-Indikator, werden nun die Pfeiltasten links und rechts verwendet, um zwischen den Indikatoren zu navigieren. Diese Änderung ermöglicht es Benutzern, den Indikator mit einem einzigen Druck auf die `Tab`-Taste zu verlassen.
Profile
Wir freuen uns, Ihnen mitteilen zu können, dass die Funktion Profile jetzt allgemein in VS Code verfügbar ist. Ein Profil kann Erweiterungen, Einstellungen, Tastenkombinationen, UI-Status, Aufgaben und Benutzerschnipsel umfassen. Sie können VS Code für verschiedene Entwicklungsszenarien wie Data Science, Dokumentationserstellung oder für mehrere Programmiersprachen wie Python oder Java anpassen. Wenn Sie unterschiedliche VS Code-Setups basierend auf Arbeitsabläufen wie "Arbeit" oder "Demo" haben, können Sie diese ebenfalls als verschiedene Profile speichern. Sie können mehrere Arbeitsbereiche (Ordner) gleichzeitig mit unterschiedlichen Profilen öffnen.
Das folgende Bild zeigt einen Ordner, der mit einem Arbeit-Profil geöffnet wurde, das für eine Arbeitsplatzumgebung konfiguriert ist.

Sie können Profile auch exportieren und importieren, um sie mit Kollegen, Freunden oder Studenten zu teilen und ihnen den Einstieg in VS Code zu erleichtern.
Das folgende Video zeigt, wie Sie ein Profil mithilfe eines GitHub Gist exportieren, um es mit jemandem zu teilen. Benutzer, die den Profil-Link erhalten, können das freigegebene Profil in VS Code for the Web in der Vorschau anzeigen und es in ihre lokale VS Code-Instanz importieren.

Hinweis: Profile funktionieren derzeit nicht in Remote-Szenarien wie GitHub Codespaces, aber wir arbeiten daran, dies zu ermöglichen. Sie können den Fortschritt in Issue #165247 verfolgen.
Workbench
Verbesserte Unterstützung für die Größenänderung mehrerer Ansichten
Sie können jetzt mehrere Ansichten gleichzeitig skalieren, indem Sie die Ecken der Ansichten ziehen.
Verbesserter Rasterlayout
Wenn ein Editor minimiert ist, behält das Raster diesen Zustand beim Ändern der Größe des gesamten Fensters oder der Seitenleisten bei. Im folgenden kurzen Video bleibt die Breite des minimierten Editors auf der rechten Seite konstant, während der gesamte Editorbereich erweitert wird.
Standardeinstellungen aus dem Befehl "Layout anpassen" wiederherstellen
Wenn Sie mit dem benutzerdefinierten Befehl Layout anpassen arbeiten, sei es durch Auslösen des Befehls oder durch die Verwendung der Layout-Steuerelemente in der benutzerdefinierten Titelleiste, können Sie mit der Schaltfläche mit dem Rückwärtspfeil oben rechts im Layout-Steuerelement die Standardwerte wiederherstellen.

Panel-Ausrichtung vom Panel aus verwalten
Sie können die Panel-Ausrichtung jetzt direkt aus dem Kontextmenü des Panels anpassen, genauso wie die Panel-Position.

Vereinfachtes Menü "Einstellungen"
Wir haben das Menü Einstellungen für Ihre globalen Einstellungen vereinfacht und die Optionen logischer geordnet und gruppiert.

Suchverlauf in Baumansichten
Die Suche in Baumansichten unterstützt jetzt die Verlaufsnavigation. Sie können die Pfeiltasten nach oben/unten verwenden, um durch den Verlauf Ihrer vorherigen Suchen zu navigieren.
Zusammenhängende Treffer bei der Suche in Baumansichten
Die Suche in Baumansichten unterstützt jetzt zusammenhängende Treffer zusätzlich zur vorhandenen "unscharfen" Suche. Im folgenden Video werden beim anfänglichen Suchen nach `"src"` Treffer wie `"resource"` angezeigt. Wenn die "unscharfe" Suche über die Umschaltfläche Unscharfe Suche deaktiviert wird, werden nur Texte mit dem zusammenhängenden Text `"src"` hervorgehoben.
Liste seitenweise scrollen
Eine neue Einstellung, `workbench.list.scrollByPage`, ermöglicht es Ihnen zu konfigurieren, ob die Liste seitenweise scrollen soll, wenn Sie direkt auf die Scrollleiste klicken.
Listen-Navigationsmodus beim Tippen
Die neue Einstellung `workbench.list.typeNavigationMode` ermöglicht es Ihnen, den Navigationsmodus beim Tippen für Listen zu konfigurieren. Standardmäßig (Einstellungswert `automatic`) erfolgt die Navigation in Listen und Bäumen während der Eingabe. Wenn Sie die Navigation nur zu bestimmten Zeiten aktivieren möchten, können Sie `typeNavigationMode` auf `trigger` setzen, und die Liste wechselt nur in den Navigationsmodus beim Tippen, wenn der Befehl `list.triggerTypeNavigation` ausgeführt wird.
Der Befehl `list.triggerTypeNavigation` hat standardmäßig keine Tastenkombination, aber Sie können Ihre eigene hinzufügen. Wenn Sie beispielsweise in den Navigationsmodus beim Tippen gelangen möchten, nachdem Sie die Taste `/` gedrückt haben, können Sie eine Tastenkombination wie folgt hinzufügen:
{
"key": "/",
"command": "list.toggleKeyboardNavigation",
"when": "listFocus"
}
Neue Bestätigung zum Öffnen großer Dateien
Um das versehentliche Öffnen sehr großer Dateien zu verhindern, insbesondere in Remote-Umgebungen, in denen es tatsächlich Kosten aufgrund von Netzwerkübertragungen geben kann, wird vor dem Öffnen der Datei eine Bestätigung angezeigt. Das Limit kann über die neue Einstellung `workbench.editorLargeFileConfirmation` geändert werden und hat je nach lokalem oder Remote-Dateizugriff unterschiedliche Standardwerte.

Dateibeobachter unterstützt glob-Muster für `files.watcherExclude`
Die Einstellung `files.watcherExclude` unterstützt glob-Muster für leistungsstarke Ausschlussregeln des Dateibeobachters. Glob-Muster wurden jedoch nicht nativ von der für die Dateibeobachtung verwendeten Bibliothek unterstützt. In diesem Meilenstein haben wir Unterstützung für glob-Muster für Ausschlüsse beigesteuert (beitragen) für eine effizientere Ressourcennutzung, insbesondere unter Linux.
Unter Linux finden Sie in diesem FAQ-Eintrag weitere Informationen, falls Sie Probleme mit der Dateibeobachtung haben.
Verbesserungen am Editor für Tastenkombinationen
Erweiterungen anzeigen, die Tastenkombinationen beitragen
Der Editor für Tastenkombinationen zeigt nun die Erweiterung an, die eine Tastenkombination in der Spalte Quelle beiträgt. Sie können den Erweiterungsnamen auswählen, um die Detailseite der Erweiterung zu öffnen.

Sie können auch nach Tastenkombinationen suchen, die von einer Erweiterung beigesteuert werden, indem Sie die Aktion Tastenkombinationen der Erweiterung im Kontextmenü der Erweiterung verwenden.

Kontextschlüsselvorschläge für die Klausel `when` anzeigen
Der Editor für Tastenkombinationen zeigt jetzt Kontextschlüsselvorschläge für die `when`-Eigenschaft an. Sie können die Tastenkombination `Strg+Leertaste` verwenden, um Vorschläge auszulösen.

Suchen nach Tastenkombinationen mit Akkorden
Der Editor für Tastenkombinationen unterstützt jetzt die Suche nach Tastenkombinationen mit Akkorden. Zum Beispiel zeigt `"Strg+K"` auch alle Tastenkombinationen an, bei denen `Strg+K` der erste Akkord ist.
Einstellung zur Konfiguration des Timeouts für die Auflösung der Shell-Umgebung
Eine neue Einstellung `application.shellEnvironmentResolutionTimeout` (nur macOS und Linux) ermöglicht es Ihnen, das Timeout für die Auflösung der Shell-Umgebung zu erhöhen, wenn dies erforderlich ist. Standardmäßig wartet VS Code bis zu 10 Sekunden auf die Auflösung der Umgebung, aber in bestimmten Fällen mit komplexeren Shell-Setups reicht dies möglicherweise nicht aus.
Siehe diesen FAQ-Eintrag für weitere Informationen, wie VS Code Shell-Umgebungen auflöst.
Neue Umgebungsvariable `VSCODE_RESOLVING_ENVIRONMENT`
Wenn VS Code die Shell-Umgebung des Benutzers auflöst, wird jetzt eine neue Umgebungsvariable `VSCODE_RESOLVING_ENVIRONMENT` auf `1` gesetzt. Dies ist nützlich für Benutzerskripte (z. B. in `.bashrc`), die wissen müssen, ob sie im Kontext der Auflösung der Shell-Umgebung ausgeführt werden.
Einfachere Abmeldung von Versionshinweisen nach dem Update
Sie können sich jetzt direkt aus dem Versionshinweise-Editor von den Versionshinweisen nach jedem Update abmelden. Dies spiegelt die Einstellung `update.showReleaseNotes` wider und aktualisiert sie.

Editor
Modus für Vorschlagsauswahl
Es gibt eine neue Einstellung (`editor.suggest.selectionMode`), mit der Sie konfigurieren können, ob Vorschläge beim Tippen automatisch oder über Triggerzeichen ausgewählt werden sollen.
Standardmäßig wird immer der beste Vorschlag ausgewählt, sodass durch Drücken von `Enter` oder `Tab` dieser eingefügt wird. Wenn Sie keinen Vorschlag ausgewählt haben möchten, setzen Sie den Wert auf `never`, `whenQuickSuggestion` oder `whenTriggerCharacter`. Bei Verwendung dieser Einstellungswerte werden Vorschläge weiterhin angezeigt, aber nicht automatisch ausgewählt, und Sie können die Pfeiltasten verwenden, um einen auszuwählen.
Beachten Sie, dass diese Einstellung nur für automatische Vorschläge gilt, nicht für Vorschläge, die angezeigt werden, wenn Sie sie explizit über `Strg+Leertaste` auslösen.
Code-Aktionsliste ist jetzt scrollbar
Einige Erweiterungen generieren lange Listen von Code-Aktionen. Wenn nicht genügend Platz vorhanden ist, um alle Code-Aktionen darzustellen, können Sie jetzt durch die Liste scrollen.
Grenzwert für Farbdekoratoren
Die Anzahl der im Editor angezeigten Farbdekoratoren ist auf 500 begrenzt. Dies soll Leistungsprobleme beim Öffnen einer Datei mit einer großen Anzahl von Farben verhindern. Dieses Limit kann jetzt über die Einstellung `editor.colorDecoratorsLimit` konfiguriert werden.

Editor-Suche: Zum Treffer springen
Der neue Befehl Zum Treffer springen... ermöglicht es Ihnen, zu einem bestimmten Treffer in einer Datei basierend auf der Anzahl zu springen, wenn die Suche geöffnet ist. Dies ist nützlich, wenn Sie eine große Anzahl von Treffern haben und zu einem bestimmten springen möchten.

Neugestaltete Inline-Vorschläge-Toolbar
In diesem Meilenstein haben wir die Inline-Vorschläge-Toolbar neu gestaltet, um sie kompakter und einfacher zu bedienen. Sie bietet Schaltflächen zum schnellen Wechseln zwischen alternativen Vorschlägen und zum Akzeptieren eines Vorschlags vollständig oder wortweise.
Im folgenden Video überprüft der Benutzer beide Vorschläge, die von GitHub Copilot angeboten werden und durch die Kommentaraufforderung ausgelöst wurden, und akzeptiert dann inkrementell zuerst `console` und dann das nächste Wort für `console.log`.

Die Einstellung `"editor.inlineSuggest.showToolbar": "always"` kann verwendet werden, um die Toolbar immer anzuzeigen, wenn Inline-Vorschläge verfügbar sind.
Wir haben auch Standard-Tastenkombinationen zum Akzeptieren/Rückgängigmachen eines Vorschlags Wort für Wort hinzugefügt (`Strg+Pfeil links/Pfeil rechts`).
Terminal
Neue Standard-Tastenkombinationen
Die folgenden Standard-Tastenkombinationen wurden hinzugefügt, um die Auffindbarkeit erweiterter Terminalfunktionen zu verbessern
Erkannten Link öffnen - Strg/Cmd+Umschalt+O
Der Befehl Erkannten Link öffnen (⇧⌘O (Windows, Linux Strg+Umschalt+O)) ist der tastaturgesteuerte Weg, Links im Terminal zu öffnen. Der Befehl öffnet eine Schnellauswahl mit allen verfügbaren Links im Ansichtsfenster des Terminals.

Die Tastenkombination ⇧⌘O (Windows, Linux Strg+Umschalt+O) wurde gewählt, da sie eine ähnliche Aktion wie In Datei navigieren darstellt, jedoch für das Terminal.
Aktuelles Verzeichnis öffnen - Strg/Cmd+G
Aktuelles Verzeichnis öffnen (⌘G (Windows, Linux Strg+G)) öffnet eine Schnellauswahl mit aktuellen Verzeichnissen, die über die Shell-Integration erfasst werden. Sie unterstützt das Anheften und unscharfe Suchen.

Diese Tastenkombination wurde gewählt, da `Strg+G` eine relativ wenig genutzte Shell-Tastenkombination ist.
Strg+G an die Shell senden - Strg+Alt+G
Da `Strg+G` jetzt zum Aktuellen Verzeichnis öffnen verwendet wird, ist `Strg+Alt+G` der neue Weg, `Strg+G` direkt an die Shell zu senden.
Aktuellen Befehl ausführen - Strg/Cmd+Alt+R
Aktuellen Befehl ausführen (⌃⌥R (Windows, Linux Strg+Alt+R)) öffnet eine Schnellauswahl mit zuletzt ausgeführten Befehlen, die den meisten Shells der umgekehrten Indexsuche (`Strg+R`) nachempfunden ist, aber in einem zugänglicheren und funktionaleren Paket. Sie unterstützt das Anheften und unscharfe Suchen.

Die Tastenkombination ⌃⌥R (Windows, Linux Strg+Alt+R) wurde gewählt, da es sich um ein alternatives Verhalten zu `Strg+R` handelt, aber diese Tastenkombination zu wichtig ist, um ihr Standardverhalten zu überschreiben.
Überschreibungen des Barrierefreiheitsmodus
Da die umgekehrte Indexsuche für Bildschirmleser nicht sehr zugänglich ist, löst `Strg+R` im Barrierefreiheitsmodus Aktuellen Befehl ausführen aus und `Strg+Alt+R` sendet `Strg+R` an die Shell.
Verbesserungen bei Links
In dieser Version gab es viele Verbesserungen bei der Linkerkennung im Terminal
-
Links mit Leerzeichen werden unter bestimmten Umständen erkannt
- Wenn die gesamte Zeile ein Link ist.
- Python-ähnliche Stack-Trace-Links: `File "<path>", line <line>`
- Einige Compilerfehler: `<path>(<line>,<col>) : ...`
- Unabhängig gestylte Textabschnitte werden alle unabhängig erkannt, sodass, wenn ein Pfad unterstrichen ist, er erkannt werden sollte, auch wenn er Leerzeichen enthält.
-
Links, die die Zeichen `[` und `]` enthalten, funktionieren jetzt, sie unterstützen sogar die Erkennung in schwierigen Randfällen wie diesem
![Links that end in the ] character will be detected, even when the whole link is wrapped in [ and ]](/assets/updates/1_75/terminal-square-bracket.png)
-
`vscode://`-Protokoll-Links werden jetzt erkannt.
-
`/mnt/`, `\\wsl$\` und `\\wsl.localhost\`-Links werden jetzt unter Windows erkannt.
-
OSC-Hyperlink-Unterstützung wurde in v1.72 hinzugefügt, das gängige `file://`-Protokoll, das häufig in diesen Links verwendet wird, wird jetzt unterstützt (z. B. `ls --hyperlink`).
-
Die Einstellung `terminal.integrated.enableFileLinks` verfügt jetzt über eine Option `"notRemote"`, die es ermöglicht, sie nur für Remote-Verbindungen zu deaktivieren, bei denen die Überprüfung der Dateiexistenz Leistungsprobleme verursachen kann.
Die meisten Linkformate unterstützen auch konsistent die folgenden Zeilen- und Spaltenformate
<datei>:<zeile><datei>:<zeile>:<spalte><datei> <zeile><datei> <zeile>:<spalte><datei>(<zeile>)<datei>(<zeile>,<spalte>)<datei>(<zeile>, <spalte>)<datei> (<zeile>)<datei> (<zeile>,<spalte>)<datei> (<zeile>, <spalte>)- Einfache Anführungszeichen oder keine Anführungszeichen funktionieren auch für diese
"<datei>",<zeile>"<datei>",<zeile>:<spalte>"<datei>", Zeile <zeile>"<datei>", Zeile <zeile>, Spalte <spalte>"<datei>", Zeile <zeile>, Spalte <spalte>"<datei>":Zeile <zeile>"<datei>":Zeile <zeile>, Spalte <spalte>"<datei>":Zeile <zeile>, Spalte <spalte>"<datei>": Zeile <zeile>"<datei>": Zeile <zeile>, Spalte <spalte>"<datei>": Zeile <zeile>, Spalte <spalte>"<datei>" auf Zeile <zeile>"<datei>" auf Zeile <zeile>, Spalte <spalte>"<datei>" auf Zeile <zeile>, Spalte <spalte>
Unterstützung für Drag & Drop von Dateien im Terminal-Editor
Terminal-Editoren unterstützen jetzt Drag & Drop, während die Umschalttaste gedrückt gehalten wird, um Dateien in das Terminal zu schreiben, anstatt einen Editor zu öffnen.

Erkennung von "unsicheren" Profilen
Die Erkennung der Cygwin-Shell unter Windows wurde kürzlich aufgrund einer Sicherheitslücke entfernt. In dieser Version bringen wir dies in einer sichereren Form zurück und erkennen auch mehr Shell-Profile, einschließlich Cygwin, Cmder und MSYS2. Um das Sicherheitsproblem zu mildern, muss eines dieser Profile konfiguriert werden, bevor es verwendet wird, über den Befehl Standardprofil auswählen.


Bei Auswahl erscheint eine Warnung, bevor es Ihrer `settings.json`-Datei hinzugefügt wird und wie ein reguläres Profil funktioniert.

Diese Warnung kann gefahrlos ignoriert werden, wenn der Computer nicht von mehreren Benutzern verwendet wird, z. B. in einer Unternehmensumgebung.
Umschaltbefehle in der Terminalansicht
Eine langjährige Anforderung war, den Befehl Terminal löschen zu den Aktionen der Terminalansicht hinzuzufügen, aber wir waren immer besorgt über eine überladene Benutzeroberfläche. Dank einer neuen internen Funktion gibt es nun versteckte Aktionen, die in einem Überlaufmenü erscheinen, aber per Rechtsklick ein- oder ausgeblendet werden können.


Strg+C bricht Auswahl unter Windows ab
Windows teilt sich `Strg+C` zwischen dem Kopieren einer Auswahl und dem Senden von `SIGINT` an die Shell, je nachdem, ob eine Auswahl vorhanden ist. Eine häufige Beschwerde war, dass, wenn Sie versehentlich eine Auswahl getroffen hatten, `Strg+C` möglicherweise kein `SIGINT` gesendet hat. Um dies zu mildern, wird `Strg+C` zum Kopieren der Auswahl nun auch die Auswahl löschen, sodass das zweimalige Drücken von `Strg+C` zuverlässig `SIGINT` entweder 1 oder 2 Mal sendet.
Einstellung für die Tabulatorstoppbreite des Terminals hinzufügen
Es gibt eine neue Einstellung `terminal.integrated.tabStopWidth`, die die Tabulatorstoppbreite des Terminals konfiguriert. Dies ist nützlich, wenn Programme das Zeichen `\t` ausgeben, anstatt die Tabulatorbreite in ihrer Konfiguration festzulegen.
Powerline-Dreieck und diagonale Linie benutzerdefinierte Glyphen
GPU-beschleunigte Terminals erhalten nun pixelgenaue benutzerdefinierte Glyphen für die Dreiecks- und Diagonalenlinien-Symbole (`U+E0B8-U+E0BF`) der Powerline-Erweiterungssymbole. Diese Zeichen sind mehrdeutig, ob sie ein- oder zweibereit sind und unterscheiden sich je nach verwendeter Schriftart, daher haben wir uns entschieden, sie als einbereit darzustellen.
Vorher

Nachher

Bracketed Paste Mode in "Ausgewählten Text im aktiven Terminal ausführen" verwendet
Der Befehl Ausgewählten Text im aktiven Terminal ausführen führt den Text nun im "Bracketed Paste Mode" in unterstützten Shells aus, sodass eine mehrzeilige Auswahl als eine einzige Eingabe behandelt wird, anstatt als mehrere Befehle. Dies macht das Ausführen tatsächlicher Skripte intuitiver und führt zu weniger Fehlern.
Vorher

Nachher

Schnellkorrekturen für Pwsh Preview Feedback Provider
PowerShell Preview hat kürzlich ein neues, über einen Plug-in erweiterbares Feedback-Provider-System implementiert, das es ermöglicht, Vorschläge zu drucken, wenn Befehle fehlschlagen.

Das Terminal zieht nun Schnellkorrekturen aus den Feedback-Providern `[General]` und `[cmd-not-found]`. Der Dialog für Schnellkorrekturen kann durch Klicken auf die Glühbirne oder über `Strg/Cmd+.` geöffnet werden.
Quellcodeverwaltung
Neue Befehle
Git 2.35 führte einen neuen `--staged`-Modus für den Befehl `git stash` ein. Dieser neue Modus ermöglicht es Ihnen, einfach nur die gestagten Änderungen zu stashen. Wenn Sie eine Version von Git haben, die diesen neuen Modus unterstützt, können Sie ihn mit dem neuen Befehl Git: Gestaged stashen nutzen.
VS Code hatte bereits Unterstützung für das Löschen eines lokalen Tags mit dem Befehl Git: Tag löschen. In diesem Meilenstein haben wir das Löschen von Remote-Tags mit dem neuen Befehl Git: Remote-Tag löschen ermöglicht.
Git-Repositories in übergeordneten Ordnern
VS Code verwendet `git rev-parse --show-toplevel`, um die Wurzel eines Git-Repositorys zu bestimmen. In den meisten Fällen befindet sich die Wurzel des Git-Repositorys innerhalb des Arbeitsbereichs. Es gibt jedoch Szenarien, in denen sich die Wurzel des Git-Repositorys in den übergeordneten Ordnern des Arbeitsbereichs oder der offenen Datei(en) befindet. Während das Öffnen von Git-Repositories in übergeordneten Ordnern von Arbeitsbereichen oder offenen Dateien eine großartige Funktion für fortgeschrittene Benutzer ist, kann es für neue Benutzer verwirrend sein. Wir hatten Fälle, in denen diese Verwirrung zum Verwerfen von Änderungen aus diesen Git-Repositories führte und Datenverlust verursachte.
Um Verwirrung zu vermeiden und das Risiko von Datenverlust zu reduzieren, zeigt VS Code ab diesem Meilenstein eine Benachrichtigung und eine neue Willkommensansicht in der Quellcodeverwaltungsansicht an und öffnet Git-Repositories aus den übergeordneten Ordnern von Arbeitsbereichen und offenen Dateien nicht mehr automatisch.

Thema: Dark+ V2 mit MacOS Modern Produkt-Icons
Die Schaltfläche Repository öffnen öffnet eine Schnellauswahl mit einer Liste aller Git-Repositories, die in den übergeordneten Ordnern des Arbeitsbereichs oder der offenen Datei(en) gefunden wurden. Die Wahl, ein Git-Repository aus den übergeordneten Ordnern zu öffnen, wird gespeichert.
Benutzer können steuern, wie Git-Repositories aus übergeordneten Ordnern behandelt werden, indem sie die Einstellung `git.openRepositoryInParentFolders` verwenden. Benutzer, die das alte Verhalten wiederherstellen möchten, können die Einstellung `git.openRepositoryInParentFolders` auf `always` setzen.
Deaktivierung von Befehlen
Abhängig von der Größe eines Git-Repositorys oder dem Vorhandensein verschiedener Git-Hooks können einige Git-Operationen lange dauern. Wir haben in der Vergangenheit festgestellt, dass das Initiieren von Befehlen, während ein vorheriger Befehl noch ausgeführt wird, zu unerwarteten Ergebnissen führen kann (z. B. das Verwerfen von Änderungen an einer Datei, während der Commit-Vorgang ausgeführt wird).
Um dies zu verhindern, deaktivieren wir die meisten Git-Befehle, während die folgenden Operationen ausgeführt werden: `Checkout`, `Commit`, `Push` und `Pull`. Das bedeutet, dass während der Ausführung dieser Operationen die meisten Git-Befehle nicht im Befehlspalette angezeigt werden und in der Quellcodeverwaltungsansicht und der Statusleiste deaktiviert sind.
Verbesserungen der Benutzeroberfläche
In diesem Meilenstein haben wir einige der Benutzeroberflächenelemente der Quellcodeverwaltung optimiert.
- Der Tooltip der Aktionsschaltflächen Commit und Branch veröffentlichen in der Quellcodeverwaltungsansicht enthält jetzt den Branch-Namen.
- Das Statusleistenelement Checkout verwendet nun ein anderes Symbol, abhängig vom Typ des ausgecheckten Ref (Branch, Tag oder Commit).
- Das Statusleistenelement Checkout zeigt nun ein sich drehendes Fortschrittssymbol an, während der Checkout-Vorgang ausgeführt wird.
Notebooks
Verbesserungen am Kernel-Picker
Wir haben den MRU (Most Recently Used) Kernel-Picker weiter verbessert. Er kann durch Setzen von `notebook.kernelPicker.type` auf `mru` aktiviert werden. Nicht verwendete Kernel werden in einen sekundären Picker Anderen Kernel auswählen... verschoben. Dieser Picker gruppiert alle Kernel nach ihrer Quelle (z. B. Jupyter Kernel, Python-Umgebung usw.), wenn Sie die neuesten Erweiterungen Jupyter und Python installiert haben.

Ausgewählte Zellen verbinden
Es gibt einen neuen Befehl Ausgewählte Zellen verbinden (`kb(notebook.cell.joinSelected`)`), um mehrere ausgewählte Zellen zu einer Zelle zusammenzuführen.

Fallback-Rendering der Ausgabe auf einen unterstützten Mimetype
Rich-Ausgaben in Jupyter Notebooks wie IPyWidgets sind nur während der Lebensdauer des Kernels sichtbar. Das bedeutet, wenn das Notebook geschlossen und wieder geöffnet wird, sind die Ausgaben nicht mehr sichtbar. In vielen dieser Fälle kann die Ausgabe jedoch mithilfe eines Fallback-Mechanismus gerendert werden. Beispielsweise kann ein IPyWidget in einigen Fällen (abhängig vom verwendeten Widget) als statisches Bild oder HTML-Inhalt gerendert werden.
Infolgedessen können Benutzer, die bestehende Notebooks mit Matplotlib-Widgets (oder ähnlichen Widgets) öffnen, die Ausgabe nun sehen, ohne den Code erneut ausführen zu müssen.

Neue Dokumentation
Es gibt zwei neue Themen, die Ihnen bei der Arbeit mit Jupyter Notebooks in VS Code helfen.
- Jupyter Notebooks im Web – Führen Sie Notebooks auf vscode.dev oder in GitHub Codespaces aus.
- Verwalten von Jupyter-Kernels – Erfahren Sie, wie Sie Ihr Notebook mit verschiedenen Jupyter-Kernels verbinden.
Debugging
JavaScript-Debugging
Verbesserte Startleistung von Node.js
Der "Breakpoint-Prädiktor" für das Node.js-Debugging wurde überarbeitet und verbessert, um die Geschwindigkeit für große Projekte drastisch zu erhöhen. So wurde beispielsweise die Startzeit beim Debuggen von Unit-Tests im TypeScript-Repository um 62 % und die Overheadzeit für das Debuggen und Starten eines Builds im VS Code-Repository um 80 % reduziert.
Wenn Sie Probleme haben, z. B. dass Breakpoints nicht getroffen werden, reichen Sie bitte ein Issue ein. Sie können das neue Verhalten deaktivieren, indem Sie `"enableTurboSourcemaps": false` in Ihrer `launch.json` festlegen, diese Option wird jedoch schließlich entfernt, wenn wir mehr Vertrauen gewinnen.
Sprachen
JavaScript React-Sprachbezeichnung ist jetzt JavaScript JSX
Der Sprachmodus `JavaScript React` wurde in `JavaScript JSX` umbenannt, um widerzuspiegeln, dass die JSX-Syntax von mehr als nur React verwendet wird. `TypeScript React` wurde ebenfalls in `TypeScript JSX` umbenannt.
Beachten Sie, dass nur die Sprachnamen, die in der Benutzeroberfläche angezeigt werden, geändert wurden. Die internen Sprach-IDs (`javascriptreact` und `typescriptreact`) bleiben aus Kompatibilitätsgründen unverändert.
Neues Shellscript-Grammatik
VS Code verwendet jetzt eine neue Grammatik von better-shell-syntax für die Shellscript-Syntaxhervorhebung.
Erweiterungen
Signierung von VS Marketplace-Erweiterungen
Jede Erweiterung, die seit November 2022 auf dem Visual Studio Marketplace hochgeladen wird, ist vom VS Marketplace codegesignet. Wenn ein Benutzer eine signierte Erweiterung über die Erweiterungsansicht von VS Code installiert, überprüft VS Code die Signatur und beweist somit, dass die Erweiterung tatsächlich vom VS Marketplace stammt und dass das Erweiterungspaket nicht verändert wurde. Wenn die Signaturprüfung fehlschlägt, wird VS Code die Erweiterung nicht installieren.
Der VS Marketplace ist dabei, alle vorhandenen Erweiterungen zu signieren (einschließlich Erweiterungen, die seit November nicht aktualisiert wurden). Sobald dieser Prozess abgeschlossen ist, in ein paar Monaten, wird VS Code verlangen, dass alle Erweiterungen vom VS Marketplace vom VS Marketplace signiert sind. Diese Anforderung garantiert die Integrität jedes Pakets vom VS Marketplace und verbessert somit die Gesamtsicherheit unseres Erweiterungsökosystems.
Hinweis: Erweiterungsautoren müssen nichts tun, um sich für die Marketplace-Signierung anzumelden. Zusätzlich zur Marketplace-Signierung arbeiten wir derzeit an der Publisher-Signierung. Weitere Informationen zur Publisher-Signierung finden Sie in Diskussion #137.
Erweiterungsversion von der CLI anheften
Wenn Sie eine bestimmte Version einer Erweiterung über die CLI installieren (`code --install-extension {publisher}.{name}@{version}`), wird sie nun an diese Version angeheftet. Das bedeutet, dass die Erweiterung nicht automatisch aktualisiert wird, wenn automatische Updates aktiviert sind.
Angeheftete Erweiterungsversionen synchronisieren
Einstellungen-Synchronisierung synchronisiert jetzt angeheftete Erweiterungsversionen. Das bedeutet, dass, wenn Sie eine bestimmte Version einer Erweiterung auf einem Computer installieren, diese auf allen anderen synchronisierten Computern an diese Version angeheftet wird.
Beiträge zu Erweiterungen
Python
Umgebung automatisch auswählen, wenn VS Code aus einem aktivierten Terminal gestartet wird
Wenn ein Benutzer VS Code über ein Terminal startet, mit dem eine Conda- oder virtuelle Umgebung bereits aktiviert ist, erkennt die Python-Erweiterung dies jetzt und wählt entweder die Umgebung selbst aus oder fragt den Benutzer, ob er diese Umgebung als seine ausgewählte Umgebung festlegen möchte; abhängig von der Umgebung.
Anforderungen-Dateien bei der Erstellung einer Umgebung auswählen
Beim Erstellen einer virtuellen Umgebung mit dem Befehl Python: Umgebung erstellen findet die Python-Erweiterung jetzt Anforderungsdateien im Arbeitsbereichsordner und ermöglicht Benutzern die Mehrfachauswahl einer beliebigen Anzahl von Anforderungen zur Installation.
Optionale Abhängigkeiten aus pyproject.toml auswählen
Die Python-Erweiterung erkennt und lädt die optionalen Abhängigkeiten, die im Teil [project.optional-dependencies] der Datei pyproject.toml angegeben sind. Wir verwenden den Pip-Befehl zur editierbaren Installation, wenn wir feststellen, dass der Arbeitsbereich eine pyproject.toml zusammen mit ausgewählten optionalen Abhängigkeiten enthält.
Automatische Einrückung mit Pylance
Wenn die Einstellung editor.formatOnType für Python-Dateien aktiviert ist, wird Pylance den Code beim Tippen automatisch einrücken, sodass Sie sich mehr auf die Logik Ihres Codes und weniger auf die Formatierung konzentrieren können.
Um dies auszuprobieren, aktivieren Sie formatOnType für Python-Dateien, indem Sie Folgendes zu Ihrer Benutzer-settings.json-Datei hinzufügen
"[python]": {
"editor.formatOnType": true,
},
Live-Vorschau
Einstellung für externe Browser-Vorschau
Die Live Preview-Erweiterung ermöglicht es Ihnen jetzt, die externe Browser-Vorschau in anderen Browsern als Ihrem Standardbrowser zu öffnen. Mit der Einstellung livePreview.customExternalBrowser können Sie festlegen, dass die externe Vorschau geöffnet wird in
- Microsoft Edge
- Google Chrome
- Mozilla Firefox
- Ihr Standardbrowser

Einstellung für den Server-Root
Sie können jetzt den Stammverzeichnispfad des Servers auf einen Unterordner in Ihrem Arbeitsbereich festlegen. Sie können beispielsweise Live Preview bitten, Dateien aus Ihrem src-Ordner in Ihrem Arbeitsbereich bereitzustellen, indem Sie livePreview.serverRoot auf "src" setzen.
ESLint
Die ESLint-Erweiterung wurde auf Version 2.4.0 aktualisiert. Hauptneuerungen sind
-
Unterstützung für die neuen experimentellen Flat-Konfigurationsdateien. Sie müssen die Unterstützung in VS Code separat über die Einstellung
eslint.experimental.useFlatConfigaktivieren. ESLint Version 8.21 oder neuer ist erforderlich. -
Die ESLint-Statusanzeige wurde in den Sprachstatusbereich von VS Code verschoben. Daher wurde die Einstellung
eslint.alwaysShowStatusentfernt. Verwenden Sie stattdessen die Anheftungsfunktion von VS Code.
Das Sprachstatus-Element informiert Sie nun über langsame Validierungszeiten und lange ESLint-Läufe bei der Berechnung von Code-Korrekturen beim Speichern. Das verfügbare Zeitbudget (in Millisekunden) kann über die beiden Einstellungen
eslint.timeBudget.onValidationundeslint.timeBudget.onFixesgesteuert werden. -
Lange Problem-Squiggles können mit der neuen Einstellung
eslint.problems.shortenToSingleLineauf eine einzelne Zeile verkürzt werden.
GitHub Pull Requests und Issues
Es gab weitere Fortschritte bei der GitHub Pull Requests and Issues-Erweiterung, die es Ihnen ermöglicht, Pull-Anfragen und Probleme zu bearbeiten, zu erstellen und zu verwalten. Zu den Highlights gehören
- Unterstützung für das Vorschlagen und Akzeptieren von Änderungen.
- GitHub-Handles in Kommentaren sind jetzt verlinkt.
- Labels können beim Erstellen von PRs hinzugefügt werden.
- Eine experimentelle Einstellung
githubPullRequests.experimental.quickDiffzeigt eine Quick-Diff-Ansicht in der Editor-Rinne für geänderte Zeilen in einem ausgecheckten PR an.
Schauen Sie sich die Changelog für die Version 0.58.0 der Erweiterung an, um die weiteren Highlights zu sehen.
GitHub Copilot
Die GitHub Copilot extension ist ein KI-gestütztes Code-Vervollständigungstool, das Ihnen hilft, Code schneller und intelligenter zu schreiben. Sie können die Copilot-Erweiterung in VS Code verwenden, um Code zu generieren oder aus dem generierten Code zu lernen.
GitHub Copilot integriert sich in den VS Code-Editor über die Inline-Vorschlags-Benutzeroberfläche, mit der Sie verschiedene Vorschläge überprüfen und den generierten Code einfach ganz oder teilweise übernehmen können.
GitHub Copilot ist jetzt für Unternehmen allgemein verfügbar, mit Funktionen wie Lizenzverwaltung, unternehmensweiten Richtlinienkontrollen und Datenschutzeinstellungen. Weitere Informationen finden Sie in der Ankündigung von GitHub Copilot für Unternehmen.
Um loszulegen, können Sie sich auf der GitHub Copilot Website für eine kostenlose Testversion anmelden.
Wir haben auch ein neues Thema GitHub Copilot in VS Code zur VS Code-Dokumentation hinzugefügt, das Ihnen den Einstieg in Copilot erleichtert.
Remote-Entwicklung
Die Remote Development-Erweiterungen ermöglichen es Ihnen, einen Container, einen Remote-Computer oder das Windows Subsystem for Linux (WSL) als voll funktionsfähige Entwicklungsumgebung zu nutzen. Highlights dieser Version sind
- Dev Container-Unterstützung für mehrere
devcontainers.json-Dateien. - Docker-Anmeldeinformationsweiterleitung.
- X11 & Wayland Weiterleitung
Neue Erweiterungsfunktionen und Fehlerbehebungen finden Sie in den Release Notes für Remote Development.
Remote-Tunnel
Schlafinhibition
Remote Tunnels können jetzt verhindern, dass der Computer unter Windows, macOS und systemd-basierten Linux-Systemen in den Ruhezustand wechselt. Dies ist nützlich, wenn Sie Ihren Desktop verlassen, um remote zu arbeiten, und sicherstellen möchten, dass der Tunnel zugänglich bleibt. Um diese Funktion zu nutzen
- Wenn Sie den Remote-Tunnelzugriff über die VS Code-Benutzeroberfläche aktivieren, aktualisieren Sie die Einstellung
remote.tunnels.access.preventSleepauftrue. - Wenn Sie
code tunnelüber die CLI verwenden, übergeben Sie ein--no-sleepFlag.
Verbesserungen der Zuverlässigkeit
Mehrere verbindungsbezogene Probleme in Remote Tunnels wurden behoben, was die Zuverlässigkeit verbessern sollte.
Weiterarbeiten an
Die Funktion "Weiterarbeiten an" unterstützt den Start in einem Git-Repository in einem lokalen Fenster und die Fortsetzung in einem Remote-Fenster, wie z. B. einem GitHub Codespace. Wenn Sie sich auf einem Branch befinden, der noch nicht remote veröffentlicht wurde, werden Sie nun automatisch aufgefordert, Ihren aktuellen Branch zu veröffentlichen, wenn Sie sich entscheiden, in einer anderen Entwicklungsumgebung weiterzuarbeiten, damit Sie Ihren vollständigen Branch-Kontext anderswo abrufen können.
Darüber hinaus können Sie, wenn Sie sich in einem Remote-Fenster in einem Git-Repository befinden, jetzt mit dem Befehl Weiterarbeiten in neuer lokaler Klon in einem neuen lokalen Klon auf VS Code Desktop weiterarbeiten.
Schließlich sind alle Optionen, um Ihre Arbeit in einem lokalen, Remote- oder Webfenster fortzusetzen, jetzt bequem im Remote-Indikator verfügbar. Diese Optionen sind auch über die Befehlspalette zugänglich.

Vorschau-Funktionen
Experimentelle Themes Dark+ V2 und Light+ V2
Zwei neue Farbschemata, Dark+ V2 und Light+ V2, sind jetzt verfügbar. Diese Themes sind eine Weiterentwicklung der bestehenden Dark+- und Light+-Themes und sollen zugänglicher sein und VS Code besser denn je aussehen lassen! Diese Themes sind immer noch als experimentell markiert, und wir freuen uns auf frühes Feedback.

Sie finden die neuen Themes im Farbschema-Auswahlfenster (Voreinstellungen: Farbschema ⌘K ⌘T (Windows, Linux Ctrl+K Ctrl+T)) als Light+ V2 (Experimentell) und Dark+ V2 (Experimentell) gelistet.
TypeScript 5.0 Unterstützung
Dieses Update enthält Unterstützung für die kommende TypeScript 5.0-Version. Weitere Details zu den aktuellen Arbeiten des TypeScript-Teams finden Sie im TypeScript 5.0 Iterationsplan. Einige Highlights der Editor-Tools
- Neue
switch- undcase-Vervollständigungen helfen Ihnen, beide Abschnitte vonswitch-Anweisungen schneller auszufüllen. - Arbeiten an der Aktivierung von projektweitem IntelliSense auf github.dev und vscode.dev.
Um die TypeScript 5.0 Nightly Builds zu nutzen, installieren Sie die TypeScript Nightly-Erweiterung.
"Häufig verwendete" Sektion in der Befehlspalette
In diesem Meilenstein haben wir der Befehlspalette eine neue Sektion "häufig verwendet" hinzugefügt. Das Ziel dieser Sektion ist es, neuen Benutzern ein besseres Verständnis dafür zu vermitteln, wofür die Befehlspalette da ist und was sie kann.

Thema: Panda Theme (Vorschau auf vscode.dev)
Diese Sektion wird unter der Sektion "zuletzt verwendet" angezeigt, um die Muskelgedächtnis nicht zu stören, und wenn Sie immer mehr Befehle ausführen und mit VS Code vertrauter werden, verschwindet entweder die Sektion (weil die "häufig verwendeten" Befehle nach oben zu "zuletzt verwendet" verschoben werden) oder die Sektion befindet sich unter dem sichtbaren Bereich und ist außer Sichtweite.

Thema: Panda Theme (Vorschau auf vscode.dev)
Vorerst haben wir diese neue Erfahrung hinter der Einstellung workbench.commandPalette.experimental.suggestCommands versteckt, planen aber, dies in naher Zukunft zum Standardverhalten zu machen. Lassen Sie uns wissen, was Sie davon halten!
Erweiterungs-Authoring
Kommentar-Thread-Status
Die CommentThread state API wurde finalisiert. Diese API steuert, ob ein Kommentar als gelöst oder ungelöst gerendert wird und kann das Filtern in der Kommentare-Ansicht beeinflussen. Mehr darüber, wie Sie die API verwenden können, erfahren Sie in Issue #127473.
Einstellung zum Ignorieren von zu synchronisierenden Einstellungen
Sie können eine Einstellung jetzt standardmäßig aus der Einstellungen-Synchronisierung ausblenden, indem Sie die Eigenschaft ignoreSync bei der Registrierung einer Einstellung verwenden. Dies ist nützlich für Einstellungen, die nicht über verschiedene Computer hinweg synchronisiert werden sollen.
Telemetrie
Die neue TelemetryLogger API wurde finalisiert. Diese API soll die Verwendung von Telemetrie für Erweiterungsautoren erleichtern und für Endbenutzer sicherer machen. Die API ermöglicht Dinge wie integrierte Geheimnisbereinigung, einen Telemetrie-Ausgabekanal, Fehlerbehandler und automatische Telemetrie-Ebenenverwaltung. Dies sollte zu einer kohärenteren Telemetrie-Erfahrung führen, die garantiert unseren Anforderungen entspricht.
Vorgeschlagene APIs
Jeder Meilenstein bringt neue vorgeschlagene APIs mit sich, und Erweiterungsautoren können sie ausprobieren. Wie immer freuen wir uns über Ihr Feedback. Hier sind die Schritte, um eine vorgeschlagene API auszuprobieren:
- Suchen Sie nach einem Vorschlag, den Sie ausprobieren möchten, und fügen Sie dessen Namen zu
package.json#enabledApiProposalshinzu. - Verwenden Sie das neueste vscode-dts und führen Sie
vscode-dts devaus. Es lädt die entsprechendend.ts-Dateien in Ihren Arbeitsbereich herunter. - Sie können nun gegen den Vorschlag programmieren.
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.
Notebook-Renderer zu einem anderen Mime-Typ übergehen lassen
Manchmal stellt ein Notebook-Renderer beim Rendern von Inhalten fest, dass er das Element nicht richtig rendern kann. Zum Beispiel erfordert der Renderer möglicherweise, dass der Kernel sich in einem bestimmten Zustand befindet.
Zuvor war die einzige Option des Renderers in solchen Fällen, eine Fehlermeldung zu rendern. Wir haben eine neue vorgeschlagene API hinzugefügt, die es einem Renderer ermöglicht, einen speziell benannten Fehler auszulösen, der VS Code dazu veranlasst, lautlos zu einem anderen gespeicherten Datentyp auf dem Notebook-Ausgabeelement zurückzufallen. Zum Beispiel könnte ein interaktiver Diagramm-Renderer diesen Fehler auslösen, um VS Code dazu zu veranlassen, auf die Bilddaten zurückzufallen, die ebenfalls auf dem aktuellen Ausgabeelement gespeichert sind.
Um diesen Fallback auszulösen, werfen Sie einen Fehler mit dem Namen vscode.fallbackToNextRenderer in renderOutputItem
throw new class extends Error {
override name = 'vscode.fallbackToNextRenderer';
}();
Dieser spezielle Fehler ist nur für Fälle gedacht, in denen das Rendern in bestimmten Situationen fehlschlägt. Wenn Ihr Renderer auf einen unerwarteten Fehler stößt, sollte er weiterhin eine Fehlermeldung anzeigen.
Schnelle Unterschiede
Die Schnelle-Unterschiede-Anzeige, die die Dekorationsleiste ist, die für hinzugefügte, geänderte und gelöschte Zeilen im Editor angezeigt wird, ist derzeit nur für SCM-Provider nutzbar. Die vorgeschlagene Quick-Diff-API ermöglicht die Verwendung der Schnellen Unterschiede außerhalb von SCM-Providern. Das folgende Beispiel stammt aus der GitHub Pull Request-Erweiterung, die die Quick-Diff-API verwendet, um schnelle Unterschiede für geänderte Zeilen in einem PR anzuzeigen.
vscode.window.registerQuickDiffProvider(
{ scheme: 'file' },
{
provideOriginalResource: (uri: vscode.Uri) => {
const changeNode = this.reviewModel.localFileChanges.find(
changeNode => changeNode.changeModel.filePath.toString() === uri.toString()
);
if (changeNode) {
return changeNode.changeModel.parentFilePath;
}
}
},
'GitHub Pull Request',
this.repository.rootUri
);
Der vollständige Vorschlag befindet sich in quickDiffProvider.d.ts.
Kontinuierliche Testläufe
Kontinuierliche Testläufe ermöglichen es Test-Erweiterungen anzuzeigen, dass sie Tests beobachten und bei Änderungen erneut ausführen können. Die Unterstützung dieser API ist eine Frage der Angabe der Unterstützung in Ihrem Testlaufprofil...
const profile = controller.createRunProfile('Run', TestRunProfileKind.Run, runHandler);
+profile.supportsContinuousRun = true;
Und dann Prüfung darauf im RunHandler
const runHandler = (request: TestRunRequest, token: CancellationToken) => {
+ if (request.continuous) {
+ return watchForFileChangesThenRunTests(request, token);
+ }
}
Der vollständige Vorschlag befindet sich in testContinuousRun.d.ts.
Technik
Dienstprogrammprozess für Extension Host
Die Nutzung von Dienstprogrammprozessen für den Extension Host, die für das Prozess-Sandboxing erforderlich sind, ist jetzt standardmäßig aktiviert. Es gibt immer noch eine Einstellung (extensions.experimental.useUtilityProcess), die wir bald entfernen werden.
Leistungstests über die Befehlszeile
Wir haben die folgenden Node-Module eingeführt, um eine Reihe von Leistungstests von der Befehlszeile auszuführen.
vscode-bisect - Dieses Modul hilft uns, Leistungsregressionen schnell zu messen. Führen Sie npx vscode-bisect --help aus, um zu erfahren, wie Sie dieses Tool bedienen.
vscode-perf - Dieses Modul hilft uns, die Leistung von VS Code zu messen. npx vscode-perf --help beschreibt, wie Sie dieses Tool bedienen.
GB18030-Zertifizierung
VS Code ist jetzt GB18030-zertifiziert – das bedeutet, dass ein Zertifizierungsausschuss innerhalb der chinesischen Regierung bestätigt hat, dass VS Code den vollen Umfang chinesischer Zeichen korrekt darstellen kann. Die Tests umfassten alle integrierten Nutzungsszenarien. Mit der Zertifizierung von VS Code wurde die Kernfamilie von Visual Studio (einschließlich Visual Studio und Visual Studio für Mac) unter GB18030 zertifiziert.
Migration zu ESM
Wir haben eine Reise zur Migration unserer Codebasis zu ESM begonnen. Das VS Code-Projekt ist älter als native Module (ESM) und wir haben bisher das asynchrone Modulsystem (AMD) verwendet. AMD hat uns gute Dienste geleistet, aber es ist Zeit, weiterzugehen. Wir haben begonnen, unsere Codebasis zu ESM zu migrieren, machen gute Fortschritte und hoffen, diese Bemühungen in den kommenden Monaten abzuschließen.
EOL-Warnung für macOS 10.11 und 10.12
VS Code Desktop wird in den nächsten Meilensteinen auf Electron 22 aktualisiert. Mit dem Electron 22-Update wird VS Code Desktop nicht mehr unter OS X El Capitan und macOS Sierra ausgeführt. In diesem Meilenstein haben wir Abkündigungshinweise für Benutzer auf diesen betroffenen Plattformen hinzugefügt, um sie auf die Migration vorzubereiten. Wenn Sie Benutzer der oben genannten OS-Versionen sind, werfen Sie bitte einen Blick in unsere FAQ für zusätzliche Informationen.
Verbesserte Nutzung von System- und Anwendungs-Sprachvariablen
In einer früheren Version begannen wir, die Anwendungssprache an Electron zu übergeben, damit es einige Komponenten wie die Fenstersteuerungsüberlagerung (WCO) korrekt anordnen kann. In der Zwischenzeit stützte sich der Sprachrekommandierer auf die Systemsprache, aber app.getLocale() begann, die Anwendungssprache anstelle der Systemsprache abzurufen, sodass wir eine neuere app.getPreferredSystemLanguages() Electron-API verwendeten, um die Systemsprache für den Sprachrekommandierer abzurufen. Infolgedessen trat eine Regression auf, bei der Erweiterungen in der Erweiterungsansicht nicht gerendert werden konnten, da die neue API einige Werte zurückgab, die toLocaleString() nicht parsen konnte.
Die sofortige Lösung, die wir für eine Wiederherstellungsversion veröffentlicht haben, war die Rückkehr zu app.getLocale() und die vorübergehende Unterbrechung der Sprachempfehlung, aber es stellt sich heraus, dass viele Bereiche der Codebasis die Anwendungssprachenvariable anstelle der Systemsprachenvariable hätten verwenden sollen.
Diese Version ersetzt viele Verwendungen der Systemsprache durch die Anwendungssprache. Im Gegenzug sollten Datumsangaben nun in einem Format lokalisiert werden, das besser mit der Anwendungssprache als mit der Systemsprache übereinstimmt.
Bemerkenswerte Fehlerbehebungen
- 99878 Voranstellen der PATH-Umgebungsvariable mit environmentVariableCollection funktioniert unter macOS nicht
- 153786 Befehl zum Öffnen einer Seite eines Diff-Editors
- 165123 Öffnen eines Diff-Editors mit zwei unbenannten Seiten ermöglichen
- 167004 Ausgabe: Ausgabekanäle anzeigen Ein Befehl zum Anzeigen eines Ausgabekanals
- 167528 Protokollierungsstufe eines Erweiterungsausgabekanals bleibt nach dem Neuladen des Fensters bestehen
Vielen Dank
Last but not least, ein großes Danke an die Mitwirkenden von VS Code.
Fehlerverfolgung
Beiträge zu unserer Fehlerverfolgung
- @gjsjohnmurray (John Murray)
- @IllusionMH (Andrii Dieiev)
- @ArturoDent (ArturoDent)
- @yume-chan (Simon Chan)
Pull-Anfragen
Beiträge zu vscode
- @a-stewart (Anthony Stewart): Fenster konsistent mit matchMedia-Aufrufen in browser.ts angeben PR #164020
- @Aaaaash (大表哥): Behebt, dass
standaloneTheme.definesimmer false zurückgibt. PR #169221 - @andschwa (Andy Jordan): Behebt Shell-Integration für PowerShell 5.1 PR #170516
- @antonioprudenzano (Antonio Prudenzano): Feat/155294 PR #168513
- @babakks (Babak K. Shandiz)
- Tilde (~) in Markdown-Syntax-Tokens einschließen PR #146417
- 🖊 Zweignamen im Commit-Button-Popup einschließen PR #167827
- Watch ohne Auswahl hinzufügen PR #171449
- @Balastrong (Leonardo Montini): 145458 Liste: Scrollen nach Seite unterstützen PR #145788
- @chiefmikey (Mikl Wolfe)
- Standardparameter-Typen von repository.ts entfernen PR #155908
- Git-Konfiguration.followTagsWhenSync-Definition aktualisieren PR #155914
- @chouzz (Chouzz): Korrigiert die falsche Beschreibung für die API für Aufrufhierarchie und Typenhierarchie PR #167718
- @d1y (源来氏佐田): feat: Screencast-Modus verschiebt Skalierung PR #156084
- @davidwengier (David Wengier): Razor-Repository aktualisieren PR #171560
- @dtivel (Damon Tivel)
- Erweiterungen: Bei UnknownError während der Signaturprüfung warnen, nicht fehlschlagen PR #169777
- Nicht blockieren, wenn die Erweiterungssignatur nicht verifiziert werden kann PR #172576
- @fadeevab (Alexander Fadeev): Makefile-Tests für
else ifeq|ifneq|...-Syntax PR #170888 - @giannisp (Ioannis Poulakas): Layout des Sucheingabefeldes verbessern PR #165989
- @gjsjohnmurray (John Murray)
- Verlauf zum neuen Widget für die Suche/Filterung von Listen/Bäumen hinzufügen (#_155578) PR #159188
- Umschalter für "Fuzzy-Suche" zum Baum-Such-Widget hinzufügen (#_116286) PR #164376
- Verhindern, dass nicht aufgelöste Baum-Zweige ausgeblendet werden PR #167047
- @gpoussel (Guillaume Poussel): Befehl zum Löschen von Remote-Tags hinzufügen (Fix #104845) PR #134327
- @HKalbasi: Korrigiert Problem mit Inlay-Hinweis-Standortlinks PR #167886
- @hughlilly (Hugh Lilly): Copyedit: „Double-clicking“ -> „Double-clicking“ PR #166758
- @jakebailey (Jake Bailey): Setzt disableLineTextInReferences=true in TS-Benutzereinstellungen PR #171376
- @jasonwilliams (Jason Williams): Ermöglicht das Öffnen einer Seite eines Diff-Editors als Editor (Fix #153786) PR #165765
- @jeanp413 (Jean Pierre)
- Behebt das Einfügen in die schnelle Gliederung zeigt kein Ergebnis an PR #166835
- Behebt, dass Editoren-Bereich-Terminals nach dem Beenden nicht wiederhergestellt werden PR #168887
- Behebt, dass wiederhergestellte Terminals/Aufgaben nach dem Neuladen die Einstellungen confirmOnKill und confirmOnExit ignorieren PR #168922
- Behebt, dass createTerminal kein Terminal in der ersten Editor-Gruppe erstellt PR #169050
- @joshuaobrien: Befehl "git stash staged only" hinzufügen PR #165649
- @laurentlb (Laurent Le Brun): Befehlsdauer: höhere Präzision für Telemetrie verwenden PR #167624
- @maIIady (Ilya Golovin): Fix: Git-Befehle funktionieren mit Tastatur PR #159113
- @markw65: Korrektur für nicht automatisch startende gleichnamige Aufgaben in verschiedenen Ordnern PR #168742
- @MarkZuber (Mark Zuber): Instrumentierung zur Messung hoher Latenzzeiten im Netzwerkprotokoll hinzufügen PR #168668
- @meskill: Fix: Nushell-Integration PR #169861
- @mkhl (Martin Kühl): Fish-Integrationskonfiguration über
XDG_DATA_DIRSverfügbar machen PR #168211 - @MonadChains (MonadChains)
- Issue 163528/Befehl zum Bearbeiten eines Breakpoints erstellen PR #163734
- Breakpoints-Ansicht aktivieren, wenn Debugging mindestens einmal gestartet wurde PR #169077
- @mroch (Marshall Roch): Fix anyScore firstMatchCanBeWeak PR #168266
- @mueheg (Google Henrik): Nicht den gesamten Inhalt des Eingabefeldes auswählen, bevor ein Bereich ausgewählt wird, behebt #167266. PR #167274
- @N1kO23: Formatierung ${rootNameShort} hinzugefügt PR #165744
- @ohah (ohah): Screencast IME-Bugfix (#_165248) PR #165249
- @ookami-kb (Kirill Bubochkin): shellIntegration.fish aktualisiert, um einen Fehler bei der Kommunikation des aktuellen Arbeitsverzeichnisses zu beheben PR #168452
- @PEZ (Peter Strömberg): Ziffern mit festem Abstand für Statusleisten-Elemente aktivieren PR #167310
- @pokey (Pokey Rule): Fehler bei der Behandlung von Snippet-Auswahlmöglichkeiten behoben PR #169287
- @probablykasper (Kasper): Option
terminal.integrated.tabStopWidthhinzugefügt PR #170733 - @pzhlkj6612 (Mozi): Terminal-Tabs: Ziehen und Klicken während der Umbenennung deaktivieren PR #166821
- @r3m0t (Tomer Chachamu): Behebt, dass Webviews verschwinden, wenn die Erweiterung langsam startet (#_168516) PR #168569
- @rezasoumi (RezCoder): Issue 163803/ Zuerst einen Ref auswählen, dann einen Namen in create-branch-from... PR #170908
- @rwe (Robert Estelle): shellIntegration-bash.sh: DEBUG trap-Ausdruck exakt beibehalten PR #165581
- @samdenty (Sam Denty): Korrigiert Tippfehler IExtensionRecommendationReson PR #163889
- @Sean1708 (Sean Marshallsay): Umgebungsvariable VSCODE_RESOLVING_ENVIRONMENT einführen. PR #168436
- @ssigwart (Stephen Sigwart)
- Maximierte Gruppenvergrößerung beim Hinzufügen und Entfernen von Gruppen oder Umschalten der Seitenleiste beibehalten PR #137962
- Korrigiert, dass das Einfügen die Einrückung entfernt PR #167687
- Kamelfall-Transformation hinzufügen PR #169512
- @ste42 (Steven Tam): Befehl für neues, unbenanntes Diff hinzufügen PR #168533
- @sumneko (最萌小汐): Lua-Grammatik aktualisieren PR #167692
- @weartist (Han)
- Einstellung korrigieren, um die Schleife von "nächste Änderung" in der Diff-Ansicht zu deaktivieren #163331 PR #164225
- Adapter-CSS für #165169 PR #167030
- Prozess-Explorer-Speicherort und Abmessungen merken PR #169090
- Quelle des Snippets hinzufügen, wenn Snippets mit demselben Namen erscheinen PR #169119
- applicationStorageMainService durch stateMainService ersetzen PR #169365
- @yiliang114 (易良): Fix: Tippfehler PR #158431
- @zardoy (Vitaly): [typescript] Behebt potenzielle
[object Object]in Mitgliedervorschlägen PR #171127
Beiträge zu vscode-css-languageservice
- @romainmenke (Romain Menke): neue CSS-Einheiten PR #324
Beiträge zu vscode-hexeditor
- @brabli (Bradley): Oktale Darstellung des aktuellen Bytes im Dateninspektor hinzufügen PR #410
Beiträge zu vscode-json-languageservice
- @rahulbanerjee26 (Rahul Banerjee): Schema für die Eigenschaft
errorMessagefür die Regel "not" prüfen PR #164
Beiträge zu vscode-languageserver-node
- @wkillerud (William Killerud): defaultBehavior-Antwort zu onPrepareRename hinzufügen PR #1161
Beiträge zu vscode-pull-request-github
- @eamodio (Eric Amodio): Aktualisiert TypeScript (Version 4.2) und Octokit (für behobene Typen) sowie einige kleinere andere PR #2525
- @sravan1946 (sravan): Nicht verfügbares Badge aus der Readme entfernen PR #4393
- @Thomas1664
- Layout von Kommentaren korrigieren & Mülleimer als Löschsymbol verwenden PR #4285
- Status-Badge einfärben PR #4286
- UI-Korrekturen für PR-Ansicht PR #4368
- Korrekte Berechtigung verwenden, um 'Sich selbst zuweisen' in der PR-Ansicht-Seitenleiste anzuzeigen PR #4369
- UI für PR-Entwurfsstatus-Check-Eintrag beheben PR #4370
Beiträge zu debug-adapter-protocol
- @mfussenegger (Mathias Fußenegger): Klarstellen, dass ein fehlendes canRestart im Frame true impliziert PR #365
Beiträge zu monaco-editor
- @jonatanklosko (Jonatan Kłosko): Elixir-Tokenizer aktualisieren PR #3453
- @rcjsuen (Remy Suen): Spalten des Farbgebers korrigieren PR #3348