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

April 2025 (Version 1.100)

Erscheinungsdatum: 8. Mai 2025

Update: Aktivieren Sie Next Edit Suggestions (NES) standardmäßig in VS Code Stable (mehr...).

Update 1.100.1: Das Update behebt diese Sicherheitsprobleme.

Update 1.100.2: Das Update behebt diese Probleme.

Update 1.100.3: Das Update behebt diese Probleme.

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


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

  • Chat

    • Benutzerdefinierte Anweisungen und wiederverwendbare Prompts (mehr...).
    • Intelligentere Ergebnisse mit Tools für GitHub, Erweiterungen und Notebooks (mehr...).
    • Unterstützung für Bilder und Streamable HTTP für MCP (mehr...).
  • Chat-Performance

    • Schnellere Antworten auf wiederholte Chat-Anfragen (mehr...).
    • Schnellere Bearbeitungen im Agentenmodus (mehr...).
  • Editor-Erlebnis

    • Verbesserte Multi-Fenster-Unterstützung für Chat und Editoren (mehr...).
    • Gestufte Änderungen jetzt einfacher zu identifizieren (mehr...).

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

Anweisungs- und Prompt-Dateien

Sie können Ihr KI-Erlebnis in VS Code an Ihre spezifischen Programmierpraktiken und Ihren Technologie-Stack anpassen, indem Sie Markdown-basierte Anweisungen und Prompt-Dateien verwenden. Wir haben die Implementierung und Nutzung dieser beiden verwandten Konzepte aufeinander abgestimmt, jedoch haben sie jeweils unterschiedliche Zwecke.

Anweisungsdateien

Einstellung: chat.instructionsFilesLocations

Anweisungsdateien (auch bekannt als benutzerdefinierte Anweisungen oder Regeln) bieten eine Möglichkeit, allgemeine Richtlinien und Kontext für das KI-Modell in einer Markdown-Datei zu beschreiben, z. B. Code-Stilregeln oder welche Frameworks verwendet werden sollen. Anweisungsdateien sind keine eigenständigen Chat-Anfragen, sondern bieten Kontext, den Sie auf eine Chat-Anfrage anwenden können.

Anweisungsdateien verwenden die Dateiendung .instructions.md. Sie können sich in Ihrem Benutzerdatenordner oder im Arbeitsbereich befinden. Die Einstellung chat.instructionsFilesLocations listet die Ordner auf, die Anweisungsdateien enthalten.

Sie können Anweisungen manuell an eine bestimmte Chat-Anfrage anhängen oder sie können automatisch hinzugefügt werden

  • Um sie manuell hinzuzufügen, verwenden Sie die Schaltfläche Kontext hinzufügen in der Chat-Ansicht und wählen Sie dann Anweisungen.... Alternativ verwenden Sie den Befehl Chat: Anweisungen anhängen... über die Befehlspalette. Dies öffnet eine Auswahl, mit der Sie vorhandene Anweisungsdateien auswählen oder eine neue erstellen können, die angehängt werden soll.

  • Um Anweisungen automatisch zu einem Prompt hinzuzufügen, fügen Sie den Front Matter-Header applyTo zur Anweisungsdatei hinzu, um anzugeben, für welche Dateien die Anweisungen gelten. Wenn eine Chat-Anfrage eine Datei enthält, die dem angegebenen Glob-Muster entspricht, wird die Anweisungsdatei automatisch angehängt.

    Das folgende Beispiel enthält Anweisungen für TypeScript-Dateien (applyTo: '**/*.ts')

    ---
    applyTo: '**/*.ts'
    ---
    Place curly braces on separate lines for multi-line blocks:
    if (condition)
    {
      doSomething();
    }
    else
    {
      doSomethingElse();
    }
    

Sie können Anweisungsdateien mit dem Befehl Chat: Neue Anweisungsdatei... erstellen. Darüber hinaus können die im Ordner Benutzerdaten erstellten Dateien über den Dienst "Einstellungen-Synchronisierung" automatisch über mehrere Benutzerrechner hinweg synchronisiert werden. Stellen Sie sicher, dass Sie die Option Prompts und Anweisungen im Dialogfeld Einstellungen sichern und synchronisieren... auswählen.

Erfahren Sie mehr über Anweisungsdateien in unserer Dokumentation.

Prompt-Dateien

Einstellung: chat.promptFilesLocations

Prompt-Dateien beschreiben eine eigenständige, vollständige Chat-Anfrage, einschließlich des Prompt-Textes, des Chat-Modus und der zu verwendenden Tools. Prompt-Dateien sind nützlich für die Erstellung wiederverwendbarer Chat-Anfragen für gängige Aufgaben. Sie können beispielsweise eine Prompt-Datei zum Erstellen einer Front-End-Komponente oder zur Durchführung einer Sicherheitsüberprüfung hinzufügen.

Prompt-Dateien verwenden die Dateiendung .prompt.md. Sie können sich in Ihrem Benutzerdatenordner oder im Arbeitsbereich befinden. Die Einstellung chat.promptFilesLocations listet den Ordner auf, in dem nach Prompt-Dateien gesucht wird.

Es gibt mehrere Möglichkeiten, eine Prompt-Datei auszuführen

  • Geben Sie / in das Chat-Eingabefeld ein, gefolgt vom Namen der Prompt-Datei. Screenshot, der die Ausführung eines Prompts in der Chat-Ansicht mit einem Slash-Befehl zeigt.

  • Öffnen Sie die Prompt-Datei in einem Editor und drücken Sie die 'Play'-Schaltfläche in der Symbolleiste des Editors. Dies ermöglicht es Ihnen, den Prompt schnell zu iterieren und ihn auszuführen, ohne zur Chat-Ansicht zurückwechseln zu müssen. Screenshot, der die Ausführung eines Prompts über die Play-Schaltfläche im Editor zeigt.

  • Verwenden Sie den Befehl Chat: Prompt-Datei ausführen... über die Befehlspalette.

