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

März 2024 (Version 1.88)

Update 1.88.1: Das Update behebt diese Probleme.

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


Willkommen zur März 2024-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.

Barrierefreiheit

Stimmen für Sprachaufnahmen

Wir haben neue Signalgeräusche für Sprachaufnahmen hinzugefügt.

  • Start der Sprachaufnahme - konfiguriert mit der Einstellung accessibility.signals.voiceRecordingStarted
  • Ende der Sprachaufnahme - konfiguriert mit der Einstellung accessibility.signals.voiceRecordingStopped

Verbesserte Barrierefreiheit des Diff-Editors

Wenn Sie einen Screenreader verwenden, erhalten Sie nun eine Ankündigung, wenn ein Diff-Editor zum aktiven Editor wird. Sie können dieses Verhalten mit der Einstellung accessibility.verbosity.diffEditorActive deaktivieren.

Wir haben auch Informationen zu Diff Editor: Seite wechseln, einem hilfreichen Befehl für Tastaturnutzer, zum Dialog "Barrierefreiheitshilfe" hinzugefügt.

Barrierefreiheits-Signale funktionieren jetzt auf beiden Seiten des Diff-Editors. Zuvor waren sie nur auf der geänderten Seite verfügbar.

Befehle für Codeblöcke in der barrierefreien Ansicht

Wenn Sie eine Chat-Antwort in der barrierefreien Ansicht inspizieren, können Sie jetzt die Befehle und Tastenkombinationen für Codeblöcke verwenden, die in der Chat-Ansicht verfügbar sind.

Dazu gehören Chat: An Cursor einfügen, Chat: In Terminal einfügen und Chat: In neue Datei einfügen.

Aktualisierungen der Aria-Labels von Notebook-Zellen

Aria-Labels für Notebook-Zellen werden jetzt aktualisiert, um anzuzeigen, ob die Zelle gerade ausgeführt wird oder auf die Ausführung wartet.

Workbench

Unterstützung für benutzerdefinierte Editoren in schwebenden Fenstern

Wir haben die Unterstützung für das Öffnen von Editoren in schwebenden Fenstern auf benutzerdefinierte Editoren und generell auf alle Editoren erweitert, die die Webview-API verwenden. Dazu gehören die Markdown-Vorschau, die Browser-Vorschau und komplexe benutzerdefinierte Editoren wie unser Hex-Editor.

Hinweis: Aufgrund einer technischen Einschränkung muss der Inhalt eines Webview-basierten Editors beim Verschieben zwischen Fenstern neu geladen werden. Es liegt dann am Editor, den zuvor angesammelten Zustand wiederherzustellen. In einigen Fällen kann Ihr Zustand zurückgesetzt werden, als hätten Sie den Editor zum ersten Mal geöffnet.

Benutzerdefinierte Labels für offene Editoren

Wir ermöglichen es Ihnen nun, das angezeigte Label für Editor-Tabs und die Ansicht "Offene Editoren" anzupassen. Diese Funktionalität kann nützlich sein, um zwischen Editoren für Dateien mit demselben Namen zu unterscheiden.

Sie können diese Labels nach Ihren Wünschen gestalten, indem Sie Einträge unter der Einstellung workbench.editor.customLabels.patterns hinzufügen. Jeder Eintrag sollte ein Glob-Muster enthalten, das Dateipfade abgleicht, und eine Vorlage, die den neuen Namen für den Editor-Tab definiert. Diese Anpassung gilt nur, wenn der Pfad einer Datei mit dem angegebenen Muster übereinstimmt. Ob ein Muster übereinstimmt, hängt davon ab, ob es als relativ oder absolut definiert ist.

Vorlagen können Variablen wie ${filename}, ${extname}, ${dirname} und ${dirname(N)} enthalten, die dynamisch durch Werte aus dem Dateipfad ersetzt werden.

Um diese benutzerdefinierten Labels zu aktivieren oder zu deaktivieren, verwenden Sie die Einstellung workbench.editor.customLabels.enabled. Dies ermöglicht es Ihnen, jederzeit zu den ursprünglichen Editor-Namen zu wechseln, ohne Ihre benutzerdefinierten Muster entfernen zu müssen.

Gesperrtes Scrollen

Sie können nun das Scrollen über alle sichtbaren Editoren synchronisieren, indem Sie den Befehl Anzeige: Gesperrtes Scrollen über Editoren umschalten verwenden. Das bedeutet, dass beim Scrollen in einem Editor alle anderen Editoren um den gleichen Betrag scrollen und alles ausgerichtet bleibt. Diese Funktion kann nützlich sein, wenn Sie Dateien nebeneinander vergleichen müssen.

Wenn Sie mehr Kontrolle über das Aktivieren und Deaktivieren des gesperrten Scrollens wünschen, können Sie das Scroll-Sync nur aktivieren, wenn Sie eine bestimmte Tastenkombination gedrückt halten. Richten Sie eine Tastenkombination für den Befehl workbench.action.holdLockedScrolling ein, und Sie können das Scrollen über Editoren vorübergehend sperren, wann immer Sie es benötigen.

Aktivitätsleiste unten

Zuvor haben wir die Option eingeführt, die Aktivitätsleiste am oberen Rand der Seitenleiste zu verschieben. Nun können Sie die Aktivitätsleiste auch am unteren Rand platzieren. Ändern Sie dazu die Einstellung workbench.activityBar.location auf bottom.

