Oktober 2023 (Version 1.84)
Update 1.84.1: Das Update behebt diese Issues.
Update 1.84.2: Das Update behebt diese Issues.
Downloads: Windows: x64 Arm64 | Mac: Universal Intel silicon | Linux: deb rpm tarball Arm snap
Willkommen zur Oktober 2023-Version von Visual Studio Code. Es gibt viele Updates in dieser Version, die Ihnen hoffentlich gefallen werden. Einige der wichtigsten Highlights sind:
- Mehr Audio-Hinweise - Neue Audio-Hinweise zur Anzeige von Clear-, Save- und Formatierungsaktivitäten.
- Position der Aktivitätsleiste - Verschieben Sie die Aktivitätsleiste nach oben für eine kompakte Anzeige.
- Editor-Tabs ausblenden - Zeigen Sie mehrere, einzelne oder keine Editor-Tabs an.
- Editor-Gruppen maximieren - Erweitern Sie schnell die aktive Editor-Gruppe.
- Python-Verbesserungen - Besserer Codeausführung im Terminal, einfachere Erstellung virtueller Umgebungen.
- FastAPI-Tutorial - Erfahren Sie mehr über die Entwicklung von Python-FastAPI-Apps mit VS Code.
- Gradle für Java - Verbesserte Unterstützung für Java-Gradle-Projekte.
- Vorschau: GitHub Copilot - Chat-„Agenten“, Generierung von Commit-Nachrichten, Terminalunterstützung.
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
Opt-in Audio-Hinweise zum Leeren, Formatieren und Speichern
Wenn audioCues.clear aktiviert ist, gibt ein Ton an, dass das Terminal, eine Benachrichtigung oder die Chat-Antworten geleert wurden.
In Dateien und Notebooks kann audioCues.save und audioCues.format so eingestellt werden, dass sie bei Benutzergesten oder immer für jedes Ereignis abgespielt werden. Wenn sie deaktiviert sind, wird stattdessen eine ARIA-Meldung verwendet, die mit accessibility.alert.format und accessibility.alert.save angepasst werden kann.
Windows-Lupe synchronisiert
Die Windows-Lupe folgt nun korrekt dem Cursor in VS Code.
Verbesserungen bei der zugänglichen Ansicht
Standardmäßig wird der Cursor eines Benutzers am unteren Rand der zugänglichen Ansicht des Terminals positioniert. Um die Position stattdessen beizubehalten, können Sie terminal.integrated.accessibleViewPreserveCursorPosition auf true setzen.
Die zugängliche Ansicht kann mit accessibility.hideAccessibleView ausgeblendet werden, was nützlich ist, wenn Sie Ihren Bildschirm mit einem sehenden Publikum teilen.
Die zugängliche Ansicht schließt sich nun, wenn ein Benutzer mit der Eingabe beginnt und sich auf das vorherige Element konzentriert, um einen reibungsloseren Arbeitsablauf zu ermöglichen.
Texteditor im Fenster-Titel-Fokusansicht
In der letzten Iteration haben wir die Variable ${focusedView} zu window.title hinzugefügt. Nun zeigen wir auch an, wenn ein Text Editor fokussiert ist.
Workbench
Position der Aktivitätsleiste anpassen
Sie können die Aktivitätsleiste nun wie im folgenden Video gezeigt am oberen Rand der Seitenleiste verschieben.

Wenn die Aktivitätsleiste oben platziert ist, werden die Schaltflächen „Accounts“ und „Manage“ ganz rechts in der Titelleiste platziert.
Hinweis: Dies wird nur unterstützt, wenn die benutzerdefinierte Titelleiste aktiviert ist ("window.titleBarStyle": "custom").
Editor-Tabs ausblenden
Benutzer können nun Editor-Tabs ausblenden, indem sie workbench.editor.showTabs auf none setzen. Andere showTabs-Optionen sind multiple (Standard) und single, um einen einzelnen Editor-Tab für den aktiven Editor anzuzeigen.

Editor-Gruppe maximieren
Es gibt einen neuen Befehl Ansicht: Editor-Gruppe maximieren umschalten (⌘K ⌘M (Windows, Linux Ctrl+K Ctrl+M)), um eine Editor-Gruppe zu maximieren. Dies blendet alle anderen Gruppen aus und fügt der Tab-Leiste eine Schaltfläche hinzu, die es dem Benutzer ermöglicht, das vorherige Layout wiederherzustellen. Wenn die Einstellung workbench.editor.doubleClickTabToToggleEditorGroupSizes auf maximize gesetzt ist, können Benutzer auf einen Editor-Tab doppelklicken, um die Größe der Editor-Gruppe zu maximieren und zu minimieren.

Ähnliche Einstellungen suchen im Einstellungseditor
Wie die Befehlspalette führt der Einstellungseditor nun eine ähnliche Suche nach Einstellungen durch, um relevantere Ergebnisse für eine gegebene Abfrage zu erzielen.
Die Implementierung befindet sich derzeit in einem frühen Stadium, und Sie können in den nächsten Iterationen Verbesserungen erwarten.

Bestätigung für das Öffnen von Protokoll-Links
Wenn ein Protokoll-Link für eine Datei oder einen Arbeitsbereich in VS Code geöffnet wird, fragt ein Dialogfeld nun nach einer Bestätigung

