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

Februar 2025 (Version 1.98)

Update 1.98.1: Das Update behebt diese Issues.

Update 1.98.2: Das Update behebt diese Issues.

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


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

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

Copilot-Funktionen können verschiedene Frühzugriffsphasen durchlaufen, die typischerweise über Einstellungen aktiviert und konfiguriert werden.

Phase Beschreibung
Experimentell Die Funktion befindet sich noch in der Entwicklung und ist noch nicht für den allgemeinen Gebrauch bestimmt.
Sehen Sie sich die experimentellen Funktionen (@tag:experimental) an.
Vorschau Die Funktion wird noch verfeinert, ist aber bereits einsatzbereit. Feedback ist willkommen.
Sehen Sie sich die Vorschaufunktionen (@tag:preview) an.
Stabil Die Funktion ist für den allgemeinen Gebrauch bereit.

Copilot-Bearbeitungen

Agent-Modus-Verbesserungen (experimentell)

Letzten Monat haben wir den Agentenmodus für Copilot Edits in VS Code Insiders eingeführt. Im Agentenmodus kann Copilot autonom nach relevantem Kontext in Ihrem Arbeitsbereich suchen, Dateien bearbeiten, auf Fehler prüfen und (mit Ihrer Erlaubnis) Terminalbefehle ausführen, um eine Aufgabe End-to-End abzuschließen.

Hinweis: Der Agentenmodus ist heute in VS Code Insiders verfügbar, und wir haben gerade mit der schrittweisen Einführung in **VS Code Stable** begonnen. Sobald der Agentenmodus für Sie aktiviert ist, sehen Sie eine Modusauswahl in der Ansicht "Copilot Edits" – wählen Sie einfach **Agent**.

Wir haben diesen Monat mehrere Verbesserungen an der Benutzererfahrung bei der Tool-Nutzung vorgenommen.

  • Terminalbefehle werden jetzt inline angezeigt, sodass Sie den Überblick behalten, welche Befehle ausgeführt wurden.
  • Sie können den vorgeschlagenen Terminalbefehl in der Chat-Antwort bearbeiten, bevor Sie ihn ausführen.
  • Bestätigen Sie einen Terminalbefehl mit der Tastenkombination ⌘Enter (Windows, Linux Ctrl+Enter).

Der Agentenmodus durchsucht Ihren Code automatisch nach relevantem Kontext. Erweitern Sie die Nachricht, um die Ergebnisse der durchgeführten Suchen anzuzeigen.

Screenshot that shows the expandable list of search results in Copilot Edits.

Wir haben auch verschiedene Verbesserungen am Prompt und Verhalten des Agentenmodus vorgenommen.

  • Die Rückgängig- und Wiederherstellen-Aktionen im Chat rückgängig machen oder stellen den letzten Datei-Edit wieder her, der in einer Chat-Antwort vorgenommen wurde. Dies ist nützlich für den Agentenmodus, da Sie nun bestimmte Schritte des Modells rückgängig machen können, ohne die gesamte Chat-Antwort zurückzusetzen.
  • Der Agentenmodus kann Ihre Build- Aufgaben automatisch oder auf Anweisung ausführen. Deaktivieren Sie diese Funktionalität über die Einstellung github.copilot.chat.agent.runTasks, falls Sie feststellen, dass das Modell Aufgaben ausführt, wenn es dies nicht tun sollte.

Erfahren Sie mehr über den Agentenmodus für Copilot Edits oder lesen Sie den Blogbeitrag zur Einführung des Agentenmodus.

Hinweis: Wenn Sie Copilot Business- oder Enterprise-Nutzer sind, muss ein Administrator Ihrer Organisation aktivieren, um Copilot "Editor-Vorschaufunktionen" nutzen zu können, damit der Agentenmodus verfügbar ist.

Unterstützung für Notebooks in Copilot Edits (Vorschau)

Wir führen die Unterstützung für Notebooks in Copilot Edits als Vorschaufunktion in VS Code Insiders ein. Sie können nun Copilot verwenden, um Notebook-Dateien mit der gleichen intuitiven Benutzererfahrung wie beim Bearbeiten von Code-Dateien zu bearbeiten. Erstellen Sie neue Notebooks von Grund auf, ändern Sie Inhalte über mehrere Zellen hinweg, fügen Sie Zellen ein und löschen Sie sie und ändern Sie Zelltypen. Diese Vorschaufunktion bietet einen nahtlosen Workflow bei der Arbeit mit Datenwissenschafts- oder Dokumentations-Notebooks.

Hinweis: Diese Funktion ist derzeit nur in VS Code Insiders mit der Vorabversion von GitHub Copilot Chat verfügbar. Wir werden die Erfahrung weiter verbessern, bevor wir sie in einer zukünftigen Version in VS Code Stable einführen.

Verfeinerte Editor-Integration

Wir haben die Integration von Copilot Edits mit Code- und Notebook-Editoren poliert.

  • Kein Scrollen mehr, während Änderungen angewendet werden. Die Ansicht bleibt erhalten, sodass Sie sich leichter auf die Änderungen konzentrieren können.
  • Die Aktionen zur Überprüfung von Bearbeitungen wurden von "Akzeptieren" in "Behalten" und "Verwerfen" in "Rückgängig machen" umbenannt, um besser widerzuspiegeln, was passiert. Änderungen für Copilot Edits sind live, sie werden angewendet und gespeichert, sobald sie vorgenommen werden, und Benutzer behalten sie oder machen sie rückgängig.
  • Nachdem eine Datei beibehalten oder rückgängig gemacht wurde, wird automatisch die nächste Datei angezeigt.

Das Video zeigt, wie Bearbeitungen angewendet und gespeichert werden, sobald sie erfolgen. Die Live-Vorschau wird aktualisiert, und der Benutzer hat sich entschieden, die Änderungen zu "behalten". Rückgängig machen und weitere Anpassungen sind ebenfalls weiterhin möglich.