Wir haben auch das Aussehen der Aktivitätsleiste verbessert, wenn sie oben positioniert ist, um sicherzustellen, dass sie sich gut in die übrige Benutzeroberfläche einfügt.

Three screenshots, showing the different Activity Bar positions: on the left side, at the top, and at the bottom

Sucheditor: Einzeltklick-Verhalten

Sie können nun die Einstellung search.searchEditor.singleClickBehaviour konfigurieren, um zu bestimmen, was passiert, wenn Sie auf einen Eintrag im Sucheditor klicken. Derzeit unterstützt die Einstellung nur das Öffnen einer Peek-Definition.

Verbesserungen bei der Schnellsuche

Feste Dateipfade

In der Schnellsuche haben wir die Trennsymbole für Dateinamen fixiert, um deutlicher zu machen, mit welcher Datei ein Suchergebnis verknüpft ist. Dies kann nützlich sein, wenn Sie viele Vorkommen eines Suchbegriffs in einer Datei haben.

Dateipfad-Trennsymbol-Schaltflächen

Wenn Sie mit der Maus über Dateiergebnisse einer bestimmten Datei fahren oder mit den Pfeiltasten nach unten zu einem Ergebnis navigieren, erscheinen auch Schaltflächen (z. B. zum Öffnen der Datei) für das Dateipfad-Trennsymbol.

Tastenkombinationen für die Navigation zwischen Trennsymbolen in der Schnell-Auswahl

Wir haben Feedback erhalten, dass es wünschenswert wäre, zwischen Trennsymbolen in einer Schnell-Auswahl navigieren zu können. In dieser Iteration haben wir eine Tastenkombination hinzugefügt, um genau das zu tun. Unter Windows und Linux können Sie Alt+Auf/Ab verwenden, und unter macOS ist es Cmd+Auf/Ab. In diesem Beispielvideo sehen Sie, wie sich das aktive Element zwischen

  • den Trennsymbolen zuletzt verwendet und andere Befehle in der Befehlspalette
  • den Dateipfad-Trennsymbolen in der Schnellsuche

Deaktivierte Kontrollkästchenelemente in der Schnell-Auswahl

In dieser Iteration haben wir deutlicher gemacht, wann eine Schnell-Auswahl deaktivierte Elemente anzeigt. Ein Beispiel dafür finden Sie in der Schnell-Auswahl "Vertrauenswürdige Erweiterungen verwalten", auf die Sie für jedes der angemeldeten Konten zugreifen können.

The Manage Trusted Extensions quick pick with some items disabled

Verbesserungen beim Aktualisieren von Erweiterungen

Erweiterungen neu starten

Wenn eine Erweiterung aktualisiert wird, können Sie nun Erweiterungen neu starten, anstatt das Fenster neu laden zu müssen.

Restart extensions instead of reloading the window

Hinweis: Wenn Sie mit einem Remote-Server wie WSL oder SSH oder Dev Container verbunden sind, müssen Sie das Fenster weiterhin neu laden, um Erweiterungen zu aktualisieren.

Erweiterungen mit VS Code-Updates aktualisieren

Wenn Sie Automatische Erweiterungsaktualisierungen aktiviert haben, aktualisiert VS Code jetzt die Erweiterungen, die mit der neueren Version von VS Code kompatibel sind, die zur Aktualisierung verfügbar ist. Wenn die neuere Version der Erweiterung nicht mit der aktuellen Version von VS Code kompatibel ist, wird die neuere Version der Erweiterung erst nach der Aktualisierung von VS Code aktiviert.

Zu Kommentarantwort springen

Das Kontextmenü für einen Kommentar-Thread in der Kommentare-Ansicht enthält nun eine "Antworten"-Aktion, wenn der Kommentar-Thread Antworten zulässt. Dies ermöglicht es Ihnen, schnell zum Antwort-Eingabefeld zu springen und mit der Eingabe einer Antwort zu beginnen.

Comments view context menu with a Reply action

Editor

Faltmarkierungen in der Minimap

Die Minimap erkennt und rendert nun Abschnitte, die durch Faltmarkierungen definiert sind, wie z. B. //#region in TypeScript oder Kommentare, die MARK: verwenden. So können Sie große Dateien schnell durchsuchen und darin navigieren.

Screenshot that shows folding marker regions defined in the editor in the minimap

Tastenkombinationen für die Refactoring-Vorschau

Wir haben die Tastenkombination zum Vorschauen von Bearbeitungen für das Umbenennen von Symbolen (Refactoring) (F2) aktualisiert, um die Konsistenz mit dem Vorschauen von Refactorings in anderen Kontexten wie Code Actions zu wahren. Sie können jetzt Bearbeitungen vorschauen, indem Sie ⌘Enter (Windows, Linux Ctrl+Enter) verwenden (zuvor Shift + Enter).

Beim Überfahren von Code Actions wird mit ⌘Enter (Windows, Linux Ctrl+Enter) auch das Refactoring-Vorschaufenster in der Benutzeroberfläche geöffnet.

Schaltflächen "Stage/Revert" im Diff-Editor