Protokoll-Links können entweder auf eine lokale Datei (z.B. vscode://file/path/to/file) oder auf eine Remote-Datei (z.B. vscode://vscode-remote/ssh-remote+[USER@]HOST[:PORT]/path/to/file) verweisen. Für jeden Fall gibt es neue Einstellungen, um dieses Verhalten zu deaktivieren.
security.promptForLocalFileProtocolHandling– Für lokale Protokoll-Linkssecurity.promptForRemoteFileProtocolHandling– Für Remote-Protokoll-Links
Editor
Tastenkombination für „Nächste Schnelle Korrektur“
Es gibt eine neue Einstellung, um die nächstgelegene schnelle Korrektur in einer Zeile von ⌘. (Windows, Linux Ctrl+.) (Befehls-ID editor.action.quickFix) zu aktivieren, egal wo sich Ihr Cursor in dieser Zeile befindet. Zuvor eine Vorschau-Funktion, ist Code Action Widget: Nearby Quick Fixes Include (editor.codeActionWidget.includeNearbyQuickFixes) nun standardmäßig aktiviert.
Der Befehl hebt den Quellcode hervor, der mit Quick Fixes refactored oder behoben wird. Normale Codeaktionen und nicht-fixierende Refactorings können weiterhin an der Cursorposition aktiviert werden.

Mehrfachdokument-Hervorhebung
Die erste Unterstützung für Code-Hervorhebung über mehrere Dokumente hinweg wurde über die Einstellung Editor: Mehrfachdokument-Vorkommen (editor.multiDocumentOccurrencesHighlight) hinzugefügt. Diese erste Implementierung enthält nur textuelle Vorkommen, die Unterstützung für semantische Hervorhebung folgt in Zukunft.
Quellcodeverwaltung
Force Push mit --force-if-includes
In diesem Meilenstein gibt es nun Unterstützung für die Option --force-if-includes, die eine Hilfsoption zu --force-with-lease ist, die in Git 2.30 hinzugefügt wurde. Die neue Option stellt sicher, dass Commits, die per Force Push übertragen werden, nach der Überprüfung des Commits an der Spitze des Remote-Referenz erstellt wurden, und verringert die Wahrscheinlichkeit, Commits zu verlieren, wenn Auto Fetch aktiviert ist. Sie können die Verwendung von --force-if-includes deaktivieren, indem Sie die Einstellung git.useForcePushIfIncludes deaktivieren.
Notebooks
Verbesserungen beim Scrollen beim Ausführen
Wie die nächsten Zellen beim Ausführen über Notebooks mit Shift+Enter aufgedeckt werden, wurde verbessert, um die Konzentration auf die Ausgabe zu erleichtern. Dies reduziert auch die Anzahl der Zellenverschiebungen beim erneuten Ausführen von Zellen, die bereits eine Ausgabe haben.
Rendering von IPython-Stack-Traces
Fehler-Stack-Traces von IPython rendern nun klickbare Links, um zur Fehlerstelle zu navigieren. Dies gilt nur, wenn die Jupyter-Erweiterung den Stack-Trace nicht zuerst ändert: "jupyter.formatStackTraces": false.
Debuggen
JavaScript Debugger
Verbesserte Ereignis-Listener-Breakpoints-Ansicht
Die Ansicht für Ereignis-Listener-Breakpoints ist benutzerfreundlicher und wird nun als Baum mit Kontrollkästchen dargestellt.

Bessere Handhabung von Source Map-Umbenennungen
Wenn Code mit einem Bundler kompiliert wird, können Variablen umbenannt werden. Dies ist besonders häufig bei Imports in allen Bundlern und bestimmten lokalen Bezeichnern in esbuild der Fall. Der Debugger kennt nun die Bereiche, für die jede Umbenennung gilt, was viele Probleme behebt, auf die Benutzer historisch gestoßen sind.
Dies erfordert, dass der Debugger die Syntaxstruktur kompilierter Module parst. Dies geschieht in einem Hintergrundthread und nur, wenn Umbenennungen erkannt werden. Das Verhalten kann jedoch durch Setzen von "sourceMapRenames": false in Ihrer launch.json deaktiviert werden, um jegliche Leistungseinbußen zu vermeiden.
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
- Sie können sich nun mit Ihrem Microsoft-Konto bei Tunnels anmelden.
- Verbindung zu Dev-Containern über SSH und Tunnels nun unter Windows unterstützt.
Weitere Informationen zu diesen Funktionen finden Sie in den Release Notes zur Remote-Entwicklung.
Beiträge zu Erweiterungen
GitHub Copilot
Streaming von Inline-Chat
Der Inline-Chat der GitHub Copilot Chat-Erweiterung kann nun progressive Textbearbeitungen vornehmen und mit der Geschwindigkeit "tippen", mit der eine Antwort empfangen wird. Dies ist eine natürlichere Erfahrung als das frühere Verhalten, bei dem auf den Empfang der gesamten Chat-Antwort gewartet wurde, bevor sie im Editor angewendet wurde.
Nicht alle Bearbeitungen sind Einfügungen, und bei Ersetzungen hat Copilot manchmal Schwierigkeiten, den Anfang zu finden. In diesen Fällen funktioniert Streaming möglicherweise noch nicht wie erwartet. Bleiben Sie dran für Verbesserungen in diesem Bereich.
Chat-Agenten
In dieser Iteration haben wir eine neue Möglichkeit entwickelt, mit Copilot Chat zu interagieren: Agenten. Agenten sind wie Experten, die eine Spezialität haben, mit der sie Ihnen helfen können, und Sie können mit ihnen im Chat sprechen, indem Sie sie mit dem @-Symbol erwähnen. Derzeit gibt es zwei Agenten:
@workspacehat Kontext über den Code in Ihrem Arbeitsbereich und kann Ihnen helfen, ihn zu navigieren und relevante Dateien oder Klassen zu finden.@vscodekennt Befehle und Funktionen im VS Code-Editor selbst und kann Ihnen helfen, diese zu nutzen.
Jeder Agent unterstützt auch einige Slash-Befehle, und die zuvor verwendeten Slash-Befehle müssen nun mit einem Agenten verwendet werden. Zum Beispiel ist /explain jetzt @workspace /explain. Als Abkürzung können Sie aber auch einfach / eingeben, um eine Liste von Vorschlägen zu erhalten, die automatisch zum vollständigen Agenten und Befehl erweitert werden.
@workspace
Der Agent @workspace verwendet eine Meta-Prompt, um zu bestimmen, welche Informationen aus dem Arbeitsbereich gesammelt werden müssen, um Ihre Frage zu beantworten. Ein Ansatz, der vom Meta-Prompt verwendet wird, ist das Zurückgreifen auf Ihren Gesprächsverlauf, um mehrdeutige Wörter/Phrasen in einer Frage zu klären. Wenn Sie beispielsweise @workspace Was macht es? fragen, berücksichtigt der Meta-Prompt nun den Verlauf, um herauszufinden, was es tatsächlich ist und welche Informationen gesammelt werden müssen, um die Frage zu beantworten. Der Meta-Prompt verwendet auch eine breite Palette von Begriffen, einschließlich weiterer Synonyme, um eine Liste potenziell relevanter Begriffe zu generieren.
Dateipfade und Symbole in @workspace-Antworten sind klickbare Links. Dies erleichtert die Navigation zu dem Code, auf den sich Copilot bezieht.
Der Agent @workspace berücksichtigt .gitignore und .copilotignore bei der Entscheidung, welche Dateien aus dem Arbeitsbereich indiziert werden sollen.
Agenten ersetzen Slash-Befehle
Die neuen Agenten ersetzen die Funktionalität von Slash-Befehlen wie /createWorkspace und /createNotebook mit zusätzlichen Slash-Modifikatoren.
/createWorkspace-->@workspace /new/createNotebook-->@workspace /newNotebook/explain-->@workspace /explain/fix-->@workspace /fix/test-->@workspace /test/vscode-->@vscode /api

Probieren Sie die neuen Agenten aus und geben Sie /help ein, um weitere Tipps zu erhalten!
Generierung von Commit-Nachrichten
Copilot Chat kann nun Commit-Nachrichten basierend auf den anstehenden Änderungen generieren, indem es die neue „Sparkle“-Aktion im Eingabefeld der Quellcodeverwaltung verwendet.
Importgruppierung
Generierte Imports werden nun immer am Anfang der Datei oder unterhalb bestehender Importblöcke platziert. Dies wird für die meisten gängigen Programmiersprachen unterstützt.
Verbesserter Kontext für /explain
Sie können Copilot Chat bitten, eine Codeauswahl im aktiven Editor zu erklären, entweder über den Befehl @workspace /explain oder über die Aktion Mit Copilot erklären im Kontextmenü. Copilot Chat enthält nun die Implementierungen von referenzierten Symbolen wie Funktionen und Klassen, was zu genaueren und nützlicheren Erklärungen führt. Dies funktioniert am besten über Dateien hinweg, wenn Sie eine Erweiterung installiert haben, die Sprachdienste für eine der folgenden Sprachen bereitstellt: TypeScript/JavaScript, Python, Java, C#, C++, Go oder Ruby.
Persistenter Zustand der Chat-Ansicht
Zuvor war die Copilot Chat-Ansicht zunächst ausgeblendet und wurde dann später angezeigt. Die Copilot Chat-Ansicht bleibt nun zwischen Fensterneuladungen aktiv, sodass Sie sie nicht manuell erneut öffnen müssen. Darüber hinaus führt Sie die Chat-Ansicht nun durch den Prozess der Anmeldung bei GitHub und der Aktivierung Ihres kostenlosen Testzeitraums für GitHub Copilot.
Chat in konfigurierter Anzeigesprache
Standardmäßig antwortet Copilot Chat nun zunächst in Ihrer konfigurierten Anzeigesprache in VS Code. Sie können dieses automatische Verhalten überschreiben, indem Sie github.copilot.chat.localeOverride konfigurieren.
Reduzierte Ausführlichkeit der Willkommensnachricht
Sie können nun steuern, ob Copilot Chat Sie mit einer ausführlichen Willkommensnachricht begrüßt, wenn Sie eine Konversation starten, indem Sie github.copilot.chat.welcomeMessage konfigurieren. Die Optionen sind first (Standard), always und never.
Schnelle Korrekturen im Terminal
Wenn ein fehlgeschlagener Befehl im Terminal ausgeführt wird, bietet Copilot nun eine schnelle Korrektur an, um zu erklären, was passiert ist.

Dies kann über das Glanzsymbol (⌘. (Windows, Linux Ctrl+.)) neben der aktuellen Terminal-Eingabeaufforderung ausgelöst werden.
Befehlsvorschläge im Terminal
Copilot kann nun CLI-Befehlsvorschläge über die Tastenkombination ⌘I (Windows, Linux Ctrl+I) anbieten, wenn das Terminal fokussiert ist. Dies öffnet Quick Chat mit vorausgefülltem @workspace /terminal.

Dieser Slash-Befehl /terminal ist für die Vorschläge von Shell-Befehlen mit der aktuellen Shell optimiert. Die Qualität der Vorschläge und die Benutzererfahrung werden in der nächsten Version weiter verbessert.
Verbesserte Anzeige der Aktion "Im Terminal ausführen"
Wenn ein Codeblock einen Shell-Sprachtyp hat, wird die Aktion Im Terminal ausführen nun beim Überfahren mit der Maus über den Codeblock angezeigt.

Inline-Chat kann mit Terminal-Befehlen antworten
Der Inline-Chat kann nun mit Befehlen antworten, die im Terminal ausgeführt werden sollen.

Python
Verbesserungen beim Ausführen von Zeilen im Terminal
Die Python-Erweiterung hat das Verhalten des Sendens von Zeilen an die Python REPL (Shift+Enter) verbessert, wenn keine Codeauswahl zum Ausführen getroffen wurde. Zuvor, wenn Sie den Cursor auf eine Zeile Python-Code setzten und Shift+Enter drückten, sendete die Python-Erweiterung den exakten Zeileninhalt an die REPL, selbst wenn dies fehlschlagen würde, z.B. weil es Teil eines mehrzeiligen Befehls war.
Mit der neuen experimentellen Funktion Smart Send sendet die Python-Erweiterung den kleinsten ausführbaren Codeblock um die Cursorposition herum an die REPL zur Ausführung. Dies stellt sicher, dass nur vollständige und ausführbare Codeabschnitte an die REPL gesendet werden. Der Cursor wird auch automatisch zur nächsten ausführbaren Zeile bewegt, um eine reibungslose Erfahrung bei der iterativen Ausführung mehrerer Chunks zu gewährleisten.
Um dies auszuprobieren, können Sie die folgende Benutzereinstellung hinzufügen: "python.experiments.optInto": ["pythonREPLSmartSend"]. Obwohl diese Funktion derzeit hinter einem Experiment steckt, erwarten wir, dass sie zukünftig zum Standardverhalten wird. Wenn Sie Feedback oder Vorschläge haben, wie wir diese Funktion weiter verbessern können, lassen Sie es uns bitte wissen!
Theme: Catppuccin Macchiato (Vorschau auf vscode.dev)
Verbesserungen bei Python-Linting-Erweiterungen
Wir haben mehrere Verbesserungen an unseren unterstützten Linting-Erweiterungen vorgenommen, um eine konfigurierbarere und flexiblere Erfahrung mit Ihren bevorzugten Python-Tools zu ermöglichen.
Die Erweiterungen Pylint, Mypy und Flake8 bieten nun Einstellungen, mit denen Sie Glob-Muster für Dateien angeben können, die vom Linting ausgeschlossen werden sollen. Dies kann nützlich sein, wenn Sie mit einer großen Codebasis mit vielen Unterprojekten arbeiten und bestimmte Ordner vom Linting ausschließen möchten. Diese Einstellungen sind "pylint.ignorePatterns", "mypy-type-checker.ignorePatterns" und "flake8.ignorePatterns".
Diese Erweiterungen unterstützen auch cwd-Einstellungen, mit denen Sie das Arbeitsverzeichnis für den Linter angeben können. Diese Einstellung wurde aktualisiert, um die Variable ${fileDirname} zu unterstützen, sodass das Arbeitsverzeichnis dynamisch auf den Elternordner der Datei gesetzt werden kann, die Sie im Editor geöffnet haben. Dies ist nützlich, wenn Sie mit Mono-Repos arbeiten und möchten, dass das Arbeitsverzeichnis des Linters dynamisch aktualisiert wird, während Sie Dateien aus verschiedenen Unterprojekten öffnen. Diese Einstellungen sind "pylint.cwd", "mypy-type-checker.cwd" und "flake8.cwd".
Der Standardwert der Einstellung "mypy-type-checker.preferDaemon" wurde geändert (nur für die Mypy-Erweiterung). Zuvor war er auf true gesetzt, was bedeutete, dass der Mypy-Daemon standardmäßig verwendet wurde. Nach Erhalt von Feedback haben wir den Standardwert auf false geändert. Wenn Sie sich fragen, welcher Wert für Sie am besten geeignet ist, empfehlen wir die Verwendung des Mypy-Daemons, wenn Sie den Mypy-Berichtsumfang auf den gesamten Arbeitsbereich gesetzt haben ("mypy-type-checker.reportingScope": "workspace") aus Leistungsgründen. Andernfalls, wenn der Berichtsumfang auf die aktuelle Datei gesetzt ist, empfehlen wir die Verwendung der Mypy-Ausführungsdatei, die mit der Erweiterung geliefert wurde.
Veraltete integrierte Linting- und Formatierungsfunktionen
Angesichts all der Arbeit und Verbesserungen an den Linting- und Formatierungserweiterungen in VS Code haben wir die integrierten Linting- und Formatierungsfunktionen, die in der Python-Erweiterung ausgeliefert werden, als veraltet erklärt. Dies umfasst alle Linting- und Formatierungsbefehle sowie Einstellungen (python.linting.* und python.formatting.*). Wir empfehlen, diese veralteten Einstellungen zu entfernen, wenn Sie sie noch verwenden, und stattdessen die unterstützten Linting- und Formatierungserweiterungen zu verwenden.
Wenn Sie einen Linter ohne unterstützte Erweiterung verwenden, schauen Sie sich die von der Community erstellte Ruff-Erweiterung an. Ruff ist ein Python-Linter, der in Rust geschrieben ist, und unterstützt verschiedene Linter wie pyflakes, pycodestyle, pydocstyle und mehr. Kürzlich wurde die Unterstützung für die Verwendung von Ruff als Formatter in VS Code hinzugefügt ("[python]": { "editor.defaultFormatter": "charliermarsh.ruff" }).
Sie können auch Ihre eigene Linter- oder Formatter-VS-Code-Erweiterung für Ihr bevorzugtes Python-Tool erstellen. Schauen Sie sich unser Python Tools Extension Template für einen schnellen Einstieg an.
Benachrichtigung zum Erstellen einer Umgebung
Virtuelle Umgebungen sind eine empfohlene Methode, um mit Python-Projekten mit zu installierenden Abhängigkeiten zu arbeiten. Sie bieten Isolation und Reproduzierbarkeit und sind in Python-Projekten sehr beliebt.
Aus diesem Grund zeigt die Python-Erweiterung nun eine Benachrichtigung an, wenn Sie versuchen, eine Python-Datei oder ein Projekt mit aufgeführten Abhängigkeiten auszuführen oder zu debuggen, wenn keine virtuelle Umgebung in Ihrem Arbeitsbereich ausgewählt ist. Diese Benachrichtigung bietet eine schnelle Möglichkeit, eine neue virtuelle Umgebung über den Befehl Python: Umgebung erstellen zu erstellen.
Wenn Sie bereits eine virtuelle Umgebung in Ihrem Arbeitsbereich haben, haben Sie die Möglichkeit, diese auszuwählen oder zu löschen und neu zu erstellen.
Diese Benachrichtigung kann deaktiviert werden, indem Sie python.python.createEnvironment.trigger auf off setzen.

Hilfe zur Deaktivierung virtueller Umgebungen
Vor ein paar Monaten haben wir eine neue experimentelle Funktion zur Terminalaktivierung mithilfe von Umgebungsvariablen angekündigt, um Ihren Entwicklungs-Workflow zu verbessern, indem die ausgewählte Umgebung im Terminal automatisch aktiviert wird, ohne dass explizite Aktivierungsbefehle erforderlich sind. Da jedoch keine expliziten Aktivierungsskripte funktionieren, funktionierte der Befehl deactivate nicht mehr, wenn dieses Experiment aktiviert war.
Die Python-Erweiterung erkennt nun, wenn Sie versuchen, den Befehl deactivate auszuführen, und zeigt eine Hilfsbenachrichtigung an, um Sie darüber zu informieren, wie Sie Skripte für Ihre Shell hinzufügen können, damit der Befehl wieder funktioniert, wenn die Umgebung über Umgebungsvariablen aktiviert wird. Sie bietet auch eine Schaltfläche zum Öffnen Ihrer Shell-Profil-Datei, um die notwendigen Skripte hinzuzufügen.

Die vollständige Dokumentation zum Hinzufügen der notwendigen Skripte für Ihre Shell finden Sie im vscode-python Wiki.
Wenn Sie nicht am Experiment teilnehmen und diese Funktion ausprobieren möchten, können Sie die folgende Benutzereinstellung hinzufügen: "python.experiments.optInto": ["pythonTerminalEnvVarActivation"].
Verbesserungen der Testergebnisse
Wir haben erhebliche Verbesserungen daran vorgenommen, wie Sie die Testergebnisse in der Python-Erweiterung anzeigen und mit ihnen interagieren können, wenn das pythonTestAdapter-Experiment aktiviert ist, das vor einigen Monaten angekündigt wurde. Zuvor waren die Ausgaben von Testsuche und -ausführung inkonsistent über den Ausgabe-Kanal Python Test Log und das Panel Test Results verteilt, wobei einige Informationen in beiden Duplikate waren. Um die Erfahrung zu konsolidieren, werden Ausgaben im Zusammenhang mit der Testausführung im Panel Test Results angezeigt, und die Testsuchen im Ausgabe-Kanal Python. Weitere Informationen finden Sie in unserem zugehörigen vscode-python Wiki.
Dieser neue Ansatz unterstützt auch die Farbgebung der Ausgabe, wenn Sie Pytest verwenden und "python.testing.pytestArgs": ["--color=yes"] in Ihrer settings.json einstellen. Die Farbgebung funktioniert nur für die Testausführung im Panel Test Results und nicht für die Suche oder die Ausgabe im Panel Python Test Log.

Es gibt auch eine neue Schaltfläche Ausgabe anzeigen, um die Test-Logs aus der Test-Explorer-Ansicht einfach zu öffnen, wenn Fehler bei der Testsuchen auftreten.

Plattformspezifische Versionen der Python Debugger-Erweiterung
Die Python Debugger-Erweiterung liefert nun plattformspezifische Versionen, sodass nur die notwendigen plattformspezifischen Dateien bei jedem Update installiert werden. Dies reduziert die Größe der Erweiterung und hilft, die Startzeit zu verbessern.
Tensorboard-Erweiterung
Die Tensorboard-Funktionalität wurde aus der Python-Erweiterung in eine eigenständige Tensorboard-Erweiterung verschoben.
Wenn Sie Probleme mit dieser neuen Erweiterung haben oder Feedback geben möchten, können Sie ein Problem im GitHub-Repository der Tensorboard-Erweiterung melden.
Jupyter
Vorherige/Abhängige Zellen ausführen
Mit der Jupyter-Erweiterung können Sie nun alle vorherigen oder abhängigen Zellen einer Zielzelle aus dem Dropdown-Menü neben der Schaltfläche Zelle ausführen ausführen. Dies ist weiterhin eine Vorschau-Funktion und kann mit der Einstellung jupyter.executionAnalysis.enabled und der Einstellung notebook.consolidatedRunButton aktiviert werden.
Diese Funktion wird derzeit von der Pylance-Erweiterung unterstützt. Sie müssen daher die neueste Vorabversion von Pylance installieren, um diese Funktion nutzen zu können.
VS Code Sprache
Wir stellen eine neue Erweiterung vor, die Sprachunterstützung für VS Code bietet! Die neue VS Code Speech-Erweiterung integriert sich in GitHub Copilot Chat, um Voice-to-Text-Transkriptionsdienste für die Chat-Eingabe zu ermöglichen.
Nach der Installation erscheint ein Mikrofon-Symbol. Wenn Sie es auswählen, beginnt die Chat-Eingabe mit Text gefüllt zu werden, basierend auf den transkribierten Ergebnissen Ihrer Stimme. Die Transkription wird lokal auf Ihrem Computer durchgeführt und erfordert keine Internetverbindung.

GitHub Pull Requests und Issues
Es wurden weitere Fortschritte bei der Erweiterung GitHub Pull Requests und Issues erzielt, die es Ihnen ermöglicht, Pull Requests und Issues zu bearbeiten, zu erstellen und zu verwalten.
- Projekte werden in der Pull Request-Beschreibungs-Webview angezeigt und können dort hinzugefügt werden.
- Integriert mit GitHub Copilot zur Generierung von PR-Titeln und -Beschreibungen aus der Erstellen-Ansicht des PR.
- PRs, die mit der GitHub CLI (
gh pr checkout) ausgecheckt werden, werden von der Erweiterung erkannt.
Überprüfen Sie das Changelog für die Version 0.76.0 der Erweiterung, um die anderen Highlights zu erfahren.
Vorschau-Features
Schwebende Editorfenster
Wir haben weiter untersucht, wie Editoren aus dem Workbench-Fenster in eigene Fenster gezogen werden können, und möchten nun die VS Code Insiders-Community einladen, mit dieser spannenden neuen Funktion zu spielen und Feedback zu geben.
Stellen Sie sicher, dass Sie VS Code Insiders installieren und den neuen Befehl Ansicht: Aktiven Editor in ein neues Fenster verschieben auf Editoren ausführen, um sie in einem schwebenden Fenster zu öffnen.
Wir müssen noch viele Issues lösen und fehlende Features bereitstellen, aber wir sind optimistisch, dass wir diese Funktion bald in der stabilen Version aktivieren können.
Vielen Dank für das Testen!
WASM-WASI-Unterstützung für Language Server
Die Unterstützung für Language Server in WASM/WASI wurde der experimentellen wasm-wasi-core-Erweiterung hinzugefügt.
Es gibt auch eine Erweiterung, die einen einfachen Language Server in Rust zeigt und zu WASM kompiliert, im vscode-wasm Repository. Die Erweiterung hängt von der Sprachserver-Crate ab, die vom Rust-Analyzer-Team gepflegt wird.
Erweiterungs-Authoring
Verbesserter Test-Runner
Es gibt nun einen Kommandozeilen-Runner und eine Erweiterung für VS Code, um das Ausführen von Tests für Erweiterungen zu erleichtern. Erweiterungen, die den neuen Ansatz verwenden, können in der Test-UI von VS Code ausgeführt werden. Obwohl eine gewisse Migration erforderlich ist, dauert dies in der Regel nur wenige Minuten. Lesen Sie die VS Code Dokumentation zum Testen von Erweiterungen für weitere Informationen.
Finalisierte TestMessage.contextValue API
Sie können contextValue auf TestMessages setzen, die angezeigt werden, wenn Benutzer Aktionen auf diesen Nachrichten ausführen. Zusätzlich sind zwei neue Menübeitragspunkte verfügbar: testing/message/context und testing/message/content. Ersteres wird in der Test-Ergebnis-Baumansicht auf der Nachricht angezeigt, letzteres über der Nachricht im Editor. Dies könnte beispielsweise verwendet werden, um eine Aktion zum Aktualisieren einer Fixture beim Snapshot-Testing bereitzustellen.

Lesen Sie mehr über contextValue in Issue #190277.
Aktualisierte Codicons
Die folgenden neuen Icons wurden unserer Codicon-Bibliothek hinzugefügt:
![]()
copilotgit-fetchmicmic-filledthumbsup-filledthumbsdown-filledcoffeegamesnakevrchipmusicpiano
Neue Theme-Farben
textPreformat.background: Hintergrundfarbe für vorformatierte Textsegmente
Root-Ordner-Icons nach Namen
Autoren von Dateisymbol-Themen können nun namensspezifische Icons für Root-Ordner definieren, indem sie die neuen Eigenschaften rootFolderNames und rootFolderNamesExpanded verwenden. Sie können die Anleitung für Dateisymbol-Themen lesen, um weitere Informationen zu erhalten.
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 die neueste Version von @vscode/dts und führen Sie
npx @vscode/dts devaus. Dies lädt die entsprechendend.ts-Dateien in Ihren Workspace 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.
Unterstützung für die Konfiguration von Daten, die über den Issue Reporter an Erweiterungen gesendet werden
Eine neue vorgeschlagene API ermöglicht es Erweiterungsautoren, zusätzliche Daten über den Issue Reporter zu senden.
export interface IssueUriRequestHandler {
// Handle the request by the issue reporter for the Uri you want to direct the user to.
handleIssueUrlRequest(): ProviderResult<Uri>;
}
export interface IssueDataProvider {
// Provide the data to be used in the issue reporter.
provideIssueData(token: CancellationToken): ProviderResult<string>;
// Provide the template to be used in the description of issue reporter.
provideIssueTemplate(token: CancellationToken): ProviderResult<string>;
}
export namespace env {
export function registerIssueUriRequestHandler(
handler: IssueUriRequestHandler
): Disposable;
export function registerIssueDataProvider(provider: IssueDataProvider): Disposable;
}
Sie können eine URI über handleIssueUrlRequest bereitstellen, damit die Erweiterung extern auf GitHub eingereicht wird, oder eine Vorlagen-string und Erweiterungsdaten-string für provideIssueData und provideIssueTemplate bereitstellen, um zusätzliche Erweiterungsdaten über den Issue Reporter an GitHub zu senden.
Lesen Sie mehr über diesen Vorschlag in Issue #196863.
Dateiwächter mit benutzerdefinierten Ausschlussregeln
In diesem Meilenstein haben wir eine vorgeschlagene API zum Erstellen von Dateisystem-Watchern mit vollständiger Kontrolle über Ausschlussregeln hinzugefügt.
export interface FileSystemWatcherOptions {
/**
* An optional set of glob patterns to exclude from watching.
* Glob patterns are always matched relative to the watched folder.
*/
readonly excludes?: string[];
}
export function createFileSystemWatcher(
pattern: RelativePattern,
options?: FileSystemWatcherOptions
): FileSystemWatcher;
Diese neue API gibt Ihrer Erweiterung die volle Kontrolle über den Dateiwächter, unabhängig davon, ob es sich um einen rekursiven oder nicht-rekursiven Wächter handelt oder ob er innerhalb oder außerhalb des Arbeitsbereichs beobachten möchte. Benutzer- oder standardmäßig konfigurierte Ausschlussregeln für die Dateibeobachtung werden nicht angewendet, sodass Sie sicher sein können, nur die Ereignisse zu erhalten, für die Sie sich angemeldet haben.
Technik
Support für Windows 32-Bit endet
Es gibt keine Unterstützung mehr für VS Code unter Windows 32-Bit. Wenn Sie immer noch die 32-Bit-Version von VS Code verwenden, sollten Sie auf die 64-Bit-Version aktualisieren.
Erweiterungen und Dokumentation
Gradle für Java
Die Java-Entwicklung in VS Code ist dank der verbesserten Gradle for Java-Erweiterung einfacher geworden. Die Vorabversion bietet bessere Unterstützung für die Erstellung von Gradle-Projekten, indem sie das Build Server Protocol (BSP) übernimmt. Ähnlich wie andere in VS Code verwendete Protokolle, z.B. das Language Server Protocol (LSP), bietet das BSP eine Abstraktionsschicht zwischen Entwicklungsumgebungen und Build-Tools wie Gradle.
Um die neue Gradle-Unterstützung auszuprobieren, installieren Sie sowohl das Extension Pack for Java als auch die Vorabversion der Gradle for Java-Erweiterung. Mehr über Gradle und BSP erfahren Sie in diesem aktuellen Blogbeitrag des Java-Extension-Teams.

FastAPI-Tutorial
FastAPI ist ein modernes und schnelles Web-Framework zum Erstellen von Python-APIs, das sich dank seiner Einfachheit und Leistung immer größerer Beliebtheit erfreut.
Erfahren Sie jetzt, wie Sie das Beste aus VS Code und der Python-Erweiterung herausholen, um FastAPI-Anwendungen zu erstellen und zu debuggen, mit unserem neuen FastAPI-Tutorial!
Benutzerhandbuch für benutzerdefinierte Layouts
Es gibt einen neuen Artikel zu benutzerdefinierten Layouts, der die Layout-Anpassung für die Benutzeroberfläche und Editoren beschreibt. Dort erfahren Sie, wie Sie die Hauptelemente der VS Code-Benutzeroberfläche wie Ansichten, Panels und Editoren an Ihren bevorzugten Workflow anpassen können.

Themen umfassen
- Primäre und sekundäre Seitenleisten
- Position und Ausrichtung des Panels
- Angeheftete Editor-Tabs
- Layout der Editor-Gruppen
- und mehr
Bemerkenswerte Fehlerbehebungen
- 194812 Inhaltsverzeichnis wird während der Suche angezeigt, wenn
workbench.settings.settingsSearchTocBehavioraufhidegesetzt ist - 195722 Leerer Einstellungseditor bei Netzwerkproblemen
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)
- @starball5 (starball)
- @ArturoDent (ArturoDent)
Pull-Anfragen
Beiträge zu vscode
- @amaust (Andrew Maust): Behebt das Problem, dass das Aria-Label "[Object object]" anzeigt PR #195929
- @Cazka: Korrigiert Tippfehler für die Einstellung "incrementalNaming" PR #194900
- @Charles-Gagnon (Charles Gagnon): Behebt die Pfeiltastennavigation bei Dropdown-Aktionsschaltflächen, die ein verstecktes Dropdown fokussieren PR #167662
- @christian-bromann (Christian Bromann): Rendert den Notebook-Container nur, wenn er sichtbar ist PR #188226
- @Connormiha (Mikhail): fix: vereinfachtes map+flat PR #193949
- @futurist (James Yang): fix: Tippfehler in dom.test.ts PR #195249
- @gjsjohnmurray (John Murray)
- Korrigiert den CLI-Hilfetext für
--profilePR #193766 - Ermöglicht das Ausblenden des Launchers in der Titelleiste von "Ausführen und Debuggen" beim Debuggen PR #193812
- Wählt die richtige Zeile in der Schnellauswahl für die Erweiterungsprotokollierungsstufe vor (fix #194515) PR #194517
- Zeigt die Schaltflächen "Neustart erforderlich" gleichzeitig nach "Alle Erweiterungen aktualisieren" an (#_163627) PR #195421
- Zeigt das Trust Editor Tab-Symbol korrekt an für
"window.density.editorTabHeight": "compact"(fix #196209) PR #196212 - Zentriert die Zahlen vertikal in den Abzeichen der oberen Aktivitätsleiste (fix #196691) PR #196696
- Korrigiert den Fix #196696, der zu ovalen Abzeichen führte PR #196715
- Vergrößert das Fortschrittsabzeichen in der oberen Aktivitätsleiste, um die Änderung #196696 anzupassen PR #196724
- Korrigiert den CLI-Hilfetext für
- @harbin1053020115 (ermin.zem)
- fix: korrigiert die Position des Editorfortschritts bei aktivierter Einstellung
pinnedTabsOnSeparateRowPR #195314 - feat: unterstützt IconThemes-Definitionen für Root-Ordner PR #195319
- fix: korrigiert die Position des Editorfortschritts bei aktivierter Einstellung
- @hsfzxjy (hsfzxjy): Korrigiert schnelleres __vsc_escape_value PR #194459
- @jeanp413 (Jean Pierre): Behebt Probleme mit dem Websocket, das Ping-Frames nicht korrekt verarbeitet PR #194436
- @jiawei-hong (Wei): styles: muss nur border-right-width auf none gesetzt werden, wenn es nicht ist… PR #195078
- @jruales (Joaquín Ruales): Überspringt die Kosten von regex.replace(), wenn nichts ersetzt werden muss PR #194854
- @Jvr2022 (Jvr)
- Bereinigt ungenutzte Dateien in .github PR #189066
- Grammatik korrigiert PR #194970
- @k-yle (Kyℓe Hensel): Behebt die Syntaxhervorhebung für .git-blame-ignore-revs PR #194584
- @MichaelChirico (Michael Chirico): Aktualisiert die Organisation im Referenz-Repository PR #194415
- @MrYuto (Yuto Liyosa)
- Macht
OpenDisassemblyViewActionzu einerAction2PR #195623 - Löst absolute Dateiziel-Links in tsconfig auf (#_195514) PR #195759
- Macht
- @sandeep-sen (Sandeep Sen): Hinzufügen von mgmt-Bibliotheken für Go + Ändern der Matcher-Logik für Go PR #191036
- @SimonSiefke (Simon Siefke): fix: Speicherleck im Menü PR #196302
- @tats-u (Tatsunori Uchino): Unterstützung für
--force-if-includeshinzufügen, um sicherer zu pushen PR #187932 - @tisilent (xiejialong)
- Deaktiviert die Transformationsoptimierung in SettingsTree PR #179095
- Terminal: Korrigiert Umbenennung und Injektion PR #194621
- fix #191201 PR #194965
- @vuittont60: Tippfehler korrigiert PR #195562
- @whscullin (Will Scullin): Stellt sicher, dass das Link-Fragment erhalten bleibt PR #193743
- @yiliang114 (易良)
- feat: Fügt das Logo der integrierten Erweiterung hinzu PR #192999
- fix: zu #157015, korrigiert die Lokalisierung des Ansichtsbezeichnungsbefehls PR #193544
- fix: Schließt #195980, behebt die Standardanzeige von Beitragsbereichen für Erweiterungen PR #195984
Beiträge zu vscode-js-debug
- @OnesAndZer0s (OnesAndZer0s): feat: Aufräumen von Breakpoints für Instrumentierung PR #1853
Beiträge zu language-server-protocol
- @manandre (Emmanuel André): Korrigiert NotebookDocumentSync-Beispiel PR #1831