Aktualisierte Benutzeroberfläche

In Vorbereitung auf die Vereinheitlichung von Copilot Edits mit Copilot Chat haben wir Copilot Edits ein Facelifting verpasst. Angehängte und noch nicht gesendete Dateien werden nun als normale Chat-Anhänge gerendert. Nur Dateien, die mit KI geändert wurden, werden der Liste der geänderten Dateien hinzugefügt, die sich oberhalb des Chat-Eingabebereichs befindet.

Mit der Einstellung chat.renderRelatedFiles können Sie Vorschläge für verwandte Dateien aktivieren. Vorschläge für verwandte Dateien werden unter den Chat-Anhängen gerendert.

Screenshot that shows the updated Copilot Edits attachments and changed files user experience.

Copilot Edits-Limits entfernt

Zuvor waren Sie darauf beschränkt, 10 Dateien an Ihren Prompt in Copilot Edits anzuhängen. Mit dieser Version haben wir dieses Limit entfernt. Darüber hinaus haben wir das clientseitige Ratenlimit von 14 Interaktionen pro 10 Minuten entfernt.

Beachten Sie, dass Ratenlimits auf Serverseite weiterhin gelten.

Benutzerdefinierte Anweisungen allgemein verfügbar

Einstellung: github.copilot.chat.codeGeneration.useInstructionFiles

Benutzerdefinierte Anweisungen ermöglichen es Ihnen, GitHub Copilot so anzupassen, dass Chat-Antworten und Code-Vorschläge für die Arbeitsweise von Ihnen und Ihrem Team geliefert werden. Beschreiben Sie Ihre spezifischen Anforderungen im Markdown-Format in einer Datei .github/copilot-instructions.md in Ihrem Arbeitsbereich.

Meilenstein: Wir machen benutzerdefinierte Anweisungen mit .github/copilot-instructions.md allgemein verfügbar. Stellen Sie sicher, dass die VS Code-Einstellung github.copilot.chat.codeGeneration.useInstructionFiles aktiviert ist, und Copilot wird diese Anweisungen dann beim Generieren von Antworten verwenden.

Erfahren Sie mehr über benutzerdefinierte Anweisungen in Copilot.

Sanftere Authentifizierungsabläufe im Chat

Wenn Sie Ihren Quellcode in einem GitHub-Repository hosten, können Sie verschiedene Funktionen nutzen, darunter erweiterte Code-Suche, den @github-Chat-Teilnehmer und mehr!