Der Diff-Editor verfügt nun über eine separate Rinne für die Steuerelemente Stage und Revert. Diese Aktionen ermöglichen es Ihnen, geänderte Codeblöcke zu stagieren oder rückgängig zu machen.

Wenn Sie eine Textauswahl für einige Änderungen vornehmen, können Sie mit diesen Schaltflächen die ausgewählten Änderungen (alle geänderten Zeichen innerhalb der Auswahl) stagieren oder rückgängig machen.

Video that shows the gutter buttons in the diff editor to stage or revert changes

Sie können die Rinne des Diff-Editors ausblenden, indem Sie diffEditor.renderGutterMenu auf false setzen.

Verhalten von Umbenennungsvorschlägen

Wir haben den Ablauf der Verwendung von Umbenennungsvorschlägen verbessert, um ihn an den von Schnell-Auswahlen anzupassen. Wenn Sie einen Umbenennungsvorschlag aus der Liste auswählen, wird der Eingabewert nun entsprechend aktualisiert, was es Ihnen ermöglicht, den Vorschlag weiter zu ändern.

Video of the Rename control that updates the input with the focused rename suggestion

Quellcodeverwaltung

Dekorationen für eingehende Änderungen in Dateien

Um potenzielle Konflikte beim Zusammenführen/Zurücksetzen von Änderungen aus dem Remote-Repository zu vermeiden, zeigen wir nun Dateidekorationen für alle Dateien an, die eingehende Änderungen haben und die abgerufen, aber noch nicht zusammengeführt/zurückgesetzt wurden. Um von dieser Funktionalität zu profitieren, sollten Sie sowohl die Einstellungen git.autofetch als auch git.decorations.enabled aktiviert haben.

Source Control incoming changes file decorators in the explorer view and in the editor tabs

Thema: GitHub Sharp (Vorschau auf vscode.dev)

Terminal

Shell-Integration in Debug-Terminals

Um den Benutzern und Erweiterungen erweiterte Funktionalität zu bieten, ist die Shell-Integration jetzt automatisch in Terminals aktiviert, die beim Debuggen gestartet werden.

Verbesserungen bei "Zuletzt ausgeführten Befehl ausführen"

Der Shell-Integration-gestützte Befehl Zuletzt ausgeführten Befehl ausführen (⌃⌥R (Windows, Linux Ctrl+Alt+R)) scrollt nun zum letzten Ausführungszeitpunkt des Befehls und zeigt ihn an, wo möglich. Das Ausführen des Befehls oder das Abbrechen der Schnell-Auswahl versetzt das Terminal in seinen vorherigen Zustand zurück.

Thema: Sapphire (Vorschau auf vscode.dev)

Der Befehl Erkannten Link öffnen (⇧⌘O (Windows, Linux Ctrl+Shift+O)) zeigt nun eine Vorschau des Link-Ergebnisses im Editor an und hebt die Link-Quelle im Terminal hervor.

Zusätzlich werden doppelte Links aus der Liste gefiltert und alle Links in einem konsistenten Format präsentiert.

When 3 yarn.lock links are printed with the same line and column numbers, they will all be merged into a single detected link

Wort-Links werden durch die Einstellung terminal.integrated.wordSeparators definiert und sind der Fallback, wenn Dateien/Ordner/URIs nicht gefunden werden können. Wenn diese Links aktiviert werden, enthalten sie nun zusätzlichen Umgebungs-Kontext, um Zeilen- und Spalteninformationen für die durchgeführte Suche hinzuzufügen.

Beachten Sie im Screenshot, dass der Link terminalLinkParsing ausgewählt wurde, die daraus resultierende Suche jedoch auch die Zeilennummer nach dem Link enthält.

Activating a "terminalLinkParsing" link when followed by "line 24" will include the 24 line number in the search

Das folgende Link-Format wird jetzt in Terminals erkannt, auch wenn der Pfad Leerzeichen enthält

  •  FILE  path:line:column

Transparenzunterstützung für Sticky Scroll im Terminal

Sticky Scroll im Terminal unterstützt nun Transparenz. Ein Thema kann dies nutzen, indem es die Farb-Einstellung terminalStickyScroll.background auf einen transparenten Wert setzt oder eine Überschreibung in Ihrer settings.json angibt. Zum Beispiel

{
  "workbench.colorCustomizations": {
    "[Default Dark Modern]": {
      "terminalStickyScroll.background": "#181818c0"
    }
  }
}

Was zu einem transparenten Sticky Scroll-Hintergrund führt, wodurch der darunterliegende Text durchscheinen kann

The Sticky Scroll background can now be transparent, allowing the text behind to shine through

Testen

Testabdeckung

In dieser Iteration haben wir unsere Test Coverage API fertiggestellt und damit native Coverage-Unterstützung für VS Code gebracht. Wenn Ihr Testsystem dies unterstützt, können Sie die Abdeckung mit der neuen Schaltfläche Mit Abdeckung ausführen erhalten.

Screenshot showing the Run With Coverage button in the Test explorer view

Es gibt auch neue Tastenkombinationen zum Ausführen mit Abdeckung, wie z. B. Ctrl+; Ctrl+Shift+A zum Ausführen aller Tests mit Abdeckung und Ctrl+; Ctrl+Shift+L zum Ausführen Ihrer letzten Tests mit Abdeckung.

