April 2024 (Version 1.89)
Update 1.89.1: Dieses Update behebt diese Probleme.
Downloads: Windows: x64 Arm64 | Mac: Universal Intel silicon | Linux: deb rpm tarball Arm snap
Willkommen zur April 2024-Version von Visual Studio Code. In dieser Version gibt es viele Updates, die Ihnen hoffentlich gefallen werden. Einige der wichtigsten Highlights sind:
- Vorschau von Markdown-Bildern & Videos - Hovern Sie über einen Link, um Bilder & Videos in Markdown vorab anzusehen.
- Verbesserter Branch-Wechsel - Stellen Sie geöffnete Editoren nahtlos wieder her, wenn Sie zwischen Branches wechseln.
- Unterstützung für Mittelklick-Einfügen - Fügen Sie Text schnell im Terminal mit einem Mittelklick der Maus ein.
- WSL über Remote - SSH - Verwenden Sie WSL, wenn Sie über Remote - SSH mit einem Remote-Computer verbunden sind.
- Zugängliche Ansicht - Navigieren Sie durch Kommentare, Codeblöcke im Chat & Terminalbefehle aus der zugänglichen Ansicht.
- Tastenkombinationen für UI-Aktionen - Passen Sie Tastenkombinationen für UI-Aktionen direkt mit einem Rechtsklick an.
- Schnellsuche - Durchsuchen Sie Ihren Arbeitsbereich nach Text mit der Schnellsuche.
- KI-gestützte Umbenennungsvorschläge - Erhalten Sie intelligente Umbenennungsvorschläge im Editor mit Copilot.
- Copilot-Inhaltsausschluss - Schließen Sie Dateien von der Verwendung im Copilot-Kontext aus.
- Lokale Arbeitsbereichserweiterungen - Fügen Sie Erweiterungen direkt in Ihren Arbeitsbereich ein und installieren Sie sie.
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.
Barrierefreiheit
Fortschritts-Barrierefreiheits-Signal
Die Einstellung accessibility.signals.progress ermöglicht Screenreadern, den Fortschritt überall dort zu hören, wo eine Fortschrittsanzeige in der Benutzeroberfläche angezeigt wird. Das Signal wird nach drei Sekunden abgespielt und dann alle fünf Sekunden wiederholt, bis die Fortschrittsanzeige abgeschlossen ist. Beispiele, wann ein Signal abgespielt werden kann, sind: beim Durchsuchen eines Arbeitsbereichs, während eine Chat-Antwort aussteht, wenn eine Notebook-Zelle ausgeführt wird, und mehr.
Verbesserte Barrierefreiheits-Signale für den Editor
Es gibt jetzt separate Barrierefreiheits-Signale für den Fall, dass eine Zeile einen Fehler oder eine Warnung enthält oder wenn der Cursor auf einem Fehler oder einer Warnung liegt.
Wir unterstützen die Anpassung der Verzögerung von Barrierefreiheits-Signalen beim Navigieren zwischen Zeilen und Spalten im Editor separat. Außerdem haben ARIA-Alarmmeldungen eine höhere Verzögerung, bevor sie abgespielt werden, als Audio-Cue-Signale.
Inline-Vorschläge lösen kein Barrierefreiheits-Signal mehr aus, während das Vorschlagskontrollfeld angezeigt wird.
Barrierefreie Ansicht
Die zugängliche Ansicht (⌥F2 (Windows Alt+F2, Linux Shift+Alt+F2)) ermöglicht Screenreadern die Inspektion von Workbench-Funktionen.
Terminal-Verbesserungen
Wenn Sie nun zum nächsten (⌥↓ (Windows, Linux Alt+Down)) oder vorherigen (⌥↑ (Windows, Linux Alt+Up)) Befehl in der zugänglichen Terminalansicht navigieren, können Sie hören, ob der aktuelle Befehl fehlgeschlagen ist. Diese Funktionalität kann mit der Einstellung accessibility.signals.terminalCommandFailed umgeschaltet werden.
Wenn diese Ansicht aus einem Terminal mit aktivierter Shell-Integration geöffnet wird, warnt VS Code mit der Terminal-Befehlszeile für eine verbesserte Erfahrung.
Navigation durch Codeblöcke im Chat
Wenn Sie sich in der zugänglichen Ansicht für eine Chat-Antwort befinden, können Sie nun zwischen dem nächsten (⌥⌘PageDown (Windows, Linux Ctrl+Alt+PageDown)) und vorherigen (⌥⌘PageUp (Windows, Linux Ctrl+Alt+PageUp)) Codeblöcken navigieren.
Kommentare-Ansicht
Wenn eine Erweiterung installiert ist, die Kommentare bereitstellt und die Kommentare-Ansicht fokussiert ist, können Sie die Kommentare in der Ansicht aus der zugänglichen Ansicht inspizieren und durch sie navigieren. Auf den Kommentaren verfügbare Erweiterungs-Aktionen können ebenfalls aus der zugänglichen Ansicht ausgeführt werden.
Workbench
Berichterstattung über die Nutzung von Sprachmodellen
Für Erweiterungen, die das Sprachmodell verwenden, können Sie nun deren Nutzung von Sprachmodellen im Erweiterungseditor und im Laufzeit-Erweiterungseditor verfolgen. Sie können beispielsweise die Anzahl der Anfragen an das Sprachmodell anzeigen, wie im folgenden Screenshot für die Copilot Chat-Erweiterung gezeigt.

