Juli 2024 (Version 1.92)
Update 1.92.1: Das Update behebt diese Probleme.
Update 1.92.2: Das Update behebt diese Probleme.
Downloads: Windows: x64 Arm64 | Mac: Universal Intel silicon | Linux: deb rpm tarball Arm snap
Willkommen zur Juli 2024-Version von Visual Studio Code. Es gibt viele Updates in dieser Version, die Ihnen hoffentlich gefallen werden. Einige der wichtigsten Highlights sind:
- Standardbrowser - Konfigurieren Sie, welcher Browser zum Öffnen von Links in VS Code verwendet werden soll.
- PRs zurückrollen - Erstellen Sie einfach einen Zurücksetzungs-PR für einen zusammengeführten PR.
- Erweiterungsaktualisierungen - Konfigurieren Sie einfacher die automatische Aktualisierung von Erweiterungen.
- Profile überschreiben - Überschreiben Sie ein vorhandenes Profil mit dem Profile-Editor.
- Dateien in CSS einfügen - Fügen Sie schnell CSS-Dateireferenzen durch Einfügen oder Ziehen und Ablegen hinzu.
- Panel nach oben verschieben - Positionieren Sie den Panel-Bereich am oberen Rand des Fensters.
- Copilot nutzt GPT-4o - GitHub Copilot Chat wurde auf die GPT-4o von OpenAI aktualisiert.
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
Verbesserte Debugging-Erfahrung
Dialogfelder für Barrierefreiheitshilfe
Wir haben Dialogfelder für die Barrierefreiheitshilfe für die Ansicht "Ausführen und Debuggen" und die Debugkonsole hinzugefügt. Sie erhalten einen Hinweis zum Öffnen des zugänglichen Hilfedialogs, wenn eine der Ansichten den Fokus hat. Konfigurieren Sie diesen Hinweis über die Einstellung accessibility.verbosity.debug.
Zugängliche Ansicht der Debugkonsole
Führen Sie den Befehl Zugängliche Ansicht öffnen (⌥F2 (Windows Alt+F2, Linux Shift+Alt+F2)) aus, um den Inhalt der Debugkonsole Zeichen für Zeichen, Zeile für Zeile zu inspizieren.
Die Einstellung debug.autoExpandLazyVariables ist jetzt im Bildschirmleser-optimierten Modus aktiviert, um sofortigen Zugriff auf Variablenwerte zu ermöglichen.
Wenn ein Ausdruck in der Debugkonsole ausgewertet wird, wird sein Wert nun für Bildschirmleserbenutzer angekündigt.
Dynamische Ankündigung von Watch-Variablen
Beim Debuggen mit aktiviertem Bildschirmleser hören Sie nun, wenn sich die Werte von Watch-Variablen ändern. Konfigurieren Sie dies mit accessibility.debugWatchVariableAnnouncements.
Konfigurieren Sie Tastenkombinationen Aktion
Im vorherigen Meilenstein haben wir eine Aktion zum Konfigurieren nicht zugewiesener Tastenkombinationen im Dialogfeld für Barrierefreiheitshilfe eingeführt. Wir haben nun den Befehl Zugewiesene Tastenkombinationen konfigurieren (⌥A (Windows, Linux Alt+A)) hinzugefügt, um diese Aktion zu ergänzen.
Workbench
Panel nach oben verschieben
Sie können das Panel nun am oberen Rand des Fensters, oberhalb des Editorbereichs, positionieren. Standardmäßig befindet sich das Panel unten und enthält Ansichten wie das Terminal, das Ausgabefenster und die Debugkonsole. Diese Verbesserung ergänzt die vorhandenen Optionen, das Panel links, rechts und unten zu positionieren.
Profile-Editor Vorschau
In diesem Meilenstein haben wir die Verbesserung des Profile-Editors fortgesetzt, indem wir ihn benutzerfreundlicher gestaltet und ein Erscheinungsbild erzielt haben, das mit dem des Einstellungen-Editors konsistent ist.

Der Profile-Editor ist als experimentelles Feature hinter der Einstellung workbench.experimental.enableNewProfilesUI verfügbar. Sobald er aktiviert ist, können Sie den Profile-Editor über das Zahnradsymbol für Einstellungen in der unteren linken Ecke des Fensters aufrufen.

Vorhandenes Profil überschreiben
Sie können nun ein vorhandenes Profil, einschließlich des Standardprofils, überschreiben, indem Sie ein neues Profil mit demselben Namen erstellen.
Verbesserte Erweiterungsaktualisierungserfahrung
Wir haben mehrere Verbesserungen an der Erweiterungsaktualisierung vorgenommen, um Ihnen mehr Kontrolle über die Aktualisierung von Erweiterungen zu geben und die Verwaltung der automatischen Aktualisierung von Erweiterungen zu erleichtern.
Automatische Aktualisierung aller Erweiterungen
Wir haben die globale Aktion zur automatischen Erweiterungsaktualisierung im Titelbereich der Erweiterungsansicht in Automatische Aktualisierung für alle Erweiterungen aktivieren und Automatische Aktualisierung für alle Erweiterungen deaktivieren umbenannt. Mit diesen Aktionen können Sie die automatische Aktualisierung für alle Erweiterungen gleichzeitig aktivieren oder deaktivieren.

