November 2024 (Version 1.96)
Update 1.96.1: Das Update behebt diese Issues und ermöglicht den GitHub Copilot Free Plan.
Update 1.96.2: Das Update behebt diese Issues.
Update 1.96.3: Das Update behebt diese Issues.
Update 1.96.4: Das Update behebt diese Issues.
Downloads: Windows: x64 Arm64 | Mac: Universal Intel silicon | Linux: deb rpm tarball Arm snap
Willkommen zur November 2024-Version von Visual Studio Code. Es gibt viele Updates in dieser Version, die Ihnen hoffentlich gefallen werden, einige der wichtigsten Highlights sind
- GitHub Copilot Free - Nutzen Sie Copilot kostenlos mit dem GitHub Copilot Free Plan
- Überschreibmodus - Wechseln Sie zwischen Überschreib- und Einfügemodus im Editor
- Importe beim Einfügen hinzufügen - Fehlende TS/JS-Importe automatisch hinzufügen, wenn Code eingefügt wird
- Testabdeckung - Filtern Sie schnell, welcher Code von einem bestimmten Test abgedeckt wird
- Ansichten verschieben - Verschieben Sie Ansichten einfach zwischen der primären und sekundären Seitenleiste
- Terminal-Ligaturen - Verwenden Sie Ligaturen im Terminal
- Erweiterungs-Allow-List - Konfigurieren Sie, welche Erweiterungen in Ihrer Organisation installiert werden können
- Debuggen mit Copilot - Verwenden Sie den Terminalbefehl
copilot-debug, um eine Debugging-Sitzung zu starten - Chat-Kontext - Fügen Sie Symbole und Ordner als Kontext für Chat und Edits hinzu
- Von Chat zu Copilot Edits verschieben - Wechseln Sie zu Copilot Edits, um Code-Vorschläge aus dem Chat anzuwenden
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.
GitHub Copilot
GitHub Copilot Free Plan
Wir freuen uns, eine brandneue **kostenlose Stufe für GitHub Copilot** ankündigen zu können. Melden Sie sich für den GitHub Copilot Free Plan an, und alles, was Sie brauchen, ist ein GitHub-Konto. Sie haben Anspruch auf eine bestimmte Anzahl von Vervollständigungen und Chat-Interaktionen pro Monat, die sich jeden Monat zurücksetzen.
Sie können sich direkt aus VS Code heraus anmelden. Befolgen Sie die Anweisungen im Copilot Setup Guide.

Erfahren Sie mehr über die Details und Bedingungen des Copilot Free Plans.
Copilot-Bearbeitungen
Im letzten Meilenstein haben wir Copilot Edits (derzeit in der Vorschau) eingeführt, mit dem Sie mehrere Dateien gleichzeitig mit natürlicher Sprache bearbeiten können. Seitdem haben wir die Erfahrung weiter verbessert. Sie können Copilot Edits ausprobieren, indem Sie das Copilot-Menü in der Kommandozentrale öffnen und dann "Copilot Edits öffnen" auswählen oder durch Auslösen von .
Fortschritt und Editor-Steuerelemente
Copilot Edits kann mehrere Änderungen in verschiedenen Dateien vornehmen. Sie können nun deutlicher den Fortschritt sehen, während Edits gestreamt werden. Und mit den Overlay-Steuerelementen des Editors können Sie einfach durch alle Änderungen blättern und diese akzeptieren oder verwerfen.
Chat-Sitzung in Copilot Edits verschieben
Sie können die Chat-Ansicht verwenden, um Ideen für Änderungen an Ihrem Code zu untersuchen. Anstatt einzelne Codeblöcke anzuwenden, können Sie nun die Chat-Sitzung in Copilot Edits verschieben, um alle Code-Vorschläge aus der Sitzung anzuwenden.

Vorgeschlagene Dateien für den Arbeitsbereich
In Copilot Edits bestimmt der Arbeitsbereich die Dateien, für die Copilot Edits Änderungen vorschlagen kann. Um Ihnen beim Hinzufügen relevanter Dateien zum Arbeitsbereich zu helfen, kann Copilot Edits für ein Git-Repository nun zusätzliche Dateien vorschlagen, basierend auf den bereits hinzugefügten Dateien. Zum Beispiel wird Copilot Edits Dateien vorschlagen, die oft zusammen mit den bereits hinzugefügten Dateien geändert werden.
Copilot zeigt vorgeschlagene Dateien neben der Schaltfläche **Dateien hinzufügen** im Arbeitsbereich an. Sie können auch auf **Dateien hinzufügen** klicken und dann **Verwandte Dateien** auswählen, um aus einer Liste vorgeschlagener Dateien zu wählen.
Bearbeitungssitzungen nach Neustart wiederherstellen
Bearbeitungssitzungen werden nach einem Neustart von VS Code nun vollständig wiederhergestellt. Dies umfasst den Arbeitsbereich, den Akzeptanzstatus sowie den Dateistatus aller vergangenen Bearbeitungsschritte.
Zu Arbeitsbereich hinzufügen aus Explorer, Suche und Editor
Sie können Dateien mit der neuen Kontextmenüaktion **Datei zu Copilot Edits hinzufügen** zu Ihrem Copilot Edits-Arbeitsbereich hinzufügen. Dies gilt für Suchergebnisse in der Suchansicht und für Dateien in der Explorer-Ansicht. Darüber hinaus können Sie auch eine Textauswahl aus dem Kontextmenü des Editors an Copilot Edits anhängen.

Debuggen mit Copilot
Das Konfigurieren des Debuggings kann schwierig sein, besonders wenn Sie mit einem neuen Projekt oder einer neuen Sprache arbeiten. In diesem Meilenstein führen wir einen neuen Terminalbefehl copilot-debug ein, der Ihnen beim Debuggen Ihrer Programme mit VS Code hilft. Sie können ihn verwenden, indem Sie dem Befehl, den Sie normalerweise ausführen würden, copilot-debug voranstellen. Wenn Sie beispielsweise Ihr Programm normalerweise mit dem Befehl python foo.py ausführen, können Sie jetzt copilot-debug python foo.py ausführen, um eine Debugging-Sitzung zu starten.
Nachdem Ihr Programm beendet ist, erhalten Sie Optionen zum erneuten Ausführen Ihres Programms oder zum Anzeigen, Speichern oder Generieren der von VS Code verwendeten Startkonfiguration für Ihr Programm.
Theme: Codesong (Vorschau auf vscode.dev)
Aufgabenunterstützung
Copilots Debugging-Funktionen, einschließlich copilot-debug und der /startDebugging-Absicht, generieren nun bei Bedarf preLaunchTasks für Code, der vor dem Debuggen einen Kompilierungsschritt benötigt. Dies ist oft bei kompilierten Sprachen wie Rust und C++ der Fall.
Kontext hinzufügen
Wir haben neue Möglichkeiten hinzugefügt, Symbole und Ordner als Kontext in Copilot Chat und Copilot Edits einzubeziehen, um die Referenzierung relevanter Informationen während Ihres Workflows zu erleichtern.
Symbole
Symbole können nun einfach zu Copilot Chat und Copilot Edits hinzugefügt werden, indem Sie sie aus der Gliederungsansicht oder den Breadcrumbs in die Chat-Ansicht ziehen.
Wir haben auch die Symbolvervollständigung in der Chat-Eingabe eingeführt. Durch Eingabe von # gefolgt vom Symbolnamen sehen Sie Vorschläge für Symbole aus Dateien, mit denen Sie kürzlich gearbeitet haben.
Um Symbole in Ihrem gesamten Projekt zu referenzieren, können Sie #sym verwenden, um eine globale Symbolauswahl zu öffnen.
Ordner
Ordner können nun als Kontext hinzugefügt werden, indem Sie sie aus dem Explorer, den Breadcrumbs oder anderen Ansichten in Copilot Chat ziehen.
Wenn ein Ordner in Copilot Edits gezogen wird, sind alle Dateien innerhalb des Ordners im Arbeitsbereich enthalten.
Copilot-Nutzungsdiagramm
VS Code-Erweiterungen können die VS Code API nutzen, um auf den Fähigkeiten von Copilot aufzubauen. Sie können nun ein Diagramm der Copilot-Nutzung einer Erweiterung in der Laufzeitstatusansicht sehen. Dieses Diagramm zeigt die Anzahl der Chat-Anfragen, die die Erweiterung in den letzten 30 Tagen gestellt hat.