Abdeckungsinformationen werden standardmäßig als Overlay über den Zeilennummern angezeigt, aber Sie können Inline-Abdeckung umschalten, um vollständige detaillierte Informationen für Ihre Quelldateien anzuzeigen.

Screenshot showing the Test Coverage view in the Test Explorer view and color overlays in the editor

Theme: Codesong (Vorschau auf vscode.dev)

Die Verwendung von Testabdeckung erfordert, dass Ihre Erweiterung die neue API implementiert. Einige Erweiterungen wie der Test Runner for Java und der node:test runner unterstützen sie bereits. Erfahren Sie mehr über die Testabdeckung für Java in den Updates des Teams vom Dezember und Januar.

Erweiterungsautoren finden weitere Details zur Test Coverage API in der Test-API-Dokumentation.

Farbcodes-Unterstützung in Testnachrichten

Wir parsen nun Terminal-Farbcodes, um Textnachrichten, wie z. B. beim Fehlschlagen eines Tests, einzufärben, anstatt die rohen "unlesbaren" Datencodes anzuzeigen.

Sprachen

TypeScript 5.4

VS Code enthält jetzt TypeScript 5.4. Dieses wichtige Update bringt neue Verbesserungen bei der Typüberprüfung und IntelliSense sowie mehrere Fehlerbehebungen. Weitere Informationen finden Sie im TypeScript 5.4 Release Blogbeitrag.

Wenn Sie ein Bild oder eine Datei in eine Markdown-Datei ziehen oder einfügen, fügt VS Code automatisch die Markdown-Bild- oder Link-Syntax dafür ein. Wir deaktivieren dieses Verhalten nun auch intelligent, wenn Sie in Codeblöcke und andere Kontexte einfügen, die keine Markdown-Syntax unterstützen.

Sie können jederzeit wieder zur Einfügung der Markdown-Syntax über das Drop/Paste-Widget zurückkehren. Sie können dieses Verhalten mit den Einstellungen markdown.editor.drop.enabled und markdown.editor.filePaste.enabled konfigurieren.

Notebooks

Tastenkombinationen in Notebook-Ausgaben

Wir unterstützen nun einige der Standard-Tastenkombinationen in Notebook-Ausgaben.

  • Die Ausgabe kann mit den Tastenkombinationen Strg+A und Strg+C ausgewählt und kopiert werden.
  • Bildlaufbare Ausgaben können mit den Tastenkombinationen Auf und Ab gescrollt werden.
  • Das Scrollen zum Anfang und Ende einer bildlaufbaren Ausgabe kann mit den Tastenkombinationen Strg+Pos1 und Strg+Ende (Cmd+Auf und Cmd+Ab unter macOS) erreicht werden.
  • Die Auswahl von Ausgaben vom aktuellen Auswahlpunkt bis zum Anfang oder Ende der Ausgabe kann mit den Tastenkombinationen Strg+Umschalt+Auf und Strg+Umschalt+Ende (Umschalt+Cmd+Auf und Umschalt+Cmd+Ab unter macOS) erreicht werden.

Zellenfehler-Diagnosen

Eine Erweiterung kann nun Fehlerdetails für eine fehlgeschlagene Zelle bereitstellen, sodass eine Fehlerdiagnose innerhalb der Zelle angezeigt wird. Wenn die Zelle im Fokus steht, springt notebook.cell.openFailureActions (⌘. (Windows, Linux Ctrl+.)) zum Menü "Schnelle Aktionen" für diesen Fehler. Die Diagnose wird nur angezeigt, wenn ein Sprachmodell verfügbar ist, um schnelle Aktionen bereitzustellen.

Zellen in Abschnitten ausführen

Um verwandte Zellen in einem Notebook einfacher auszuführen, können Sie nun Zellen, die durch eine Markdown-Abschnittsüberschrift gruppiert sind, mit der Aktion Zellen in Abschnitt ausführen ausführen. Diese Aktion ist in der Notebook-Gliederungsansicht und für Sticky Scroll-Elemente verfügbar.

Innerhalb von Sticky Scroll-Elementen klicken Sie mit der rechten Maustaste auf die gewünschte Überschrift und führen den Abschnitt über die Aktion im Kontextmenü aus. Wählen Sie in der Gliederungsansicht das Symbol in der Symbolleiste aus, das beim Überfahren oder Auswählen erscheint, und führen Sie dann eine einzelne Zelle oder einen Abschnitt von Zellen über die angezeigten Aktionen aus.

Filterunterstützung in der Gliederungsansicht

Sie haben nun Filter in der Notebook-Gliederungsansicht, mit denen Sie die Einbeziehung von Markdown-Überschriften, Code-Zellen und Code-Zellensymbolen steuern können. Die Filter entsprechen den folgenden Einstellungen:

  • notebook.outline.showMarkdownHeadersOnly
  • notebook.outline.showCodeCells
  • notebook.outline.showCodeCellSymbols

Aufforderung zum Speichern des Interaktiven Fensters beim Schließen

Durch Aktivieren der Einstellung interactiveWindow.promptToSaveOnClose werden Sie aufgefordert, den Inhalt eines Interaktiven Fensters zu speichern, wenn es geschlossen wird, um sicherzustellen, dass Sie keine Arbeit verlieren. Das derzeit einzige unterstützte Dateiformat ist .ipynb.

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

  • Alternativer Server-Download für Distributionen mit langer Unterstützung
  • Portweiterleitung basierend auf der URI-Abfragezeichenfolge
  • Dev Containers-Erweiterung startet Docker automatisch
  • Einschränkung des Zugriffs auf Dev Tunnels und Portweiterleitung über Gruppenrichtlinien