Automatische Aktualisierung einzelner Erweiterungen
Wir haben die Erfahrung bei der automatischen Aktualisierung einzelner Erweiterungen verbessert, indem wir die Aktion zum Aktivieren oder Deaktivieren der automatischen Aktualisierung für die Erweiterung immer anzeigen. Dies erleichtert die Verwaltung der automatischen Aktualisierung von Erweiterungen.

Automatische Aktualisierung für über VSIX installierte Erweiterungen deaktivieren
Wenn Sie eine Erweiterung über VSIX installieren, ist die automatische Aktualisierung für diese Erweiterung standardmäßig deaktiviert. Dadurch können Sie mit der installierten Version der Erweiterung arbeiten, ohne dass diese automatisch aktualisiert wird.
Mehr Kontrolle über die Aktualisierung von Erweiterungen
Die Zustimmung des Benutzers ist nun erforderlich, wenn Sie die installierte Version einer Erweiterung, die keinen ausführbaren Code enthält, auf eine Version mit ausführbarem Code aktualisieren. Dies gibt Ihnen die Kontrolle, solche Updates zu überprüfen, bevor sie angewendet werden. Das folgende Video demonstriert die Erfahrung beim Aktualisieren einer Erweiterung ohne Code auf eine Version mit Code.
Durch Auswahl der Schaltfläche Überprüfen wird das Änderungslog der Erweiterung oder das Repository der Erweiterung im Browser geöffnet. Sie können die Änderungen überprüfen und dann entscheiden, ob Sie die Erweiterung aktualisieren möchten.
Problem mit dem Sprung im Einstellungen-Editor behoben
Der Einstellungen-Editor sprang zuvor nach dem Ändern einer Einstellung und wechselte den Fokus zu einer anderen. Dieser Sprung war umso schlimmer, je mehr man scrollte, bevor man eine Einstellung änderte. Wir haben die Art und Weise geändert, wie der Einstellungen-Editor Einstellungen nach der Änderung neu rendert, und der Einstellungen-Editor springt nach dem Ändern einer Einstellung nicht mehr.
Thema: Light Pink (Vorschau auf vscode.dev)
URL-Behandlung für Einstellungen
VS Code kann nun "settings"-URLs im Format vscode://settings/setting.name (vscode-insiders://settings/setting.name für Insiders und code-oss für die OSS-Version) verarbeiten und öffnet den Einstellungen-Editor für die angegebene Einstellung. Wenn keine Einstellung angegeben ist, wird der Einstellungen-Editor weiterhin geöffnet. Wenn ein Anker-Tag mit einer Einstellungs-URL in den Versionshinweisen verwendet wird und die Versionshinweise in VS Code geöffnet sind, erfolgt eine spezielle Behandlung und Darstellung, wie in der vorherigen codesetting-Funktion beschrieben.

Konfigurieren Sie den Browser zum Öffnen von Links
Eine neue Einstellung workbench.externalBrowser ermöglicht es Ihnen, den Browser zu konfigurieren, der zum Öffnen von Links verwendet werden soll. Standardmäßig wird der Standardbrowser des Betriebssystems verwendet. Sie können diese Einstellung pro Arbeitsbereich konfigurieren, und sie ist auch mit der Einstellungen-Synchronisation synchronisiert.
Geben Sie den vollständigen Pfad zur Browser-Executable als Einstellungswert an. Alternativ können Sie zur Sicherstellung der korrekten Funktion auf verschiedenen Geräten auch Browser-Aliase wie edge, chrome oder firefox verwenden.

Automatische Dateiöffnung beim Ziehen und Ablegen deaktivieren
Zuvor wurde beim Ziehen und Ablegen einer Datei in den Explorer diese auch automatisch im Editor geöffnet. In einigen Fällen kann dies unerwünscht sein. Eine neue Einstellung explorer.autoOpenDroppedFile ermöglicht es Ihnen, dieses Verhalten zu umschalten. Standardmäßig wird die Datei beim Ziehen und Ablegen weiterhin geöffnet, aber wenn sie auf false gesetzt ist, wird dieses Verhalten deaktiviert.
Editor
Verbesserungen bei der Glühbirnen-Steuerung
Manchmal konnte die Glühbirnen-Steuerung den Code im Editor blockieren. Um dem abzuhelfen, haben wir eine verbesserte Heuristik für die Glühbirnen-Steuerung eingeführt, die die Glühbirne im Randbereich anzeigt, wenn kein Platz vorhanden ist, anstatt den Code im Editor zu blockieren.

Sie können die Glühbirnen-Steuerung im Editor mit der Einstellung editor.lightbulb.enabled umschalten.
Diff-Editor
Kompaktere Diffs im Chat
Wir haben das Layout des Diff-Editors in der Chat-Ansicht/Inline-Chat überarbeitet und ihn kompakter gestaltet.
Vorher:

Nachher:

Quellcodeverwaltung
Graph für eingehende/ausgehende Änderungen
In diesem Meilenstein ermöglichen wir die Visualisierung eingehender und ausgehender Änderungen mithilfe eines Graphen. Der Graph enthält den aktuellen Branch, den Upstream-Branch des aktuellen Branches und einen optionalen Basis-Branch. Die Wurzel des Graphen ist der gemeinsame Vorfahre dieser Branches.
Wir haben mehrere Verbesserungen am Hover für Verlaufs-Elemente vorgenommen
- Mehrfachauswahl aktiviert, um Änderungen über mehrere Verlaufs-Elemente desselben Branches hinweg anzuzeigen.
- Optionen zum
...-Menü hinzugefügt, um Verlaufs-Elemente von Remote-/Basis-Branches zu filtern. - Aktionen zum Abrufen (fetch), Ziehen (pull) und Pushen von Verlaufs-Elementen hinzugefügt.
Probieren Sie es aus und lassen Sie uns wissen, was Sie davon halten!
Sie können die Graph-Visualisierung von eingehenden/ausgehenden Änderungen deaktivieren, indem Sie die Einstellung scm.showHistoryGraph umschalten.

Terminal Shell-Integration
Die Quellcodeverwaltung-Ansicht wird nach jeder Operation der Quellcodeverwaltung sowie nach Dateisystemereignissen, die auf bestimmte Dateien/Ordner beschränkt sind, aktualisiert. Wenn ein Git-Befehl im integrierten Terminal ausgeführt wird, kann es zu einer Verzögerung zwischen dem Abschluss des Befehls und der Aktualisierung der Quellcodeverwaltung-Ansicht kommen. Um diese Verzögerung zu reduzieren, verwenden wir ab diesem Meilenstein die Terminal-Shell-Integrations-API, um den erfolgreichen Abschluss verschiedener Git-Befehle (z. B. add, checkout, commit, fetch, pull, push und mehr), die im integrierten Terminal ausgeführt werden, zu erkennen und die Quellcodeverwaltung-Ansicht zu aktualisieren.
Notebooks
Mehrfachzellen-Kommentierung
Der Notebook-Editor unterstützt nun das Umschalten von Kommentaren für eine oder mehrere Zellen gleichzeitig. Tun Sie dies, indem Sie einen oder mehrere Zellen-Container auswählen und dann die Tastenkombination ⌘/ (Windows, Linux Ctrl+/) verwenden.
Terminal
Neue Scrollleiste
Die Scrollleiste im Terminal sieht nun genauso aus wie die Scrollleiste im Editor.

Die Übersichtsleiste ist wie zuvor, mit erfolgreichen Befehlen links, Suchergebnissen in der Mitte und fehlgeschlagenen Befehlen rechts. Aber jetzt richtet sie sich perfekt an der Scrollleisten-Regler aus.
Debuggen
Variablentypen beim Debuggen anzeigen
VS Code zeigt nun die Datentypen von Variablen beim Debuggen an, wenn die Einstellung debug.showVariableTypes aktiviert ist.

Sprachen
Markdown-Links beim Einfügen aktualisieren
VS Code kann Ihnen nun helfen, Textabschnitte zwischen Markdown-Dokumenten zu verschieben, indem es Links in kopiertem und eingefügtem Text aktualisiert. Mit dieser Funktion repariert VS Code alle relativen Pfadlinks, Referenzlinks und alle Bilder/Videos mit relativen Pfaden, damit sie im neuen Dokument funktionieren.
Diese Funktion wird immer dann ausgelöst, wenn Sie Text mit Links zwischen zwei Markdown-Dateien kopieren und einfügen. Wenn Links aktualisiert werden können, sehen Sie nach dem Einfügen das Einfüge-Widget. Wählen Sie Einfügen und eingefügte Links aktualisieren, und VS Code korrigiert die Links für Sie.
Sie können diese Funktion vollständig deaktivieren, indem Sie markdown.updateLinksOnPaste auf false setzen.
Dateien in CSS einfügen und ablegen
Müssen Sie ein Bild in Ihrem CSS verwenden? Jetzt können Sie schnell eine url()-Referenz einfügen, indem Sie die Bilddatei einfach in den CSS-Editor ziehen und ablegen oder kopieren und einfügen.
Remote-Entwicklung
Die Remote Development Erweiterungen ermöglichen es Ihnen, einen Dev Container, eine Remote-Maschine über SSH oder Remote Tunnels oder das Windows Subsystem for Linux (WSL) als vollwertige Entwicklungsumgebung zu nutzen.
Zu den Highlights gehören
- GPG Keyboxd-Unterstützung
- Lokale Portbereichskonfiguration
Sie können mehr über diese Funktionen in den Remote Development Versionshinweisen erfahren.
Beiträge zu Erweiterungen
GitHub Copilot
GPT-4o Upgrade für Copilot Chat
Wir haben die Copilot Chat-Ansicht von GPT-4-Turbo auf GPT-4o, das bisher leistungsfähigste Modell von OpenAI, aufgerüstet. Unsere Experimente zeigen, dass GPT-4o die Coding-Fähigkeiten von Copilot erheblich verbessert und schnellere, genauere und qualitativ hochwertigere Code- und Erklärungen direkt in Ihrem Editor liefert. Dies wurde während der Einführung deutlich, da Entwickler die Copilot Chat-Ansicht zunehmend nutzten und mehr seiner Codevorschläge übernahmen.
Wir experimentieren ständig, um die besten Modelle für verschiedene Aufgaben zu identifizieren und Leistung und Fähigkeit abzuwägen, während wir uns für Qualität, Sicherheit und Zuverlässigkeit einsetzen. Weitere Details zur Einführung von GPT-4o in GitHub Copilot finden Sie im GitHub Changelog.
Öffentliche Code-Übereinstimmungen im Chat
Sie können GitHub Copilot erlauben, Code zurückzugeben, der mit öffentlich verfügbarem Code auf GitHub.com übereinstimmen könnte. Wenn diese Funktionalität für Ihr Organisationsabonnement oder Ihr persönliches Abonnement aktiviert ist, liefern Code-Vervollständigungen von Copilot bereits Details zu den erkannten Übereinstimmungen. Wir arbeiten daran, Ihnen diese Übereinstimmungen für öffentlichen Code auch in Copilot Chat anzuzeigen.
Wir führen dies schrittweise für Copilot Chat-Benutzer ein. Sobald es für Ihren Rechner aktiviert ist, sehen Sie möglicherweise eine Nachricht am Ende der Antwort mit einem Link Übereinstimmungen anzeigen. Wenn Sie auf den Link klicken, öffnet sich ein Editor, der Ihnen die Details der übereinstimmenden Codeverweise mit weiteren Einzelheiten anzeigt.