Lokale Arbeitsbereichserweiterungen
Lokale Arbeitsbereichserweiterungen, die erstmals in der VS Code 1.88-Version eingeführt wurden, sind allgemein verfügbar. Sie können nun eine Erweiterung direkt in Ihren Arbeitsbereich aufnehmen und nur für diesen Arbeitsbereich installieren. Diese Funktion wurde entwickelt, um Ihren spezifischen Arbeitsbereichsanforderungen gerecht zu werden und eine maßgeschneiderte Entwicklungserfahrung zu bieten.
Um diese Funktion nutzen zu können, muss sich Ihre Erweiterung im Ordner .vscode/extensions in Ihrem Arbeitsbereich befinden. VS Code zeigt diese Erweiterung dann im Abschnitt Arbeitsbereichsempfehlungen der Erweiterungsansicht an, von wo aus Benutzer sie installieren können. VS Code installiert diese Erweiterung nur für diesen Arbeitsbereich. Eine lokale Arbeitsbereichserweiterung erfordert, dass der Benutzer den Arbeitsbereich vertraut, bevor diese Erweiterung installiert und ausgeführt wird.
Betrachten Sie beispielsweise die Erweiterung vscode-selfhost-test-provider im VS Code-Repository. Diese Erweiterung integriert Testfunktionen und ermöglicht es Mitwirkenden, Tests direkt im Arbeitsbereich anzuzeigen und auszuführen. Der folgende Screenshot zeigt die Erweiterung vscode-selfhost-test-provider im Abschnitt Arbeitsbereichsempfehlungen der Erweiterungsansicht und die Möglichkeit, sie zu installieren.

Beachten Sie, dass Sie die entpackte Erweiterung in den Ordner .vscode/extensions aufnehmen und nicht die VSIX-Datei. Sie können auch nur die Quellen der Erweiterung aufnehmen und sie als Teil Ihrer Arbeitsbereichseinrichtung erstellen.
Benutzerdefinierte Editor-Labels in Quick Open
Letzten Monat haben wir benutzerdefinierte Labels eingeführt, mit denen Sie die Labels Ihrer Editor-Tabs personalisieren können. Diese Funktion wurde entwickelt, um Ihnen die Unterscheidung zwischen Tabs für Dateien mit demselben Namen, wie z. B. index.tsx-Dateien, zu erleichtern.
Aufbauend darauf haben wir die Verwendung benutzerdefinierter Labels auf Quick Open (⌘P (Windows, Linux Ctrl+P)) erweitert. Jetzt können Sie Ihre Dateien mithilfe der von Ihnen erstellten benutzerdefinierten Labels suchen, was die Dateinavigation intuitiver macht.

Tastenkombinationen anpassen
Wir haben die Anpassung von Tastenkombinationen für Benutzeroberflächenaktionen vereinfacht. Klicken Sie mit der rechten Maustaste auf ein beliebiges Aktions-Element in Ihrer Workbench und wählen Sie Tastenkombination anpassen. Wenn die Aktion eine when-Klausel hat, wird diese automatisch einbezogen, was es einfacher macht, Ihre Tastenkombinationen genau so einzurichten, wie Sie sie benötigen.
Tastenkombination für Suchen in Bäumen
Wir haben ein Problem behoben, bei dem das Suchfeld häufig unbeabsichtigt für ein Baumsteuerelement geöffnet wurde. Zum Beispiel, wenn das Suchfeld in der Explorer-Ansicht anstelle der Suche im Editor angezeigt wird.
Um diese unbeabsichtigten Aktivierungen zu reduzieren, haben wir die Standard-Tastenkombination zum Öffnen des Suchfeldes in einem Baumsteuerelement auf ⌥⌘F (Windows, Linux Ctrl+Alt+F) geändert. Wenn Sie die vorherige Einrichtung bevorzugen, können Sie die ursprüngliche Tastenkombination für den Befehl list.find einfach über den Editor für Tastenkombinationen wiederherstellen.
Verbesserungen bei der automatischen Erkennung des Systemfarbmodus
Wenn Ihr Thema dem Farbmodus Ihres Systems folgen sollte, konnten Sie dies bereits durch Aktivieren der Einstellung window.autoDetectColorScheme tun.
Wenn diese aktiviert ist, wird das aktuelle Thema durch die Einstellung workbench.preferredDarkColorTheme im Dunkelmodus und durch die Einstellung workbench.preferredLightColorTheme im Hellmodus bestimmt.
In diesem Fall wird die Einstellung workbench.colorTheme nicht mehr berücksichtigt. Sie wird nur verwendet, wenn window.autoDetectColorScheme deaktiviert ist.
In diesem Meilenstein ist neu, dass der Dialog zur Themenauswahl (Befehl Voreinstellungen: Farbmodus) nun den Systemfarbmodus berücksichtigt. Beachten Sie, wie die Themenauswahl nur dunkle Themen anzeigt, wenn das System im Dunkelmodus ist.

Der Dialog enthält auch eine neue Schaltfläche, die Sie direkt zur Einstellung window.autoDetectColorScheme führt.

Markdown-Links in Kommentaren einfügen
Im Eingabefeld des Kommentarsteuerelements hat das Einfügen eines Links dasselbe Verhalten wie das Einfügen eines Links in einer Markdown-Datei. Die Einfügeoptionen werden angezeigt und Sie können wählen, ob Sie einen Markdown-Link anstelle des rohen Links einfügen möchten, den Sie kopiert haben.

