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

Mai 2025 (Version 1.101)

Veröffentlichungsdatum: 12. Juni 2025

Sicherheitsupdate: Die folgende Erweiterung hat Sicherheitsupdates: ms-python.python.

Update 1.101.1: Das Update behebt diese Probleme.

Update 1.101.2: Das Update behebt diese Probleme.

Downloads: Windows: x64 Arm64 | Mac: Universal Intel silicon | Linux: deb rpm tarball Arm snap


Willkommen zur Mai 2025-Version von Visual Studio Code. Es gibt viele Updates in dieser Version, die Ihnen hoffentlich gefallen werden, einige der wichtigsten Highlights sind:

  • MCP

    • Erweitern Sie Ihren Agenten-Codierungsfluss mit Unterstützung für Prompts, Ressourcen und Sampling (Mehr anzeigen).
    • Greifen Sie auf MCP-Server zu, die eine Authentifizierung erfordern (Mehr anzeigen).
    • Debuggen Sie MCP-Server mit dem Entwicklermodus (Mehr anzeigen).
    • Veröffentlichen Sie MCP-Server aus einer Erweiterung (Mehr anzeigen).
  • Chat

    • Gruppieren und verwalten Sie zugehörige Tools, indem Sie sie in einer Tool-Sammlung kombinieren (Mehr anzeigen).
  • Quellcodeverwaltung

    • Dateien in der Quellcodeverwaltungs-Graph-Ansicht anzeigen (Mehr anzeigen).
    • Weisen Sie GitHub Copilot Coding Agent Aufgaben zu und verfolgen Sie diese innerhalb von VS Code (Mehr anzeigen).

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.

Chat

Chat-Tool-Sammlungen

VS Code ermöglicht es Ihnen jetzt, Tool-Sammlungen zu definieren, entweder über eine vorgeschlagene API oder über die Benutzeroberfläche. Eine Tool-Sammlung ist eine Sammlung verschiedener Tools, die genauso verwendet werden können wie einzelne Tools. Tool-Sammlungen erleichtern das Gruppieren zusammengehöriger Tools und deren schnelles Aktivieren oder Deaktivieren im Agentenmodus. Beispielsweise dient die unten gezeigte Tool-Sammlung zur Verwaltung von GitHub-Benachrichtigungen (unter Verwendung des GitHub MCP-Servers).

{
  "gh-news": {
    "tools": ["list_notifications", "dismiss_notification", "get_notification_details"],
    "description": "Manage GH notification",
    "icon": "github-project"
  }
}

Um eine Tool-Sammlung zu erstellen, führen Sie den Befehl Tool-Sammlungen konfigurieren > Neue Tool-Sammlungsdatei erstellen aus der Befehlspalette aus. Sie können dann die Tools auswählen, die Sie in die Tool-Sammlung aufnehmen möchten, und eine Beschreibung sowie ein Symbol angeben.

Um eine Tool-Sammlung in einer Chat-Anfrage zu verwenden, referenzieren Sie sie, indem Sie ihren Namen mit #-erwähnen, z. B. #gh-news. Sie können sie auch aus dem Tool-Picker im Chat-Eingabefeld auswählen.

Screenshot of the Chat view showing a query about unread notifications, using the 'gh-news' tool set highlighted in both the chat interface and a JSON configuration file which defines this tool set.

Erfahren Sie mehr über Tool-Sammlungen in unserer Dokumentation.

MCP-Unterstützung für Prompts

Die Model Context Protocol-Unterstützung von VS Code umfasst nun die Prompt-Unterstützung. Prompts können von MCP-Servern definiert werden, um wiederverwendbare Snippets oder Aufgaben für das Sprachmodell zu generieren. Prompts sind als Slash-Befehle / im Chat im Format /mcp.servername.promptname zugänglich. Sie können reinen Text eingeben oder Befehlsausgaben in Prompt-Variablen einbeziehen, und wir unterstützen auch Vervollständigungen, wenn Server diese bereitstellen.

Das folgende Beispiel zeigt, wie wir einen Prompt mithilfe von KI generieren, ihn mit dem Gistpad MCP-Server speichern und ihn dann zur Generierung eines Changelog-Eintrags verwenden.

MCP-Unterstützung für Ressourcen

Die Model Context Protocol-Unterstützung von VS Code umfasst nun die Ressourcenunterstützung, einschließlich der Unterstützung für Ressourcentemplates. Sie ist an mehreren Stellen verfügbar.

  1. Von MCP-Toolaufrufen zurückgegebene Ressourcen sind für das Modell verfügbar und können im Chat gespeichert werden, entweder über eine Speichern-Schaltfläche oder durch Ziehen der Ressource in die Explorer-Ansicht.
  2. Ressourcen können als Kontext über die Schaltfläche Kontext hinzufügen... im Chat angehängt werden, gefolgt von der Auswahl von MCP-Ressourcen....
  3. Sie können Ressourcen über Server hinweg mit dem Befehl MCP: Ressourcen durchsuchen oder für einen Server über seinen Eintrag im Befehl MCP: Server auflisten durchsuchen und anzeigen.

Hier ist ein Beispiel für das Anhängen von Ressourcen vom Gistpad MCP-Server an den Chat.

MCP-Unterstützung für Sampling (Experimentell)

Die Model Context Protocol-Unterstützung von VS Code umfasst nun das Sampling, das es MCP-Servern ermöglicht, Anfragen an das Modell zurückzusenden. Sie werden aufgefordert, die erste Sampling-Anfrage eines MCP-Servers zu bestätigen, und Sie können die Modelle konfigurieren, auf die der MCP-Server zugreifen kann, sowie eine Anforderungsliste anzeigen, indem Sie den Server unter MCP: Server auflisten auswählen.

Die Sampling-Unterstützung ist noch vorläufig und wir planen, sie in zukünftigen Iterationen zu erweitern und zu verbessern.