Anhänge in Chat-Anfragen
Copilot Chat unterstützt das Hinzufügen expliziter Anhänge zu Ihrer Chat-Anfrage über den Befehl Kontext anhängen (⌘/ (Windows, Linux Ctrl+/)). Diese werden nun als Teil der übermittelten Chat-Anfragen im Chat-Verlauf gerendert. Das Auswählen eines Dateianhangs öffnet die entsprechende Datei und den Bereich im Editor.

Zusätzlich machen wir es nun klarer, wenn große explizite Anhänge, die das Kontextfenster überlaufen, teilweise oder vollständig aus der Anfrage weggelassen wurden.

Verbesserungen bei /new
Wir haben den Slash-Befehl /new aktualisiert, um die schnelle Dateigenerierung zu unterstützen. Sie können Copilot während der Erstellung von Dateien oder Projekten zusätzlichen Kontext liefern, indem Sie Chat-Variablen wie #selection verwenden. Zusätzlich wurde /new erweitert, um das Speichern der generierten Dateien und Ordner in einem vorhandenen Arbeitsbereich zu ermöglichen.

Zugriff auf VS Code-Befehle über den Chat
Ein neuer Slash-Befehl im @vscode Chat-Teilnehmer, /runCommand, ermöglicht es Ihnen, einen Kern-VS Code-Befehl zu suchen und auszuführen. Zum Beispiel zum Umschalten der Entwicklertools.

Sie können diesen neuen Slash-Befehl mit github.copilot.chat.runCommand.enabled aktivieren.
Python
Verbesserte Python-Erkennung mit python-environment-tools
In der letzten Version haben wir die Python-Umgebungstools angekündigt, die die Python-Erkennungsinfrastruktur mit Fokus auf Leistung neu gestaltet haben. Dieser Ansatz reduziert die Notwendigkeit, Python-Binärdateien auszuführen, um Informationen abzurufen, und verbessert somit die Leistung.
Ab dieser Version rollen wir diese Verbesserung als Teil eines Experiments aus. Wenn Sie daran interessiert sind, dies auszuprobieren, können Sie "python.locator" auf "native" in Ihrer Benutzer-settings.json einstellen und Ihr VS Code-Fenster neu laden. Besuchen Sie das python-environment-tools Repo, um mehr über diese Funktion, laufende Arbeiten und Feedback zu erfahren.
Anzeige des Ausführungsstatus für native REPL
Die experimentelle native REPL ("python.REPL.sendToNativeREPL": true) zeigt nun eine Erfolgs-/Fehler-UI an, ähnlich wie bei einer Jupyter-Zelle, je nach Ausführungsergebnis. Darüber hinaus haben wir Verbesserungen vorgenommen, sodass wir keine leere Zeile mehr in Zellen anzeigen, die keine Ausgabe erzeugen.
Inline-Variablenwerte im Quellcode
Die Erweiterung Python Debugger hat eine Inline-Werte-Funktion eingeführt, um Ihre Python-Debugging-Erfahrung zu verbessern. Mit Inline-Werten können Sie die Werte von Variablen inline im Editor, neben der entsprechenden Codezeile während einer Debugging-Sitzung, anzeigen. Dies hilft Ihnen, den Zustand Ihres Programms schnell zu verstehen, ohne mit der Maus über Variablen fahren oder den Variablenbereich in der Ansicht "Ausführen und Debuggen" überprüfen zu müssen.