Benutzerdefinierte Anweisungen für die Generierung von Commit-Nachrichten
Copilot kann Ihnen helfen, Commit-Nachrichten basierend auf Ihren vorgenommenen Änderungen zu generieren. In diesem Meilenstein haben wir Unterstützung für benutzerdefinierte Anweisungen bei der Generierung von Commit-Nachrichten hinzugefügt. Wenn Ihre Commit-Nachrichten beispielsweise einem bestimmten Format folgen müssen, können Sie dies in den benutzerdefinierten Anweisungen beschreiben.
Sie können die Einstellung github.copilot.chat.commitMessageGeneration.instructions verwenden, um entweder die benutzerdefinierten Anweisungen anzugeben oder eine Datei in Ihrem Arbeitsbereich anzugeben, die die benutzerdefinierten Anweisungen enthält. Diese Anweisungen werden dem Prompt hinzugefügt, der zur Generierung der Commit-Nachricht verwendet wird. Erhalten Sie weitere Informationen darüber, wie Sie benutzerdefinierte Anweisungen verwenden.
Inline-Chat
In diesem Meilenstein haben wir die Benutzererfahrung von Inline Chat weiter verbessert: Die Fortschrittsmeldung wurde dezenter gestaltet, während Änderungen gestreamt werden, sind Wellenlinien deaktiviert und erkannte Befehle werden schöner gerendert.
Außerdem haben wir unsere Pseudocode-Erkennung weiter verbessert und zeigen nun einen Hinweis an, dass Sie mit Inline Chat fortfahren können, wenn eine Zeile hauptsächlich natürliche Sprache enthält. Diese Funktionalität ermöglicht es Ihnen, Pseudocode in den Editor einzugeben, der dann als Prompt für Inline Chat verwendet wird. Sie können diesen Flow auch durch Drücken von auslösen.

Zusätzlich gibt es eine neue, experimentelle Einstellung, um einen Inline Chat-Hinweis auf leeren Zeilen anzuzeigen. Diese Einstellung kann über inlineChat.lineEmptyHint aktiviert werden. Standardmäßig ist diese Einstellung deaktiviert.
Terminal Chat
Terminal Inline Chat hat einen neuen Anstrich bekommen, der das Aussehen und Gefühl näher an das Editor Inline Chat bringt.

Hier sind einige weitere erwähnenswerte Verbesserungen:
- Das Layout und die Positionierung des Widgets sind verbessert und verhalten sich im Allgemeinen besser.
- Es gibt eine Modellwahl.
- Die Schaltflächen unten sind nun konsistenter.
Leistungsverbesserungen für @workspace
Wenn Sie @workspace verwenden, um Copilot nach Ihrem aktuell geöffneten Arbeitsbereich zu fragen, müssen wir den Arbeitsbereich zunächst auf eine Reihe relevanter Code-Snippets reduzieren, die wir Copilot als Kontext übergeben können. Wenn Ihr Arbeitsbereich von einem GitHub-Repository gesichert wird, können wir diese relevanten Snippets schnell durch die GitHub-Code-Suche finden. Da der Code-Suchindex jedoch den Hauptzweig Ihres Repositories verfolgt, konnten wir uns bei lokalen Änderungen oder auf einem Branch nicht darauf verlassen.
In diesem Meilenstein haben wir daran gearbeitet, die Geschwindigkeitsvorteile der GitHub-Suche auf Branches und Pull-Requests zu übertragen. Das bedeutet, dass wir nun sowohl den Remote-Index basierend auf dem Hauptzweig Ihres Repositories durchsuchen als auch alle lokal geänderten Dateien durchsuchen. Dann werden diese Ergebnisse zusammengeführt, wodurch Copilot ein schneller und aktueller Satz von Snippets zur Verfügung steht. Sie können mehr über die GitHub-Code-Suche und deren Aktivierung erfahren.
Barrierefreiheit
Barrierefreiheitsignale für Code-Aktionen
Einige Code-Aktionen können lange dauern, z. B. ein Quick-Fix, der einen externen Dienst aufruft, um alternative Texte für Bilder zu generieren. Es ist möglicherweise nicht offensichtlich, wann sie ausgelöst oder wann sie vollständig angewendet wurden. Daher haben wir Barrierefreiheitsignale hinzugefügt, um anzuzeigen, dass eine Code-Aktion ausgelöst oder angewendet wurde.
Sie können diese Signale mit den Einstellungen accessibility.signals.codeActionTriggered und accessibility.signals.codeActionApplied aktivieren.
Automatische Fokusverwaltung in der REPL
Wir haben eine neue Einstellung eingeführt, um die Barrierefreiheit bei der Arbeit in der REPL zu verbessern. Mit accessibility.replEditor.autoFocusReplExecution können Sie nun festlegen, ob der Fokus unverändert bleibt (none), zur Eingabebox wechselt (input) oder zum zuletzt ausgeführten Block wechselt (lastExecution), wenn Code ausgeführt wird. Standardmäßig wechselt der Fokus zur Eingabebox.
Workbench
Verbesserte Erweiterungs-Suchergebnisse
Wenn Sie mit freiem Text in der Erweiterungsansicht nach Erweiterungen suchen, erscheinen installierte Erweiterungen nun am Anfang der Suchergebnisse. Dies erleichtert das Finden und Verwalten Ihrer installierten Erweiterungen beim Durchsuchen des Marktplatzes.

Erweiterungen aus der Erweiterungsansicht herunterladen
Sie können nun Erweiterungen direkt aus VS Code herunterladen, indem Sie die Download-Aktion im Kontextmenü einer Erweiterung in der Erweiterungsansicht verwenden. Dies kann nützlich sein, wenn Sie eine Erweiterung herunterladen möchten, ohne sie zu installieren.

Erweiterungs-Festplattenspeicher
Sie können nun die Speichernutzung einer Erweiterung auf der Festplatte im Erweiterungseditor sehen. Dies kann Ihnen helfen zu verstehen, wie viel Speicherplatz eine Erweiterung beansprucht.