Sie können mehr über diese Funktionen in den Remote-Entwicklungs-Releasehinweisen erfahren.

Beiträge zu Erweiterungen

VS Code Sprache

Lazy Activation

Die Erweiterung VS Code Speech wird nun nur noch aktiviert, wenn Spracherkennungsdienste in VS Code angefordert werden. Dies stellt sicher, dass die Erweiterung die Startzeit des Erweiterungs-Hosts nicht negativ beeinflusst.

Verwenden Sie die Anzeigesprache als Standard-Sprachsprache

Standardmäßig verwendet die VS Code Speech-Erweiterung nun die Anzeigesprache von VS Code als Sprachsprache und wählt das entsprechende Modell aus, wenn diese Sprache unterstützt wird.

Für die Einstellung accessibility.voice.speechLanguage ist auto der neue Standard.

GitHub Copilot

Inline-Chat-Verbesserungen

Der Inline-Chat startet jetzt als schwebendes Steuerelement, was ihn leichter macht. Nach der ersten Anfrage erweitert sich das Steuerelement, um mehr Platz einzunehmen. Wir haben auch das Rendering angepasst, um es konsistenter mit anderen Chat-Erlebnissen wie der Chat-Ansicht oder dem Schnell-Chat zu gestalten.

Inline Chat als Content-Widget über dem Editor-Text schwebend Thema: GitHub Light Colorblind (Beta)

Wir haben die Steuerelemente zum erneuten Ausführen und für Feedback neu positioniert und das Umschalt-Steuerelement zur Anzeige von Diffs zusammen mit den Schaltflächen "Akzeptieren" und "Verwerfen" deutlicher hervorgehoben.

Screenshot des Copilot Inline Chat, der die neu positionierten Bedienelemente zeigt. Thema: GitHub Light Colorblind (Beta)

Kernel-Status des Notebooks als Kontext

Wenn Sie sich in einem Notebook befinden, wird der Kernel-Status (z. B. Variablen und verfügbare Pakete) nun automatisch als Kontext in den Inline-Chat aufgenommen. Dies ermöglicht es Copilot, den aktuellen Zustand des Notebooks zu nutzen, um relevantere Vervollständigungen bereitzustellen.

Thema: GitHub Dark

Verbesserungen bei der Generierung von Commit-Nachrichten

Um die Qualität der generierten Commit-Nachrichten zu verbessern, nehmen wir nun auch die Commit-Nachrichten der 10 zuletzt erstellten Commits im Repository und die Commit-Nachrichten der 10 zuletzt erstellten Commits des aktuellen Benutzers als zusätzlichen Kontext auf.

Verbesserungen bei der Erstellung von Workspaces

Der Befehl @workspace /new bietet nun Beispielprojekte, kuratiert von GitHub-Repositories, als Vorschläge, wenn eine passende Übereinstimmung für die Chat-Anfrage erkannt wird.

Chat view with @workspace /new that provides a link to a sample project

Der Befehl @workspace /new wurde außerdem verbessert, um Kontext und Verlauf effektiver zu verwalten. Dies ermöglicht es Ihnen, die Struktur und den Inhalt vorgeschlagener Workspaces zu verfeinern, indem Sie Folgefragen stellen. Zum Beispiel: "Verwende TypeScript statt JavaScript" oder "Füge auch Bootstrap hinzu".

@terminal /explain Slash-Befehl

Ein neuer Slash-Befehl @terminal /explain ist verfügbar, der für die Erklärung von Befehlen oder Fehlern optimiert ist. Ohne /explain ist @terminal für den Vorschlag einer Fehlerbehebung optimiert. Dieser Slash-Befehl wird in der Schnellauswahl Mit Copilot erklären oder den Aktionen Auswahl erklären verwendet.

Using the explain using copilot quick fix will ask copilot "@terminal /explain #terminalLastCommand"

Vorschau: Terminal Inline-Chat

In dieser Version ist eine Vorschau des Terminal Inline-Chats verfügbar, die direkten Zugriff auf die Fähigkeiten von Copilot im Terminal bietet.

Sie können den Terminal Inline-Chat mit der Einstellung terminal.integrated.experimentalInlineChat aktivieren. Um den Inline-Chat in einem Terminal aufzurufen, verwenden Sie die Tastenkombination ⌘I (Windows, Linux Ctrl+I).

Opening terminal inline chat will open and focus an input box similar to inline chat in the editor

Der Terminal Inline-Chat verwendet den Chat-Teilnehmer @terminal, der Kontext über die integrierte Terminal-Shell und deren Inhalt hat.

You can ask complex questions like "list the top 5 largest files in the src directory"

Sobald ein Befehl vorgeschlagen wurde, verwenden Sie ⌘Enter (Windows, Linux Ctrl+Enter), um den Befehl im Terminal auszuführen, oder ⌥Enter (Windows, Linux Alt+Enter), um den Befehl in das Terminal einzufügen. Der Befehl kann auch direkt in der Copilot-Antwort bearbeitet werden, bevor er ausgeführt wird (derzeit Strg+Ab, Tab, Tab unter Windows & Linux, Cmd+Ab, Tab, Tab unter macOS).