Prompt-Dateien können die folgenden Front Matter-Metadatenheader haben, um anzugeben, wie sie ausgeführt werden sollen

  • mode: der Chat-Modus, der bei der Invokation des Prompts verwendet werden soll (ask-, edit- oder agent-Modus).
  • tools: wenn der mode agent ist, die Liste der für den Prompt verfügbaren Tools.

Das folgende Beispiel zeigt eine Prompt-Datei zur Generierung von Release Notes, die im Agentenmodus ausgeführt wird und eine Reihe von Tools verwenden kann

---
mode: 'agent'
tools: ['getCurrentMilestone', 'getReleaseFeatures', 'file_search', 'semantic_search', 'read_file', 'insert_edit_into_file', 'create_file', 'replace_string_in_file', 'fetch_webpage', 'vscode_search_extensions_internal']
---
Generate release notes for the features I worked in the current release and update them in the release notes file. Use [release notes writing instructions file](.github/instructions/release-notes-writing.instructions.md) as a guide.

Um eine Prompt-Datei zu erstellen, verwenden Sie den Befehl Chat: Neue Prompt-Datei... über die Befehlspalette.

Erfahren Sie mehr über Prompt-Dateien in unserer Dokumentation.

Verbesserungen und Hinweise

  • Anweisungs- und Prompt-Dateien haben jetzt eigene Sprach-IDs, die im Dialogfeld Sprachmodus für jedes offene Dokument konfiguriert werden können ("Prompt" bzw. "Anweisungen"). Dies ermöglicht beispielsweise die Verwendung von unbenannten Dokumenten als temporäre Prompt-Dateien, bevor sie als Dateien auf der Festplatte gespeichert werden.
  • Wir haben den Befehl Chat: Prompt verwenden in Chat: Prompt ausführen umbenannt. Darüber hinaus führt der Befehl nun den ausgewählten Prompt sofort aus, anstatt ihn wie bisher als Chat-Kontext anzuhängen.
  • Beide Dateitypen unterstützen jetzt auch die description-Metadaten in ihren Headern, was einen gemeinsamen Ort für kurze und benutzerfreundliche Prompt-Zusammenfassungen bietet. In Zukunft soll dieser Header zusammen mit dem applyTo-Header als Regel verwendet werden, die bestimmt, ob die Datei automatisch in Chat-Anfragen aufgenommen werden muss (z. B. description: 'Code-Stilregeln für Front-End-Komponenten, geschrieben in TypeScript.')

Schnellere Bearbeitungen im Agentenmodus

Wir haben die Unterstützung für das Patch-Bearbeitungsformat von OpenAI (GPT 4.1 und o4-mini) und das Replace-String-Tool von Anthropic (Claude Sonnet 3.7 und 3.5) im Agentenmodus implementiert. Das bedeutet, dass Sie von deutlich schnelleren Bearbeitungen profitieren, insbesondere bei großen Dateien.

Das Update für OpenAI-Modelle ist in VS Code Insiders standardmäßig aktiviert und wird schrittweise für Stable ausgerollt. Das Anthropic-Update ist für alle Benutzer sowohl in Stable als auch in Insiders verfügbar.

Basismodell im Chat

Wir rollen GPT-4.1 schrittweise als Standard-Basismodell im Chat in VS Code aus. Sie können den Modellwechsler in der Chat-Ansicht verwenden, um jederzeit zu einem anderen Modell zu wechseln.

Suche nach Code in einem GitHub-Repository mit dem Tool #githubRepo

Stellen Sie sich vor, Sie müssen eine Frage zu einem GitHub-Repository stellen, haben es aber nicht in Ihrem Editor geöffnet. Zum Beispiel möchten Sie wissen, wie eine bestimmte Funktion im Repository microsoft/vscode implementiert ist.

Sie können jetzt das Tool #githubRepo verwenden, um Code-Snippets in jedem GitHub-Repository zu suchen, auf das Sie Zugriff haben. Dieses Tool nimmt user/repo als zusätzliche Eingabe. Zum Beispiel: "Wie implementiert man das Factory-Pattern in TS #githubRepo microsoft/vscode".

Sie können auch benutzerdefinierte Anweisungen verwenden, um darauf hinzuweisen, wann und wie dieses Tool verwendet werden soll, wie im folgenden Beispiel gezeigt

---
applyTo: '**'
---
Use the `#githubRepo` tool with `microsoft/vscode` to find relevant code snippets in the VS Code codebase.
Use the `#githubRepo` tool with `microsoft/typescript` to answer questions about how TypeScript is implemented.

Screenshot showing using the #githubRepo tool in agent mode with hints from instructions files.

Wenn Sie etwas über das Repository fragen möchten, an dem Sie gerade arbeiten, können Sie einfach das Tool #codebase verwenden.

Außerdem ist das Tool #githubRepo nur für die Suche nach relevanten Code-Snippets gedacht. Der GitHub MCP Server bietet Tools für die Arbeit mit GitHub-Issues und Pull-Requests. Erfahren Sie mehr über das Hinzufügen von MCP-Servern in VS Code.

Finde Marketplace-Erweiterungen mit dem Erweiterungs-Tool