Verbesserungen bei der Suche im Explorer
In der September-Version haben wir die Möglichkeit eingeführt, Dateien im Explorer im gesamten Projekt zu finden, eine Funktion, die zuvor nicht verfügbar war. Dieses Update hat jedoch den Hervorhebungsmodus vorübergehend entfernt und bestimmte Aktionen eingeschränkt.
In dieser Version bringen wir den Hervorhebungsmodus zurück. Diese Funktion ermöglicht es Ihnen, Dateien und Ordner in Ihrem Arbeitsbereich einfach zu lokalisieren, wobei übereinstimmende Ergebnisse zur besseren Sichtbarkeit hervorgehoben werden. Darüber hinaus haben wir eine neue visuelle Anzeige für eingeklappte Ordner eingeführt, die anzeigt, ob sich darin Übereinstimmungen befinden.
Der Filter-Schalter bleibt verfügbar, sodass Sie sich nur auf Dateien und Ordner konzentrieren können, die Ihrer Abfrage entsprechen, indem Sie nicht übereinstimmende Elemente ausblenden. Wir haben auch alle Kontextmenüaktionen wieder aktiviert, die wir in einer früheren Version deaktivieren mussten.
Wir haben auch die Benutzererfahrung bei der Verwendung der Suchsteuerelemente verbessert. Wenn Sie zum Anfang des Dateiexplorers scrollen, wird oben zusätzlicher Platz geschaffen, sodass das Steuerelement Ihre Suchergebnisse nicht verdeckt.

Ansichten zwischen primärer und sekundärer Seitenleiste verschieben
Sie konnten bereits einen Ansichtscontainer per Drag & Drop oder über den Befehl Ansicht verschieben an einen anderen Ort verschieben. Sie können nun direkt die Kontextmenüaktion "Verschieben nach" auf einem Ansichtscontainer verwenden, um ihn zwischen der primären Seitenleiste, der sekundären Seitenleiste oder dem Bereich "Panel" zu verschieben.
Navigationssteuerelemente im Titelbereich ausblenden
Manche Leute ziehen es vor, den Titelbereich so sauber wie möglich zu halten. Wir haben eine neue Einstellung workbench.navigationControl.enabled hinzugefügt, mit der Sie die Vorwärts-/Rückwärtstasten im Titelbereich ausblenden können.
Sie können diese Einstellung auch aufrufen, indem Sie mit der rechten Maustaste in den Titelbereich klicken und **Navigationssteuerelemente** auswählen.

Editor
Verhalten beim Einfügen und Ablegen konfigurieren
Wenn Sie eine Datei per Drag & Drop oder Kopieren und Einfügen in einen Texteditor ziehen, bietet VS Code mehrere Möglichkeiten, sie in diese Datei einzufügen. Standardmäßig versucht VS Code, den Arbeitsbereichs-relativen Pfad der Datei einzufügen. Nun können Sie die Drop/Paste-Steuerung verwenden, um zu ändern, wie die Ressource eingefügt wird. Erweiterungen können auch benutzerdefinierte Edits bereitstellen, wie z. B. in Markdown, das Edits zum Einfügen von Markdown-Links bereitstellt.
Mit den neuen Einstellungen editor.pasteAs.preferences und editor.dropIntoEditor.preferences können Sie nun eine Präferenz für den standardmäßig verwendeten Edit-Typ angeben. Wenn Sie beispielsweise möchten, dass Kopieren/Einfügen immer den absoluten Pfad eingefügter Dateien einfügt, setzen Sie einfach
"editor.pasteAs.preferences": [
"uri.path.absolute"
]
Diese Einstellungen sind geordnete Listen von Edit-Arten. Der erste passende Edit einer bevorzugten Art wird standardmäßig angewendet. Sie können weiterhin die Drop/Paste-Steuerung verwenden, um nach der Anwendung des Standard-Edits zu einer anderen Edit-Art zu wechseln.
Diese neuen Einstellungen spielen gut zusammen mit unserer neuen Unterstützung für Kopieren und Einfügen mit Importen in JavaScript und TypeScript. Diese Funktion fügt automatisch Importe hinzu, wenn Code zwischen JavaScript- oder TypeScript-Dateien kopiert und eingefügt wird. Um Ihre Workflows nicht zu stören, haben wir standardmäßig entschieden, dass beim Einfügen einfach nur Klartext eingefügt wird und Einfügen mit Importen als Option im Einfüge-Steuerelement angeboten wird. Wenn Sie jedoch möchten, dass VS Code immer versucht, mit Importen einzufügen, setzen Sie einfach
"editor.pasteAs.preferences": [
"text.updateImports"
]
Nun versucht VS Code automatisch, mit Importen einzufügen, wenn möglich, und fällt auf das Einfügen von Klartext zurück, wenn kein "Einfügen mit Importen"-Edit verfügbar ist. Derzeit funktioniert dies nur für JavaScript und TypeScript, aber wir hoffen, dass in Zukunft weitere Sprachen Unterstützung erhalten werden.
Schließlich können Sie auch einen bevorzugten Einfügestil beim Einrichten einer editor.action.pasteAs-Tastenkombination angeben. Die folgende Tastenkombination versucht immer, mit Importen einzufügen und zu aktualisieren
{
"key": "ctrl+shift+v",
"command": "editor.action.pasteAs",
"args": {
"preferences": ["text.updateImports"]
}
}
Verlauf der Editor-Suche beibehalten
Die Suchleiste kann nun den Suchverlauf über Sitzungen hinweg speichern und über VS Code-Neustarts hinweg wiederherstellen. Der Suchverlauf wird pro Arbeitsbereich gespeichert und kann über die Einstellung editor.find.history deaktiviert werden.
Überschreibmodus
Wussten Sie, dass VS Code das Überschreiben von Text im Editor nicht unterstützte, es sei denn, Sie installierten das Vim-Keymap? Auf vielfachen Wunsch haben wir nun den Überschreibmodus hinzugefügt, um Text im Editor zu überschreiben, anstatt ihn beim Tippen einzufügen. Ein nützliches Szenario hierfür ist die Bearbeitung von Markdown-Tabellen, bei denen Sie die Tabellenzellengrenzen schön ausgerichtet halten möchten.
Dieser Modus kann mit dem Befehl Ansicht: Überschreib-/Einfügemodus umschalten oder durch Drücken der Taste Einfg auf Ihrer Tastatur umgeschaltet werden. Wenn Sie sich im Überschreibmodus befinden, zeigt die Statusleiste eine OVR-Anzeige an.
Es ist möglich, den Cursorstil im Überschreibmodus mit der Einstellung editor.overtypeCursorStyle zu ändern. Darüber hinaus gibt es eine Einstellung editor.overtypeOnPaste, die bestimmt, ob das Einfügen im Überschreibmodus überschreiben oder einfügen soll. Das Standardverhalten ist das Einfügen von eingefügtem Text.
Quellcodeverwaltung
Git-Schuldinformationen (experimentell)
In diesem Meilenstein haben wir experimentelle Unterstützung für die Anzeige von Schuldinformationen mithilfe von Editor-Dekorationen und einem Statusleistenelement hinzugefügt. Sie können diese Funktionalität mithilfe der Einstellungen git.blame.editorDecoration.enabled und git.blame.statusBarItem.enabled aktivieren. Sie können über die Schuldinformationen schweben, um weitere Commit-Details anzuzeigen.
Sie können das Format der Nachricht, die im Editor und in der Statusleiste angezeigt wird, mit den Einstellungen git.blame.editorDecoration.template und git.blame.statusBarItem.template anpassen. Sie können Variablen für die gängigsten Informationen verwenden. Beispielsweise zeigt die folgende Vorlage den Betreff des Commits, den Namen des Autors und das Datum des Autors relativ zu jetzt an.
{
"git.blame.editorDecoration.template": "${subject}, ${authorName} (${authorDateAgo})"
}
Wenn Sie die Farbe der Editor-Dekoration anpassen möchten, verwenden Sie die Theme-Farbe git.blame.editorDecorationForeground.
Probieren Sie diese experimentelle Funktion aus und teilen Sie uns Ihre Meinung mit.
Titelaktionen im Quellcodeverwaltungsdiagramm
Basierend auf Benutzerfeedback haben wir die Aktionen "Pull" und "Push" wieder in die Titelleiste der Quellcodeverwaltungsdiagrammansicht integriert. Diese Aktionen sind aktiviert, wenn die aktuelle Verweis auf das Verlaufselement im Quellcodeverwaltungsdiagramm angezeigt wird.
Wenn Sie diese Aktionen oder andere Aktionen aus der Titelleiste der Quellcodeverwaltungsdiagrammansicht nicht verwenden möchten, können Sie mit der rechten Maustaste auf die Titelleiste klicken und sie ausblenden.