Um diese Funktion zu aktivieren, setzen Sie den Konfigurationswert debugpy.showPythonInlineValues in Ihren Benutzereinstellungen auf true.
Hinweis: Diese Funktion befindet sich derzeit in einem Erkundungsstadium und wird noch weiter verbessert. Bitte geben Sie Ihr Feedback im vscode-python-debugger Repo ab!
Verbesserte Debug-Willkommensansicht
Die Debug-Willkommensansicht enthält nun eine Schaltfläche für schnellen Zugriff auf automatische Python-Konfigurationen, wenn eine Python-Datei im Editor geöffnet ist.
GitHub Pull Requests und Issues
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
- Pull Requests zurückrollen mithilfe der Schaltfläche Zurückrollen in der Pull Request-Beschreibung von zusammengeführten PRs
- PRs, deren Branch gelöscht wurde, können nun in der Pull Requests-Ansicht angezeigt werden.
- Die Aktion Pull Request auf GitHub.com öffnen wird auch dann angezeigt, wenn Sie mehrere PRs ausgecheckt haben.
Überprüfen Sie das Changelog für die Version 0.94.0 der Erweiterung, um mehr über die anderen Highlights zu erfahren.
Erweiterungs-Authoring
Basische Authentifizierung für Netzwerproxys
Erweiterungen, die das Node.js-Modul https verwenden, können nun Netzwerproxys verwenden, die eine grundlegende Authentifizierung erfordern.
Vorschau-Features
Echte Inline-Diffs
In dieser Iteration haben wir die Einstellung diffEditor.experimental.useTrueInlineView (standardmäßig deaktiviert) eingeführt. Wenn Sie diese Einstellung aktivieren und die Inline-Ansicht verwendet wird, werden einzeilige Änderungen inline gerendert.

So sieht die Inline-Ansicht ohne dieses experimentelle Flag aus

Diese Funktion ist experimentell und zukünftige Änderungen sind zu erwarten.
VS Code-native IntelliSense für PowerShell
Die experimentelle VS Code-native PowerShell IntelliSense-Funktion hat in dieser Version einige signifikante Verbesserungen erfahren. Um diese Funktion unter Windows oder macOS zu aktivieren:
"terminal.integrated.suggest.enabled": true
Zusätzlich zur Tatsache, dass die Funktion viel zuverlässiger ist, wurden viele weitere Verbesserungen vorgenommen, wie unten gezeigt.
Vervollständigungen werden nicht abgeschnitten
Vervollständigungen zeigen nun *genau* das an, was eingegeben wird, anstatt eine abgeschnittene Version. Wenn Sie beispielsweise nach Verzeichnisnamen suchen, wird das .\ nun eingeschlossen und korrekt hervorgehoben.
Vorher:

Nachher:

Optimierte Vervollständigungen für die Navigation in Verzeichnissen
Verzeichnisnamen enthalten nun einen abschließenden \ oder /, der beim Vervollständigen die Vervollständigungen für das neue Verzeichnis aktualisiert.
Enter-Verhalten konfigurieren
Die neue Einstellung terminal.integrated.suggest.runOnEnter ermöglicht es Ihnen, das Enter-Verhalten zu konfigurieren, um den Befehl auszuführen, wenn bestimmte Bedingungen erfüllt sind. Die folgenden Werte sind verfügbar:
"always": Immer beiEnterausführen."exactMatch": BeiEnterausführen, wenn die Vervollständigung exakt eingegeben wurde."exactMatchIgnoreExtension"(Standard): BeiEnterausführen, wenn die Vervollständigung exakt eingegeben wurde oder wenn ein Dateiname ohne Erweiterung eingegeben wurde."never"(altes Verhalten): Niemals beiEnterausführen.
Diese Änderung ist besonders wichtig, um keine bestehenden Muskelgedächtnisse zu brechen, da dies oft zu denselben Tastenschlägen führt wie ohne aktivierte Funktion. Ein Beispiel, bei dem dies nützlich ist, ist das Ausführen von cd ... Vor dieser Änderung müssten Sie cd ..<enter><enter> eingeben, aber jetzt ist es ein einzelnes Enter, dank dieser neuen Einstellung.
Verbesserte Dateivervollständigungen
Dateivervollständigungen werden nun sortiert nach Dateinamenlänge aufsteigend, Dateiname alphabetisch und dann Dateierweiterung alphabetisch. Dateivervollständigungen, die als Befehle (nicht als Argumente) ausgeführt werden, erhalten nun ebenfalls einen Schub, abhängig von ihrer Dateierweiterung und dem aktuellen Betriebssystem. Zum Beispiel werden .ps1, .bat und .cmd Dateien unter Windows einen Schub erhalten, was sie weiter oben in der Liste erscheinen lässt.

Diese Änderungen verbessern nicht nur die Relevanz des obersten Elements, sondern helfen auch dem Muskelgedächtnis, indem sie das Verhalten näher an die native PowerShell-Tab-Vervollständigung anpassen. Zum Beispiel ist ein Befehl, der häufig in der VS Code-Codebasis unter Windows ausgeführt wird, ./scripts/code.bat. Mit diesen Änderungen vervollständigt und führt ./sc<tab>/c<enter> ./scripts/code.bat aus.
Globales Cache für Vervollständigungen
Globale Vervollständigungen für Befehle werden über Sitzungen hinweg gecacht, was die Leistung beim Starten der Shell erheblich verbessert. Dies behebt auch ein Problem, bei dem Vervollständigungen für wiederverknüpfte Terminals nicht korrekt funktionierten. Derzeit können diese durch Ausführen des Befehls Terminal: Suggest Cache löschen gelöscht und neu geladen werden. Gemessen auf einem Intel i7-12700KF reduzierte dies die Aktivierungszeit für Shell-Integration von ca. 600 ms auf ca. 50 ms.
Integrierte Terminal-Vervollständigungen in PowerShell
Wir liefern nun integrierte Vervollständigungen für git. Diese basieren auf denen aus dem posh-git-Projekt, aber mit einigen allgemeinen und VS Code-spezifischen Verbesserungen. Hier ist ein Beispiel für die Vervollständigungen in Aktion:
Einige der anderen Verbesserungen sind:
-
Aliase zeigen ihren erweiterten Status rechts an