Quellcodeverwaltung
Geöffnete Editoren beim Wechseln von Branches speichern/wiederherstellen
In diesem Meilenstein haben wir eine langjährige Feature-Anfrage behoben, um Editoren beim Wechseln zwischen Quellcodeverwaltungs-Branches zu speichern und wiederherzustellen. Verwenden Sie die Einstellung scm.workingSets.enabled, um diese Funktion zu aktivieren.
Um die geöffneten Editoren beim ersten Wechseln zu einem Branch zu steuern, können Sie die Einstellung scm.workingSets.default verwenden. Sie wählen, keine offenen Editoren zu haben (empty) oder die aktuell geöffneten Editoren zu verwenden (current, der Standardwert).
Dedizierte Befehle zur Anzeige von Änderungen
Um die Anzeige bestimmter Änderungsarten im Multi-Datei-Diff-Editor zu erleichtern, haben wir eine Reihe neuer Befehle zur Befehlspalette hinzugefügt: Git: Gestagete Änderungen anzeigen, Git: Änderungen anzeigen und Git: Nicht-gestagete Änderungen anzeigen.
Notebooks
Minimaler Fehler-Renderer
Sie können ein neues Layout für den Notebook-Fehler-Renderer mit der Einstellung notebook.output.minimalErrorRendering verwenden. Dieses neue Layout zeigt nur den Fehler und die Nachricht sowie ein Steuerelement zum Erweitern des vollständigen Fehlersucheverlaufs an.
Deaktivierte Backups für große Notebooks
Periodische Dateisicherungen sind nun für große Notebook-Dateien deaktiviert, um die Zeit für das Schreiben der Datei auf die Festplatte zu reduzieren. Das Limit kann mit der Einstellung notebook.backup.sizeLimit angepasst werden. Wir experimentieren auch mit einer Option, um das Blockieren des Renderers beim Speichern der Notebook-Datei mit notebook.experimental.remoteSave zu vermeiden, sodass Autosaves ohne Leistungseinbußen erfolgen können.
Behebung von Leistungsregressionen bei Gliederung/Sticky Scroll
In den letzten Monaten haben wir Feedback zu Leistungseinbußen im Notebook-Editor erhalten. Die Regressionen sind schwer zu identifizieren und nicht leicht reproduzierbar. Dank der Community, die uns kontinuierlich Protokolle und Feedback zukommen ließ, konnten wir feststellen, dass die Regressionen von den Funktionen Gliederung und Sticky Scroll stammen, da wir ihnen neue Funktionen hinzugefügt haben. Die Probleme wurden in dieser Version behoben.
Wir schätzen das Feedback und die Geduld der Community und verbessern die Leistung des Notebook-Editors weiter. Wenn Sie weiterhin Leistungsprobleme haben, zögern Sie bitte nicht, ein neues Problem im VS Code-Repository zu melden.
Suchen
Schnellsuche
Mit der Schnellsuche können Sie schnell eine Textsuche in Ihren Arbeitsbereichsdateien durchführen. Die Schnellsuche ist nicht mehr experimentell. Probieren Sie sie aus, indem Sie den Befehl Suchen: Schnellsuche in der Befehlspalette (⇧⌘P (Windows, Linux Ctrl+Shift+P)) verwenden! ✨🔍
Theme: Night Owl Light (Vorschau auf vscode.dev)
Beachten Sie, dass alle Befehle und Einstellungen der Schnellsuche nicht mehr das Schlüsselwort "experimental" in ihrer Kennung haben. Zum Beispiel wurde die Befehls-ID workbench.action.experimental.quickTextSearch zu workbench.action.quickTextSearch. Dies kann relevant sein, wenn Sie Einstellungen oder Tastenkombinationen haben, die diese alten IDs verwenden.
Rekursive Erweiterung des Suchbaums
Wir haben eine neue Kontextmenüoption, die es Ihnen ermöglicht, einen ausgewählten Baumknoten im Suchbaum rekursiv zu öffnen.
Theme: Night Owl Light (Vorschau auf vscode.dev)
Terminal
Git Bash Shell-Integration standardmäßig aktiviert
Die Shell-Integration für Git Bash ist jetzt automatisch aktiviert. Dies bringt viele Funktionen für Git Bash, wie z. B. Befehlsnavigation, Sticky Scroll, Schnellkorrekturen und mehr.
Konfigurieren Sie Mittelklick zum Einfügen
Auf den meisten Linux-Distributionen fügt der Mittelklick die Auswahl ein. Ein ähnliches Verhalten kann nun auch auf anderen Betriebssystemen aktiviert werden, indem terminal.integrated.middleClickBehavior auf paste konfiguriert wird, was den regulären Clipboard-Inhalt beim Mittelklick einfügt.
Erweiterte Unterstützung für ANSI-Hyperlinks
ANSI-Hyperlinks, die über die OSC 8 Escape-Sequenz erstellt wurden, unterstützten bisher nur die Protokolle http und https, funktionieren aber nun mit jedem Protokoll. Standardmäßig werden aus Sicherheitsgründen nur Links mit den Protokollen file, http, https, mailto, vscode und vscode-insiders aktiviert. Sie können jedoch weitere über die Einstellung terminal.integrated.allowedLinkSchemes hinzufügen.
Neuer Icon-Picker für das Terminal
Das Auswählen des Symbols zum Ändern aus dem Kontextmenü des Terminal-Tabs öffnet nun den neuen Icon-Picker, der für Profile erstellt wurde.
![]()
Thema: Sapphire (Vorschau auf vscode.dev)
Unterstützung für die Berichterstattung über Fenstergrößen
Das Terminal reagiert nun auf die folgenden Escape-Sequenzanfragen:
CSI 14 tzur Berichterstattung über die Fenstergröße des Terminals in Pixeln.CSI 16 tzur Berichterstattung über die Zellengröße des Terminals in Pixeln.CSI 18 tzur Berichterstattung über die Fenstergröße des Terminals in Zeichen.
⚠️ Einstellung des Canvas-Renderers
Das Terminal verfügt über drei verschiedene Renderer: den DOM-Renderer, den WebGL-Renderer und den Canvas-Renderer. Wir wollten den Canvas-Renderer schon seit einiger Zeit entfernen, wurden aber durch inakzeptable Leistung im DOM-Renderer und die fehlende Implementierung von webgl2 durch WebKit blockiert. Beide Probleme wurden nun gelöst!
In dieser Version haben wir den Canvas-Renderer aus der Fallback-Kette entfernt, sodass er nur aktiviert wird, wenn die Einstellung terminal.integrated.gpuAcceleration explizit auf "canvas" gesetzt ist. Wir planen, den Canvas-Renderer in der nächsten Version vollständig zu entfernen. Bitte lassen Sie uns wissen, wenn Sie Probleme haben, wenn terminal.integrated.gpuAcceleration sowohl auf "on" als auch auf "off" gesetzt ist.
Debuggen
JavaScript Debugger
Der JavaScript-Debugger sucht nun automatisch nach Binärdateien, die im Ordner node_modules/.bin im runtimeExecutable-Konfiguration erscheinen. Nun löst er sie automatisch nach Namen auf.
Beachten Sie im folgenden Beispiel, dass Sie einfach mocha referenzieren können, ohne den vollständigen Pfad zur Binärdatei angeben zu müssen.
{
"name": "Run Tests",
"type": "node",
"request": "launch",
- "runtimeExecutable": "${workspaceFolder}/node_modules/.bin/mocha",
- "windows": {
- "runtimeExecutable": "${workspaceFolder}/node_modules/.bin/mocha.cmd"
- },
+ "runtimeExecutable": "mocha",
}
Sprachen
Vorschau von Bildern in Pfadvervollständigungen für Markdown
Die integrierten Markdown-Tools von VS Code bieten Pfadvervollständigungen für Links und Bilder in Ihrem Markdown. Wenn Sie einen Pfad zu einer Bild- oder Videodatei vervollständigen, zeigen wir nun eine kleine Vorschau direkt in den Vervollständigungsdetails an. Dies kann Ihnen helfen, das gewünschte Bild oder Video leichter zu finden.