Notebooks
Auswahlhervorhebung über Zellen hinweg
Die Auswahlhervorhebung wird nun in Notebooks unterstützt und ermöglicht die textbasierte Hervorhebung über mehrere Zellen hinweg. Dies wird mit der bereits vorhandenen Einstellung editor.selectionHighlight gesteuert.
Mehrfachcursor: Alle Vorkommen des Suchtreffers auswählen
Notebooks unterstützen nun die Tastenkombination für Alle Vorkommen des Suchtreffers auswählen. Diese ist über die Befehls-ID notebook.selectAllFindMatches zu finden und kann standardmäßig mit der Tastenkombination ⇧⌘L (Windows, Linux Ctrl+Shift+L) verwendet werden.
Zellen in Abschnitt für Markdown ausführen
Notebooks haben nun die Aktion Zellen in Abschnitt ausführen, die in der Zellen-Toolbar von Markdown-Zellen verfügbar ist. Wenn die Markdown-Zelle einen Header hat, werden alle Zellen innerhalb des Abschnitts und der untergeordneten Abschnitte ausgeführt. Wenn kein Header vorhanden ist, werden alle Zellen im umgebenden Abschnitt ausgeführt, sofern möglich.
Ausführlichkeitsgrad der Zellenausführungszeit
Die Informationen zur Ausführungszeit in der Zellen-Statusleiste bieten nun eine Option für erhöhte Ausführlichkeit. Dies kann mit der Einstellung notebook.cellExecutionTimeVerbosity eingeschaltet werden und kann neben der Dauer auch den Ausführungszeitstempel anzeigen.

Terminal
Ligaturenunterstützung
Ligaturen werden nun im Terminal unterstützt, unabhängig davon, ob GPU-Beschleunigung verwendet wird. Diese Funktion kann mit der Einstellung terminal.integrated.fontLigatures aktiviert werden.

Um diese Funktion nutzen zu können, stellen Sie außerdem sicher, dass Sie eine Schriftart verwenden, die Ligaturen unterstützt, terminal.integrated.fontFamily.
Neue Variablen zur Anpassung von Terminal-Tabs
Welcher Text in Terminal-Tabs angezeigt wird, wird durch die Einstellungen terminal.integrated.tabs.title und terminal.integrated.tabs.description bestimmt, die die Verwendung einer Sammlung von Variablen ermöglichen. Wir unterstützen nun die folgenden neuen Variablen:
-
${shellType}- Der erkannte Typ der Shell, die im Terminal verwendet wird. Dies ähnelt dem Standardwert, ändert sich aber nicht z. B. zugit, wenn ein Git-Befehl ausgeführt wird. -
${shellCommand}- Der Befehl, der im Terminal ausgeführt wird. Dies erfordert Shell-Integration.
-
${shellPromptInput}- Der im Terminal ausgeführte Befehl oder die aktuell erkannte Prompt-Eingabe. Dies erfordert Shell-Integration.
Befehl zuletzt ausführen zeigt nun die Quelldatei des Verlaufs an
Die Shell-Integrationsfunktion "Befehl zuletzt ausführen" enthält nun vollständige Header für die Quelle des Befehls, einschließlich der Verlaufsdatei, wo relevant, und einer praktischen Schaltfläche zum Öffnen.

Die Standard-Tastenkombination für diesen Befehl ist Strg+Alt+R.
Neues unterstütztes Linkformat
Links im Format /pfad/zur/datei.ext, <zeile> sollten nun im Terminal als Links erkannt werden.
Testen
Zuschreibbare Abdeckung
In diesem Meilenstein haben wir eine API fertiggestellt, die es Erweiterungen ermöglicht, eine Abdeckung pro Test bereitzustellen, sodass Sie genau sehen können, welcher Code von einem bestimmten Test ausgeführt wurde. Wenn eine zuschreibbare Abdeckung verfügbar ist, ist ein Filterknopf in der Testabdeckungsansicht, in Editor-Aktionen, in der Testabdeckungs-Toolbar (wenn aktiviert über den Befehl Test: Test Coverage Toolbar) oder einfach durch Verwendung des Befehls Test: Abdeckung nach Test filtern verfügbar.
Theme: Codesong (Vorschau auf vscode.dev)
Überarbeitete Inline-Fehlermeldungen
Wir haben Testfehlermeldungen überarbeitet, um sie sowohl auffälliger als auch weniger aufdringlich zu gestalten. Dies ist besonders nützlich für geschäftige Szenarien, wie z. B. in Diff-Ansichten von SCM oder Copilot Edits. Das Auswählen der Fehlermeldung öffnet immer noch eine Peek-Ansicht, um die vollständigen Details des Fehlers anzuzeigen.

Verbesserungen an der Benutzeroberfläche für kontinuierliches Ausführen
Zuvor wurde der globale Status von kontinuierlichen Testläufen, der über das "Auge"-Symbol in der Test Explorer-Ansicht umgeschaltet werden kann, kontinuierliche Ausführung mit den Standard-Ausführungsprofilen ein- oder ausgeschaltet.
Wir haben die Benutzeroberfläche für kontinuierliches Ausführen überarbeitet, um ein Dropdown-Menü aufzunehmen, mit dem kontinuierliche Ausführung individuell pro Profil ein- oder ausgeschaltet werden kann. Das Auswählen des Indikators schaltet den zuletzt verwendeten Satz von Ausführungsprofilen ein oder aus.
Sprachen
TypeScript 5.7
Unsere JavaScript- und TypeScript-Unterstützung verwendet nun TypeScript 5.7. Dieses große Update enthält eine Reihe von Sprach- und Tooling-Verbesserungen sowie wichtige Fehlerbehebungen und Leistungsoptimierungen.
Sie können alles über die TypeScript 5.7-Version im TypeScript-Blog lesen. Wir haben auch einige Tooling-Highlights in den folgenden Abschnitten aufgenommen.
Einfügen mit Importen für JavaScript und TypeScript
Haben Sie es satt, nach dem Verschieben von Code zwischen Dateien Importe hinzufügen zu müssen? Probieren Sie die Funktion "Mit Importen einfügen" für TypeScript 5.7+ aus. Immer wenn Sie Code zwischen JavaScript oder TypeScript kopieren und einfügen, kann VS Code Importe für den eingefügten Code hinzufügen.
Beachten Sie, dass nicht nur Importe hinzugefügt werden, sondern sogar ein neuer Export für eine lokale Variable hinzugefügt wurde, die im eingefügten Code verwendet wurde!
Obwohl wir glauben, dass diese Funktion eine enorme Zeitersparnis bedeutet, sind wir uns auch bewusst, dass sie Ihren bestehenden Workflow stören könnte. Deshalb haben wir standardmäßig beibehalten, dass Kopieren und Einfügen immer nur den eingefügten Text einfügt. Wenn ein Mit Importen einfügen-Edit verfügbar ist, sehen Sie dann die Einfüge-Steuerung, die es Ihnen ermöglicht, das Mit Importen einfügen-Edit auszuwählen.