MCP-Unterstützung für Authentifizierung

VS Code unterstützt nun MCP-Server, die eine Authentifizierung erfordern, sodass Sie mit einem MCP-Server interagieren können, der im Namen Ihres Benutzerkontos für diesen Dienst agiert.

Diese Funktion implementiert die MCP-Autorisierungsspezifikation für Clients und unterstützt beide

  • 2025-3-26 Spec, bei der der MCP-Server als Autorisierungsserver fungiert.
  • Draft Spec, bei der der MCP-Server als Ressourcenserver fungiert (diese wird voraussichtlich bald finalisiert).

Wenn der MCP-Server die Draft-Spezifikation implementiert und GitHub oder Entra als Authentifizierungsserver nutzt, können Sie verwalten, welche MCP-Server Zugriff auf Ihr Konto haben.

Screenshot of the "Manage Trusted MCP Servers" option in the account menu.

Screenshot of the "Manage Trusted MCP Servers" Quick Pick.

Sie können auch verwalten, welches Konto dieser Server verwenden soll (über das Zahnradsymbol in der vorherigen Schnellauswahl).

Screenshot of the "Account Preference" Quick Pick.

Für andere MCP-Server, die auf die dynamische Client-Registrierung angewiesen sind, nehmen wir den Authentifizierungsstatus an derselben Stelle auf wie alles andere, z. B. bei Linear.

Screenshot of Linear appearing in the account menu.

Dort können Sie sich auch abmelden. Für diese unterstützen wir nicht nur den Code-Autorisierungsfluss, sondern auch den Gerätecodefluss, falls Ihr Autorisierungsserver dies unterstützt.

Wir haben auch den Befehl Authentifizierung: Dynamische Authentifizierungsanbieter entfernen eingeführt, mit dem Sie alle diese dynamischen Client-Registrierungen bereinigen können. Dies verwirft die VS Code zugewiesene Client-ID und alle mit diesem Authentifizierungsanbieter verbundenen Daten.

Denken Sie daran, dass Sie den Befehl MCP: Server hinzufügen... verwenden können, um MCP-Server hinzuzufügen. Dies ist der gleiche Einstiegspunkt für Server mit Authentifizierung.

MCP-Entwicklermodus

Sie können den Entwicklermodus für MCP-Server aktivieren, indem Sie einen Schlüssel dev zur Serverkonfiguration hinzufügen. Dies ist ein Objekt mit zwei Eigenschaften:

  • watch: Ein Dateimuster (Glob), das auf Dateiänderungen überwacht wird, die den MCP-Server neu starten.
  • debug: Ermöglicht Ihnen die Einrichtung eines Debuggers mit dem MCP-Server. Derzeit unterstützen wir nur das Debuggen von Node.js- und Python-Servern, die mit node bzw. python gestartet werden.

.vscode/mcp.json