Vorschau von Bildern und Videos in Markdown per Hover
Möchten Sie eine schnelle Vorschau eines Bildes oder Videos in Markdown erhalten, ohne die vollständige Markdown-Vorschau zu öffnen? Jetzt können Sie über einen Bild- oder Videopfad hovern, um eine kleine Vorschau davon zu sehen.

Verbesserte Umbenennung von Markdown-Überschriften
Wussten Sie, dass die integrierte Markdown-Unterstützung von VS Code es Ihnen ermöglicht, Überschriften mit F2 umzubenennen? Dies ist nützlich, da es auch alle Links zu dieser Überschrift automatisch aktualisiert. In dieser Iteration haben wir die Handhabung von Umbenennungen in Fällen verbessert, in denen eine Markdown-Datei doppelte Überschriften aufweist.
Betrachten Sie die Markdown-Datei
# Readme
- [Example 1](#_example)
- [Example 2](#_example-1)
## Example
...
## Example
...
Die beiden ## Example-Überschriften haben denselben Text, können aber jeweils einzeln über eine eindeutige ID (#example und #example-1) verlinkt werden. Zuvor, wenn Sie die erste ## Example-Überschrift in ## First Example umbenannt haben, wurde der Link #example korrekt in #first-example geändert, aber der Link #example-1 wurde nicht geändert. Allerdings ist #example-1 nach der Umbenennung kein gültiger Link mehr, da es keine doppelten ## Example-Überschriften mehr gibt.
Wir behandeln dieses Szenario jetzt korrekt. Wenn Sie beispielsweise die erste ## Example-Überschrift in dem obigen Dokument in ## First Example umbenennen, wird das neue Dokument wie folgt aussehen:
# Readme
- [Example 1](#_first-example)
- [Example 2](#_example)
## First Example
...
## Example
...
Beachten Sie, wie beide Links nun automatisch aktualisiert wurden, sodass sie gültig bleiben!
Remote-Entwicklung
Die Remote Development Extensions ermöglichen es Ihnen, einen Dev Container, einen Remote-Computer über SSH oder Remote Tunnels oder das Windows Subsystem for Linux (WSL) als vollwertige Entwicklungsumgebung zu nutzen.
Zu den Highlights gehören
- Verbindung zu WSL über SSH
Weitere Informationen zu diesen Funktionen finden Sie in den Release Notes für Remote Development.
Beiträge zu Erweiterungen
GitHub Copilot
Terminal Inline-Chat
Der Terminal Inline-Chat ist nun die Standarderfahrung im Terminal. Verwenden Sie die Tastenkombination ⌘I (Windows, Linux Ctrl+I), wenn das Terminal fokussiert ist, um ihn aufzurufen.

Der Terminal Inline-Chat verwendet den Chat-Teilnehmer @terminal, der Kontext zum integrierten Terminal-Shell und dessen Inhalt hat.

Sobald ein Befehl vorgeschlagen wurde, verwenden Sie ⌘Enter (Windows, Linux Ctrl+Enter), um den Befehl im Terminal auszuführen, oder ⌥Enter (Windows, Linux Alt+Enter), um den Befehl in das Terminal einzufügen. Der Befehl kann auch direkt in der Copilot-Antwort bearbeitet werden, bevor er ausgeführt wird (derzeit Ctrl+Down, Tab, Tab unter Windows & Linux, Cmd+Down, Tab, Tab unter macOS).

Schaltfläche für Copilot-gestützte Umbenennungsvorschläge
Copilot-gestützte Umbenennungsvorschläge können nun durch Klicken auf das Sparkle-Symbol im Umbenennungssteuerelement ausgelöst werden.
Inhaltsausschlüsse
GitHub Copilot Content Exclusions wird nun in Copilot Chat für alle Copilot for Business- und Copilot Enterprise-Kunden unterstützt. Informationen zur Konfiguration von Inhaltsausschlüssen finden Sie in den GitHub Docs.
Wenn eine Datei durch Inhaltsausschlüsse ausgeschlossen wird, kann Copilot Chat den Inhalt oder den Pfad der Datei nicht sehen, und sie wird nicht zur Generierung einer LLM-Empfehlung verwendet.


Vorschau: Generieren im Notebook-Editor
Wir unterstützen nun das Einfügen neuer Zellen mit automatisch aktiviertem Inline-Chat im Notebook-Editor. Wir zeigen eine Schaltfläche Generieren auf der Notebook-Symbolleiste und der Einfüge-Symbolleiste zwischen Zellen an, wenn die Einstellung notebook.experimental.generate auf true gesetzt ist. Sie kann auch durch Drücken von Cmd+I unter macOS (oder Ctrl+I unter Windows/Linux) ausgelöst werden, wenn der Fokus auf der Notebook-Liste oder dem Zellcontainer liegt. Diese Funktion kann helfen, den Prozess der Code-Generierung in neuen Zellen mithilfe des Sprachmodells zu vereinfachen.
Python
Code-Aktion "Alle geerbten abstrakten Klassen implementieren"
Die Arbeit mit abstrakten Klassen ist mit Pylance nun einfacher. Wenn Sie eine neue Klasse definieren, die von einer abstrakten Klasse erbt, können Sie nun die Code-Aktion Alle geerbten abstrakten Klassen implementieren verwenden, um automatisch alle abstrakten Methoden und Eigenschaften der übergeordneten Klasse zu implementieren.
Theme: Catppuccin Macchiato (Vorschau auf vscode.dev)
Neue Einstellung für automatische Einrückung
Zuvor wurde das automatische Einrückungsverhalten von Pylance über die Einstellung editor.formatOnType gesteuert, was problematisch war, wenn Sie die automatische Einrückung deaktivieren, aber die Formatierung bei Eingabe mit anderen unterstützten Tools aktivieren wollten. Um dieses Problem zu lösen, hat Pylance eine eigene Einstellung zur Steuerung seines automatischen Einrückungsverhaltens: python.analysis.autoIndent, die standardmäßig aktiviert ist.

Debugpy aus der Python-Erweiterung entfernt zugunsten der Python-Debugger-Erweiterung
Da die Debugging-Funktionalität nun von der Python Debugger-Erweiterung übernommen wird, haben wir debugpy aus der Python-Erweiterung entfernt.
Im Rahmen dieser Änderung verweisen sowohl "type": "python" als auch "type": "debugpy" in Ihrer launch.json-Datei auf den Pfad zur Python Debugger-Erweiterung, sodass keine Änderungen an Ihren launch.json-Dateien erforderlich sind, um effektiv zu laufen und zu debuggen. Zukünftig empfehlen wir die Verwendung von "type": "debugpy", da dies direkt der Python Debugger-Erweiterung entspricht.
Socket-Deaktivierung nun während Tests möglich
Sie können nun Tests mit Socket-Deaktivierung über die Test-UI beim Python Testing Rewrite ausführen. Dies wird durch einen Wechsel in der Kommunikation zwischen der Python-Erweiterung und dem Testlauf-Unterprozess ermöglicht, der nun Named Pipes verwendet.
Kleinere Testfehler behoben
Die Testansicht zeigt nun Projekte, die testscenarios mit unittest und parametrisierte Tests in verschachtelten Klassen verwenden, korrekt an. Darüber hinaus verarbeitet der Test-Explorer nun Tests in Arbeitsbereichen mit Symlinks, insbesondere Arbeitsbereichswurzeln, die Kinder von symlinked Pfaden sind, was insbesondere in WSL-Szenarien hilfreich ist.
Leistungsverbesserungen mit Pylance
Das Pylance-Team hat Feedback erhalten, dass die Leistung von Pylance in den letzten Releases nachgelassen hat. Wir haben mehrere kleinere Verbesserungen beim Speicherverbrauch und der Indizierungsleistung vorgenommen, um verschiedene gemeldete Probleme zu beheben. Für diejenigen, die immer noch Leistungsprobleme mit Pylance haben, bitten wir höflich, Probleme über den Befehl Pylance: Problem melden aus der Befehlspalette einzureichen, idealerweise mit Protokollen, Codebeispielen und/oder den installierten Paketen in der Arbeitsumgebung.
Hex-Editor
Der Hex-Editor verfügt nun über einen Einfügemodus, zusätzlich zu seinem langjährigen "Ersetzungsmodus". Der Einfügemodus ermöglicht das Hinzufügen neuer Bytes innerhalb und am Ende von Dateien und kann über die Taste Einfügen oder über die Statusleiste umgeschaltet werden.
Der Hex-Editor zeigt nun auch das aktuell gehoverte Byte in der Statusleiste an.
GitHub Pull Requests
Es gab weitere Fortschritte bei der GitHub Pull Requests-Erweiterung, die es Ihnen ermöglicht, Pull Requests und Issues zu bearbeiten, zu erstellen und zu verwalten. Neue Funktionen umfassen
- Experimentelle Konfliktlösung für nicht ausgecheckte PRs ist verfügbar, wenn sie durch die versteckte Einstellung
"githubPullRequests.experimentalUpdateBranchWithGitHub": trueaktiviert wird. Diese Funktion ermöglicht es Ihnen, Konflikte in einem PR zu lösen, ohne den Branch lokal auszuchecken. Die Funktion ist noch experimentell und funktioniert nicht in allen Fällen. - Es gibt einen "Barrierehilfe-Dialog", der angezeigt wird, wenn Barrierehilfe öffnen aus den Ansichten "Pull Requests" und "Issues" ausgelöst wird.
- Alle Überprüfungsaktionsschaltflächen werden in der Seitenleiste des aktiven Pull Requests angezeigt, wenn genügend Platz vorhanden ist.
Lesen Sie das Changelog für die Version 0.88.0 der Erweiterung, um die anderen Highlights kennenzulernen.
TypeScript
Dateibeobachtung vom VS Code-Kern gehandhabt
Eine neue experimentelle Einstellung typescript.tsserver.experimental.useVsCodeWatcher steuert, ob die TS-Erweiterung die Kern-Dateibeobachtungsunterstützung von VS Code für ihre Dateibeobachtungsanforderungen verwendet. TS nutzt die Dateibeobachtung intensiv, normalerweise mit einer eigenen Node.js-basierten Implementierung. Durch die Verwendung des VS Code-Dateibeobachters sollte die Beobachtung effizienter, zuverlässiger und ressourcenschonender sein. Wir planen, diese Funktion im Mai schrittweise für Benutzer zu aktivieren und auf Regressionen zu achten.
Vorschau-Features
VS Code-nativer Intellisense für PowerShell
Wir hatten für einige Zeit einen Prototyp für PowerShell-Intellisense im Terminal, an dem wir kürzlich mehr Zeit investiert haben, um ihn zu polieren. So sieht er aus:
Derzeit wird er bei der Eingabe des Zeichens - oder bei Drücken von Strg+Leertaste ausgelöst. Um diese Funktion zu aktivieren, setzen Sie "terminal.integrated.shellIntegration.suggestEnabled": true in Ihrer settings.json-Datei (er wird derzeit nicht in der Einstellungen-UI angezeigt).
Diese Funktion ist noch in einem frühen Stadium, aber wir würden uns über Ihr Feedback dazu freuen. Zu den größeren Dingen, die wir dafür geplant haben, gehören: zuverlässigeres Auslösen (#211222), konsistentere Vorschläge, unabhängig davon, wo das Popup ausgelöst wird (#211364), und die Erfahrung so nah wie möglich an die Editor-Intellisense-Erfahrung heranzubringen (#211076, #211194).
Automatische Aktualisierung von Markdown-Links beim Einfügen
Angenommen, Sie schreiben eine Markdown-Dokumentation und stellen fest, dass ein Abschnitt des Dokuments tatsächlich woanders hingehört. Sie kopieren ihn und fügen ihn in eine andere Datei ein. Alles in Ordnung, richtig? Nun, wenn der kopierte Text relative Pfadlinks, Referenzlinks oder Bilder enthielt, sind diese wahrscheinlich jetzt kaputt und Sie müssen sie manuell beheben. Das kann eine echte Plage sein, aber zum Glück gibt es das neue "Links beim Einfügen aktualisieren", das Ihnen hilft!
Um diese Funktionalität zu aktivieren, setzen Sie einfach "markdown.experimental.updateLinksOnPaste": true. Sobald sie aktiviert ist, korrigiert VS Code beim Kopieren und Einfügen von Text zwischen Markdown-Dateien im aktuellen Editor automatisch alle relativen Pfadlinks, Referenzlinks und alle Bilder/Videos mit relativen Pfaden.
Nach dem Einfügen können Sie, wenn Sie feststellen, dass Sie stattdessen den exakten Text einfügen möchten, den Sie kopiert haben, die Einfügeoption verwenden, um zum normalen Kopier-/Einfüge-Verhalten zurückzuschalten.
Unterstützung für TypeScript 5.5
Wir unterstützen nun die TypeScript 5.5 Beta. Lesen Sie den Blogbeitrag zur TypeScript 5.5 Beta und den Iterationsplan für Details zu dieser Version.
Highlights des Editors sind:
- Syntaxprüfungen für reguläre Ausdrücke.
- Verbesserungen bei der Dateibeobachtung.
Um die TypeScript 5.5 Beta zu verwenden, installieren Sie die TypeScript Nightly extension. Bitte geben Sie Feedback und lassen Sie uns wissen, wenn Sie auf Fehler bei TypeScript 5.5 stoßen.
API
Verbesserte Unterstützung für Sprachfunktionen in Kommentar-Eingabefeldern
Beim Verfassen eines neuen Kommentars erstellt VS Code einen reduzierten Texteditor, der von einem TextDocument unterstützt wird, genau wie die Haupteditoren in VS Code. In dieser Iteration haben wir einige zusätzliche API-Funktionen in diesen Kommentar-Texteditoren aktiviert. Dazu gehören:
- Unterstützung für Arbeitsbereich-Edits.
- Unterstützung für Diagnosen.
- Unterstützung für die "Paste-As"-Vorschlags-API.
Kommentar-Textdokumente können durch eine URI identifiziert werden, die das comment-Schema hat.
Wir freuen uns darauf, zu sehen, was Erweiterungen mit dieser neuen Funktionalität erstellen werden!
Finalisierte Window Activity API
Die Window Activity API wurde finalisiert. Diese API bietet ein einfaches zusätzliches boolesches Feld WindowState.active, das Erweiterungen verwenden können, um festzustellen, ob das Fenster kürzlich interagiert wurde.
vscode.window.onDidChangeWindowState(e => console.log('Is the user active?', e.active));
Vorgeschlagene APIs
Dialog für Barrierehilfe in einer Ansicht
Ein "Barrierehilfe"-Dialog kann für jede von Erweiterungen bereitgestellte Ansicht über die Eigenschaft accessibilityHelpContent hinzugefügt werden. Wenn die Ansicht fokussiert ist, hört der Screenreader einen Hinweis zum Öffnen des Dialogs (⌥F1 (Windows Alt+F1, Linux Shift+Alt+F1)), der eine Übersicht und hilfreiche Befehle enthält.
Diese API wird von den Issues- und PR-Ansichten der GitHub Pull Request-Erweiterung verwendet.
Sprachmodell- und Chat-API
Der Sprachmodell-Namespace (vscode.lm) exportiert neue Funktionen, um Informationen über Sprachmodelle abzurufen und Token für eine gegebene Zeichenfolge zu zählen. Dies sind getLanguageModelInformation und computeTokenLength. Sie sollten diese Funktionen verwenden, um Prompts zu erstellen, die innerhalb der Grenzen eines Sprachmodells liegen.
Hinweis: Der Inline-Chat wird jetzt von der kommenden Chat-Teilnehmer-API angetrieben. Das bedeutet auch, dass
registerInteractiveEditorSessionProviderveraltet ist und bald entfernt wird.
Aktualisierter Vorschlag für das Einfügen in Dokumente
Wir haben die Document Paste Proposed API weiter iteriert. Diese API ermöglicht Erweiterungen, sich in Kopier-/Einfügeoperationen in Textdokumenten einzuhaken.
Bemerkenswerte Änderungen an der API umfassen:
-
Eine neue Methode
resolveDocumentPasteEdit, die den Edit bei einer Einfügeoperation auffüllt. Diese sollte verwendet werden, wenn die Berechnung des Edits lange dauert, da sie nur aufgerufen wird, wenn der Einfüge-Edit tatsächlich angewendet werden muss. -
Alle Einfügeoperationen werden nun durch eine
DocumentDropOrPasteEditKindidentifiziert. Dies funktioniert ähnlich wie die bestehendeCodeActionKindund wird in Tastenkombinationen und Einstellungen für Einfügeoperationen verwendet.
Das Beispiel für die Document Paste-Erweiterung enthält alle neuesten API-Änderungen, sodass Sie die API testen können. Bitte geben Sie Feedback zu den Änderungen und dem allgemeinen API-Design.
Schwebender Detaillierungsgrad
In dieser Iteration haben wir eine neue vorgeschlagene API zum Ein- und Ausklappen von Hovers hinzugefügt, die editorHoverVerbosityLevel heißt. Sie führt einen neuen Typ namens VerboseHover ein, der zwei boolesche Felder hat: canIncreaseHoverVerbosity und canDecreaseHoverVerbosity, die signalisieren, dass die Detailgenauigkeit eines Hovers erhöht oder verringert werden kann. Wenn eines davon auf true gesetzt ist, wird der Hover mit +- und --Symbolen angezeigt, die verwendet werden können, um die Detailgenauigkeit des Hovers zu erhöhen/verringern.
Die vorgeschlagene API führt auch eine neue Signatur für die Methode provideHover ein, die einen zusätzlichen Parameter vom Typ HoverContext annimmt. Wenn eine Anfrage zur Hover-Detailgenauigkeit vom Benutzer gesendet wird, wird der Hover-Kontext mit dem vorherigen Hover sowie einer HoverVerbosityAction gefüllt, die angibt, ob der Benutzer die Detailgenauigkeit erhöhen oder verringern möchte.
preserveFocus bei von Erweiterungen ausgelösten Testläufen
Es gibt einen Vorschlag für ein preserveFocus-Boolean bei Testlaufanfragen, die von Erweiterungen ausgelöst werden. Zuvor verursachten Testläufe, die über Erweiterungs-APIs ausgelöst wurden, nie, dass der Fokus in die Ansicht Testergebnisse wechselte, was es einigen Erweiterungen erforderte, das Rad neu zu erfinden, um die Kompatibilität der Benutzererfahrung zu gewährleisten. Diese neue Option kann auf TestRunRequests gesetzt werden, um den Editor aufzufordern, den Fokus zu verschieben, als ob der Lauf von innerhalb des Editors ausgelöst worden wäre.
Bemerkenswerte Fehlerbehebungen
- 209917 Hilfsfenster: Maximierten Zustand wiederherstellen (Linux, Windows)
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)
- @RedCMD (RedCMD)
- @starball5 (starball)
- @ArturoDent (ArturoDent)
Pull-Anfragen
Beiträge zu vscode
- @4-tel: Korrektur: Suchen nach Zeilen in der Debug-Konsole, die mit "!" beginnen #174146 PR #210178
- @CareyJWilliams (Carey Williams): Task-Vorlage schreibt in eine leere tasks.json PR #210675
- @cpendery (Chapman Pendery)
- Korrektur: Bundling-Fehler führt dazu, dass Terminalvorschläge fehlschlagen PR #208822
- Feature: Git Bash-Unterstützung für Shell-Integration hinzufügen PR #208960
- Korrektur: Terminal-Markierungen unter Windows verbessern PR #209136
- Korrektur: Terminalvorschläge sollten modale Fenster ausblenden, wenn keine Vervollständigungen vorhanden sind PR #210289
- Korrektur: Split schlägt in Git Bash fehl PR #210513
- @Ditoo29 (Diogo Pinto): Fix: Serialisierung von Zeilenumbruchzeichen PR #209703
- @frankli0324 (Frank): Deaktiviert die automatische Anheftungsfunktion von Corepack bei der Ausführung von npm view PR #210601
- @g-plane (Pig Fang): Schließt den Git Multi-Diff-Editor automatisch, wenn alle Dateien gestaged oder committet sind PR #210327
- @gjsjohnmurray (John Murray)
- Verbessert die Beschreibungen der Einstellungen
workbench.activityBar.iconClickBehaviorundworkbench.activityBar.locationPR #210574 - Bereinigt das Aktivitätsleisten-Symbol-Abzeichen korrekt (Fix #210640) PR #210645
- Verbessert die Beschreibungen der Einstellungen
- @grgar (George Garside)
- Verwendet die Konfiguration window.customTitleBarVisibility nicht im Web PR #209162
- Fixiert den Titel des Farbpickers-Befehls PR #210349
- Verschiebt den Befehl "escape" ans Ende der Eingabeaufforderung PR #210443
- @hsfzxjy (Xie Jingyi): Protokolliert navigierbare Containerereignisse zur Fehlerbehebung PR #209357
- @jswillard (John Willard): Zeigt benutzerdefiniertes Label in der Schnellsuche an PR #209681
- @marvinthepa (Martin Sander): Einfügen per Mittelklick im Terminal PR #136633
- @mmastrac (Matt Mastracci): Fügt
windowOptionszu xtermTerminal hinzu, umESC [18tzu ermöglichen PR #209310 - @nopeless (nopeless): Fix: macht
cmdlokal in der Bash-Datei für Shell-Integration PR #208364 - @pagict (Premium): Feat: Fügt einen Menüeintrag 'expand-select' hinzu, um den Unterbaum in der Suchansicht zu erweitern PR #206033
- @pisv (Vladimir Piskarev): Korrigiert falsche Typen in
OpenJsDocLinkCommand_ArgsPR #209872 - @qirong77: Behebt fehlende Klasse in der Inlinesuggest-Toolbar im Monaco-Editor, was CSS-Variablen unwirksam machte PR #207582
- @r-sargento (Rafael Sargento): Behebt #201247 (integriertes Terminal setzt Umgebungsvariablen nicht vom Standardprofil) PR #209711
- @ScriptBloom (alviner): Fix: Minimap-Abschnittsüberschrift wird beim ersten Laden unvollständig angezeigt: #209603 PR #209605
- @sheetalkamat (Sheetal Nandi): Verwendet VS Code-Überwachungen für tsserver PR #193848
- @telamon (Tony Ivanov): Behoben #114425 Verhindert MIME-Pollution bei der Installation PR #209510
- @timorthi (Timothy Ng): Rendert Sticky Scroll neu, wenn der Anzeigemodus für Zeilennummern geändert wird PR #210815
- @WardenGnaw (Andrew Wang): Fügt 'noDebug' für den Befehl selectAndStartDebugging hinzu PR #209893
- @zWingz (zWing): Fix: Unerwarteter Fehler bei der Ausführung des Befehls workbench.extensions.installExtension PR #210135
- @ale-dg: Stellt kontinuierlich Feedback und Protokolle bereit, um uns bei der Diagnose mehrerer Leistungsprobleme im Notebook-Editor und bei Jupyter zu helfen.
Beiträge zu vscode-css-languageservice
- @liaoyinglong (vigoss): Unterstützt verschachtelte @container PR #390
Beiträge zu vscode-emmet-helper
Beiträge zu vscode-eslint
- @hyoban (Stephen Zhou): Fix: fügt json, jsonc zu den Standardoptionen von
eslint.probehinzu PR #1830
Beiträge zu vscode-hexeditor
- @tomilho (Tomás Silva)
- @veger (Maarten Bezemer): Behebt vertauschte Einträge PR #515
Beiträge zu vscode-json-languageservice
- @michaeltlombardi (Mikey Lombardi (He/Him)): Stellt sicher, dass der Parser errorMessage für minContains/maxContains verwendet PR #229
Beiträge zu vscode-languageserver-node
- @werat (Andy Hippo): Stürzt nicht ab, wenn ein nicht vorhandenes Feature deregistriert wird PR #1460
Beiträge zu vscode-python-debugger
- @DavidArchibald (David Archibald): Behebt Fehler beim Anfügen des Debuggers an einen Prozess unter WSL PR #267
Beiträge zu vscode-vsce
- @yutotnh (yutotnh): Feat: ignoriert .git, das von
git worktree addgeneriert wurde PR #943
Beiträge zu language-server-protocol
- @asukaminato0721 (Asuka Minato): Fügt 2 LSP hinzu PR #1918
- @MariaSolOs (Maria José Solano): Fügt eine Klarstellung der Markup-Diagnosemeldung hinzu PR #1917
- @practicalli-johnny (Practicalli Johnny): Server: Aktualisiert das Clojure-LSP-Repository und den Maintainer PR #1921
- @sz3lbi (szelbi): Fügt den SAP CDS-Server hinzu PR #1924
- @unvalley (unvalley): Docs: Fügt Biome zu den LSP-Servern hinzu PR #1923
- @Wilfred (Wilfred Hughes): Korrigiert Tippfehler im Doc-Kommentar RequestCancelled PR #1922
Beiträge zu monaco-editor
- @timotheeguerin (Timothee Guerin): Fügt Unterstützung für die Typskript-Sprache hinzu PR #4450