Wenn Sie bevorzugen, immer mit Importen einzufügen, können Sie die neue Einstellung editor.pasteAs.preferences verwenden.
"editor.pasteAs.preferences": [
"text.updateImports"
]
Dies versucht immer, mit Importen einzufügen, wenn ein Edit verfügbar ist.
Sie können auch eine Tastenkombination einrichten, um mit Importen einzufügen, falls verfügbar.
{
"key": "ctrl+shift+v",
"command": "editor.action.pasteAs",
"args": {
"preferences": ["text.updateImports"]
}
}
Wenn Sie es bevorzugen, können Sie sogar das Gegenteil tun und das Einfügen mit Importen zur Standardeinstellung machen und eine Tastenkombination zum Einfügen als Klartext hinzufügen.
"editor.pasteAs.preferences": [
"text.updateImports"
]
{
"key": "ctrl+shift+v",
"command": "editor.action.pasteAs",
"args": {
"preferences": ["text.plain"]
}
}
Schließlich können Sie zum vollständigen Deaktivieren von Importieren mit Einfügen die Optionen typescript.updateImportsOnPaste.enabled und javascript.updateImportsOnPaste.enabled verwenden.
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
remote-sshCopilot-Chat-Teilnehmer- Erweiterte Sitzungsprotokollierung
Weitere Informationen zu diesen Funktionen finden Sie in den Release Notes für Remote Development.
Enterprise-Support
Zulässige Erweiterungen konfigurieren
Sie können jetzt steuern, welche Erweiterungen in VS Code installiert werden können, indem Sie die Einstellung extensions.allowed verwenden. Diese Einstellung ermöglicht es Ihnen, zulässige oder blockierte Erweiterungen nach Herausgeber, bestimmten Erweiterungen und Versionen anzugeben. Wenn eine Erweiterung oder Version blockiert ist, wird sie deaktiviert, falls sie bereits installiert ist. Sie können die folgenden Arten von Erweiterungsauswahlen angeben:
- Alle Erweiterungen eines Herausgebers zulassen oder blockieren
- Bestimmte Erweiterungen zulassen oder blockieren
- Bestimmte Erweiterungsversionen zulassen
- Bestimmte Erweiterungsversionen und Plattformen zulassen
- Nur stabile Versionen einer Erweiterung zulassen
- Nur stabile Erweiterungsversionen eines Herausgebers zulassen
Der folgende JSON-Schnipsel zeigt Beispiele für die verschiedenen Einstellungswerte
"extensions.allowed": {
// Allow all extensions from the 'microsoft' publisher. If the key does not have a '.', it means it is a publisher ID.
"microsoft": true,
// Allow all extensions from the 'github' publisher
"github": true,
// Allow prettier extension
"esbenp.prettier-vscode": true,
// Do not allow docker extension
"ms-azuretools.vscode-docker": false,
// Allow only version 3.0.0 of the eslint extension
"dbaeumer.vscode-eslint": ["3.0.0"],
// Allow multiple versions of the figma extension
"figma.figma-vscode-extension": ["3.0.0", "4.2.3", "4.1.2"],
// Allow version 5.0.0 of the rust extension on Windows and macOS
"rust-lang.rust-analyzer": ["5.0.0@win32-x64", "5.0.0@darwin-x64"],
// Allow only stable versions of the GitHub Pull Requests extension
"github.vscode-pull-request-github": "stable",
// Allow only stable versions from redhat publisher
"redhat": "stable"
}
Herausgeber anhand ihrer Herausgeber-ID angeben. Wenn ein Schlüssel keinen Punkt (.) enthält, wird er als Herausgeber-ID betrachtet. Wenn ein Schlüssel einen Punkt enthält, wird er als Erweiterungs-ID betrachtet. Die Verwendung von Platzhaltern wird derzeit nicht unterstützt.
Sie können microsoft als Herausgeber-ID verwenden, um sich auf alle von Microsoft veröffentlichten Erweiterungen zu beziehen, auch wenn diese möglicherweise unterschiedliche Herausgeber-IDs haben.
Versionsbereiche werden nicht unterstützt. Wenn Sie mehrere Versionen einer Erweiterung zulassen möchten, müssen Sie jede Version einzeln angeben. Um Versionen weiter nach Plattform einzuschränken, verwenden Sie das Symbol @, um die Plattform anzugeben. Beispiel: "rust-lang.rust-analyzer": ["5.0.0@win32-x64", "5.0.0@darwin-x64"]. Weitere Details finden Sie in der Enterprise-Dokumentation.
Administratoren können diese Einstellung auch über Gruppenrichtlinien unter Windows konfigurieren. Weitere Informationen finden Sie im Abschnitt Gruppenrichtlinien unter Windows in der Enterprise-Dokumentation.
VS Code mit vorinstallierten Erweiterungen einrichten
Sie können VS Code mit einer Reihe von vorinstallierten Erweiterungen (Bootstrapping) einrichten. Diese Funktionalität ist nützlich, wenn Sie ein Maschinen-Image, eine virtuelle Maschine oder eine Cloud-Workstation vorbereiten, auf der VS Code vorinstalliert ist und bestimmte Erweiterungen sofort für Benutzer verfügbar sind.
Hinweis: Die Unterstützung für die Vorinstallation von Erweiterungen ist derzeit nur unter Windows verfügbar.
Befolgen Sie diese Schritte, um Erweiterungen zu bootstrappen
-
Erstellen Sie einen Ordner
bootstrap\extensionsim VS Code-Installationsverzeichnis. -
Laden Sie die VSIX-Dateien für die Erweiterungen herunter, die Sie vorinstallieren möchten, und legen Sie sie im Ordner
bootstrap\extensionsab. -
Wenn ein Benutzer VS Code zum ersten Mal startet, werden alle Erweiterungen im Ordner
bootstrap\extensionsim Hintergrund leise installiert.
Benutzer können vorinstallierte Erweiterungen weiterhin deinstallieren. Ein Neustart von VS Code nach der Deinstallation einer Erweiterung installiert die Erweiterung nicht neu.
Beiträge zu Erweiterungen
Python
Python-Umgebungs-Erweiterung
In dieser Version stellen wir die Python-Umgebungs-Erweiterung vor, die jetzt als Vorschau im Marketplace verfügbar ist.
Diese Erweiterung vereinfacht die Verwaltung von Python-Umgebungen und bietet eine Benutzeroberfläche zum Erstellen, Löschen und Verwalten von Umgebungen sowie zur Paketverwaltung für die Installation und Deinstallation von Paketen.
Sie ist so konzipiert, dass sie sich nahtlos über verschiedene APIs mit Ihren bevorzugten Umgebungsmanagern integriert. Sie unterstützt standardmäßig globale Python-Interpreter, venv und Conda. Entwickler können Erweiterungen erstellen, um Unterstützung für ihre bevorzugten Python-Umgebungsmanager hinzuzufügen und sich mit unserer Erweiterungs-Benutzeroberfläche zu integrieren, wodurch Funktionalität und Benutzererfahrung verbessert werden.
Sie können die Python-Umgebungen im Marketplace herunterladen und mit der Vorabversionsversion der Python-Erweiterung verwenden.
Verbesserungen bei Python-Tests
- Das Argument
--rootdirfür pytest wird jetzt dynamisch angepasst, basierend auf der Anwesenheit einer Einstellungpython.testing.cwdin Ihrem Arbeitsbereich. - Ein Neustart einer Test-Debugging-Sitzung führt jetzt nur die angegebenen Tests erneut aus.
- Die Abdeckungsunterstützung wurde aktualisiert, um
NoSource-Ausnahmen zu behandeln. - Das
pytest-describe-Plugin wird mit Test-Erkennung und -Ausführung in der Benutzeroberfläche unterstützt. - Testing Rewrite nutzt jetzt FIFO anstelle von UDS für die Interprozesskommunikation, sodass Benutzer pytest-Plugins wie
pytest_socketin ihrem eigenen Testdesign nutzen können. - Rewrite nähert sich dem Standardstatus: Diese Veröffentlichung behebt das letzte bekannte Problem im Test-Rewrite. Wenn keine weiteren Probleme auftreten, wird das Rewrite-Experiment deaktiviert und das Rewrite wird Anfang 2025 zum Standard.
Verbesserungen an der Python REPL
- Fokus auf dem Editor belassen nach Smart-Send an Native REPL
- Verbesserte Behandlung nach dem Neuladen für Native REPL
- Fehler bei der Einrückung für Python 3.13 im VS Code-Terminal beheben
Pylance "vollständiger" Sprachservermodus
Die Einstellung python.analysis.languageServerMode unterstützt jetzt auch den Modus full, sodass Sie die vollständige Funktionalität von Pylance und die umfassendste IntelliSense-Erfahrung nutzen können. Es ist erwähnenswert, dass dies auf Kosten geringerer Leistung geht, da es Pylance, insbesondere in großen Codebasen, ressourcenintensiv machen kann.
Die Einstellung python.analysis.languageServerMode ändert nun die Standardwerte der folgenden Einstellungen, je nachdem, ob sie auf light, default oder full gesetzt ist
| Einstellung | light | default | full |
|---|---|---|---|
| python.analysis.exclude | ["**"] | [] | [] |
| python.analysis.useLibraryCodeForTypes | false | true | true |
| python.analysis.enablePytestSupport | false | true | true |
| python.analysis.indexing | false | true | true |
| python.analysis.autoImportCompletions | false | false | true |
| python.analysis.showOnlyDirectDependenciesInAutoImport | false | false | true |
| python.analysis.packageIndexDepths | [ { "name": "sklearn", "depth": 2 }, { "name": "matplotlib", "depth": 2 }, { "name": "scipy", "depth": 2 }, { "name": "django", "depth": 2 }, { "name": "flask", "depth": 2 }, { "name": "fastapi", "depth": 2 } ] |
[ { "name": "sklearn", "depth": 2 }, { "name": "matplotlib", "depth": 2 }, { "name": "scipy", "depth": 2 }, { "name": "django", "depth": 2 }, { "name": "flask", "depth": 2 }, { "name": "fastapi", "depth": 2 } ] |
{ "name": "", "depth": 4, "includeAllSymbols": true } |
| python.analysis.regenerateStdLibIndices | false | false | true |
| python.analysis.userFileIndexingLimit | 2000 | 2000 | -1 |
| python.analysis.includeAliasesFromUserFiles | false | false | true |
| python.analysis.functionReturnTypes | false | false | true |
| python.analysis.pytestParameters | false | false | true |
| python.analysis.supportRestructuredText | false | false | true |
| python.analysis.supportDocstringTemplate | false | false | true |
TypeScript
Erweiterbare Hover-Funktion für TypeScript (experimentell)
In diesem Meilenstein haben wir es möglich gemacht, erweiterte/reduzierte Informationen vom TS-Server anzuzeigen. Die Erweiterung verwendet die API für erweiterbare Hover, um +- und --Markierungen im Hover-Fenster des Editors anzuzeigen, um mehr oder weniger Informationen anzuzeigen.
Die experimentelle Einstellung kann über typescript.experimental.expandableHover aktiviert werden. Damit diese Einstellung funktioniert, müssen Sie TypeScript-Version 5.8 oder höher verwenden. Sie können die TypeScript-Version über den Befehl TypeScript: TypeScript-Version auswählen... ändern.
Microsoft-Konto verwendet jetzt MSAL (mit WAM-Unterstützung unter Windows)
Um eine starke Sicherheitsbasis für die Microsoft-Authentifizierung zu gewährleisten, haben wir die Microsoft Authentication Library in die Microsoft Account-Erweiterung übernommen.
Eines der herausragenden Merkmale dieser Arbeit ist die WAM (Web Account Manager... auch bekannt als Broker) Integration. Vereinfacht gesagt, anstatt für Microsoft-Authentifizierungsflüsse in den Browser zu gehen, kommunizieren wir jetzt direkt mit dem Betriebssystem, was der empfohlene Weg ist, eine Microsoft-Authentifizierungssitzung zu erhalten. Außerdem ist es schneller, da wir die Konten nutzen können, bei denen Sie bereits im Betriebssystem angemeldet sind.