Complex queries are OS and shell-specific

Klarheit über den Authentifizierungsfluss

Klarheit über die Authentifizierung ist sehr wichtig. Wir möchten klarstellen, wie wir authentifizieren und was wir anfordern. Wenn Sie ein privates Repository in VS Code öffnen und wir nicht die richtige Authentifizierung für dieses Szenario haben, zeigen wir einen Authentifizierungsdialog an. Der Dialog enthält eine Beschreibung, warum die Authentifizierung erforderlich ist, und eine Schaltfläche Mehr erfahren, um mehr über diese Anforderungen zu erfahren.

Screenshot of a modal window that's asking to authenticate with GitHub and that contains a Learn more button

Die Schaltfläche Mehr erfahren führt Sie zu unserer Dokumentation zu den Authentifizierungsanforderungen.

Variable Referenzen

Der Abschnitt Verwendete Referenzen in einer Chat-Antwort liefert Informationen über den verwendeten Kontext. Zuvor zeigte dieser Abschnitt nur implizit hinzugefügten Kontext an. Jetzt zeigt er auch Variablen an, die Sie explizit in der Chat-Anfrage erwähnt haben, wie z. B. #file oder #editor. Wenn eine Variable in den verwendeten Referenzen fehlt, kann dies darauf hindeuten, dass sie ignoriert wurde, da sie für das Kontextfenster des Sprachmodells zu groß ist.

Screenshot of a chat response, showing the '#file' variable in the Used references section

Sekundäre Chat-Sendeaktionen

In der Chat-Ansicht verfügt die Schaltfläche zum Senden von Chat-Nachrichten nun über ein Dropdown-Menü für einfachen Zugriff auf weitere Aktionen.

  • An @workspace senden sendet Ihre Anfrage an den Chat-Teilnehmer @workspace, was für Fragen zum Inhalt Ihres Workspaces nützlich ist.
  • An neuen Chat senden startet einen neuen leeren Chat und sendet dann die Anfrage.

Screenshot of the chat submit dropdown options

Bereichsauswahl bei Verwendung von Copilot: Dies erklären

Wenn Sie /explain ohne eine Auswahl im aktiven Editor verwenden und mehrere Bereiche von Interesse vorhanden sind, haben wir die Unterstützung für eine Aufforderung hinzugefügt, um zu klären, welcher Symbol- oder Blockbereich erklärt werden soll.

Screenshot of the scope selection quick pick when the scope for /explain is unclear

Dieses Verhalten ist derzeit optional und wird durch die Einstellung github.copilot.chat.scopeSelection gesteuert.

Python

Verbesserte Debug-Konfigurationsauswahl für Flask und Django

Das Erstellen von Startkonfigurationen für Flask- und Django-Apps ist jetzt noch einfacher! Es wurden Verbesserungen vorgenommen, um mögliche Startdateien in Ihrem Workspace beim Erstellen einer launch.json für Ihre Web-App zu erkennen.

Für Django sucht die Python Debugger-Erweiterung nach Dateien wie manage.py oder app.py im Stammverzeichnis oder eine Ebene tiefer in Ihrem Workspace. Für Flask sucht die Erweiterung nach Dateien wie wsgi.py, app.py oder init.py, die die Deklaration einer Flask-Anwendung enthalten (z. B. app = Flask()).

Wenn diese Dateien im Projekt nicht gefunden werden, zeigt das Dropdown-Menü eine Option Standard für den entsprechenden Projekttyp an, auch wenn diese Datei möglicherweise nicht vorhanden ist.

Erkennung von Hatch-Umgebungen

Hatch-Umgebungen werden nun standardmäßig erkannt und aktiviert, ähnlich wie andere gängige Umgebungen wie Venv, Conda und Poetry. Darüber hinaus ist die Erweiterung in der Lage, bei Hatch, wo kein expliziter Umgebungsidentifikator registriert ist, den Umgebungs-Typ (Hatch) aus dem Umgebungs-Locator zu ermitteln.

Automatische Umgebungs-Auswahl für Pipenv-, Pyenv- und Poetry-Projekte

Wenn Ihr Workspace eine Pipenv-, Pyenv- oder Poetry-Umgebung enthält, wird die entsprechende Umgebung nun automatisch für Ihren Workspace ausgewählt. Zuvor hat die Erweiterung diese Umgebungen korrekt erkannt, aber den globalen Standardinterpreter ausgewählt, was erforderte, dass Sie die entsprechende Umgebung für Ihren Workspace manuell auswählen.

Nun leitet die Python-Erweiterung die aktivierte Umgebung basierend auf der Anwesenheit der Umgebung und entsprechenden Konfigurationsdateien ab. Im Fall von pyenv schaut die Erweiterung beispielsweise in die Datei .python-version, um automatisch den geeigneten Interpreter für den Workspace auszuwählen.

Verbesserungen am Befehl "Problem melden"

Die Erweiterungen Python und Python Debugger machen es Ihnen nun einfacher, Probleme in unseren Repos zu melden! Wenn Sie ein Problem mit dem Befehl Problem melden (workbench.action.openIssueReporter) melden, ist die meiste Arbeit bereits erledigt, und Sie werden nur noch nach zusätzlichen Informationen gefragt, damit unser Team das aufgetretene Problem effizient klassifizieren kann.

