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

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:

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.

Terminal accessibility help is presented on top of the terminal

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.

Workspace Trust Editor showing the trust buttons with their keyboard shortcuts

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.

Folder opened in Work profile

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.

Export and share profile

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.

Customize layout control showing the new Restore Defaults button

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.

Panel context menu showing the panel alignment submenu

Vereinfachtes Menü "Einstellungen"

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

Global settings menu showing expanded Themes flyout

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.

Large file confirmation shown for a 2GB package.json file

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.

Source column shows extensions contributing keybindings

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.

Extension keyboard shortcuts action

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.

Context key suggestions for when clause property

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.

There's a checkbox inside the release notes editor that allows the user to opt out reading release notes after every update

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.

CSS decorators shown in the editor

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.

Go To Match... command

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

The toolbar features buttons to quickly cycle through alternative suggestions and to accept a suggestion fully or word by word.

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

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.

Ctrl+Shift+O will open a Quick Pick with a categorized list of links found

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.

Directories are presented in a Quick Pick, split up by the current and previous sessions.

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.

Commands previously run are split up by current and previous sessions and also pulled in from the shell's history file

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.

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 ]

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

Dragging a file into a terminal editor will show 'Hold Shift to drop into editor'

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.

Select Default Profile is available via the terminal view dropdown or the Command Palette

The newly detected profiles appear in a "detected" section at the bottom of the Quick Pick

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

The notification explains the path is potentially unsafe as it could be modified by another user

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.

Clear terminal, Run Active File, and Run Selected Text commands are now available in the terminal view's overflow menu

Right-click one of the view actions to toggle which ones are visible and which go into the overflow menu

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

Triangles and diagonal line previously could display with bad anti-aliasing and odd borders

Nachher

Triangles and diagonal line glyphs are drawn pixel perfect

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

Previously, running two echo statements would be run one after the one with 2 separate prompts

Nachher

Running two echo statements will now run in a single prompt

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.

Running 'gcc' in pwsh preview will present 3 suggestions, which VS Code will present as Quick Fixes

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.

Notification that there is a Git repository in parent folders

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.

Notebook Kernel Picker

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.

Join Selected Cells command

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.

Notebook Renderer fallback

Neue Dokumentation

Es gibt zwei neue Themen, die Ihnen bei der Arbeit mit Jupyter Notebooks in VS Code helfen.

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

Live Preview Custom External Browser setting

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.useFlatConfig aktivieren. ESLint Version 8.21 oder neuer ist erforderlich.

  • Die ESLint-Statusanzeige wurde in den Sprachstatusbereich von VS Code verschoben. Daher wurde die Einstellung eslint.alwaysShowStatus entfernt. Verwenden Sie stattdessen die Anheftungsfunktion von VS Code.

    ESLint language status

    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.onValidation und eslint.timeBudget.onFixes gesteuert werden.

  • Lange Problem-Squiggles können mit der neuen Einstellung eslint.problems.shortenToSingleLine auf 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.quickDiff zeigt 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.preventSleep auf true.
  • Wenn Sie code tunnel über die CLI verwenden, übergeben Sie ein --no-sleep Flag.

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.

Continue Working On actions now available in the remote indicator

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.

Dark+ V2 and Light+ V2 experimental themes

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- und case-Vervollständigungen helfen Ihnen, beide Abschnitte von switch-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.

commonly used section in the Command Palette

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.

commonly used section with recently used commands

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:

  1. Suchen Sie nach einem Vorschlag, den Sie ausprobieren möchten, und fügen Sie dessen Namen zu package.json#enabledApiProposals hinzu.
  2. Verwenden Sie das neueste vscode-dts und führen Sie vscode-dts dev aus. Es lädt die entsprechenden d.ts-Dateien in Ihren Arbeitsbereich herunter.
  3. 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

Pull-Anfragen

Beiträge zu vscode

Beiträge zu vscode-css-languageservice

Beiträge zu vscode-hexeditor

Beiträge zu vscode-json-languageservice

Beiträge zu vscode-languageserver-node

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

Beiträge zu monaco-editor

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