Bitte teilen Sie uns mit, ob Sie Probleme mit diesem neuen Fluss feststellen. Wenn Sie ein größeres Problem feststellen und zum alten Microsoft-Authentifizierungsverhalten zurückkehren müssen, können Sie dies mit microsoft-authentication.implementation (indem Sie sie auf classic setzen und VS Code neu starten) tun. Beachten Sie jedoch, dass diese Einstellung nicht mehr lange verfügbar sein wird. Öffnen Sie also ein Issue, wenn Sie Probleme mit dem MSAL-Fluss haben.
Erweiterungsentwicklung
@vscode/chat-extension-utils
Unsere Chat- und Language Model-Erweiterungs-APIs sind seit mehreren Monaten verfügbar, um Erweiterungsautoren die Integration mit GitHub Copilot zu ermöglichen. Wir haben jedoch festgestellt, dass die Arbeit mit LLMs und der Aufbau hochwertiger Chat-Erweiterungen inhärent komplex ist, insbesondere wenn Sie die Tool-Aufrufe nutzen möchten.
Wir haben ein npm-Paket, @vscode/chat-extension-utils, veröffentlicht, das es so einfach wie möglich machen soll, einen Chat-Teilnehmer einzurichten. Es übernimmt mehrere Aufgaben, die Sie sonst selbst erledigen müssten, sodass Ihr Chat-Teilnehmer in wenigen Codezeilen implementiert werden kann. Das Paket enthält auch eine Sammlung nützlicher, hochwertiger Elemente für die Verwendung mit @vscode/prompt-tsx.
Die vollständige Dokumentation finden Sie im chat-extension-utils Repository und sehen Sie es in Aktion in der Beispiel-Chat-Erweiterung. Unsere neuen LanguageModelTool API Docs beschreiben ebenfalls die Verwendung.
Attributable Coverage API
Die Test-Coverage-APIs ermöglichen es Erweiterungen nun, Coverage-Informationen pro Test bereitzustellen. Um diese API zu implementieren, füllen Sie die Eigenschaft includesTests?: TestItem[] auf der FileCoverage aus, um anzugeben, welche Tests Code in dieser Datei ausgeführt haben, und implementieren Sie TestRunProfile.loadDetailedCoverageForTest, um Statement- und Deklarations-Coverage bereitzustellen.
Sehen Sie sich den Abschnitt Attributable Coverage oben für ein Beispiel an, wie dies für Benutzer aussieht.
Beitragen zu einem JavaScript Debug Terminal
Der JavaScript-Debugger verfügt jetzt über einen Mechanismus, mit dem andere Erweiterungen an der Erstellung von JavaScript Debug Terminals teilnehmen können. Dies ermöglicht Frameworks oder Laufzeitumgebungen außerhalb von Node.js, das Debugging am selben vertrauten Ort zu aktivieren. Weitere Informationen finden Sie in der Dokumentation zu JavaScript Debugger.
Proxy-Unterstützung für die Node.js fetch API
Die globale fetch-Funktion verfügt jetzt über aktivierte Proxy-Unterstützung (http.fetchAdditionalSupport). Dies ist ähnlich wie das https-Modul, das bereits Proxy-Unterstützung hatte.
Vorschau-Features
Code einfügen, um Chat-Kontext anzuhängen
Zuvor konnten Sie bereits Dateien als Kontext an Copilot Chat anhängen. Für eine feinere Kontrolle über den Kontext können Sie jetzt ein Codefragment einfügen, um es als Kontext für den Chat anzuhängen. Dies fügt die erforderlichen Dateinformationen und die entsprechenden Zeilennummern hinzu. Sie können nur Code aus Dateien im aktuellen Arbeitsbereich einfügen.
Um dies auszuprobieren, kopieren Sie Code und fügen Sie ihn in Inline Chat, Quick Chat oder die Chat-Ansicht ein. Wählen Sie das eingefügte Steuerelement aus und wählen Sie Angefügter Code. Alternativ können Sie die Einstellung editor.pasteAs.preferences setzen
"editor.pasteAs.preferences": [
"chat.attach.text"
]