-
Git-spezifische Symbole für Branches, Tags, Stashes und Remotes

-
Unterbefehlsbeschreibungen rechts

Wir liefern auch integrierte Vervollständigungen für code und code-insiders, obwohl diese sehr einfach sind und in zukünftigen Versionen verbessert werden.

Diese Vervollständigungen können mit denen aus anderen PowerShell-Modulen in Konflikt geraten. Sie können sie mit der folgenden Einstellung deaktivieren:
"terminal.integrated.suggest.builtinCompletions": {
"pwshCode": false,
"pwshGit": false
}
Unterstützung für TypeScript 5.6
Diese Version enthält Unterstützung für die kommende TypeScript 5.6-Version. Schauen Sie sich den TypeScript 5.6 Iterationsplan an, um Details zu den Inhalten dieser Version zu erfahren.
Um Vorschauversionen von TypeScript 5.6 zu verwenden, installieren Sie die TypeScript Nightly extension. Teilen Sie uns Ihr Feedback mit und lassen Sie uns wissen, wenn Sie auf Fehler bei TypeScript 5.6 stoßen.
Vorgeschlagene APIs
QuickInputButtonLocation zum Anzeigen von Schaltflächen rechts neben der Eingabe
In diesem Meilenstein haben wir eine vorgeschlagene API für QuickInputButton eingeführt, die es Erweiterungen ermöglicht zu wählen, wo sie eine Schaltfläche rendern möchten. Die Optionen sind:
Title: Dies rendert die Schaltfläche in der Titelleiste des Quick Pick. Dies ist das Standardverhalten und erhält das bestehende Verhalten von Schaltflächen bei.Inline: Dies rendert die Schaltfläche rechts neben dem Eingabefeld. Dies ist nützlich, wenn Sie die Titelleiste nicht für etwas anderes verwenden möchten, aber Schaltflächen anzeigen möchten.
Diese Funktionalität wurde in der Branch erstellen-Eingabeaufforderung der Git-Erweiterung übernommen, die Sie mit git.branchRandomName.dictionary aktivieren können.
Schauen Sie sich vscode#221397 für weitere Informationen und Updates an.
Testverbesserungen
Code mit Tests verknüpfen
Wir arbeiten an einer API, die es einer Erweiterung ermöglicht, Code mit Tests zu verknüpfen und umgekehrt. Dies ermöglicht es Benutzern, zwischen beiden zu springen und Aktionen wie Tests am Cursor ausführen auch in Implementierungscode zu ermöglichen. Wir erwarten, dass wir weitere Erfahrungen aufbauen, wenn sich die API entwickelt.
Schauen Sie sich vscode#126932 für weitere Informationen und Updates an.
Aufruflisten bei Testfehlern
Wir arbeiten an einer API, die es ermöglicht, eine reichhaltige Aufrufliste mit Unit-Testfehlern zu verknüpfen. Dies ermöglicht es Benutzern, auf einen Blick zu sehen, welcher Code zu ihrem Fehler geführt hat.
Schauen Sie sich vscode#214488 für weitere Informationen und Updates an.
Zurechenbare Testabdeckung
Wir arbeiten an einer API zur Zurechnung der Testabdeckung pro Test. Dies ermöglicht es Benutzern zu sehen, welche Tests welchen Code ausgeführt haben, und sowohl die im Editor angezeigte Abdeckung als auch die in der Ansicht Testabdeckung zu filtern.
Schauen Sie sich vscode#212196 für weitere Informationen und Updates an.
Such-APIs
In den letzten Monaten haben wir an der Finalisierung von drei vorgeschlagenen Such-APIs gearbeitet:
FindTextInFiles: Text in Arbeitsbereichdateien mithilfe der Textsuche von VS Code finden.FileSearchProvider: Dateisuchergebnisse für benutzerdefinierte Dateischemata bereitstellen, die mit der vorhandenen Suchfunktionalität von VS Code nicht richtig durchsucht werden können. Beispielsweise könnten von Erweiterungen bereitgestellte Ergebnisse beim Suchen in der Schnellsuche innerhalb eines virtuellen Dateisystems angezeigt werden.TextSearchProvider: Ähnlich wieFileSearchProvider, aber für Textsuchergebnisse. Zum Beispiel könnten von Erweiterungen bereitgestellte Ergebnisse beim Suchen in der Suchansicht innerhalb eines virtuellen Dateisystems angezeigt werden.
Darüber hinaus überarbeiten wir die workspace.findFiles API, die die Dateisuchfunktion des VS Code-Arbeitsbereichs zum Finden von Dateien verwendet. Die neue Version sollte mehr Optionen bieten und Ausschlussoptionen klarer handhaben. Die bestehende Funktionssignatur sollte auch nach der Einführung der überarbeiteten Version weiterhin funktionsfähig sein.
Diese Tabelle veranschaulicht, wie die verschiedenen APIs zusammenhängen.
| Verwendung von API zum Finden | Verwendung von API zum Bereitstellen von Ergebnissen | |
|---|---|---|
| Für Dateien | Dateien finden | FileSearchProvider |
| Für Text in Dateien | FindTextInFiles | TextSearchProvider |
Wenn Sie interessiert sind, besuchen Sie die obigen Links, um Feedback zu geben!
Webseite
Wir haben das Design der VS Code-Website überarbeitet und Unterstützung für helle und dunkle Designs hinzugefügt.