Um ein Problem mit dem Befehl Hilfe: Problem melden für @vscode-python oder @vscode-python-debugger zu melden, wählen Sie Python bzw. Python Debugger aus dem Erweiterungs-Dropdown.

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

  • Veraltete Kommentare werden in der Kommentare-Ansicht anders als aktuelle Kommentare angezeigt.
  • Der neue Wert auto für githubPullRequests.createDefaultBaseBranch verwendet den Standard-Branch des Upstreams als Basis-Branch für Fork-Repositories.
  • Kommentar-Threads in der Kommentare-Ansicht haben Inline-Aktionen (auflösen/auflösen rückgängig machen und "Kommentar mit HEAD vergleichen" für veraltete Kommentare) und Kontextmenü-Aktionen.

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

Jupyter

Verbesserungen bei der Analyse der Zellenausführung

Mit der neuesten Pylance-Vorschau haben wir eine bessere Abhängigkeitsanalyse für Jupyter-Zellen. Sie versteht nun Modulimporte, was besonders nützlich ist, wenn eine Zelle ein Modul importiert, das in einer vorherigen Zelle definiert wurde.

Um diese Funktion zu aktivieren, installieren Sie die neueste Pylance-Vorschauversion in VS Code Insiders und aktivieren Sie die Einstellungen jupyter.executionAnalysis.enabled und notebook.consolidatedRunButton.

Erweiterungs-Authoring

Verwenden Sie den Befehl "Problem Reporter" für die Fehlerberichterstattung von Erweiterungen

In der letzten Iteration haben wir eine Möglichkeit abgeschlossen, damit Erweiterungen zusätzliche Daten oder Vorlagen beitragen können, die beim Einreichen auf GitHub über den VS Code-Problem Reporter ausgefüllt werden. Erweiterungen können einen Befehl beitragen, der über den Befehl Hilfe: Problem melden... aufgerufen werden kann. Die Auswahl ihrer Erweiterung führt ihren beigetragenen Befehl aus. Bitte überprüfen Sie unsere Dokumentation/Release-Hinweise zur Problem-Berichterstattung für weitere Informationen, wie dies mit Ihrer Erweiterung funktionieren kann!

Zusätzlich können alle installierten Erweiterungen über die Schnellsuche schnell gemeldet werden. Durch Eingabe von issue in die Schnellsuche (⌘P (Windows, Linux Ctrl+P)) können Sie schnell eine installierte Erweiterung auswählen oder suchen, um ein Problem zu melden.

Bestimmte Erweiterungen werden beginnen, diesen neuen Ablauf zur Problem-Berichterstattung zu nutzen und werden keine benutzerdefinierten Befehle mehr benötigen, die direkt in die Befehlspalette integriert sind.

Vorschau-Features

Neuskalierung überlappender Glyphen im Terminal

Eine neue Einstellung terminal.integrated.rescaleOverlappingGlyphs ist verfügbar, die überlappende Glyphen nach folgenden Zellen neuskalieren lässt. Dies dient der Abdeckung von Zeichen mit mehrdeutiger Breite, deren Schriftart-Glyphen möglicherweise nicht mit dem übereinstimmen, was das zugrundeliegende PTY/Unicode-Format annimmt. Zum Beispiel nehmen die römischen Ziffern-Unicode-Zeichen (U+2160+) in den meisten Schriftarten typischerweise mehrere Zellen ein, daher werden sie horizontal neu skaliert, wenn diese Einstellung aktiviert ist.

Ohne Neuskalierung

Before the glyphs for Ⅷ and Ⅻ depending on the font would always overlap the following cells

Mit Neuskalierung

After the glyphs for Ⅷ and Ⅻ depending on the font are rescaled horizontally to fit a single cell

Die Regeln dafür, wann eine Neuskalierung stattfindet, werden noch angepasst, und wir erwägen, dies in Zukunft standardmäßig zu aktivieren, wenn es ausgereift ist. Wenn Sie dies ausprobieren und Zeichen sehen, die neu skaliert werden, aber nicht sollten, erstellen Sie bitte ein Problem.

Lokale Workspace-Erweiterungen

Wir freuen uns, diese neue Vorschau-Funktion einzuführen, die es Ihnen ermöglicht, eine Erweiterung direkt in Ihrem Workspace zu verpacken. Diese Funktion wurde entwickelt, um Ihre spezifischen Workspace-Anforderungen zu erfüllen und eine maßgeschneidertere Entwicklungserfahrung zu bieten.

Um diese Funktion nutzen zu können, müssen Sie Ihre Erweiterung im Ordner .vscode/extensions innerhalb Ihres Workspaces verpacken. VS Code zeigt diese Erweiterung dann im Abschnitt Workspace-Empfehlungen der Erweiterungsansicht an, von wo aus Benutzer sie installieren können. VS Code installiert diese Erweiterung nur für diesen Workspace. Der Benutzer muss außerdem dem Workspace vertrauen, bevor diese Erweiterung installiert und ausgeführt wird.