Terminal-Vervollständigungen für mehr Shells
Wir haben in früheren Iterationen experimentelle Unterstützung für Terminal-Vervollständigungen in pwsh hinzugefügt. In dieser Version haben wir begonnen, diese auf andere Shells auszuweiten. Derzeit zielen wir speziell auf bash und zsh ab, aber da dieser neue Ansatz von einer Extension Host API angetrieben wird, planen wir eine allgemeine Unterstützung für die meisten Shells.
Sie können die aktuelle Arbeit in progress ausprobieren, indem Sie terminal.integrated.suggest.enabled und terminal.integrated.suggest.enableExtensionCompletions setzen. Derzeit werden nur Argumente für cd, code und code-insiders unterstützt.

Vorgeschlagene APIs
Vorgeschlagene Wertauswahl-API für Quick Pick
Für InputBox konnten Sie die "Wertauswahl" festlegen, die es Ihnen ermöglicht, Teile oder den gesamten Input programmatisch auszuwählen. In diesem Meilenstein haben wir eine vorgeschlagene API für die Wertauswahl in einem QuickPick hinzugefügt.
Hier ist ein Beispiel, wie das aussehen könnte
const qp = vscode.window.createQuickPick();
qp.value = '12345678';
qp.valueSelection = [4, 6];
qp.items = [
{ label: '12345678', description: 'desc 1' },
{ label: '12345678', description: 'desc 2' },
{ label: '12345678', description: 'desc 3' }
];
qp.show();

Probieren Sie den valueSelectionInQuickPick-Vorschlag aus und lassen Sie uns wissen, was Sie denken, in diesem GitHub-Issue!
Vorgeschlagene Native Window Handle API
In diesem Meilenstein haben wir eine neue vorgeschlagene API hinzugefügt, um das native Fensterhandle des fokussierten Fensters abzurufen. Das native Fensterhandle ist ein Betriebssystemkonzept, das im Wesentlichen einen Zeiger auf ein bestimmtes Fenster bereitstellt. Dies ist nützlich, wenn Sie mit nativem Code interagieren und beispielsweise einen nativen Dialog über einem Fenster rendern möchten.
declare module 'vscode' {
export namespace window {
/**
* Retrieves the native window handle of the current active window.
* This will be updated when the active window changes.
*/
export const nativeHandle: Uint8Array | undefined;
}
}
Dies wurde speziell für die Übernahme von MSAL durch Microsoft-Authentifizierung hinzugefügt, damit wir das native Handle an das Betriebssystem übergeben können, damit es einen Authentifizierungsdialog über VS Code rendert.
Wenn Sie einen Anwendungsfall oder Feedback für den nativeWindowHandle-Vorschlag haben, lassen Sie uns wissen, was Sie denken, in diesem GitHub-Issue!
Technik
Optimierte Erweiterungsupdates mit vscode-unpkg-Dienst
Um die Last auf der Marketplace-Infrastruktur zu reduzieren, verwendet VS Code jetzt den neu hinzugefügten Endpunkt des vscode-unpkg-Dienstes, um auf Erweiterungsupdates zu prüfen. Der Dienst implementiert serverseitiges Caching mit einem TTL von 10 Minuten, was die Anzahl direkter Anfragen an den Marketplace erheblich reduziert. Die Optimierung wird über die Einstellung extensions.gallery.useUnpkgResourceApi gesteuert (standardmäßig aktiviert).
Wenn Sie Probleme mit Erweiterungsupdates feststellen, können Sie diese Funktionalität mit extensions.gallery.useUnpkgResourceApi deaktivieren und zu direkten Marketplace-Versionsprüfungen zurückkehren.
Grundlagen für GPU-Beschleunigung im Editor
Wir freuen uns, Ihnen mitteilen zu können, dass wir mit der Arbeit an der Aktivierung der GPU-Beschleunigung im Editor begonnen haben, ähnlich wie im Terminal. Die Ziele dieser Bemühungen sind die Verbesserung des gesamten Codierungserlebnisses, hauptsächlich durch Reduzierung der Eingabelatenz und Verbesserung der Scroll-Leistung.
Dies ist noch früh und noch nicht zum Testen bereit, aber wir wollten einige Details über die erzielten Fortschritte mitteilen
- Der GPU-Renderer verwendet im Hintergrund WebGPU.
- Wir konzentrieren uns derzeit auf Funktionsparität und Korrektheit gegenüber der Leistung.
- Es gibt einen Fallback-Mechanismus, wenn die GPU-Beschleunigung aktiviert ist, der es Zeilen ermöglicht, auf DOM-Rendering zurückzufallen, wenn es nicht vollständig unterstützt wird. Das bedeutet, dass wir frühzeitig selbst hosten können und derzeit inkompatible Zeilen stattdessen über den DOM-Ansatz angezeigt werden. Einige Beispiele für Zeilen, die derzeit zurückfallen: Zeilen mit über 200 Zeichen, Zeilen mit bestimmten Monaco-Dekorationen (z. B. Verblassen von ungenutzten Variablen), Zeilen mit Umbrüchen usw.
- Monacos Inline-Dekorationen, die das Styling der tatsächlichen Elemente, die die Zeichen enthalten, ermöglichen, stellten eine große Herausforderung für diese Funktion dar, da sie mit CSS gestylt werden. Der Ansatz, den wir verwenden, um die meisten Inline-Dekorationen zu unterstützen, ohne die API zu brechen oder zu ändern, besteht darin, das an diese Dekorationen angehängte CSS zu erkennen und dann eine Teilmenge gängiger CSS-Eigenschaften zu unterstützen und bei Nichtunterstützung aller Stile zurückzufallen.
Hier ist ein Screenshot der Funktion in Aktion. Beachten Sie, dass die gelbe Linie in der Seitenleiste uns mitteilt, welche Zeilen Fallback-Rendering verwenden. Dieser spezielle Fall verwendet Fallback-Rendering, da der Parameter dontShow eine Inline-Dekoration als ungenutzt hat.