Das neue Design der Website verwendet standardmäßig das Thema Ihres Systems (heller oder dunkler Modus), und Sie können es auch manuell umschalten, indem Sie das Sonnen-/Mondsymbol oben rechts verwenden.

Wir freuen uns auf Ihr Feedback! Reichen Sie Feature-Anfragen oder Fehler im vscode-docs Repo ein.
Technik
Markdown-Sprachserver in ein separates Repository verschieben
Wir haben den Sprachserver, der das integrierte Markdown-IntelliSense von VS Code unterstützt, in ein eigenes Repository verschoben. Zuvor wurde dieses Projekt aus einem Unterordner des Haupt-VS Code-Repositorys veröffentlicht. Diese Änderung erleichtert den Beitrag zum Projekt.
Das Projekt wird weiterhin unter demselben Namen auf npm veröffentlicht: vscode-markdown-languageserver.
Fortschritt bei der Verwendung von ESM für VS Code
In diesem Meilenstein haben wir die Arbeit zur Übernahme von ESM für den VS Code-Kern wieder aufgenommen. Unser Ziel ist es, zukünftig ECMAScript-Module (ESM) zu laden und AMD vollständig abzuschaffen. Dies ist eine Anstrengung über mehrere Meilensteine hinweg, die das Laden und Bündeln von Code insgesamt modernisieren wird.
xterm.js, das von VS Code abhängt
Der neue Scrollbalken im Terminal erforderte erhebliche interne Arbeit. Das Terminal in VS Code basiert auf dem xterm.js OSS-Projekt und wird in seiner kommenden Version auch einen kleinen Teil der Codebasis von VS Code ausliefern, insbesondere Teile des Ordners base/.
Update auf Electron 30
In diesem Meilenstein stellen wir das Electron 30-Update für Benutzer unserer stabilen Version bereit. Dieses Update enthält Chromium 124.0.6367.243 und Node.js 20.14.0. Wir danken allen, die auf den Insiders-Builds selbst gehostet und frühzeitig Feedback gegeben haben.
Hinweis auf eine API-Änderung, die beim Starten von .bat- oder .cmd-Dateien zu Problemen führen kann
Die Node-Version mit diesem Electron-Update enthält eine problematische Änderung als Reaktion auf eine CVE, die Sie betreffen kann, wenn Sie .bat- oder .cmd-Dateien unter Windows ausführen. Sie können die von Node.js festgelegten Richtlinien befolgen, wenn Sie diese Dateien mit der Option shell starten.
Wir haben proaktiv Erweiterungen benachrichtigt, die möglicherweise betroffen sind, basierend auf einer einfachen Quellcode-Analyse. Es ist jedoch möglich, dass wir Ihre nicht erfasst haben. Wenn Sie betroffen sind, erhalten Sie eine EINVAL-Ausnahme beim Starten von .bat- oder .cmd-Dateien unter Windows. Bitte beachten Sie die Node.js-Dokumentation für Anleitungen, wie Sie damit umgehen.
Wir empfehlen Erweiterungsautoren, ihre Erweiterungen immer mit unserer Insiders-Version zu testen, um diese Änderungen im Voraus zu erkennen.
Bemerkenswerte Fehlerbehebungen
- 211199 Strg+c im Terminal scrollt nicht ganz nach unten, wenn das reibungslose Scrollen aktiviert ist
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)
- @manav014 (Manav Agarwal)
- @RedCMD (RedCMD)
- @starball5 (starball)
- @ArturoDent (ArturoDent)
Pull-Anfragen
Beiträge zu vscode
- @a-stewart (Anthony Stewart): Sicherstellen, dass die Titelleiste mindestens so hoch ist wie das umschließende Rechteck von WCO PR #211440
- @aaronchucarroll: Fügt Unterstützung für Github-ähnliche umrandete Matheblöcke im Markdown-Editor und in der Vorschau hinzu PR #213750
- @c-claeys (Cristopher Claeys): Behebt exponentielle Laufzeit bei der Instanziierung von Diensten PR #218393
- @cobey (Cody Beyer): Hinzufügen von js/py-Bibliothek für Tagging PR #219213
- @etcadinfinitum (Lee Zee): shellscript: Registriert die Erweiterung .eclass als shell-ähnlich PR #219631
- @gabritto (Gabriela Araujo Britto): [typescript-language-features] Fügt Telemetrie für die Leistung von Diagnostiken hinzu PR #220127
- @gjsjohnmurray (John Murray)
- Lokale Verlaufsbefehle ausblenden, wenn
"workbench.localHistory.enabled": falsePR #212936 - Ausblenden der maximierten Ansicht, wenn sie oben, aber nicht zentriert ist PR #221549
- Implementierung des Befehls „/spam“ zur Behebung von Problemen PR #221940
- Lokale Verlaufsbefehle ausblenden, wenn
- @hotpxl (Yutian Li): Verwendet den integrierten lokalen Befehl in den Shell-Integrations-Skripten PR #221772
- @jeanp413 (Jean Pierre): Behebt, dass das Port-Label nicht angewendet wird, wenn ein Port mit vscode.env.asExternalUri weitergeleitet wird PR #220029
- @kapodamy (kapodamy): fix: platziert Regex in Variablen im
shellIntegration-bash.sh-Skript PR #221998 - @Krzysztof-Cieslak (Krzysztof Cieślak)
- Inline-Bearbeitung – Implementierung der nebeneinanderliegenden Darstellung von Vorschlägen PR #219444
- Inline-Bearbeitung – UI-Korrekturen für nebeneinanderliegende Darstellung PR #221352
- Inline-Bearbeitungen – UI-Korrekturen für Zeilenumbruch und Scrollen PR #223076
- @mering (Marcel): Rust-Einrichtung in Devcontainer PR #221301
- @mxts (Teik Seong): Fügt die Option hinzu, das Terminal oben anzudocken PR #207721
- @Parasaran-Python (Parasaran): Behebt #218254 PR #219312
- @rehmsen (Ole)
- Unterstützung für Kommentare in Notebook-Markup-Zellen PR #219657
- Zeigt den ersten Kommentar in einer Notebook-Zelle an, unabhängig vom Eigentümer. PR #219926
- Aktualisiert die Ansicht für Notebook-Kommentare als Reaktion auf Mutationen PR #219927
- @scop (Ville Skyttä): Behebt Terminal-
__vsc_first_prompt-Fehler mit Bash imnounset-Modus PR #221980 - @SimonSiefke (Simon Siefke)
- Feature: Einstellung hinzufügen, ob eine Datei nach dem Ablegen im Explorer automatisch geöffnet werden soll oder nicht PR #213498
- Reduziert die Auswirkungen von Speicherlecks im Zusammenhang mit dem Editor PR #219297
- Fix: Speicherleck in Erweiterungs-Tabs PR #219726
- Feature: Konfigurierbarkeit des Standardbrowsers PR #219885
- Fix: Speicherleck in SelectBoxList PR #221507
- Fix: Speicherleck im Einstellungen-Widget PR #221518
- Fix: Speicherleck in StickyScrollFocus PR #221622
- @syi0808 (Sung Ye In): fix(terminal): entfernt feste Zeilen (fixedRows) beim Hinzufügen des Scrollbalkens PR #221976
- @tisilent (xiejialong)
- Hinzufügen von Symbolen. PR #219816
- Fenstertitel verwendet den Ausführungspfad. PR #221258
- Fügt revealTerminal und focusInstance in terminalService hinzu PR #221684
- @wdhongtw (Weida Hong): Setzt den Shell-Typ-Kontext zurück, wenn der Typ unbekannt ist PR #221277
Beiträge zu vscode-black-formatter
- @shayhurley (Shay Hurley): Aktualisiert README.md PR #524
Beiträge zu vscode-hexeditor
- @tomilho (Tomás Silva): fix: entfernt doppelte Webview/Kontext PR #527
Beiträge zu vscode-languageserver-node
- @benmcmorran (Ben McMorran): Fügt supportThemeIcons in MarkdownString hinzu PR #1504
Beiträge zu vscode-markdown-tm-grammar
- @RedCMD (RedCMD): Behebt die Integration von
FrontMatterPR #162
Beiträge zu vscode-pull-request-github
- @Santhoshmani1 (Santhosh Mani ): Feature: Öffnet PR auf GitHub aus der PR-Beschreibungsknoten PR #6020
Beiträge zu vscode-textmate
- @aleclarson (Alec Larson): feat: fügt Kindselektor „>“ hinzu (und behebt einen Spezifitätsfehler) PR #233
Beiträge zu debug-adapter-protocol
- @dawedawe (dawe): Aktualisiert overview.md, um auf umbenanntes Paket zu verlinken PR #489
Beiträge zu language-server-protocol
- @asukaminato0721 (Asuka Minato)
- @flaribbit (梦飞翔): Aktualisiert servers.md PR #1968
- @PrasangAPrajapati (Prasang A Prajapati): Fügt Implementierung für JCL LSP Server hinzu PR #1955
- @StachuDotNet (Stachu Korick): Klare deltaLine und deltaStart der SemanticTokens-Nutzlast PR #1966
Beiträge zu monaco-editor
- @ScottCarda-MS (Scott Carda): Aktualisiert Q#-Schlüsselwörter PR #4586
Beiträge zu node-request-light
- @remcohaszing (Remco Haszing): Fügt Paket-Exporte hinzu PR #25
Beiträge zu python-environment-tools
- @cclauss (Christian Clauss): interpreterInfo.py: Erstellt das Objekt in einem einzigen Vorgang PR #93
- @hamirmahal (Hamir Mahal): style: vereinfacht die String-Formatierung PR #88