Betrachten Sie zum Beispiel die Erweiterung vscode-selfhost-test-provider im VS Code-Repository. Diese Erweiterung integriert Testfunktionen und ermöglicht es Mitwirkenden, Tests direkt im Workspace anzuzeigen und auszuführen. Der folgende Screenshot zeigt die Erweiterung vscode-selfhost-test-provider im Abschnitt "Workspace-Empfehlungen" der Erweiterungsansicht und die Möglichkeit, sie zu installieren.

Local Workspace Extension

Diese Funktion ist als Vorschau in der Insiders-Version über extensions.experimental.supportWorkspaceExtensions verfügbar. Probieren Sie es aus und geben Sie uns Ihr Feedback, indem Sie Probleme im VS Code-Repository erstellen.

Vorgeschlagene APIs

Terminal Shell Integration API

Eine neue vorgeschlagene API, die den Zugriff auf einige der von Terminalen, die über die Shell-Integration aktiviert wurden, bereitgestellten Informationen ermöglicht, ist jetzt verfügbar. Mit dieser API ist es möglich, die eingehenden Daten und Exit-Codes von Befehlen, die im Terminal ausgeführt werden, abzufangen. Sie führt auch eine zuverlässigere Methode zur Ausführung von Befehlen ein, die warten, bis die Eingabeaufforderung verfügbar ist, bevor der Befehl gesendet wird, was zur Behebung einiger Konflikte/Race Conditions beiträgt, die bei verschiedenen Shell-Setups auftreten können.

Hier ist ein Beispiel für die Verwendung des Vorschlags Terminal.shellIntegration.executeCommand.

// Execute a command in a terminal immediately after being created
const myTerm = window.createTerminal();
window.onDidActivateTerminalShellIntegration(async ({ terminal, shellIntegration }) => {
  if (terminal === myTerm) {
    const command = shellIntegration.executeCommand('echo "Hello world"');
    const code = await command.exitCode;
    console.log(`Command exited with code ${code}`);
  }
}));

// Fallback to sendText if there is no shell integration within 3 seconds of launching
setTimeout(() => {
  if (!myTerm.shellIntegration) {
    myTerm.sendText('echo "Hello world"');
    // Without shell integration, we can't know when the command has finished or what the
    // exit code was.
  }
}, 3000);

Hier ist ein Beispiel für das Abhören des Datenstroms eines Befehls.

// Create a terminal and log all data via console.log
const myTerm = window.createTerminal();
window.onDidStartTerminalShellExecution(execution => {
  if (execution.terminal === myTerm) {
    const stream = execution.createDataStream();
    for await (const data of stream) {
      console.log(data);
    }
  }
});

Die neue API können Sie hier überprüfen.

Eigenschaft "Learn More" für Authentifizierungs-API

In dieser Iteration haben wir eine neue vorgeschlagene API hinzugefügt, mit der Sie eine learnMore-Eigenschaft in AuthenticationForceNewSessionOptions angeben können. Die Idee ist, dass Sie beim Aufrufen von getSession mit einer forceNewSession-Eigenschaft in den Optionen eine URI einfügen können, die dem Benutzer angezeigt wird, um mehr darüber zu erfahren, warum Sie nach einer Authentifizierung fragen. Hier ist ein Beispiel, wie das aussieht.

Screenshot of a modal window that's asking to authenticate with GitHub and that contains a Learn more button

Hier ist ein Beispiel in Codeform.

vscode.authentication.getSession('github', ['repo'], {
  forceNewSession: {
    detail: l10n.t('To show you more relevant Copilot Chat results, we need permission to read the contents of your repository on GitHub.'),
    learnMore: Uri.parse('https://aka.ms/copilotRepoScope')
  };
});

Die neue API können Sie hier überprüfen.

Veraltete Kommentare

Die neue Eigenschaft applicability für Kommentar-Threads ermöglicht es, Kommentar-Threads in der Kommentaransicht als veraltet zu markieren.

Outdated comment in the Comments view

Den API-Vorschlag können Sie hier überprüfen.

Menüs der Kommentaransicht

Das vorgeschlagene Menü commentsView/commentThread/context ermöglicht das Hinzufügen von Aktionen zum Kontextmenü eines Kommentar-Threads in der Kommentaransicht. Die übliche inline-Gruppe wird ebenfalls berücksichtigt, sodass Aktionen inline in der Kommentaransicht angezeigt werden.

Example of an inline action in the Comments view

Technik

Aktualisierung von Electron 28

In dieser Iteration werden wir das Update auf Electron 28 für unsere stabilen Benutzer veröffentlichen. Dieses Update enthält Chromium 120.0.6099.291 und Node.js 18.18.2. Wir möchten uns bei allen bedanken, die auf den Insiders-Builds selbst gehostet und frühzeitig Feedback gegeben haben.

Bemerkenswerte Fehlerbehebungen

  • 204886 Das Öffnen einer Datei mit demselben Namen, aber einem anderen Pfad im einfachen Dateiauswahlfeld schlägt fehl.

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-extension-samples

Beiträge zu vscode-hexeditor

Beiträge zu vscode-js-debug

Beiträge zu vscode-json-languageservice

Beiträge zu vscode-pull-request-github

Beiträge zu vscode-pylint

Beiträge zu vscode-python-debugger

Beiträge zu debug-adapter-protocol

Beiträge zu inno-updater

Beiträge zu language-server-protocol

Beiträge zu monaco-editor

Beiträge zu node-pty

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