Das Issue, das diese Arbeit verfolgt, ist #221145, das häufige Updates und weitere Details zum Fortschritt enthält.
EOL-Warnung für macOS 10.15
VS Code Desktop wird in den nächsten paar Meilensteinen auf Electron 33 aktualisiert. Mit dem Electron 33-Update wird VS Code Desktop nicht mehr unter macOS Catalina ausgeführt. In diesem Meilenstein haben wir Deprecation-Hinweise für Benutzer auf dieser betroffenen Plattform hinzugefügt, um sie auf die Migration vorzubereiten. Wenn Sie Benutzer der oben genannten Betriebssystemversion sind, werfen Sie bitte einen Blick auf unsere FAQ für zusätzliche Informationen.
Bemerkenswerte Fehlerbehebungen
- 233915 Teilen Sie eine Erweiterung mit anderen, indem Sie die Aktion Link kopieren im Kontextmenü einer Erweiterung in der Erweiterungsansicht verwenden.
- 231542 Häufiges Speichern von Dateien nicht möglich oder Dateidaten werden mit Fehler EBUSY gelöscht
- 233304
onDidChangeCheckboxStatedefekt in 1.95 - 232263 Optimieren der Baumansicht, sodass Prozessübergreifende Aufrufe gebündelt werden
- 156723 Drag-and-Drop-Unterstützung behoben beim Ausführen mit Wayland
Vielen Dank
Last but not least, ein großes Danke an die Mitwirkenden von VS Code.
Fehlerverfolgung
Beiträge zu unserer Fehlerverfolgung
Pull-Anfragen
Beiträge zu vscode
- @a-stewart (Anthony Stewart): Unterstützung für einen Rahmen zwischen Seitenleiste und Panel-Titeln und -Ansichten hinzufügen PR #157318
- @aravind-n (Aravind Nidadavolu): Korrigieren der Ausführungsreihenfolge der Fish-Shell-Integration PR #226589
- @BABA983 (BABA): Korrigieren von ShellIntegrationDecorationsEnabled in markdownDescription PR #233387
- @BenLocal (benshi): Cli serve_web setzt den Pfadpräfix auf /
- /, Commit-Wert-Parsing-Fehler PR #233986 - @BlackHole1 (Kevin Cui): fix: kann vscode nicht öffnen, wenn vscode-win32-x64 unter Windows verwendet wird PR #233285
- @BugGambit (Fredrik Anfinsen): Unterstützung für Links 'foo,
' hinzufügen PR #231775 - @cachandlerdev: Erweiterungslink kopieren PR #234210
- @CrafterKolyan (Nikolai Korolev): Schnittstelle zum Hinzufügen von Wertauswahlen in QuickPick für die Erweiterungs-API hinzufügen PR #233275
- @davidmartos96 (David Martos): Behebung der PATH-Präfixierung bei Verwendung von Fish PR #232291
- @dibarbet (David Barbet): Interpolations-Tokens in C# nicht als Zeichenketten kennzeichnen PR #232772
- @duncpro (Duncan): fix: Klickbarkeit des Buttons zum Erstellen neuer Dateien/Ordner PR #232130
- @elias-pap (Elias Papavasileiou): feat: Icon für Vite hinzufügen PR #234620
- @gjsjohnmurray (John Murray)
workbench.view.showQuietlyEinstellungs-Objekt hinzufügen, um das Anzeigen der ausgeblendeten Ausgabeansicht durch Erweiterungen zu verhindern (fix #105270) PR #205225- Behebung des Fehlers bei
Gehe zum aktuellen Verlaufs-Element(fix #235063) PR #235067 Gehe zum aktuellen Verlaufs-Elementnach Änderung des Referenz-Pickers korrekt aktivieren (fix #235132) PR #235134
- @iisaduan (Isabel Duan): Behebung der TypeScript-Einstellung organizeImports PR #232676
- @jeanp413 (Jean Pierre): Korrigiert, dass der alte extensionHost-Prozess nicht sofort nach dem Neuladen des VS Code-Webtabs im Browser beendet wird PR #234944
- @Kannav02 (Kannav Sethi): Ändern des Befehlsnamens "Organize Imports" zu "Optimize Imports" PR #232869
- @LionelJouin (Lionel Jouin): Fix: Go-Grammatik-Update (#_232142) PR #232335
- @LitoMore (LitoMore): Entfernen von Microsoft-bezogenen Logos PR #215758
- @Logicer16 (Logicer): Korrigieren der Grammatik in der Beschreibung von activeOnStart PR #197536
- @RedCMD (RedCMD): Hinzufügen der Dateiendung
.wingetzu YAML PR #232218 - @ribru17 (Riley Bruins): Rendern von JSDoc-Beispielen als TypeScript-Code PR #234143
- @sandersn (Nathan Shively-Sanders): Revertieren von register copilotRelated mit copilot PR #233729
- @nickdiego (Nick Yamane): Korrektur der Drag-and-Drop-Unterstützung bei Verwendung von Wayland Chromium CL
Beiträge zu vscode-emmet-helper
- @onlurking (Diogo Felix): Fehlende HTML-Tags zu Emmet hinzufügen PR #90
Beiträge zu vscode-eslint
- @MariaSolOs (Maria José Solano): Beitragsanweisungen aktualisieren PR #1947
Beiträge zu vscode-extension-samples
- @olguzzar (Olivia Guzzardo): Chat-Tutorial aktualisieren, um request.model zu verwenden PR #1125
- @phil294 (Philip Waritschlager): webview-codicons: Codicon-Abhängigkeit von devDependencies in dependencies verschieben PR #1005
- @witsaint (gaodingqiang): fix:
lsp-embedded-language-servicecleaninterval args Typ PR #1126
Beiträge zu vscode-extension-telemetry
- @kmagiera (Krzysztof Magiera): Sitzungs-ID-Metadaten weitergeben PR #215
Beiträge zu vscode-hexeditor
- @Antecer (Antecer): Wir benötigen eine WYSIWYG-Kopiermethode PR #540
- @Hexa3333 (Alp Yılmaz): Fix: DisplayContextSelection-Lesefehler (#_547) PR #548
- @jogo-: CHANGELOG.md aktualisieren PR #549
- @tomilho (Tomás Silva): fix: STRG+F funktioniert nicht, wenn die Feststelltaste aktiv ist PR #555
Beiträge zu vscode-json-languageservice
- @jeremyfiel (Jeremy Fiel): fix: Tippfehler in der Beschreibung von
thenPR #251 - @Legend-Master (Tony): Behebung der langsamen Validierung großer oneof-Werte PR #247
- @sumimakito (Makito): feat(completion): Unterstützung für Details aus dem Schema PR #243
Beiträge zu vscode-jupyter
- @gjsjohnmurray (John Murray): Hinzufügen der Empfehlung
connor4312.esbuild-problem-matchersPR #16195 - @pwang347 (Paul): Öffentliche API-Ereignis für Kernel nach der Initialisierung hinzufügen PR #16214
Beiträge zu vscode-mypy
- @hamirmahal (Hamir Mahal): fix: Behandlung von Dev-Abhängigkeitsproblemen, die von
npm auditgemeldet wurden PR #327 - @taesungh (Taesung Hwang): Globale Einstellungen für den Standardwert von
ignorePatternsverwenden PR #325
Beiträge zu vscode-python-debugger
Beiträge zu vscode-python-tools-extension-template
Beiträge zu vscode-test-web
- @Cecil0o0 (hj): VS Code Main wurde zurück zu npm verlagert, wir könnten es abfangen PR #148
Beiträge zu inno-updater
- @BlackHole1 (Kevin Cui): fix: Dialog wird angezeigt, wenn silent true ist PR #29
Beiträge zu language-server-protocol
- @EwanDubashinski (Ivan Dubashinskii): Link zum PL/SQL-Sprachserver hinzugefügt PR #2057
- @gquerret (Gilles Querret): OpenEdge ABL zur Liste der Sprachserver hinzufügen PR #2056
- @orbitalquark: Link zur Client-Implementierung für Textadept hinzugefügt. PR #2058