Verwenden Sie das Erweiterungs-Tool (#extensions) im Chat, um Erweiterungen aus dem Marketplace zu finden. Basierend auf Ihrem Chat-Prompt wird das Tool automatisch aufgerufen, oder Sie können es explizit mit #extensions in Ihrem Prompt referenzieren. Das Tool gibt eine Liste von Erweiterungen zurück, die Ihrer Abfrage entsprechen. Sie können Erweiterungen direkt aus den Ergebnissen installieren.

Verbesserungen am Webseiten-Fetch-Tool

Letzten Monat haben wir das Fetch-Tool (#fetch) eingeführt, um den Inhalt einer Webseite direkt aus dem Chat abzurufen und ihn als Kontext für Ihren Prompt einzubeziehen. Wenn Sie diese Release Note verpasst haben, schauen Sie sich die ursprüngliche Veröffentlichung des Fetch-Tools und Beispiele an.

In dieser Iteration haben wir mehrere wichtige Änderungen an dem Tool vorgenommen, darunter

  • Gesamte Seite als Kontext: Wir fügen jetzt die gesamte Seite als Kontext hinzu, anstatt nur einen Teil davon. Mit größeren Kontextfenstern haben wir die Möglichkeit, dem Modell die gesamte Seite zur Verfügung zu stellen. Zum Beispiel ist es jetzt möglich, Zusammenfassungsfragen zu stellen, die so viel wie möglich von der Seite benötigen. Wenn Sie es schaffen, das Kontextfenster zu füllen, ist das Fetch-Tool schlau genug, um die weniger relevanten Abschnitte der Seite auszuschließen. So überschreiten Sie nicht das Kontextfensterlimit, behalten aber dennoch die wichtigen Teile bei.
  • Ein standardisiertes Seitenformat (Markdown): Zuvor formatierten wir abgerufene Webseiten in einem benutzerdefinierten hierarchischen Format, das seinen Zweck erfüllte, aber aufgrund seiner benutzerdefinierten Natur manchmal schwer zu verstehen war. Wir konvertieren abgerufene Webseiten jetzt in Markdown, eine standardisierte Sprache. Dies verbessert die Zuverlässigkeit der Relevanzerkennung und ist ein Format, das die meisten Sprachmodelle gut kennen, sodass sie es leichter verstehen können.

Wir würden uns freuen, von Ihnen zu hören, wie Sie das Fetch-Tool verwenden und ob es Funktionen gibt, die Sie sich davon wünschen würden!

Verbesserungen der Chat-Eingabe

Wir haben mehrere Verbesserungen an der Chat-Eingabezeile vorgenommen

  • Anhänge: Wenn Sie Kontext im Prompt-Text mit # referenzieren, erscheinen diese jetzt auch als Anhänge-Pille. Dies erleichtert das Verständnis dessen, was an das Sprachmodell gesendet wird.
  • Kontextauswahl: Wir haben die Kontextauswahl optimiert, um die Auswahl von Dateien, Ordnern und anderen Anhangstypen zu vereinfachen.
  • Fertig-Schaltfläche: Wir haben Ihr Feedback zur "Fertig"-Schaltfläche gehört und sie entfernt! Keine Verwirrung mehr über unerwartete Sitzungsbeendigungen. Jetzt starten wir eine neue Sitzung nur, wenn Sie einen neuen Chat erstellen (⌘N (Windows, Linux Ctrl+N)).

Tastenkombinationen für Chat-Modi

Die Tastenkombination ⌃⌘I (Windows, Linux Ctrl+Alt+I) öffnet immer noch nur die Chat-Ansicht, aber die Tastenkombination ⇧⌘I (Windows Ctrl+Shift+I, Linux Ctrl+Shift+Alt+I) öffnet jetzt die Chat-Ansicht und wechselt in den Agentenmodus. Wenn Sie Tastenkombinationen für andere Chat-Modi einrichten möchten, gibt es für jeden Modus einen Befehl

  • workbench.action.chat.openAgent
  • workbench.action.chat.openEdit
  • workbench.action.chat.openAsk

Automatische Behebung von Diagnosen aus Bearbeitungen im Agentenmodus

Einstellung: github.copilot.chat.agent.autoFix

Wenn eine Dateiänderung im Agentenmodus neue Fehler verursacht, kann der Agentenmodus diese nun erkennen und automatisch eine Folgeänderung vorschlagen. Das bedeutet, dass Sie keinen Folge-Prompt senden müssen, um den Agentenmodus aufzufordern, Fehler zu beheben. Sie können dieses Verhalten mit github.copilot.chat.agent.autoFix deaktivieren.

Umgang mit Rückgängigmachen und manuellen Bearbeitungen im Agentenmodus

Zuvor konnten manuelle Bearbeitungen während einer Agentenmodus-Sitzung das Modell verwirren. Jetzt wird der Agent über Ihre Änderungen informiert und sollte Dateien bei Bedarf erneut lesen, bevor er Dateien bearbeitet, die sich möglicherweise geändert haben.

Konversationszusammenfassung und Prompt-Caching

Wir haben einige Änderungen vorgenommen, wie unser Prompt für den Agentenmodus erstellt wird, um das Prompt-Caching zu optimieren. Prompt-Caching ist eine Methode, um Modellantworten zu beschleunigen, indem ein stabiler Präfix für den Prompt beibehalten wird. Die nächste Anfrage kann von diesem Präfix fortgesetzt werden, und das Ergebnis ist, dass jede Anfrage etwas schneller sein sollte. Dies ist besonders effektiv bei einer repetitiven Reihe von Anfragen mit großem Kontext, wie sie im Agentenmodus typisch sind.

Wenn Ihre Konversation lang wird oder Ihr Kontext sehr groß wird, sehen Sie möglicherweise die Meldung "Konversationsverlauf zusammengefasst" in Ihrer Agentenmodus-Sitzung

Screenshot showing a summarized conversation message in the Chat view.

Anstatt die gesamte Konversation als FIFO zu speichern und den Cache zu brechen, komprimieren wir die bisherige Konversation zu einer Zusammenfassung der wichtigsten Informationen und des aktuellen Zustands Ihrer Aufgabe. Dies hält den Prompt-Präfix stabil und Ihre Antworten schnell.

MCP-Unterstützung für Streamable HTTP

Diese Version fügt Unterstützung für den neuen Streamable HTTP-Transport für Model Context Protocol-Server hinzu. Streamable HTTP-Server werden genauso konfiguriert wie bestehende SSE-Server, und unsere Implementierung ist abwärtskompatibel mit SSE-Servern.

{
  "servers": {
    "my-mcp-server": {
      "url": "https://:3000/mcp"
    }
  }
}

Erfahren Sie mehr über MCP-Unterstützung in VS Code.

MCP-Unterstützung für Bildausgabe

Wir unterstützen jetzt MCP-Server, die Bilder als Teil ihrer Tool-Ausgabe generieren.

Beachten Sie, dass nicht alle Sprachmodelle das Lesen von Bildern aus Tool-Ausgaben unterstützen. Zum Beispiel unterstützt GPT-4.1 zwar die visuelle Wahrnehmung, aber derzeit nicht das Lesen von Bildern aus Tools.

Verbesserte Ein- und Ausgabe sowie Fortschritt von MCP-Servern

Wir haben die Benutzeroberfläche, die MCP-Server-Tool-Ein- und Ausgaben anzeigt, verbessert und auch die Unterstützung für die neuen Fortschrittsmeldungen von MCP hinzugefügt.

Theme: Codesong (Vorschau auf vscode.dev)

MCP-Konfigurationsgenerierung verwendet Eingaben

Um Ihre Geheimnisse sicher zu halten, generieren KI-gestützte Konfigurationen, die vom Befehl MCP: Server hinzufügen erstellt werden, nun inputs für alle Geheimnisse, anstatt sie direkt in die resultierende Konfiguration einzufügen.

Inline-Chat V2 (Vorschau)

Einstellung: inlineChat.enableV2

Wir haben an einer überarbeiteten Version des Inline-Chats ⌘I (Windows, Linux Ctrl+I) gearbeitet. Sein Thema ist immer noch "Chat in den Code bringen", aber hinter den Kulissen verwendet er die gleiche Logik wie Chat-Bearbeitungen. Das bedeutet eine bessere Nutzung des verfügbaren Kontexts und eine bessere Strategie für die Codebearbeitung. Sie können Inline-Chat v2 über inlineChat.enableV2 aktivieren.

Darüber hinaus gibt es jetzt eine leichtere Benutzeroberfläche, die optional aktiviert werden kann. Mit der Einstellung inlineChat.hideOnRequest blendet sich der Inline-Chat aus, sobald eine Anfrage gestellt wird. Er minimiert sich dann in das Chat-Bearbeitungs-Overlay, das das Akzeptieren oder Verwerfen von Änderungen oder das Wiederherstellen der Inline-Chat-Steuerung ermöglicht.

UI-Elemente auswählen und an Chat anhängen (experimentell)

Einstellung: chat.sendElementsToChat.enabled

Während Sie eine Webanwendung entwickeln, möchten Sie vielleicht den Chat zu bestimmten UI-Elementen einer Webseite befragen. Sie können jetzt den integrierten Simple Browser verwenden, um UI-Elemente als Kontext an den Chat anzuhängen.

Nach dem Öffnen einer lokal gehosteten Website über den integrierten Simple Browser (starten Sie ihn mit dem Befehl Simple Browser: Anzeigen) wird nun eine neue Symbolleiste angezeigt, in der Sie Start auswählen können, um jedes Element der Website auszuwählen, das Sie möchten. Dies hängt einen Screenshot des ausgewählten Elements sowie den HTML- und CSS-Code des Elements an.

Konfigurieren Sie, was mit

Diese experimentelle Funktion ist standardmäßig für alle Simple Browser aktiviert, kann aber mit chat.sendElementsToChat.enabled deaktiviert werden.

Aufgaben erstellen und starten im Agentenmodus (Experimentell)

Einstellung: github.copilot.chat.newWorkspaceCreation.enabled

In der vorherigen Version haben wir die Einstellung github.copilot.chat.newWorkspaceCreation.enabled (Experimentell) eingeführt, um die Erstellung von Arbeitsbereichen mit dem Agentenmodus zu ermöglichen.

Nun werden Sie am Ende dieses Erstellungsprozesses aufgefordert, eine Aufgabe zum Starten Ihrer App oder Ihres Projekts zu erstellen und auszuführen. Dies rationalisiert den Prozess des Projektstarts und ermöglicht die einfache Wiederverwendung von Aufgaben.

Barrierefreiheit

Verbesserungen am Merge-Editor

Der Merge-Editor ist jetzt besser zugänglich. Um die verfügbaren Aktionen zu erfahren, öffnen Sie den Hilfedialog für Barrierefreiheit im Merge-Editor (⌥F1 (Windows Alt+F1, Linux Shift+Alt+F1)). Zu den wichtigsten Aktionen gehören Merge-Editor: Merge abschließen (⌘Enter (Windows, Linux Ctrl+Enter)) und Zwischen Merge-Editor-Eingaben umschalten (⇧⌘T (Windows, Linux Ctrl+Shift+T)). Die aktuell fokussierte Eingabe wird jetzt auch für assistierende Technologien angekündigt.

Erweiterungen für Vorschläge für nächste Bearbeitungen

Die neue Einstellung accessibility.signals.nextEditSuggestion benachrichtigt Sie, wenn ein prognostizierter Vorschlag verfügbar ist. Überprüfen und akzeptieren Sie Vorschläge über die zugängliche Ansicht (⌥F2 (Windows Alt+F2, Linux Shift+Alt+F2)). Darüber hinaus bieten accessibility.signals.diffLineAdded und accessibility.signals.diffLineRemoved Audio-Hinweise während der Navigation, um die Diff-Überprüfung zugänglich zu machen.

Copilot-Benutzeranfragen aus der zugänglichen Ansicht überprüfen

Im Agentenmodus erfordern Tool-Aufrufe oder Terminalbefehle manchmal die Benutzererlaubnis, um ausgeführt zu werden. Überprüfen Sie diese Aktionen in der zugänglichen Ansicht (⌥F2 (Windows Alt+F2, Linux Shift+Alt+F2)).

Eindeutige Barrierefreiheitsgeräusche

accessibility.signals.save.sound hat jetzt einen eigenen, unverwechselbaren Klang und teilt sich keinen Audio-Signal mehr mit accessibility.signals.terminalCommandSucceeded.sound.

Editor-Erlebnis

Floating-Fenstermodi

Floating-Fenster in VS Code ermöglichen es Ihnen, Editoren und bestimmte Ansichten aus dem Hauptfenster in ein kleineres Fenster für leichte Multi-Fenster-Setups zu verschieben. Es gibt zwei neue Modi, die ein Floating-Fenster haben kann

  • Kompakt: Wir blenden bestimmte UI-Elemente aus, um mehr Platz für den eigentlichen Inhalt zu schaffen
  • Immer im Vordergrund: Das Fenster bleibt über allen anderen Fenstern, bis Sie diesen Modus verlassen

Hier ist ein Beispiel, wie ein Floating-Editorfenster in den Kompaktmodus umgeschaltet wird

Wir verwenden den Kompaktmodus standardmäßig, wenn Sie einen Chat in einem neuen Fenster erstellen. In Kombination mit der Option, das Fenster immer im Vordergrund zu halten, können Sie die Chat-Ansicht immer zum Stellen von Fragen bereithalten!

Wir haben neue Befehle eingeführt, wenn Sie Tastenkombinationen für diese Aktionen bevorzugen

  • workbench.action.toggleWindowAlwaysOnTop: zum Umschalten des Immer-im-Vordergrund-Modus
  • workbench.action.enableWindowAlwaysOnTop: zum Festlegen des Floating-Fensters immer im Vordergrund
  • workbench.action.disableWindowAlwaysOnTop: zum Festlegen des Floating-Fensters auf Normal
  • workbench.action.toggleCompactAuxiliaryWindow: zum Umschalten des Kompaktmodus
  • workbench.action.enableCompactAuxiliaryWindow: zum Aktivieren des Kompaktmodus
  • workbench.action.disableCompactAuxiliaryWindow: zum Deaktivieren des Kompaktmodus

Hinweis: Auch im Kompaktmodus können Sie komplexe Editor-Layouts erstellen und andere Editoren öffnen.

Standard-Sichtbarkeit der sekundären Seitenleiste

Einstellung: workbench.secondarySideBar.defaultVisibility

Standardmäßig ist die sekundäre Seitenleiste ausgeblendet, wenn Sie einen neuen Arbeitsbereich oder ein neues Fenster öffnen. Mit der neuen Einstellung workbench.secondarySideBar.defaultVisibility können Sie steuern, ob die sekundäre Seitenleiste in neuen Arbeitsbereichen oder Fenstern automatisch geöffnet werden soll. Sie können wählen aus

  • hidden: dies ist der Standardwert und hält die sekundäre Seitenleiste ausgeblendet
  • visibleInWorkspace: dies öffnet die sekundäre Seitenleiste, wenn Sie einen Ordner oder einen Multi-Root-Arbeitsbereich öffnen
  • visible: dies öffnet immer die sekundäre Seitenleiste

Beachten Sie, dass nach dem Öffnen eines Arbeitsbereichs oder Fensters die Sichtbarkeit zum Zustand des Arbeitsbereichs wird und den Einstellungswert überschreibt. Wenn Sie die sekundäre Seitenleiste schließen, bleibt sie in diesem Arbeitsbereich oder Fenster geschlossen.

Obligatorische Überprüfung der Erweiterungssignatur

Die Überprüfung der Erweiterungssignatur ist jetzt auf allen Plattformen obligatorisch: Windows, macOS und Linux. Zuvor war diese Überprüfung nur unter Windows und macOS obligatorisch. Mit dieser Version erzwingt auch Linux die Überprüfung der Erweiterungssignatur, um sicherzustellen, dass alle Erweiterungen vor der Installation ordnungsgemäß validiert werden.

Diese Änderung stärkt die Sicherheit weiter, indem die Installation potenziell bösartiger Erweiterungen verhindert wird. Weitere Informationen finden Sie unter Erweiterungssignierung.

Hinweis: Die obligatorische Überprüfung der Erweiterungssignatur bleibt auf Linux ARM32-Builds aufgrund von Issue #248308 deaktiviert. Dies wird voraussichtlich in der nächsten Version behoben.

Wenn eine Erweiterung als bösartig eingestuft wird, bietet VS Code nun Links zu zusätzlichen Informationen, die erklären, warum die Erweiterung markiert wurde. Diese "Mehr erfahren"-Links verbinden Benutzer mit GitHub-Issues oder Dokumentationen, die Details zu den Sicherheitsbedenken enthalten, und helfen Ihnen, die potenziellen Risiken besser zu verstehen.

Verhindern Sie die Installation von Copilot Chat Vorabversionen in VS Code Stable

VS Code verhindert nun die Installation der Vorabversion der Copilot Chat-Erweiterung in VS Code Stable. Dies hilft, Situationen zu vermeiden, in denen Sie versehentlich die Vorabversion von Copilot Chat installieren und in einem fehlerhaften Zustand stecken bleiben. Das bedeutet, dass Sie die Vorabversion der Copilot Chat-Erweiterung nur in der Insiders-Version von VS Code installieren können.

Befehl zum Öffnen einer Ansicht ohne Fokus

Ansichten (Baumansichten und Webview-Ansichten) können jetzt geöffnet werden, ohne sie zu fokussieren. Dies ist nützlich für Erweiterungen und Tastenkombinationen, die eine Ansicht öffnen möchten, aber den Fokus nicht vom aktuellen Editor wegnehmen möchten. Der Befehl lautet ihr-view-id.open und nimmt ein Argument im Format einer Eigenschaftenmenge entgegen: { preserveFocus: boolean}.

Semantische Textsuche mit Stichwortvorschlägen (Experimentell)

Einstellung: github.copilot.chat.search.keywordSuggestions

Die semantische Textsuche unterstützt jetzt KI-gestützte Stichwortvorschläge. Durch die Aktivierung dieser Funktion sehen Sie relevante Referenzen oder Definitionen, die Ihnen helfen können, den gesuchten Code zu finden.

Code-Bearbeitung

Neues Next Edit Suggestions (NES)-Modell

Einstellung: github.copilot.nextEditSuggestions.enabled

Wir freuen uns, ein neues Modell für NES vorzustellen, das schnellere und kontextbezogenere Codeempfehlungen liefert. Dieses aktualisierte Modell bietet eine verbesserte Leistung, liefert Vorschläge mit reduzierter Latenz und gibt Vorschläge, die weniger aufdringlich sind und besser zu Ihren letzten Bearbeitungen passen. Dieses Update ist Teil unseres fortwährenden Engagements zur Verfeinerung von KI-gestützten Entwicklungstools in Visual Studio Code.

Import-Vorschläge

Einstellung: github.copilot.nextEditSuggestions.fixes

Next Edit Suggestions (NES) kann jetzt automatisch fehlende Importanweisungen in JavaScript- und TypeScript-Dateien vorschlagen. Aktivieren Sie diese Funktion, indem Sie github.copilot.nextEditSuggestions.fixes. Wir planen, diese Funktion in zukünftigen Updates durch Unterstützung von Importen aus weiteren Sprachen weiter zu verbessern.

Screenshot showing NES suggesting an import statement.

Next Edit Suggestions (NES) standardmäßig aktiviert

Next Edit Suggestions sind jetzt in VS Code Insiders standardmäßig aktiviert und werden schrittweise für Stable ausgerollt.

Alt-Text in HTML oder Markdown generieren

Sie können jetzt Alt-Text in HTML- und Markdown-Dateien generieren oder bestehende aktualisieren. Navigieren Sie zu einer beliebigen Zeile, die ein eingebettetes Bild enthält, und lösen Sie die Schnelle Korrektur über ⌘. (Windows, Linux Ctrl+.) oder durch Auswahl des Glühbirnensymbols aus.

Screenshot that shows generating alt text for an image html element.

Notebooks

Persistenz der Such- und Ersetzungsverlauf

Die Notebook-Suchfunktion unterstützt jetzt einen persistenten Verlauf für die Such- und Ersetzungs-Eingabefelder. Dies bleibt über Neuladungen hinweg erhalten und wird durch die Einstellungen editor.find.history und editor.find.replaceHistory gesteuert.

Zellenausgaben per Drag & Drop zum Chat ziehen

Um die bestehende Unterstützung für die Verwendung von Zellenausgaben im Chat zu verbessern, können Ausgaben jetzt per Drag & Drop in die Chat-Ansicht gezogen werden, um eine nahtlose Anfügung zu ermöglichen. Derzeit werden nur Bild- und Textausgaben unterstützt. Ausgaben mit einem Bild-MIME-Typ sind direkt ziehbar. Um jedoch Kollisionen mit der Textauswahl zu vermeiden, erfordern Textausgaben das Halten der Alt-Modifikatortaste, um das Ziehen zu ermöglichen. Wir untersuchen UX-Verbesserungen in den kommenden Releases.

Notebook-Tools für den Agentenmodus

Zellenausführung

Chat verfügt jetzt über ein LLM-Tool zur Ausführung von Notebook-Zellen, das es dem Agenten ermöglicht, basierend auf den Ergebnissen der Zellenausführung Updates durchzuführen oder eigene Datenexplorationen durchzuführen, während er ein Notebook erstellt.

Kernel-Zustand abrufen

Der Agent kann herausfinden, welche Zellen in der aktuellen Kernelsitzung ausgeführt wurden, und die aktiven Variablen mithilfe des Kernel-Zustand-Tools lesen.

Pakete auflisten/installieren

Die Jupyter-Erweiterung stellt Tools zur Verfügung, um Pakete in der Umgebung, die als Kernel des Notebooks verwendet wird, aufzulisten und zu installieren. Die Operation wird an die Python Environments-Erweiterung delegiert, falls verfügbar; andernfalls wird versucht, den pip-Paketmanager zu verwenden.

Quellcodeverwaltung

Quick-Diff-Dekorationen für gestagte Änderungen

Um einer langjährigen Feature-Anfrage nachzukommen, haben wir in diesem Meilenstein Quick-Diff-Editor-Dekorationen für gestagte Änderungen hinzugefügt. Jetzt können Sie Ihre gestagten Änderungen direkt aus dem Editor anzeigen, ohne die Quellcodeverwaltung öffnen zu müssen.

Sie können die Farbe der Quick-Diff-Dekorationen für gestagte Änderungen mit den folgenden Theme-Tokens anpassen: editorGutter.addedSecondaryBackground, editorGutter.modifiedSecondaryBackground, editorGutter.deletedSecondaryBackground.

Wenn Sie keine Quick-Diff-Dekorationen für gestagte Änderungen sehen möchten, können Sie diese im Untermenü Diff-Dekorationen im Kontextmenü des Editors ausblenden.

Debugging

Kontextmenü der Disassemblierungsansicht

Dank eines Community-Beitrags gibt es jetzt ein Kontextmenü in der Disassemblierungsansicht.

Screenshot that shows the context menu in the Disassembly view.

JavaScript-Debugger Netzwerkansicht

Neuere Versionen von Node.js haben ihre Netzwerkkapazitäten für das Debugging verbessert. Die experimentelle Netzwerkansicht wird standardmäßig für neuere Node.js-Versionen aktiviert, die sie gut unterstützen (v22.14.0 und höher).

Sprachen

Browserunterstützung für CSS und HTML anzeigen

Wenn Sie mit der Maus über eine CSS-Eigenschaft, ein HTML-Element oder ein HTML-Attribut fahren, sehen Sie nun eine Zusammenfassung, wie gut diese Eigenschaft oder dieses Element über verschiedene Browser hinweg mithilfe von Baseline unterstützt wird.

Screenshot that shows baseline browser support in the CSS hover.

Standard-Syntaxhervorhebung für .*.env-Dateien

Dateien mit dem Namensformat .*.env werden jetzt als .ini-Dateien syntaxhervorgehoben.

Erweiterbare Hover-Fenster für JavaScript und TypeScript (Experimentell)

Einstellung: typescript.experimental.expandableHover

Wir haben die Funktion für erweiterbare Hover-Fenster für JavaScript und TypeScript weiterentwickelt. Mit dieser Funktion können Sie ein + und - im Hover-Fenster verwenden, um mehr oder weniger Typinformationen anzuzeigen.

Diese Funktion ist immer noch experimentell, aber Sie können sie noch heute ausprobieren, indem Sie typescript.experimental.expandableHover aktivieren. Sie müssen TypeScript-Version 5.9 oder höher verwenden, z. B. indem Sie die TypeScript nightly extension installieren.

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.

Dev Container Anleitungsdateien

Dev Container-Funktionen und -Images enthalten jetzt Anleitungsdateien, die ihre Tools und Konfigurationen beschreiben. VS Code Chat kann diesen Kontext automatisch nutzen und verbessert so die Relevanz und Genauigkeit seiner Vorschläge während der Entwicklung.

Beiträge zu Erweiterungen

Python

Branch-Coverage-Unterstützung

Branch-Coverage wird jetzt im Testing Explorer für Python unterstützt! Beachten Sie, dass Ihre coveragepy-Version >= 7.7 sein muss, um diese Funktion nutzen zu können. Sie können coverage aktualisieren, indem Sie pip install coverage==7.7 ausführen.

Python Environments Schnell-Erstellen-Befehl

Die Python Environments-Erweiterung hat die Unterstützung für "Schnell erstellen" hinzugefügt, was den Prozess der Umgebungsverwaltung nahtloser gestaltet. "Schnell erstellen" minimiert die benötigte Eingabe, um neue virtuelle Umgebungen zu erstellen, indem es die neueste Python-Version auf Ihrem Computer erkennt, um die virtuelle Umgebung zu erstellen und alle Workspace-Abhängigkeiten mit einem Klick zu installieren. Dies erstellt ein .venv in Ihrem Workspace für venv-basierte Umgebungen und .conda für conda-basierte Umgebungen. Sie können "Schnell erstellen" über den Befehl Python: Create Environment in der Befehlspalette aufrufen.

Screenshot showing Quick Create in the Python: Create Environment quick pick.

Python Environments Chat-Tools

Die Python Environments-Erweiterung (Vorschau) enthält jetzt zwei Chat-Tools: "Get Python Environment Information" und "Install Python Package". Um diese Tools zu verwenden, können Sie sie direkt in Ihrem Prompt referenzieren, indem Sie #pythonGetEnvironmentInfo #pythonInstallPackage hinzufügen, oder der Agentenmodus ruft das Tool automatisch auf, wo es anwendbar ist. Diese Tools erkennen nahtlos relevante Umgebungsinformationen basierend auf Datei- oder Workspace-Kontext und handhaben die Paketinstallation mit präziser Umgebungsauflösung.

Farbauswahl bei Verwendung von Pylance

Pylance kann jetzt eine interaktive Farbpalette direkt im Editor für erkannte Farbwerte in Python-Dateien anzeigen, was die Visualisierung und Auswahl von Farben im Handumdrehen erleichtert. Um es auszuprobieren, können Sie python.analysis.enableColorPicker aktivieren. Unterstützte Formate sind #RGB (wie "#001122") und #RGBA (wie "#001122FF").

Screenshot showing the color swatch displayed in the editor next to #RGB color format.

KI-Codeaktionen: Format-String konvertieren (Experimentell)

Bei Verwendung von Pylance gibt es eine neue experimentelle KI-Codeaktion zum Konvertieren von String-Verkettungen in f-Strings oder format(). Um es auszuprobieren, wählen Sie die Codeaktionen Convert to f-string with Copilot oder Convert to format() call with Copilot über die Glühbirne aus, wenn Sie ein Symbol im zu konvertierenden String auswählen, oder über Ctrl + ./Cmd + ..

Screenshot showing the convert strings Code Actions, powered by AI.

Dieses Erlebnis wird über die folgende Einstellung aktiviert

"python.analysis.aiCodeActions": {"convertFormatString": true}

GitHub Pull Requests und Issues

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

  • Stellen Sie im Chat Fragen zum aktiven Pull Request, z. B. "Alle Kommentare in #activePullRequest bearbeiten".
  • Zeigen Sie Probleme in einem Webview an, so wie Sie auch Pull Requests anzeigen können.
  • Polierung und Ausrichtung der Ansichten "Pull Requests", "Issues" und "Notifications".
  • Vorbereitung auf die Veröffentlichung von GitHubs Project Padawan durch Aktivierung der Zuweisung von Issues an Copilot, @-Erwähnung von Copilot und Sicherstellung der korrekten Darstellung in der Benutzeroberfläche.

Überprüfen Sie das Changelog für die Version 0.110.0 der Erweiterung, um die anderen Highlights zu erfahren.

Erweiterungsentwicklung

Textkodierungen

Wir haben die API für die Arbeit mit Textkodierungen in VS Code finalisiert.

Insbesondere ermöglicht diese neue API Ihnen Folgendes:

  • Die aktuelle encoding eines TextDocument abrufen
  • Ein TextDocument mit einer bestimmten encoding öffnen
  • Einen string mit einer bestimmten encoding in ein Uint8Array kodieren
  • Ein Uint8Array mit einer bestimmten encoding in einen string dekodieren

ESM-Unterstützung für Erweiterungen

Der NodeJS-Erweiterungshost unterstützt jetzt Erweiterungen, die JavaScript-Module (ESM) verwenden. Alles, was benötigt wird, ist der Eintrag "type": "module" in der package.json-Datei Ihrer Erweiterung. Damit kann der JavaScript-Code import- und export-Anweisungen verwenden, einschließlich des speziellen Moduls import('vscode'). Ein Beispiel finden Sie hier: https://github.com/jrieken/vscode-esm-sample-extension.

Beachten Sie, dass ESM-Unterstützung noch nicht für den Web Worker-Erweiterungshost verfügbar ist. Es müssen noch einige technische Herausforderungen bewältigt werden. Updates dazu finden Sie unter https://github.com/microsoft/vscode/issues/130367. Bleiben Sie dran!

Vorgeschlagene APIs

Tool-Aufrufe für Bilder

In der letzten Iteration haben wir eine vorgeschlagene API hinzugefügt, damit Erweiterungen Bilder anhängen und Visionsanfragen an das Sprachmodell senden können. In dieser Iteration haben wir diese API erweitert, um auch Tool-Aufrufergebnisse Bilder enthalten zu lassen.

Schauen Sie sich dieses API-Vorschlagsproblem an, um ein Anwendungsbeispiel zu sehen und über den Status dieser API auf dem Laufenden zu bleiben.

MCP-Server, die von Erweiterungen beigesteuert werden

Erweiterungen können programmgesteuert Erweiterungen zum Editor beisteuern, indem sie die neue vorgeschlagene API verwenden. Dies ist eine Alternative dazu, dass Benutzer Konfigurationen für jeden Server in ihren Einstellungen oder mcp.json hartcodieren.

Wenn diese API für Sie interessant ist, schauen Sie sich das Beispiel und das API-Vorschlagsproblem an, um über den Status dieser API auf dem Laufenden zu bleiben.

MCP Tool-Annotationen

VS Code zeigt jetzt die menschenlesbaren Namen von MCP-Servern mit Tools an, die mit den entsprechenden Tool-Annotationen konfiguriert sind. Darüber hinaus dürfen Tools, die mit readOnlyHint: true in ihren Annotationen gekennzeichnet sind, ohne Benutzerbestätigung ausgeführt werden.

Variable Zeilenhöhen

Es ist jetzt möglich, variable Zeilenhöhen auf einem Monaco-Editor zu definieren, indem der Zeilenhöhe-Wert im IModelDecorationOptions-Typ festgelegt wird. Wenn zwei Zeilenhöhen für eine Zeile festgelegt sind, wird die höchste der beiden für die Zeile verwendet.

Beachten Sie, dass aus Gründen der Einfachheit die Zeilenhöhe vorerst nur für die erste Zeile des entsprechenden Dekorationsbereichs festgelegt wird. In der folgenden Bildschirmaufnahme werden die Zeilen 24 und 32 mit einer größeren Zeilenhöhe als die Standardhöhe gerendert.

Diese Arbeit ist noch nicht für Erweiterungen verfügbar, wird aber nach weiteren Tests ausgerollt.

Bemerkenswerte Fehlerbehebungen

  • 244939 - Persönliche Microsoft-Konten werden sehr schnell abgemeldet (wenige Minuten bis wenige Stunden)

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-css-languageservice

Beiträge zu vscode-js-debug

Beiträge zu vscode-json-languageservice

Beiträge zu vscode-jupyter

Beiträge zu vscode-mypy

Beiträge zu vscode-notebook-renderers

Beiträge zu vscode-pull-request-github

Beiträge zu vscode-python-debugger

Beiträge zu vscode-python-environments

Beiträge zu language-server-protocol

Beiträge zu monaco-editor

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