{
  "servers": {
    "gistpad": {
      "command": "node",
      "args": ["build/index.js"],
+     "dev": {
+       "watch": "build/**/*.js",
+       "debug": { "type": "node" }
+     },

Chat-UX-Verbesserungen

Wir arbeiten kontinuierlich daran, die Benutzerfreundlichkeit von Chats in VS Code basierend auf Ihrem Feedback zu verbessern. Eines dieser Feedbacks war, dass es schwierig sein kann, zwischen Benutzer- und KI-Nachrichten im Chat zu unterscheiden. Um dies zu beheben, haben wir das Erscheinungsbild von Benutzernachrichten deutlicher gestaltet.

Das Rückgängigmachen vorheriger Anfragen ist jetzt auch besser sichtbar – schweben Sie einfach über eine Anfrage und wählen Sie die Schaltfläche X, um diese Anfrage und alle folgenden rückgängig zu machen. Oder noch schneller: Verwenden Sie die Tastenkombination ⌘Backspace (Windows, Linux Entf)!

Schließlich sind Anhänge aus dem Chat-Eingabefeld jetzt besser navigierbar.

Erfahren Sie mehr über die Verwendung von Chat in VS Code in unserer Dokumentation.

Bearbeitungen effizienter anwenden

Beim Bearbeiten von Dateien kann VS Code zwei verschiedene Ansätze verfolgen: Entweder wird die Datei von oben nach unten neu geschrieben oder es werden mehrere kleinere Bearbeitungen vorgenommen. Beide Ansätze unterscheiden sich, z. B. kann der erstere bei großen Dateien langsamer sein und zwischenzeitliche Zustände führen oft nicht zu einem erfolgreichen Kompilieren. Daher passt die Benutzeroberfläche die automatische Speicherung und Unterstreichungen bedingt an und deaktiviert sie, aber nur bei Bedarf.

Wir haben auch die Tastenkombinationen für die Befehle Behalten und Rückgängig abgestimmt. Das Behalten und Rückgängigmachen einzelner Änderungen erfolgt nun mit ⌘Y (Windows, Linux Strg+Y) und ⌘N (Windows, Linux Strg+N). Im gleichen Sinne haben wir auch die Tastenkombinationen für das Behalten und Rückgängigmachen aller Änderungen in einer Datei abgestimmt; sie sind jetzt ⇧⌘Y (Windows, Linux Strg+Umschalt+Y) und ⇧⌘N (Windows, Linux Strg+Umschalt+N). Dies dient nicht nur der Abstimmung, sondern beseitigt auch frühere Konflikte mit gängigen Bearbeitungsbefehlen (wie z. B. Alle links löschen).

Impliziter Kontext

Wir haben die Art und Weise, wie die aktuelle Datei als Kontext zum Chat hinzugefügt wird, optimiert und vereinfacht. Viele Leute fanden den "Augen-Schalter", den wir zuvor hatten, etwas umständlich. Jetzt wird Ihre aktuelle Datei als vorgeschlagener Kontextpunkt angeboten. Wählen Sie einfach den Punkt aus, um ihn zum Chat-Kontext hinzuzufügen oder zu entfernen. Drücken Sie im Eingabefeld des Prompts schnell Umschalt+Tab, Eingabetaste, um dies mit der Tastatur zu tun.

Darüber hinaus geben wir im Agentenmodus einen Hinweis auf Ihren aktuellen Editor. Dies beinhaltet nicht den Inhalt der Datei, nur den Dateinamen und die Cursorposition. Der Agent kann dann die ihm zur Verfügung stehenden Tools verwenden, um den Inhalt der Datei selbst zu lesen, wenn er dies für Ihre Anfrage als relevant erachtet.

Erfahren Sie mehr über das Hinzufügen von Kontext im Chat in unserer Dokumentation.

Fehler in der Aufgabenkonfiguration beheben

Das Konfigurieren von Aufgaben und Problem-Matcher kann knifflig sein. Verwenden Sie die Aktion Mit GitHub Copilot beheben, die bei Fehlern in Ihrer Aufgabenkonfiguration angeboten wird, um diese schnell und effizient zu beheben.

Benutzerdefinierte Chat-Modi (Vorschau)

Standardmäßig unterstützt die Chat-Ansicht drei integrierte Chat-Modi: Fragen, Bearbeiten und Agent. Jeder Chat-Modus verfügt über eine Reihe von Basisinstruktionen, die beschreiben, wie die LLM eine Anfrage behandeln soll, sowie über die Liste der dafür verfügbaren Tools.

Sie können jetzt eigene benutzerdefinierte Chat-Modi definieren, die in der Chat-Ansicht verwendet werden können. Benutzerdefinierte Chat-Modi ermöglichen es Ihnen, das Verhalten des Chats anzupassen und anzugeben, welche Tools in diesem Modus verfügbar sind. Dies ist besonders nützlich für spezialisierte Arbeitsabläufe oder wenn Sie der LLM spezifische Anweisungen geben möchten. Zum Beispiel können Sie einen benutzerdefinierten Chat-Modus zum Planen neuer Funktionen erstellen, der nur Lesezugriff auf Ihre Codebasis hat.

Um einen benutzerdefinierten Chat-Modus zu definieren und zu verwenden, befolgen Sie diese Schritte:

  1. Definieren Sie einen benutzerdefinierten Modus, indem Sie den Befehl Chat: Chat-Modi konfigurieren aus der Befehlspalette verwenden.
  2. Stellen Sie die Anweisungen und verfügbaren Tools für Ihren benutzerdefinierten Chat-Modus in der Datei *.chatprompt.md bereit, die erstellt wird.
  3. Wählen Sie in der Chat-Ansicht den Chat-Modus aus der Dropdown-Liste der Chat-Modi aus.
  4. Senden Sie Ihren Chat-Prompt.

Screenshot of the custom chat mode selected in the Chat view.

Das folgende Beispiel zeigt einen benutzerdefinierten "Planung"-Chat-Modus.

---
description: Generate an implementation plan for new features or refactoring existing code.
tools: ['codebase', 'fetch', 'findTestFiles', 'githubRepo', 'search', 'usages']
---
# Planning mode instructions
You are in planning mode. Your task is to generate an implementation plan for a new feature or for refactoring existing code.
Don't make any code edits, just generate a plan.

The plan consists of a Markdown document that describes the implementation plan, including the following sections:

* Overview: A brief description of the feature or refactoring task.
* Requirements: A list of requirements for the feature or refactoring task.
* Implementation Steps: A detailed list of steps to implement the feature or refactoring task.
* Testing: A list of tests that need to be implemented to verify the feature or refactoring task.

Hinweis: Die Funktion ist noch in Arbeit, aber bitte probieren Sie sie aus! Bitte verfolgen Sie die neuesten Fortschritte in VS Code Insiders und lassen Sie uns wissen, was nicht funktioniert oder fehlt.

Aufgaben-Diagnostikbewusstsein

Wenn der Chat-Agent eine Aufgabe ausführt, ist er sich jetzt möglicher Fehler oder Warnungen bewusst, die von Problem-Matcher identifiziert werden. Dieser Diagnosekontext ermöglicht es dem Chat-Agenten, intelligenter auf auftretende Probleme zu reagieren.

Terminal-CWD-Kontext

Wenn der Agentenmodus ein Terminal geöffnet hat und die Shell-Integration aktiv ist, ist der Chat-Agent sich des aktuellen Arbeitsverzeichnisses (cwd) bewusst. Dies ermöglicht eine genauere und kontextbezogenere Befehlsunterstützung.

Verbesserungen am schwebenden Fenster

Wenn Sie eine Chatsitzung in ein schwebendes Fenster verschieben, stehen in der Titelleiste nun zwei neue Aktionen zur Verfügung:

  • Das Chatfenster wieder in das VS Code-Fenster andocken, aus dem es stammt.
  • Starten Sie eine neue Chatsitzung im schwebenden Fenster.

Screenshot of the Chat view in a floating window, highlighting the Dock and New Chat buttons in the title bar.

Bestätigung des Abruf-Tools

Das Abruf-Tool ermöglicht es Ihnen, Informationen von einer Webseite abzurufen. Wir haben eine Warnmeldung zur Bestätigung hinzugefügt, um Sie über mögliche Prompt-Injection zu informieren.

Screenshot of the fetch tool with a warning about prompt injection.

Weitere integrierte Tools anpassen

Es ist jetzt möglich, alle integrierten Tools im Agentenmodus oder in Ihrem benutzerdefinierten Modus zu aktivieren oder zu deaktivieren. Deaktivieren Sie z. B. editFiles, um den Agentenmodus direktes Bearbeiten von Dateien zu untersagen, oder runCommands für die Ausführung von Terminalbefehlen.

Wählen Sie im Agentenmodus die Schaltfläche Tools konfigurieren, um den Tool-Picker zu öffnen, und wählen Sie Ihre gewünschte Sammlung von Tools aus.

Screenshot of the tool picker, showing the "editFiles" tool set item cleared.

Einige der Einträge in diesem Menü stellen Tool-Sammlungen dar, die mehrere Tools gruppieren. Beispielsweise stellen wir dem Modell mehrere Tools zum Bearbeiten oder Erstellen von Textdateien und Notebooks zur Verfügung, die je nach Modellfamilie variieren können, und editFiles fasst all diese zusammen.

Elemente an Chat senden (Experimentell)

Im letzten Meilenstein haben wir eine neue experimentelle Funktion hinzugefügt, mit der Sie den Simple Browser öffnen und Webinhalte auswählen konnten, um sie aus dem eingebetteten Browser an den Chat anzuhängen.

Screenshot showing the Live Preview extension, highlighting the overlay controls to select web elements from the web page.

Während wir diese Funktion weiter verbessern, haben wir die Unterstützung für die Auswahl von Webinhalten auch in der Live Preview-Erweiterung hinzugefügt. Probieren Sie dies aus, indem Sie die Erweiterung herunterladen und einen Live-Server von einer HTML-Datei aus starten.

Barrierefreiheit

Sound für Benutzeraktion erforderlich

Wir haben ein Barrierefreiheits-Signal hinzugefügt, das anzeigt, wenn der Chat eine Benutzeraktion erfordert. Dies ist optional, da wir den Sound noch abstimmen. Sie können dieses Verhalten mit accessibility.signals.chatUserActionRequired konfigurieren.

Neue Geräusche für Code-Aktionen

Wir haben deutliche Geräusche eingeführt für

Verbesserungen der Barrierefreiheit im Agentenmodus

Wir liefern jetzt umfangreiche Informationen zu Bestätigungsdialogen in der barrierefreien Ansicht, die frühere Tool-Ausführungen, die aktuelle Tool-Ausführung und alle ausstehenden Bestätigungen abdecken. Dazu gehören auch die verwendeten Eingaben.

Wenn ein Bestätigungsdialog in einer Antwort erscheint, ist der Titel der Aktion nun im ARIA-Label des entsprechenden Codeblocks, im ARIA-Label der Antwort und in der Live-Meldung enthalten, um Benutzern von Screenreadern einen besseren Kontext zu bieten.

Editor-Erlebnis

Finden während der Eingabe

Einstellung: editor.find.findOnType

Das Finden während der Eingabe war das Standardverhalten der Suchfunktion, aber jetzt können Sie steuern, ob dies beibehalten werden soll oder ob es deaktiviert werden soll, sodass die Suche erst nach dem Drücken der Eingabetaste durchgeführt wird.

Benutzerdefinierte Menüs mit nativer Fenster-Titelleiste

Einstellung: window.menuStyle

Sie können nun den Menüstil für die Menüleiste und Kontextmenüs unter Windows und Linux sowie für Kontextmenüs unter macOS mit der Einstellung window.menuStyle festlegen.

  • native: vom Betriebssystem gerendert
  • custom: von VS Code gerendert
  • inherit: entspricht dem Stil der Titelleiste, wie sie unter window.titleBarStyle eingestellt ist (ermöglicht die Verwendung einer nativen Titelleiste mit einer benutzerdefinierten Menüleiste und Kontextmenüs).

Natives Fenster-Kontextmenü unter Linux

Wir unterstützen jetzt das native Fenster-Kontextmenü, wenn Sie mit der rechten Maustaste auf das Anwendungssymbol in der benutzerdefinierten Titelleiste klicken.

Screenshot of the native window context menu over the custom title bar.

Prozess-Explorer Web-Unterstützung

Der Prozess-Explorer wurde so umgebaut, dass er die schwebende Fensterinfrastruktur nutzt, die wir in der Werkstatt für Editorfenster haben. Dadurch unterstützen wir nun auch den Prozess-Explorer im Web, wenn er mit einem Remote-System verbunden ist (z. B. in Codespaces).

Screenshot of the VS Code process explorer in a floating window.

Erkennung der Shell-Umgebung unter Windows

Wir haben nun die Erkennung der Shell-Umgebung für PowerShell unter Windows implementiert. Das bedeutet, dass VS Code jede in den PowerShell-Profilen konfigurierte Umgebung erbt, wie z. B. PATH-Updates, die Node.js über verschiedene Versionsmanager konfiguriert.

Warnung für unveröffentlichte Erweiterungen

Installierte Erweiterungen zeigen nun einen Warnhinweis an, wenn sie im Marketplace nicht mehr verfügbar sind. Dies hilft Ihnen, potenziell problematische Erweiterungen zu identifizieren, die unveröffentlicht oder entfernt wurden.

Screenshot of an extension with a warning indicator and a message indicating it's no longer available in the Marketplace.

Einstellungen-Suchvorschläge (Vorschau)

Einstellung: workbench.settings.showAISearchToggle

In diesem Meilenstein haben wir dem Einstellungen-Editor einen Schalter hinzugefügt, der eine KI-Suche startet, um semantisch ähnliche Ergebnisse zu finden, anstatt Ergebnisse, die auf Zeichenkettenvergleichen basieren. Zum Beispiel findet die KI-Suche die Einstellung editor.fontSize, wenn Sie nach "Schriftgröße erhöhen" suchen.

Um den Schalter zu sehen, aktivieren Sie die Einstellung und laden Sie VS Code neu. Wir sind auch dabei, einige der weniger genauen Suchergebnisse für Einstellungen zu identifizieren und zu beheben, und wir freuen uns über Feedback, wenn eine natürliche Sprachabfrage keine erwartete Einstellung gefunden hat.

Für den nächsten Meilenstein erwägen wir auch, den Schalter zu entfernen und die experimentelle Einstellung auf eine zu ändern, die steuert, wann die langsameren KI-Suchergebnisse direkt am Ende der Liste angehängt werden.

Suchbegriff-Vorschläge (Vorschau)

Einstellung: search.searchView.keywordSuggestions

Im letzten Meilenstein haben wir Schlagwort-Vorschläge in der Suchansicht eingeführt, um Ihnen zu helfen, relevante Ergebnisse schneller zu finden. Wir haben die Leistung der Vorschläge nun erheblich verbessert, sodass Sie die Ergebnisse etwa 5x schneller als zuvor erhalten.

Wir haben die Einstellung auch von der Chat-Erweiterung in den VS Code-Kern verschoben und sie von github.copilot.chat.search.keywordSuggestions in search.searchView.keywordSuggestions umbenannt.

Optionen für das semantische Suchverhalten (Vorschau)

Einstellung: search.searchView.semanticSearchBehavior

Mit der semantischen Suche in der Suchansicht können Sie Ergebnisse erhalten, die auf der Bedeutung Ihrer Abfrage basieren und nicht nur auf Textübereinstimmungen. Dies ist besonders nützlich, wenn Sie die genauen Begriffe nicht kennen, nach denen Sie suchen möchten.

Standardmäßig wird die semantische Suche nur ausgeführt, wenn Sie sie explizit anfordern. Wir haben nun eine Einstellung hinzugefügt, um zu steuern, wann Sie möchten, dass die semantische Suche ausgelöst wird:

  • manual (Standard): Führen Sie die semantische Suche nur aus, wenn sie manuell über die Benutzeroberfläche ausgelöst wird (⌘I (Windows, Linux Strg+I))
  • runOnEmpty: Führen Sie die semantische Suche automatisch aus, wenn die Textsuche keine Ergebnisse liefert.
  • auto: Führen Sie die semantische Suche immer parallel zur Textsuche für jede Suchanfrage aus.

Bearbeitungskontext

Einstellung: editor.editContext

Wir haben die Einstellung editor.editContext standardmäßig auf Stable aktiviert. Das bedeutet, dass die Eingabe des Editors jetzt von der EditContext API angetrieben wird. Dies behebt zahlreiche Fehler, insbesondere im Zusammenhang mit der IME-Erfahrung, und wird künftig den Weg für eine vielseitigere und robustere Eingabeerfahrung im Editor ebnen.

Weitere Details zur EditContext API finden Sie in der MDN-Dokumentation.

Code-Bearbeitung

Importvorschläge für NES

Einstellung: github.copilot.nextEditSuggestions.fixes

Letzten Monat haben wir die Unterstützung für Next Edit Suggestions eingeführt, um das Hinzufügen fehlender Importanweisungen für TypeScript und JavaScript automatisch vorzuschlagen. In dieser Version haben wir die Genauigkeit und Zuverlässigkeit dieser Vorschläge verbessert und die Unterstützung auf Python-Dateien erweitert.

Screenshot showing NES suggesting an import statement.

NES ist für alle VS Code Insiders-Benutzer aktiviert und wird im Juni schrittweise standardmäßig für Stable-Benutzer aktiviert. Sie können NES jederzeit selbst über seine Einstellung aktivieren.

NES-Akzeptanzfluss

Das Akzeptieren von Next Edit-Vorschlägen ist jetzt nahtloser mit verbesserter Tastaturführung. Sobald Sie einen Vorschlag akzeptieren, können Sie nachfolgende Vorschläge mit einem einzigen Tastendruck auf Tab weiter akzeptieren, solange Sie nicht erneut zu tippen begonnen haben. Sobald Sie zu tippen beginnen, drücken Sie Tab, um den Cursor zuerst zum nächsten Vorschlag zu bewegen, bevor Sie ihn akzeptieren können.

Notebooks

Folgemodus für die Ausführung von Agenten-Zellen

Einstellung: github.copilot.chat.notebook.followCellExecution.enabled

Mit dem Folgemodus scrollt die Notebook-Ansicht automatisch zur Zelle, die gerade vom Agenten ausgeführt wird. Verwenden Sie die Einstellung github.copilot.chat.notebook.followCellExecution.enabled, um den Folgemodus für die Ausführung von Agenten-Zellen in Jupyter-Notebooks zu aktivieren oder zu deaktivieren.

Sobald der Agent das Tool "Zelle ausführen" verwendet hat, wird die Notebook-Symbolleiste mit einem Pin-Symbol aktualisiert, das den Status des Folgemodus anzeigt. Sie können das Verhalten während der Agentenantwort umschalten, ohne den Basis-Einstellungswert zu ändern, sodass Sie die Arbeit des Agenten in Echtzeit verfolgen können, und es ausschalten, wenn Sie einen bestimmten Codeabschnitt überprüfen möchten, während der Agent weiter iteriert. Wenn Sie wieder folgen möchten, schalten Sie einfach den Modus um und steigen Sie bei der nächsten Ausführung ein.

Notebook-Tools für den Agentenmodus

Notebook konfigurieren

Die Jupyter-Erweiterung stellt Werkzeuge zur Konfiguration des Kernels eines Jupyter-Notebooks bereit. Dieses Werkzeug stellt sicher, dass ein Kernel ausgewählt ist und einsatzbereit ist. Dazu gehört die Führung durch den Prozess der Erstellung einer virtuellen Umgebung, falls erforderlich (der empfohlene Ansatz), oder die Aufforderung zur Auswahl einer vorhandenen Python-Umgebung.

Dieses Werkzeug stellt sicher, dass die LLM Operationen am Notebook ausführen kann, wie z. B. das Ausführen von Zellen mit minimaler Benutzerinteraktion, wodurch die allgemeine Benutzererfahrung im Agentenmodus verbessert wird.

Lang laufende Agenten-Workflows

Der Agent hat Zugriff auf ein internes Notebook-Zusammenfassungs-Tool, um ihn mit einem genauen Kontext auf Kurs zu halten. Diese Zusammenfassung ist auch enthalten, wenn der Gesprächsverlauf zusammengefasst wird, wenn der Kontext zu groß wird, um den Agenten bei komplexen Operationen am Laufen zu halten.

Zellen-Vorschau in der Ausführungsbestätigung

Ein Code-Snippet wird aus einer Notebook-Zelle angezeigt, wenn der Agent eine Bestätigung für die Ausführung dieser Zelle anfordert. Die Zell-Links in der Chat-Ansicht ermöglichen es Ihnen nun auch, direkt zu Zellen im Notebook zu navigieren.

Quellcodeverwaltung

Copilot Coding Agent Integration

Mit dem Copilot Coding Agent kann GitHub Copilot unabhängig im Hintergrund arbeiten, um Aufgaben zu erledigen, ähnlich wie ein menschlicher Entwickler. Wir haben die GitHub Pull Requests-Erweiterung erweitert, um es einfacher zu machen, Aufgaben für den Agenten direkt aus VS Code heraus zuzuweisen und zu verfolgen.

Wir haben die folgenden Funktionen zur Erweiterung hinzugefügt:

  • Copilot zuweisen: Weisen Sie einen Pull Request oder ein Issue Copilot aus der Issue- oder PR-Ansicht in VS Code zu.
  • Copilot in meinem Namen PR-Abfrage: Sehen Sie schnell alle Pull Requests, an denen Copilot für Sie arbeitet.
  • PR-Ansicht: Sehen Sie den Status des Copilot Coding Agents und öffnen Sie die Sitzungsdetails im Browser.

Screenshot showing the GitHub Pull Requests view, highlighting the assign to Copilot action, and the PR query for work assigned to Copilot.

Details zu Elementen der Quellcodeverwaltungs-Historie

Aufgrund vieler Anfragen werden beim Auswählen eines Elements in der Quellcodeverwaltungs-Graph-Ansicht nun die Ressourcen dieses Verlaufs-Elements angezeigt. Sie können zwischen einer Baumansicht oder Listenansicht über das Menü ... wählen.

Um alle Ressourcen eines Verlaufs-Elements im Multi-File-Diff-Editor zu öffnen, verwenden Sie die Aktion Änderungen öffnen beim Darüberfahren mit der Maus. Das Auswählen einer bestimmten Ressource aus der Graph-Ansicht öffnet einen Diff-Editor nur für diese Ressource. Wählen Sie die Aktion Datei öffnen, um die Datei für diese bestimmte Version zu öffnen.

Verlaufs-Element zum Chat-Kontext hinzufügen

Sie können jetzt ein Verlaufs-Element der Quellcodeverwaltung als Kontext zu einer Chat-Anfrage hinzufügen. Dies kann nützlich sein, wenn Sie den Inhalt eines bestimmten Commits oder Pull Requests als Kontext für Ihren Chat-Prompt angeben möchten.

Screenshot of the Chat view input box that has a history item added as context.

Um ein Historienelement zum Chat hinzuzufügen, verwenden Sie im Chat-Bereich Kontext hinzufügen > Quellcodeverwaltung und wählen Sie dann ein bestimmtes Historienelement aus. Alternativ klicken Sie mit der rechten Maustaste auf das Historienelement im Quellcodeverwaltungsdiagramm und wählen Sie dann im Kontextmenü Copilot > Historienelement zum Chat hinzufügen.

Aufgaben

Instanzrichtlinie

Die Aufgabe runOptions hat jetzt eine Eigenschaft instancePolicy, die bestimmt, was geschieht, wenn eine Aufgabe ihre instanceLimit erreicht hat.

Optionen sind prompt (Standard), silent, terminateNewest, terminateOldest und warn.

Screenshot showing an  being configured in a  file and displays the options with prompt as the default value.

Terminal

Sprachserverbasierter Terminalvorschlag

Sprachserver-Vervollständigungen sind jetzt im Terminal für interaktive Python REPL-Sitzungen verfügbar. Dies bringt dieselben Sprachvervollständigungen, die Sie im Editor erhalten, jetzt auch ins Terminal. Wir beginnen mit der Unterstützung von Python über Pylance, mit Plänen, zukünftig weitere Sprachen zu unterstützen.

Um es auszuprobieren, stellen Sie sicher, dass die folgenden Einstellungen aktiviert sind

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

  • SSH-Vorverbindungs-Skript
  • Verbesserungen am Remote Explorer

Weitere Informationen zu diesen Funktionen finden Sie in den Release Notes zur Remote-Entwicklung.

Beiträge zu Erweiterungen

Python

Python-Chat-Tools

Die Python-Erweiterung enthält jetzt die folgenden Chat-Tools: „Informationen für eine Python-Umgebung abrufen“, „Ausführungsinformationen für eine Python-Umgebung abrufen“, „Python-Paket installieren“ und „Python-Umgebung konfigurieren“. Sie können sie entweder direkt in Ihrer Eingabeaufforderung referenzieren, indem Sie #getPythonEnvironmentInfo oder #installPythonPackage hinzufügen, oder der Agentenmodus ruft das Tool bei Bedarf automatisch auf. Diese Tools erkennen nahtlos die entsprechenden Umgebungs­informationen, basierend auf Datei- oder Arbeitsbereichskontext, und handhaben die Paket­installation mit genauer Umgebungs­­­­auflösung.

Das Tool „Python-Umgebung konfigurieren“ stellt sicher, dass die Python-Umgebung für den Arbeitsbereich korrekt eingerichtet ist. Dies umfasst die Erstellung einer virtuellen Umgebung, falls erforderlich, und deren Auswahl als aktive Python-Umgebung für den Arbeitsbereich.

Tools, die zuvor in der (Vorschau von der) Python-Umgebungs­erweiterung eingeführt wurden, wurden in die Python-Erweiterung migriert, wodurch diese Tools für alle Benutzer mit installierter Python-Erweiterung verfügbar sind.

Projekt aus Vorlage erstellen

Die Python-Umgebungs­erweiterung unterstützt jetzt die Projekterstellung für Python-Pakete und einfache Skripte, sodass Sie das Grundgerüst überspringen und schneller mit dem Codieren beginnen können. Verwenden Sie den Befehl Python-Umgebungen: Projekt aus Vorlage erstellen, um auszuwählen, ob Sie ein Paket oder ein Skript erstellen möchten.

Für die Paketerstellung können Sie das Paket benennen, eine virtuelle Umgebung erstellen und ein grundlegendes Projekt erhalten, das einen Unterordner für Tests, pyproject.toml, dev-requirements.txt sowie Boilerplate-Dateien __main__.py und __init__.py enthält.

Für Skripte wird eine neue Python-Datei mit dem von Ihnen gewählten Namen erstellt und Boilerplate-Code hinzugefügt.

PyEnv und Poetry-Unterstützung

Wir haben die Unterstützung für pyenv für die Umgebungs­verwaltung und poetry für die Paket- und Umgebungs­verwaltung in der Python-Umgebungs­erweiterung hinzugefügt.

GitHub Pull Requests

Es gab weitere Fortschritte bei der GitHub Pull Requests-Erweiterung, die es Ihnen ermöglicht, Pull Requests und Issues zu bearbeiten, zu erstellen und zu verwalten. Neue Funktionen umfassen

  • Bilder in Kommentaren von privaten Repositories werden jetzt in Pull-Request-Datei­kommentaren angezeigt.
  • Die Ansicht „Benachrichtigungen“ wird jetzt standardmäßig angezeigt, zusammengeklappt. -- Probleme und Pull-Request-Links in der Zeitleiste und im Problem-/Pull-Request-Text werden jetzt in VS Code geöffnet, anstatt zum Browser zu wechseln.
  • Die Abfrage „Mir zugewiesen“ in der Ansicht „Pull-Requests“ wurde entfernt, und die Abfragen „Lokale Pull-Request-Branches“ und „Alle offen“ können über die Einstellung githubPullRequests.queries entfernt werden. Für Repositories mit Copilot wird eine Abfrage „Copilot in meinem Namen“ hinzugefügt, wenn die Einstellung nicht konfiguriert ist.
  • Copilot „Arbeit aufnehmen“, „Arbeit beenden“ und „Sitzung anzeigen“ werden jetzt in der Zeitleiste angezeigt.

Lesen Sie die Änderungsprotokolle für die Version 0.112.0 der Erweiterung, um mehr über die anderen Highlights zu erfahren.

Erweiterungsentwicklung

MCP-Erweiterungs-APIs

Erweiterungen können jetzt Sammlungen von MCP-Servern veröffentlichen. Dies ermöglicht es Ihnen, MCP-Server mit Ihrer Erweiterung zu bündeln oder Erweiterungen zu erstellen, die MCP-Server dynamisch aus anderen Quellen entdecken. Erfahren Sie mehr in unserem Leitfaden zur MCP-Erweiterungs­entwicklung oder indem Sie sich das MCP-Erweiterungs­­beispiel ansehen.

Geheimnisprüfung beim Paketieren von Erweiterungen

VSCE prüft nun auf Geheimnisse beim Paketieren Ihrer Erweiterung. Wenn potenzielle Geheimnisse (z. B. API-Schlüssel, Token, Anmeldeinformationen oder Umgebungsvariablen-Dateien wie .env) in Ihren Quelldateien erkannt werden, zeigt VSCE während des Paketierungs­prozesses einen Fehler an. Dies hilft Ihnen, versehentliches Veröffentlichen sensibler Informationen im Marketplace zu vermeiden. Stellen Sie sicher, dass Sie alle Fehler überprüfen und beheben, bevor Sie Ihre Erweiterung veröffentlichen.

Wenn Sie bestimmte Prüfungen umgehen müssen, können Sie beim Ausführen von VSCE die Flags --allow-package-secrets <secret_type> oder --allow-package-env-file verwenden. Diese Flags ermöglichen es Ihnen, zu konfigurieren, welche Geheimnis- oder Umgebungsvariablen-Datei­prüfungen beim Paketieren übersprungen werden sollen.

Erkennung der Web­umgebung

⚠️ Unterbrechende Änderung ⚠️

Einstellung: extensions.supportNodeGlobalNavigator

Der Node.js-Erweiterungs­host wird im Rahmen unseres Electron 35 Runtime-Updates von v20 auf v22 aktualisiert. Dieses Update bringt Unterstützung für das globale Objekt navigator in den Desktop- und Remote-Erweiterungs­hosts, basierend auf Chromium 134.0.6998.205 und Node.js 22.15.1.

Diese Änderung kann zu einer unterbrechenden Änderung für Erweiterungen führen, die auf die Anwesenheit des navigator-Objekts zur Erkennung der Web­umgebung angewiesen sind.

Um Erweiterungs­autoren bei der Migration zu unterstützen, haben wir ein Polyfill für globalThis.navigator erstellt, das mit undefined initialisiert wird, damit Ihre Erweiterung weiterhin korrekt funktioniert. Das Polyfill ist hinter der VS Code-Einstellung extensions.supportNodeGlobalNavigator versteckt. Standardmäßig ist diese Einstellung deaktiviert und das Polyfill ist vorhanden. Wir erfassen Telemetriedaten und protokollieren einen Fehler (im Erweiterungs­entwicklungs­modus), wenn Ihre Erweiterung versucht, auf diese Weise auf navigator zuzugreifen.

In Zukunft könnte diese Einstellung standardmäßig aktiviert sein, daher fordern wir Erweiterungs­autoren dringend auf, ihren Code so zu migrieren, dass er mit dem neuen globalen navigator-Objekt kompatibel ist. Befolgen Sie diese Schritte, um Ihren Code zu migrieren

  • Überprüfen Sie das Protokoll des Erweiterungs­hosts auf einen PendingMigrationError mit einem Fehler-Stacktrace, der von Ihrer Erweiterung ausgeht.
  • Stellen Sie sicher, dass Prüfungen wie typeof navigator === 'object' bei Bedarf zu typeof process === 'object' && process.versions.node migriert werden.
  • Aktivieren Sie extensions.supportNodeGlobalNavigator.
  • Überprüfen Sie, ob das Verhalten der Erweiterung unverändert bleibt.

Vorgeschlagene APIs

Authentifizierungs­anbieter: Unterstützte Autorisierungs­server für MCP

Diese API-Vorschau, die derzeit nur in der MCP-Authentifizierung verwendet wird, ermöglicht es Ihrem AuthenticationProvider, die zugehörigen Autorisierungs­server anzugeben.

Wenn Sie sich beispielsweise den GitHub-Authentifizierungs­anbieter ansehen, enthält dieser die typische GitHub-Autorisierungs­URL in der Eigenschaft authorizationServerGlobs in dem Beitrag des Authentifizierungs­anbieters

{
  "label": "GitHub",
  "id": "github",
  "authorizationServerGlobs": ["https://github.com/login/oauth"]
}

Diese Eigenschaft wird für die Aktivierung Ihrer Erweiterung verwendet – wenn der angeforderte Autorisierungs­server übereinstimmt, wird Ihre Erweiterung aktiviert.

Darüber hinaus müssen Sie bei der Registrierung des Authentifizierungs­anbieters die endgültigen URL-Globs des Autorisierungs­servers angeben. Genau wie GitHub-Authentifizierung dies tut

vscode.authentication.registerAuthenticationProvider(
  type,
  this._githubServer.friendlyName,
  this,
  {
    supportsMultipleAccounts: true,
    supportedAuthorizationServers: [
      ghesUri ?? vscode.Uri.parse('https://github.com/login/oauth')
    ]
  }
);

Ein komplexeres Beispiel ist die Microsoft-Authentifizierung. Der Autorisierungs­server hängt vom Mandanten ab, der im Pfad platziert wird. Daher verwenden wir hier einen Platzhalter in dem Beitrag

{
  "label": "Microsoft",
  "id": "microsoft",
  "authorizationServerGlobs": [
    "https://login.microsoftonline.com/*/v2.0"
  ]
},

und in der Registrierung

authentication.registerAuthenticationProvider('microsoft', 'Microsoft', authProvider, {
  supportsMultipleAccounts: true,
  supportedAuthorizationServers: [Uri.parse('https://login.microsoftonline.com/*/v2.0')]
});

Wenn ein Aufrufer dann eine Autorisierungs­server-URL angibt, wenn er nach Authentifizierung fragt, wird dies über die bereits vorhandenen AuthenticationProviderSessionOptions sowohl an die Funktionen getSessions als auch createSession weitergegeben.

Wie erwähnt, wird diese Funktionalität derzeit in der MCP-Unterstützung verwendet, wo wir die Autorisierungs­server-URL zur Authentifizierung vom MCP-Server erhalten. Diese URL wird dann einem Authentifizierungs­anbieter zugeordnet oder, wenn keiner vorhanden ist, dynamisch ein Authentifizierungs­anbieter für diesen Autorisierungs­server erstellt.

Die vollständige API-Vorschau finden Sie im vscode-Repository, und wir würden uns über Ihr Feedback in der GitHub-Issue freuen!

Technik

Electron 35-Update

In diesem Meilenstein fördern wir das Electron 35-Update für Benutzer unserer stabilen Version. Dieses Update enthält Chromium 134.0.6998.205 und Node.js 22.15.1. Wir möchten uns bei allen bedanken, die auf Insiders-Builds selbst gehostet und frühes Feedback gegeben haben.

ESM in einer realen Erweiterung übernehmen

Im letzten Meilenstein haben wir die Unterstützung für JavaScript-Module (ESM) angekündigt. Dies ermöglicht es Erweiterungen, import- und export-Anweisungen zu verwenden, aber derzeit nur, wenn sie auf den NodeJS-Erweiterungs­host abzielen.

In diesem Monat haben wir eine reale Anwendung mit GitHub Issue Notebooks durchgeführt. Dies ist nicht trivial, da diese Erweiterung im NodeJS-Erweiterungs­host (der ESM-Erweiterungen unterstützt) und im Webworker-Erweiterungs­host ausgeführt werden kann, der derzeit keine ESM-Erweiterungen unterstützt. Dies erforderte eine komplexere Bundler­konfiguration, und Sie können sich von seiner esbuild-Konfiguration inspirieren lassen.

Bemerkenswerte Fehlerbehebungen

  • 250077 - Tree-Sitter-basierte Syntaxhervorhebung hängt vom Modelldienst ab

Vielen Dank

Last but not least, ein großes Danke an die Mitwirkenden von VS Code.

Fehlerverfolgung

Beiträge zu unserer Fehlerverfolgung

Pull-Anfragen

Beiträge zu vscode

Beiträge zu vscode-copilot-release

Beiträge zu vscode-css-languageservice

Beiträge zu vscode-custom-data

Beiträge zu vscode-eslint

Beiträge zu vscode-generator-code

Beiträge zu vscode-js-debug

Beiträge zu vscode-jupyter

  • @WillHirsch: Diagnose­schweregrad für die Verwendung von Bang statt Prozent für Paket­installationen herabstufen PR #16601

Beiträge zu vscode-languageserver-node

Beiträge zu vscode-markdown-tm-grammar

Beiträge zu vscode-prompt-tsx

Beiträge zu vscode-pull-request-github

Beiträge zu vscode-python-debugger

Beiträge zu debug-adapter-protocol

Beiträge zu language-server-protocol

Beiträge zu lsprotocol

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