Für private GitHub-Repositorys benötigt VS Code jedoch die Berechtigung, mit Ihren Repositorys auf GitHub zu interagieren. Eine Zeit lang wurde dies mit unserem üblichen VS Code-Authentifizierungsfluss präsentiert, bei dem ein modales Dialogfeld angezeigt wurde, wenn Sie bestimmte Funktionalitäten aufriefen (z. B. @workspace oder @github eine Frage stellen oder das Tool #codebase verwenden).

Um diese Erfahrung reibungsloser zu gestalten, haben wir diese Bestätigung im Chat eingeführt.

Screenshot that shows the authentication confirmation dialog in Chat, showing the three options to continue.

Sie ist nicht nur weniger störend als ein modales Dialogfeld, sondern bietet auch neue Funktionalität.

  1. Gewähren: Sie werden wie bisher durch den regulären Authentifizierungsfluss geführt (über das Modal).
  2. Jetzt nicht: VS Code merkt sich Ihre Wahl und stört Sie nicht wieder, bis zu Ihrer nächsten VS Code-Fenstersitzung. Die einzige Ausnahme ist, wenn die Funktion diese zusätzliche Berechtigung zur Funktionalität benötigt, wie z. B. @github.
  3. Nie wieder fragen: VS Code merkt sich Ihre Wahl und speichert sie über die Einstellung github.copilot.advanced.authPermissions. Jede Funktion, die diese zusätzliche Berechtigung benötigt, wird fehlschlagen.

Es ist wichtig zu beachten, dass diese Bestätigung Copilot (dem Dienst) keinen Zugriff auf Ihre Repositories gewährt oder verweigert. Dies ist nur die Authentifizierung der Copilot-Erfahrung von VS Code. Um zu konfigurieren, worauf Copilot zugreifen kann, lesen Sie bitte die Dokumentation zur Inhaltsausschluss.

Erweiterte Codebase-Suche in Copilot Chat

Einstellung: github.copilot.chat.codesearch.enabled

Wenn Sie #codebase zu Ihrer Copilot Chat-Abfrage hinzufügen, hilft Copilot Ihnen, relevanten Code in Ihrem Arbeitsbereich für Ihren Chat-Prompt zu finden. #codebase kann jetzt Tools wie Textsuche und Dateisuche ausführen, um zusätzliche Kontexte aus Ihrem Arbeitsbereich zu ziehen.

Stellen Sie github.copilot.chat.codesearch.enabled ein, um dieses Verhalten zu aktivieren. Die vollständige Liste der Tools ist:

  • Einbettungsbasierte semantische Suche
  • Textsuche
  • Dateisuche
  • Geänderte Git-Dateien
  • Projektstruktur
  • Datei lesen
  • Verzeichnis lesen
  • Arbeitsbereichssymbolsuche

Probleme als Chat-Kontext anhängen

Um bei der Behebung von Code oder anderen Problemen in Ihrem Arbeitsbereich zu helfen, können Sie jetzt Probleme aus dem Panel "Probleme" an Ihren Chat als Kontext für Ihren Prompt anhängen.

Ziehen Sie entweder ein Element aus dem Panel "Probleme" per Drag & Drop in die Chat-Ansicht, geben Sie #problems in Ihren Prompt ein oder wählen Sie die Büroklammer 📎 aus. Sie können bestimmte Probleme, alle Probleme in einer Datei oder alle Dateien in Ihrem Codebase anhängen.

Ordner als Kontext anhängen

Zuvor konnten Sie Ordner als Kontext anhängen, indem Sie sie per Drag & Drop aus der Explorer-Ansicht gezogen haben. Jetzt können Sie auch einen Ordner anhängen, indem Sie das Büroklammer-Symbol 📎 auswählen oder #folder: gefolgt vom Ordnernamen in Ihrem Chat-Prompt eingeben.

Kompakter Modus für nächste Bearbeitungsvorschläge (Vorschau)

Einstellungen:

Wir haben einen kompakten Modus für NES hinzugefügt. Wenn Sie diesen Modus aktivieren, wird nur der NES-Vorschlagsindikator am linken Rand des Editors angezeigt. Der Codevorschlag selbst wird erst angezeigt, wenn Sie ihn durch Drücken von Tab dorthin navigieren. Aufeinanderfolgende Vorschläge werden sofort angezeigt, bis ein Vorschlag nicht akzeptiert wird.

Der kompakte Modus ist standardmäßig deaktiviert und kann durch Konfigurieren von editor.inlineSuggest.edits.showCollapsed aktiviert werden, oder Sie können ihn im Menü des NES-Gutter-Indikators aktivieren oder deaktivieren.

Screenshot that shows the Next Edit Suggestions context menu in the editor left margin, highlighting the Show Collapsed option.

Modell für Vervollständigungen ändern

Sie konnten bereits das Sprachmodell für Copilot Chat und Copilot Edits ändern, und jetzt können Sie auch das Modell für Inline-Vorschläge ändern.

Alternativ können Sie das Modell, das für Code-Vervollständigungen verwendet wird, über den Befehl Modell für Vervollständigungen ändern in der Befehlspalette oder über den Eintrag Code-Vervollständigungen konfigurieren im Copilot-Menü in der Titelleiste ändern.

Hinweis: Die Liste der verfügbaren Modelle kann variieren und sich im Laufe der Zeit ändern. Wenn Sie Copilot Business- oder Enterprise-Nutzer sind, muss Ihr Administrator bestimmte Modelle für Ihre Organisation aktivieren, indem er die Editor-Vorschaufunktionen in den Copilot-Richtlinieneinstellungen auf GitHub.com aktiviert.

Modellverfügbarkeit

Diese Version hat mehr Modelle hinzugefügt, aus denen Sie bei der Verwendung von Copilot wählen können. Die folgenden Modelle sind jetzt im Model-Picker in Visual Studio Code und im github.com Chat verfügbar.

  • GPT 4.5 (Vorschau): OpenAIs neuestes Modell, GPT-4.5, ist jetzt für Copilot Enterprise-Benutzer in GitHub Copilot Chat verfügbar. GPT-4.5 ist ein großes Sprachmodell, das mit fortschrittlichen Fähigkeiten in den Bereichen Intuition, Schreibstil und breites Wissen entwickelt wurde. Erfahren Sie mehr über die Verfügbarkeit des GPT-4.5-Modells im GitHub Blogbeitrag.

  • Claude 3.7 Sonnet (Vorschau): Claude 3.7 Sonnet ist jetzt für alle Kunden mit kostenpflichtigen Copilot-Plänen verfügbar. Dieses neue Sonnet-Modell unterstützt sowohl Denk- als auch Nicht-Denk-Modi in Copilot. In anfänglichen Tests haben wir besonders starke Verbesserungen in agentenähnlichen Szenarien festgestellt. Erfahren Sie mehr über die Verfügbarkeit des Claude 3.7 Sonnet-Modells im GitHub Blogbeitrag.

Copilot Vision (Vorschau)

Wir erweitern die End-to-End-Vision-Unterstützung in dieser Version von Copilot Chat schnell. Dies ermöglicht es Ihnen, Bilder anzuhängen und mit Bildern in Chat-Prompts zu interagieren. Wenn Sie beispielsweise beim Debuggen auf einen Fehler stoßen, hängen Sie einen Screenshot von VS Code an und bitten Sie Copilot, Ihnen bei der Behebung des Problems zu helfen. Sie könnten es auch verwenden, um ein UI-Mockup anzuhängen und Copilot HTML und CSS zur Implementierung des Mockups bereitstellen zu lassen.

Animation that shows an attached image in a Copilot Chat prompt. Hovering over the image shows a preview of it.

Sie können Bilder auf verschiedene Arten anhängen.

  • Ziehen Sie Bilder von Ihrem Betriebssystem oder aus der Explorer-Ansicht per Drag & Drop.
  • Fügen Sie ein Bild aus Ihrer Zwischenablage ein.
  • Hängen Sie einen Screenshot des VS Code-Fensters an (wählen Sie die Schaltfläche Büroklammer 📎 > Screenshot Fenster).

Eine Warnung wird angezeigt, wenn das ausgewählte Modell derzeit nicht über die Fähigkeit verfügt, den Dateityp zu verarbeiten. Das derzeit unterstützte Modell ist GPT 4o, aber die Unterstützung für Bildanhänge mit Claude 3.5 Sonnet und Gemini 2.0 Flash wird ebenfalls bald ausgerollt. Derzeit werden die unterstützten Bildtypen JPEG/JPG, PNG, GIF und WEBP unterstützt.

Copilot Statusübersicht (experimentell)

Einstellung: chat.experimental.statusIndicator.enabled

Wir experimentieren mit einer neuen zentralisierten Copilot-Statusübersicht, die einen schnellen Überblick über Ihren Copilot-Status und wichtige Editor-Einstellungen bietet.

  • Kontingentinformationen, wenn Sie ein Copilot Free-Benutzer sind.
  • Editorbezogene Einstellungen wie Code-Vervollständigungen.
  • Nützliche Tastenkombinationen zur Verwendung anderer Copilot-Funktionen.

Diese Copilot-Statusübersicht ist über das Copilot-Symbol in der Statusleiste zugänglich.

Screenshot that shows the Copilot status overview in the Status Bar.

Aktivieren Sie die Copilot-Statusübersicht mit der Einstellung chat.experimental.statusIndicator.enabled.

TypeScript-Kontext für Inline-Vervollständigungen (experimentell)

Einstellung: chat.languageContext.typescript.enabled

Wir experimentieren mit erweitertem Kontext für Inline-Vervollständigungen und /fix-Befehle für TypeScript-Dateien. Das Experiment ist derzeit auf Insider-Releases beschränkt und kann mit der Einstellung chat.languageContext.typescript.enabled aktiviert werden.

Benutzerdefinierte Anweisungen für Titel und Beschreibung von Pull-Requests

Sie können benutzerdefinierte Anweisungen für die Generierung von Pull-Request-Titeln und -Beschreibungen mit der Einstellung github.copilot.chat.pullRequestDescriptionGeneration.instructions bereitstellen. Sie können die Einstellung auf eine Datei in Ihrem Arbeitsbereich verweisen oder Anweisungen direkt in Ihren Einstellungen angeben. Weitere Details zur Verwendung von Anpassen von Copilot in VS Code.

Das folgende Beispiel zeigt, wie eine benutzerdefinierte Anweisung direkt in den Einstellungen angegeben wird.

{
  "github.copilot.chat.pullRequestDescriptionGeneration.instructions": [
    {
      "text": "Prefix every PR title with an emoji."
    }
  ]
}

Für die Generierung eines Titels und einer Beschreibung muss die GitHub Pull Requests-Erweiterung installiert sein.

Barrierefreiheit

Barrierefreiheit von Copilot Edits

Wir haben Copilot Edits erheblich zugänglicher gemacht.

  • Es gibt jetzt Audiosignale für Dateien mit Änderungen und für geänderte Bereiche (Einfügungen, Änderungen und Löschungen).
  • Der barrierefreie Diff-Viewer ist jetzt für geänderte Dateien verfügbar. Genau wie in Diff-Editoren, wählen Sie F7, um ihn zu aktivieren.

activeEditorState Fenster-Titelvariable

Wir haben eine neue window.title Variable, activeEditorState, um Editorinformationen wie den geänderten Status, die Anzahl der Probleme und ob eine Datei ausstehende Copilot Edits hat, für Screenreader-Benutzer anzuzeigen. Im optimierten Screenreader-Modus wird dies standardmäßig angehängt und kann mit accessibility.windowTitleOptimized deaktiviert werden.

Workbench

Benutzerdefinierte Titelleiste unter Linux

Die benutzerdefinierte Titelleiste ist jetzt unter Linux standardmäßig aktiviert. Die benutzerdefinierte Titelleiste gibt Ihnen Zugriff auf Layout-Steuerelemente, das Copilot-Menü und mehr.

Screenshot that shows the custom VS Code title bar on Linux.

Sie können jederzeit zu den nativen Titeldekorationen zurückkehren, entweder über das Kontextmenü der benutzerdefinierten Titelleiste oder durch Konfigurieren von window.titleBarStyle auf native.

Screenshot that shows the content menu option to disable the custom title bar on Linux.

Wir freuen uns über kontinuierliches Feedback zu dieser Erfahrung und arbeiten bereits daran, diese für zukünftige Meilensteine basierend auf vorhandenem Feedback zu verbessern.

Labels für Ansichten der sekundären Seitenleiste verwenden

Wir haben beschlossen, das Erscheinungsbild von Ansichten in der sekundären Seitenleiste zu ändern, sodass Labels anstelle von Symbolen angezeigt werden, ähnlich wie im Bedienfeldbereich. Dies erleichtert die Unterscheidung zwischen verschiedenen Ansichten, z. B. den Ansichten Copilot Edits und Copilot Chat. Sie können jederzeit zurückkehren, um Symbole anzuzeigen, indem Sie workbench.secondarySideBar.showLabels konfigurieren.

Screenshot that shows Secondary Side Bar with labels instead of icons.

Neuer Algorithmus für Schlüsselübereinstimmungen im Einstellungseditor (Vorschau)

Einstellung: workbench.settings.useWeightedKeySearch

Wir haben einen neuen Suchalgorithmus für den Einstellungseditor hinzugefügt, der relevantere Schlüsselübereinstimmungen priorisiert. Der Suchalgorithmus versucht, die Einstellungs-ID und die Labels auf mehr Arten als zuvor abzugleichen, filtert aber auch die Ergebnisse stärker, sodass nur die besten Übereinstimmungstypen angezeigt werden.

Sie können die Vorschaufunktion ausprobieren, indem Sie die Einstellung workbench.settings.useWeightedKeySearch aktivieren.

Thema: Light Pink (Vorschau auf vscode.dev)

Option zum Ausblenden von Punkt-Dateien im einfachen Dateiauswahlfenster

Wenn Sie das einfache Dateiauswahlfenster verwenden (entweder wenn Sie mit einem Remote verbunden sind oder wenn Sie files.simpleDialog.enable verwenden), können Sie jetzt Punkt-Dateien ausblenden, indem Sie die Schaltfläche Punkt-Dateien anzeigen/ausblenden verwenden.

Screenshot that shows the simple file picker, highlighting the button to show or hide dot files.

Editor

Unterstützung für Drag & Drop bei Referenzen anzeigen

Die Ansicht unterstützt jetzt Drag & Drop. Rufen Sie Referenzen anzeigen, Implementierung anzeigen oder einen der anderen Befehle zum Anzeigen auf und ziehen Sie Einträge aus dessen Baum, um sie als separate Editoren zu öffnen.

Thema: GitHub Light Colorblind (Beta) (Vorschau auf vscode.dev)

Verzögerung bei der Hervorhebung von Vorkommen

Die Verzögerung für die Hervorhebung von Vorkommen im Editor ist jetzt standardmäßig auf 0 eingestellt. Dies führt zu einem insgesamt reaktionsschnelleren Editor-Gefühl. Sie können die Verzögerung weiterhin mit der Einstellung editor.occurrencesHighlightDelay steuern.

Quellcodeverwaltung

Aktualisierte Ansichttitel

Als wir die Ansicht Quellcode-Verlauf zur Ansicht "Quellcodeverwaltung" hinzugefügt haben, wurden die doppelten Abschnittsüberschriften in der Ansicht "Quellcodeverwaltung" hervorgehoben: "Quellcodeverwaltungs-Repositories", "Quellcodeverwaltung" und "Quellcodeverwaltungs-Verlauf". In diesem Meilenstein haben wir die Titel der Ansichten überarbeitet, sodass sie kürzer sind und den Ansichtstitel nicht mehr wiederholen: "Repositories", "Änderungen" und "Verlauf".

Verbesserungen beim Verwerfen nicht nachverfolgter Änderungen

Einstellung: git.discardUntrackedChangesToTrash

Im Laufe der Jahre haben wir mehrere Berichte über Datenverlust erhalten, da das Verwerfen einer nicht nachverfolgten Datei die Datei dauerhaft löschen würde, obwohl VS Code einen modalen Dialog anzeigt, der klarstellt, dass die Datei dauerhaft gelöscht wird.

Ab diesem Meilenstein wird das Verwerfen einer nicht nachverfolgten Datei die Datei, wenn möglich, in den Papierkorb verschieben, sodass die Datei leicht wiederhergestellt werden kann. Sie können diese Funktionalität mit der Einstellung git.discardUntrackedChangesToTrash deaktivieren.

Screenshot of the modal dialog shown when discarding an untracked file.

Diagnostik-Commit-Hook (experimentell)

Einstellungen:

In diesem Meilenstein haben wir einen neuen Commit-Hook eingeführt, der Sie auffordert, wenn es unerfüllte Diagnosen für die geänderten Dateien gibt. Dies ist derzeit eine experimentelle Funktion, die mit der Einstellung git.diagnosticsCommitHook.Enabled aktiviert werden kann.

Standardmäßig fordert der Commit-Hook für Diagnosen auf Fehler-Ebene an, aber die Diagnosequellen und -ebenen können mit der Einstellung git.diagnosticsCommitHook.Sources angepasst werden. Probieren Sie es aus und geben Sie uns Ihr Feedback.

Screenshot of the modal dialog shown when there are unresolved diagnostics for the changed files.

Notebooks

Inline-Notebook-Diff-Ansicht (experimentell)

Einstellung: notebook.diff.experimental.toggleInline

Sie können jetzt eine Inline-Diff-Ansicht für Notebooks aktivieren. Diese Funktion ermöglicht es Ihnen, Änderungen innerhalb von Notebook-Zellen in einer einzigen Inline-Ansicht anzuzeigen, anstatt des herkömmlichen Side-by-Side-Vergleichs.

Aktivieren Sie diese Funktion, indem Sie notebook.diff.experimental.toggleInline auf true setzen. Sie können die Diff-Ansicht dann über das Editor-Menü in der oberen rechten Ecke in die Inline-Ansicht umschalten.

Notebook-Inline-Werte-Hover

Notebook-Inline-Werte haben jetzt ihre Dekoration auf die Breite des Ansichtsfensters gekürzt und bieten einen Rich-Hover, um den vollständigen Wert anzuzeigen und die Whitespace-Formatierung beizubehalten. Dies bewahrt die Form von Variablen wie DataFrames und erleichtert das schnelle Lesen von Werten.

Screenshot that shows the cursor hovering above a dataframe object's inline decoration. A rich value hover is shown.

Terminal IntelliSense (Vorschau)

Einstellung: terminal.integrated.suggest.enabled

Wir haben die Vervollständigung von Terminal-Shells für Bash, Zsh, Fish und PowerShell erheblich verbessert, indem wir Vervollständigungsspezifikationen (z. B. git) hinzugefügt, die Befehlszeilenanalyse für bessere Vorschläge verfeinert und Datei- und Ordnervervollständigungen erweitert haben. Aktivieren Sie diese Funktion mit terminal.integrated.suggest.enabled.

Verbesserte Fig-Vervollständigungsunterstützung

Wir nutzen Fig-Vervollständigungsspezifikationen, um intelligente Vervollständigungen für spezifische CLIs zu ermöglichen. Zuvor hatten wir nur eine kleine Anzahl davon, aber in dieser Iteration haben wir die folgenden CLIs zur Liste hinzugefügt, die wir mit VS Code ausliefern.

  • Basiswerkzeuge: cat, chmod, chown, cp, curl, df, du, echo, find, grep, head, less, ls, mkdir, more, mv, pwd, rm, rmdir, tail, top, touch, uname
  • Prozesswerkzeuge: kill, killall, ps
  • Paketmanager: apt, brew
  • Node.js-Ökosystem: node, npm, npx, nvm, pnpm, yarn
  • SCM, Sprachen, Editoren: git, nano, python, python3, vim
  • Netzwerk: scp, ssh, wget

Zusätzlich zu den neuen Spezifikationen unterstützen wir jetzt auch Generatoren, die Vervollständigungen dynamisch durch Ausführen von Befehlen generieren, wenn sie angefordert werden. Ein Beispiel dafür ist die Präsentation aller Branches für git checkout.

Screenshot, der Vervollständigungen für "git checkout tyriar/xterm" zeigt, mit mehreren Ergebnissen, einschließlich unscharfer Ergebnisse, die nicht exakt mit der Abfrage übereinstimmen. Theme: Sapphire (Vorschau auf vscode.dev)

Hinter den Kulissen wird git --no-optional-locks branch -a --no-color --sort=-committerdate ausgeführt, um die Liste der Branches abzurufen, bevor sie in Vervollständigungen verarbeitet werden. Ein ähnlicher Ansatz wird verwendet, um auch Tags abzurufen.

Konfigurierbare schnelle Vorschläge

Einstellung: terminal.integrated.suggest.quickSuggestions

Ähnlich wie im Editor sind schnelle Vorschläge das, was IntelliSense automatisch beim Tippen von irgendetwas anzeigt, im Gegensatz zu Auslösezeichen, die angezeigt werden, wenn bestimmte Zeichen wie \ oder - verwendet werden. Die neue Einstellung terminal.integrated.suggest.quickSuggestions ermöglicht eine präzise Steuerung, wann schnelle Vorschläge angezeigt werden sollen.

Der Standardwert aktiviert schnelle Vorschläge für Befehle und Argumente, während er jetzt standardmäßig deaktiviert ist und auf Pfade zurückfällt, von denen wir gehört haben, dass sie laut und frustrierend sein könnten, da sie oft nicht anwendbar waren. Dies ist der Standard.

"terminal.integrated.suggest.quickSuggestions": {
  "commands": "on",
  "arguments": "on",
  "unknown": "off"
}

Erkennung von Inline-Vorschlägen

Einstellung: terminal.integrated.suggest.inlineSuggestion

Ein Problem, das die Erkennung von Inline-Vorschlägen bisher hatte, war die Verwirrung, die durch konkurrierende Vorschläge aus verschiedenen Quellen entstand. Insbesondere der Inline-Vorschlag, der oft beim Tippen in Shells erscheint.

Screenshot that shows fish shell showing suggestions, such as previous git commit commands when typing a prefix.

Diese Vorschläge sind tatsächlich Shell-Funktionen (Auto-Vervollständigungen in Fish/Zsh, Vorhersagen in Pwsh usw.), was dem Benutzer möglicherweise nicht offensichtlich ist, insbesondere wenn sie zusammen mit IntelliSense angezeigt werden.

Die IntelliSense-Funktion erfordert, dass wir diese Inline-Vorschlagsfunktion erkennen, die zuvor eine naive Implementierung verwendete, die nur prüfte, ob der Text mit fett oder kursiv SGR-Attributen formatiert war. Es stellte sich heraus, dass dies nicht nur unzureichend war, wenn der Benutzer die Stile angepasst hat, sondern dass die Fish-Shell auch standardmäßig keinen dieser Stile verwendete. Wir erkennen jetzt die Mehrheit der Fälle, indem wir den Kontext der Befehlszeile und die Cursorposition analysieren.

Aufbauend auf dieser neuen und verbesserten Erkennung wird der Inline-Vorschlag jetzt als oberste Option mit einem Sternsymbol präsentiert, um sowohl besser mit dem Verhalten des Editors übereinzustimmen als auch um klarer zu machen, was kstyle(Tab) in diesem Fall tun wird.

Screenshot that shows when an inline suggestion shows up, it will be detected and put beside a star icon at the top of IntelliSense.

Standardmäßig wird dieser Vorschlag immer als oberster Vorschlag angezeigt, kann aber mit terminal.integrated.suggest.inlineSuggestion konfiguriert werden.

Detaillierte Befehlsvervollständigungen

Vervollständigungen für Bash- und Zsh-Shell-Befehle sowie für PowerShell-Befehle sind jetzt detaillierter und bieten Informationen über verfügbare Argumente. Diese Informationen stammen aus der Dokumentation oder den Hilfebefehlen der Shell.

Für Bash wird help <command> verwendet, um eine grundlegende Beschreibung zu erhalten

Screenshot that shows the history completion in bash, showing usage information and description.

Für Zsh wird man zshbuiltins verwendet, um eine detaillierte Beschreibung zu erhalten

Screenshot that shows completions in zsh, displaying detailed information from the manpage.

Für PowerShell werden mehr Eigenschaften von Get-Command in der Vervollständigung angezeigt

Screenshot that shows the completion for Get-ChildItem, showing the module Microsoft.PowerShell.Management and its version.

Screenshot that shows the completion for ConvertTo-Json, showing the signature of the command.

Verbesserte Sortierung

Befehlsvervollständigungen bieten jetzt eine verbesserte Sortierung, insbesondere:

  • Vervollständigungen mit mehr Details erscheinen im Allgemeinen über weniger detaillierten Vervollständigungen
  • Integrierte Befehle haben Vorrang vor Pfaden aus $PATH

Screenshot that shows the more useful alias and autoload commands showing before others in zsh.

Für Pfade wurden folgende Verbesserungen vorgenommen:

  • Pfade, die mit _ beginnen, erhalten eine Strafe, da dies oft ein Indikator dafür ist, dass sie besonders sind und im Allgemeinen nicht stark verändert werden sollten (z. B. __init__.py).
  • Satzzeichen werden beim Sortieren ignoriert, sodass Dateien, die mit . beginnen, mit anderen vermischt werden.

Screenshot that shows init.py will show below other files, while a .build dir will show immediately above a build file.

CDPATH-Unterstützung

Einstellung: terminal.integrated.suggest.cdPath

Die Umgebungsvariable $CDPATH ist eine gängige Shell-Funktion, die eine durch Doppelpunkte getrennte Liste von Pfaden enthält, ähnlich wie $PATH, und es ermöglicht, zu ihnen zu navigieren, als wären sie relativ, unabhängig vom aktuellen Arbeitsverzeichnis. Fish zeigt tatsächlich CDPATH-Einträge in der cd Tab-Vervollständigung an.

Screenshot that shows tab completion in fish, displaying entries from CDPATH.

Wir unterstützen jetzt die Anzeige von $CDPATH-Einträgen als Vervollständigungen bei der Verwendung von cd.

Screenshot that shows CDPATH entries now show up in IntelliSense.

Diese Funktion funktioniert auch unter Windows (; Trennzeichen) und erfordert keine native Unterstützung der Funktion durch die Shell, da standardmäßig der absolute Pfad verwendet wird.

Screenshot that shows a CDPATH containing 2 paths separated by a semi-colon, including all sub-directories even on PowerShell which does not support CDPATH natively.

Konfigurieren Sie dies mit terminal.integrated.suggest.cdPath.

Absolute Pfade

Absolute Pfade werden jetzt unterstützt.

Screenshot that shows "cd c:\Github\mi" will show results for all absolute folders matching that term.

Screenshot that shows cd to absolute paths also works with Unix-style paths.

Alias-Unterstützung

Befehlsaliase werden jetzt auch für Bash, Zsh und Fish erkannt und verfügen über ein neues, eindeutiges Symbol.

Screenshot that shows the alias c->code-insiders will now be detected and show with the command icon with a little arrow in the corner.

Unterschiedliche Optionen und Flags

CLI-Optionen (die einen Wert haben) und Flags (die keinen haben) werden jetzt in der Benutzeroberfläche durch ein anderes Symbol unterschieden.

Screenshot that shows flags like --help will show a flag icon, options like --diff will show a different icon.

Aufgaben

Aufgaben-Wiederholung Aktion

Wir haben eine neue Wiederholungs-Aufgabenaktion für Terminals, ⌃⇧R (Windows, Linux Ctrl+Shift+R). Die Aktion erscheint in der Inline-Symbolleiste des Terminal-Tabs und im Kontextmenü des Terminals.

Debuggen

Debuggen von Inline-Werten beim Hovern

Wenn die Einstellung debug.inlineValues aktiviert ist, verfügen die Inline-Wertdekorationen jetzt über einen Inline-Hover, wodurch längere Werte leichter auf einen Blick gelesen werden können.

Screenshot that shows the cursor hovering above a dataframe object's inline decoration in an active debugging session. Rich value hover is shown.

Sprachen

TypeScript 5.8

VS Code enthält jetzt TypeScript 5.8.2. Dieses große Update bringt neue Sprachverbesserungen, einschließlich verbesserter Überprüfung von Typen aus bedingten Ausdrücken und Unterstützung für das Schreiben von Code, der der neuen Option --experimental-strip-types von Node entspricht. Es enthielt auch eine Reihe von Tooling-Verbesserungen und Fehlerbehebungen.

Lesen Sie den TypeScript 5.8 Release Blog für weitere Details zu diesem Update.

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

  • End-of-Life für Linux Legacy Server
  • Erweiterte Proxy-Konfigurierbarkeit

Sie können mehr über diese Funktionen in den Remote Development Release Notes erfahren.

Enterprise-Support

Mehrzeilige Unterstützung für erlaubte Erweiterungen

Sie können jetzt erlaubte Erweiterungen in der Gruppenrichtlinie unter Windows mit einem mehrzeiligen String konfigurieren. Dies ermöglicht eine flexiblere und umfangreichere Konfiguration erlaubter Erweiterungen. Erfahren Sie mehr über das Konfigurieren von erlaubten Erweiterungen.

Beiträge zu Erweiterungen

Python

Automatische Einfügung von Anführungszeichen beim Aufbrechen langer Strings

Pylance unterstützt jetzt die automatische Einfügung von Anführungszeichen, um eine nahtlose Erfahrung beim Aufbrechen langer Strings zu ermöglichen.

Speicherverbrauch-Verbesserungen bei Pylance

Einige Optimierungen wurden vorgenommen, um den Speicherverbrauch von Pylance zu verbessern, insbesondere bei der Arbeit mit großen Workspaces. Diese Verbesserung wurde an Pyright vorgenommen, dem statischen Typ-Checker, der die Sprachserver-Funktionen von Pylance antreibt.

Verbesserungen an der Python-Shell-Integration

Nachdem Sie python.terminal.shellIntegration.enabled geändert haben, müssen Sie nicht mehr neu laden, damit Änderungen wirksam werden. Erstellen Sie einfach ein neues Terminal, um die gewünschten Änderungen an Ihrer Python REPL im Terminal zu sehen.

Korrekte Workspace-Eingabeaufforderung für Windows Git Bash

Python-Benutzer unter Windows, die Git Bash verwenden, sehen jetzt das korrekte Arbeitsverzeichnis in ihrer Terminal-Eingabeaufforderung. Diese Änderungen gelten für diejenigen, die für das Experiment pythonTerminalEnvVarActivation opt-in haben.

Neue Einstellung für das Muster der automatischen Testerkennungsdatei

Sie können jetzt verfeinern, welche Dateien automatisch erkannt werden, indem Sie ein Glob-Muster in der Einstellung python.testing.autoTestDiscoverOnSavePattern angeben. Der Standardwert ist **/*.py.

Fallback: Lese Debug-Konfiguration aus settings.json

Wir suchen jetzt nach Test-Debug-Konfigurationen sowohl in settings.json als auch in launch.json-Dateien und erweitern damit, wo Sie diese Konfigurationen definieren können.

GitHub-Authentifizierung

Verbesserte Proxy-Unterstützung durch Übernahme von Electron fetch

Die GitHub-Authentifizierungserweiterung nutzt jetzt die Electron-Version von fetch, um Webanfragen zu stellen. Dies hat Benutzern mit bestimmten Proxy- und Firewall-Einstellungen geholfen. Wenn Sie wissen, dass Sie in einer Umgebung mit einer Proxy-Einrichtung arbeiten und sich nicht bei GitHub innerhalb von VS Code authentifizieren können, zögern Sie nicht, ein Problem zu erstellen!

Erweiterungs-Authoring

Authentifizierung

Wichtig: Wir benennen AuthenticationForceNewSessionOptions in AuthenticationGetSessionPresentationOptions um und lassen vorerst ein veraltetes AuthenticationForceNewSessionOptions bestehen. Es gibt keine funktionale Änderung, so dass dies keine Breaking Change für die Laufzeit ist, aber Sie sollten Ihren Code aktualisieren, um AuthenticationGetSessionPresentationOptions anstelle von AuthenticationForceNewSessionOptions zu verwenden, da es in Zukunft entfernt wird.

Betrachtung dieser beiden Authentifizierungsaufrufe

vscode.authentication.getSession(provider, scopes, { createIfNone: options });
vscode.authentication.getSession(provider, scopes, { forceNewSession: options });

createIfNone und forceNewSession akzeptieren jetzt entweder einen boolean oder ein AuthenticationGetSessionPresentationOptions.

/**
 * Optional options to be used when calling {@link authentication.getSession} with interactive options `forceNewSession` & `createIfNone`.
 */
export interface AuthenticationGetSessionPresentationOptions {
  /**
   * An optional message that will be displayed to the user when we ask to re-authenticate. Providing additional context
   * as to why you are asking a user to re-authenticate can help increase the odds that they will accept.
   */
  detail?: string;
}

Vollständige Typisierungen finden Sie hier....

Dies ist eine neue Ergänzung für createIfNone, aber eine Änderung für forceNewSession, das früher ein AuthenticationForceNewSessionOptions akzeptierte, das die gleiche Signatur hatte wie das neue AuthenticationGetSessionPresentationOptions.

Wenn Sie explizit AuthenticationForceNewSessionOptions verwenden, sehen Sie, dass es als veraltet markiert ist und Sie es durch AuthenticationGetSessionPresentationOptions ersetzen sollten, da AuthenticationForceNewSessionOptions in einer zukünftigen Version entfernt wird.

Es ist wichtig zu beachten, dass sich hier nur die Typen ändern. Es gibt keine Laufzeitänderung, daher ist dies aus dieser Perspektive keine Breaking Change.

Zusätzlich wurde die vorgeschlagene API authLearnMore von AuthenticationForceNewSessionOptions zu AuthenticationGetSessionPresentationOptions aktualisiert.

Hier ist ein Beispiel, das detail und das learnMore-Vorschlag nutzt.

Screenshot that shows the authentication modal dialog, featuring a message that says 'To get more relevant Copilot Chat results, we need permission to read the contents of your repository on GitHub.' and a button to learn more.

Verfeinerte Snippet-API

Sie können jetzt die Whitespace-Normalisierung beim Einfügen von Snippets steuern. Dies gilt für die insertSnippet-API und für die SnippetTextEdit-API und steuert, ob die Einrückung zusätzlicher Zeilen von Snippets angepasst wird oder nicht.

const snippet = `This is an indented
    snippet`;

// keepWhitespace: false, undefined
function indentedFunctionWithSnippet() {
  return `This is an indented
        snippet`; // adjusted indentation
}

// keepWhitespace: true
function indentedFunctionWithSnippet() {
  return `This is an indented
    snippet`; // original indentation
}

Vorgeschlagene APIs

Textkodierungen

Wir haben eine neue vorgeschlagene API hinzugefügt, um mit Textkodierungen in VS Code zu arbeiten.

Insbesondere ermöglicht diese neue API Folgendes:

  • Abrufen der aktuellen encoding eines TextDocument
  • Öffnen eines TextDocument mit einer bestimmten encoding
  • Kodieren eines strings in ein Uint8Array mit einer bestimmten encoding
  • Dekodieren eines Uint8Arrays zu einem string unter Verwendung einer bestimmten encoding

Probieren Sie es aus und lassen Sie uns wissen, was Sie denken in diesem GitHub-Issue.

Shell-Umgebung

Erweiterungen können auf die Informationen der aktuell aktiven Shell-Umgebung des Benutzers für pwsh, zsh, bash und Fish-Shells zugreifen, die aus dem integrierten Terminal von VS Code geöffnet werden. Dies ist nur verfügbar, wenn terminal.integrated.shellIntegration.enabled aktiviert ist.

Der Benutzer kann entscheiden, ob er seine Shell-Umgebungsinformationen mit terminal.integrated.shellIntegration.environmentReporting melden möchte oder nicht.

Probieren Sie es aus und lassen Sie uns wissen, was Sie denken in diesem GitHub-Issue.

Technik

Electron 34 Update

In diesem Meilenstein befördern wir das Electron 34 Update an Benutzer unserer stabilen Version. Dieses Update bringt Chromium 132.0.6834.196 und Node.js 20.18.2 mit sich. Wir möchten uns bei allen bedanken, die auf den Insider-Builds selbst getestet und frühes Feedback gegeben haben.

Unterstützung für macOS 10.15 eingestellt

VS Code 1.97 ist die letzte Version, die macOS 10.15 (macOS Catalina) unterstützt. Weitere Informationen finden Sie in unserer FAQ.

Entwicklungszeit-Tracking von geleakten Disposables

VS Code verwendet das Disposable-Muster zur expliziten Ressourcenverwaltung, z. B. zum Schließen von Dateien, Bereinigen von DOM-Elementen oder Entfernen von Event-Listenern. Das Nicht-Entsorgen von Ressourcen führt zu Speicherverschwendung und einem Anstieg des Speicherverbrauchs über die Zeit.

Wir sind ständig auf der Jagd nach solchen Lecks und haben ein weiteres Werkzeug zur Erkennung hinzugefügt. Wir nutzen die FinalizationRegistry API, da sie uns darüber informiert, wenn ein Objekt vom Garbage Collector gesammelt wurde. Wenn ein solches Objekt ein nicht entsorgtes disposable darstellte, bedeutet dies, dass wir ein Leck haben. Diese werden gesammelt und den Entwicklern von VS Code gezeigt, damit wir sie im Laufe der Zeit bereinigen können.

Bemerkenswerte Fehlerbehebungen

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-eslint

Beiträge zu vscode-hexeditor

Beiträge zu vscode-jupyter

Beiträge zu vscode-languageserver-node

Beiträge zu vscode-mypy

Beiträge zu vscode-pull-request-github

Beiträge zu vscode-python-debugger

Beiträge zu vscode-vsce

Beiträge zu debug-adapter-protocol

Beiträge zu language-server-protocol

Beiträge zu python-environment-tools

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