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

Mai 2023 (Version 1.79)

Update 1.79.1: Das Update behebt dieses Sicherheitsproblem Issue.

Update 1.79.2: Das Update behebt diese Issues.

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


Willkommen zur Mai 2023-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

Verbosity-Einstellungen

Zusätzliche accessibility.verbosity-Einstellungen wurden hinzugefügt, um Screenreader-Benutzern mitzuteilen, wie sie mit Funktionen interagieren können, wenn sie fokussiert sind.

Für GitHub Copilot gibt es Hinweise, wie auf die zugänglichen Hilfemenüs für die Copilot-Chat-Ansicht und den In-Editor-Code-Chat zugegriffen werden kann, über

  • accessibility.verbosity.panelChat
  • accessibility.verbosity.inlineChat

Diese Hilfemenüs bieten Informationen darüber, was zu erwarten ist, wie vom Eingabefeld zu anderen Elementen navigiert wird und mehr.

Weitere neue verbosity-Einstellungen liefern Informationen für spezifische VS Code-UI-Elemente

  • accessibility.verbosity.keybindingsEditor - wenn im Keyboard Shortcuts-Editor.
  • accessibility.verbosity.notebook - in einem Notebook.

Die accessibility.verbosity-Einstellungen sind standardmäßig aktiviert (auf 'true' gesetzt), Sie können sie jedoch individuell stummschalten.

Einstellungen-Editor

VoiceOver unter macOS liest nun die Beschreibungen von Enum-Einstellungswerten im Einstellungen-Editor. Probieren Sie es mit Enum-Einstellungen wie files.autoSave und editor.accessibilitySupport aus.

onFocusChange option description of files.autoSave setting being displayed by VoiceOver's high-contrast textbox on macOS

Workbench

Schreibgeschützter Modus

In einigen Entwicklungsszenarien kann es hilfreich sein, bestimmte Ordner oder Dateien eines Arbeitsbereichs explizit als schreibgeschützt zu kennzeichnen. Wenn beispielsweise der Ordner- oder Dateiinhalt von einem anderen Prozess verwaltet wird (wie der Ordner node_modules, der vom Node.js-Paketmanager verwaltet wird), kann das Markieren als schreibgeschützt versehentliche Änderungen vermeiden.

Für diesen Anwendungsfall gibt es neue Einstellungen, um Dateipfade im Explorer und in Text- und Notebook-Editoren als schreibgeschützt zu markieren

  • files.readonlyInclude - Pfade oder Glob-Muster, um eine Datei schreibgeschützt zu machen, wenn sie übereinstimmt.
  • files.readonlyExclude - Pfade oder Glob-Muster, um Dateien vom schreibgeschützten Modus auszuschließen, wenn sie mit files.readonlyInclude übereinstimmen.
  • files.readonlyFromPermissions - Ob eine Datei, die keine Schreibberechtigungen auf der Festplatte hat, schreibgeschützt sein soll.

Gemäß den Regeln der Einstellungen kann ein Pfad, der als schreibgeschützt gilt, nicht aus dem Explorer (z. B. gelöscht) geändert werden, und der Text- oder Notebook-Editor ist schreibgeschützt.

Für ein ad-hoc-Umschalten des schreibgeschützten Modus gibt es neue Befehle, um den Modus nur für die aktuelle Sitzung zu ändern und Ihre Einstellungskonfigurationen zu überschreiben

  • Aktiven Editor in Sitzung schreibgeschützt setzen - Aktiven Editor schreibgeschützt markieren.
  • Aktiven Editor in Sitzung beschreibbar setzen - Aktiven Editor beschreibbar markieren.
  • Aktiven Editor in Sitzung schreibgeschützt umschalten - Zwischen schreibgeschützt und beschreibbar umschalten.
  • Aktiven Editor schreibgeschützt in Sitzung zurücksetzen - Den Sitzungsstatus zurücksetzen.

Verbesserungen an der Allowlist für Windows UNC-Hosts

Als Teil einer wichtigen Sicherheitskorrektur führte VS Code eine Allowlist für UNC-Hosts ein. In diesem Meilenstein haben wir viele Benutzerfreundlichkeitsprobleme behoben, die von Windows-Benutzern gemeldet wurden, wenn sie UNC-Pfade in ihrer täglichen Arbeit mit VS Code hatten.

Dialogverbesserungen

Der Bestätigungsdialog zum Zulassen eines UNC-Hosts beim Start aktualisiert die Einstellung security.allowedUNCHosts und fügt den Host hinzu, wenn Sie das Kontrollkästchen aktivieren.

Windows UNC allow dialog

Darüber hinaus schließt das Klicken auf die Schaltfläche Mehr erfahren den Dialog nicht mehr.

Neue Einstellung security.restrictUNCAccess

Eine neue Einstellung security.restrictUNCAccess ermöglicht es Ihnen, die UNC-Allowlist für Hosts zu deaktivieren und das Verhalten wiederherzustellen, wie es vor dieser Sicherheitskorrektur war. Wir raten dringend davon ab, diese Einstellung zu ändern, da sie Ihr System wieder anfällig für die Schwachstelle zur Offenlegung von Informationen macht.

Neue Option für die Tab-Größe behoben

Die Einstellung workbench.editor.tabSizing hat eine neue Option fixed, die jeden Tab gleich breit macht. Wenn der Platz begrenzt wird, schrumpfen die Tabs gleichmäßig bis zu einem Minimum. Die neue Einstellung workbench.editor.tabSizingFixedMaxWidth legt die Anfangsgröße des Tabs fest.

In diesem Modus, wenn Sie Tabs schnell mit der Maus schließen, bleiben die Breiten der Tabs stabil, um jeden Tab durch Klicken auf denselben Punkt schließen zu können. Die Breite wird dann angepasst, wenn Sie die Maus aus dem Bereich der Editor-Tabs bewegen.

Netzwerkqualitätsanzeige

Wenn Sie mit einem Remote-Computer verbunden sind, erfordert die beste Erfahrung für die Remote-Bearbeitungsfunktionen von VS Code eine gute Netzwerkverbindung mit geringer Latenz. In diesem Meilenstein haben wir die Remote-Anzeige in der Statusleiste aktualisiert, um Ihnen Feedback zu geben, wenn entweder die Latenz sehr hoch ist oder die Netzwerkverbindung offline zu sein scheint.

Hohe Latenz (Web, Desktop)

Wir messen periodisch die Latenz zum Remote-System, mit dem Sie verbunden sind. Wenn ein bestimmter Schwellenwert erreicht wird, aktualisiert sich die Remote-Anzeige entsprechend.

Slow network detection shown in the right of the Status bar

Offline-Erkennung (nur Web)

Wenn Sie einen Webbrowser verwenden, um eine Verbindung zu einem Remote-System herzustellen, und Sie plötzlich die Internetverbindung verlieren, aktualisiert sich die Remote-Anzeige entsprechend.

Web offline detection displaying "Network appears to be offline" message from the Status bar

Weiterarbeiten an

Die Funktion Weiterarbeiten an ermöglicht es Ihnen, Arbeitsänderungen zwischen VS Code-Entwicklungsumgebungen für dasselbe Repository zu speichern und abzurufen, z. B. wenn Sie von einem lokalen Git-Repository zu einem GitHub-Codespace wechseln oder zwischen verschiedenen Rechnern für dasselbe Repository wechseln.

Sie können nun Arbeitsänderungen zwischen Entwicklungsumgebungen für ein GitHub-Repository übertragen, auch wenn es in einer Umgebung mit einem HTTP-Remote und in einer anderen mit einem SSH-Remote konfiguriert ist. Darüber hinaus haben wir begonnen, zusätzliche Workbench-Status wie Ihre Quellcode-Verwaltungsansicht-Präferenzen zu übertragen, um einen nahtloseren Übergang zu ermöglichen.

Editor

Einfügen als

Beim Einfügen einer Datei in einen Texteditor gibt es mehrere Möglichkeiten, wie Sie sie einfügen möchten. Möglicherweise möchten Sie einen absoluten Pfad zur Datei. Möglicherweise möchten Sie einen Pfad relativ zum aktuellen Arbeitsbereich. Oder Sie möchten vielleicht etwas Spezifisches für die aktuelle Editorsprache, wie das Einfügen eines Markdown-Links zur Datei beim Einfügen in Markdown. Die neue "Einfügen als"-Funktionalität von VS Code gibt Ihnen die Kontrolle darüber, wie der eingefügte Inhalt eingefügt wird.

Nach dem Einfügen zeigt VS Code nun ein kleines "Einfügen als"-Steuerelement an, wenn es andere Möglichkeiten gibt, wie der eingefügte Inhalt hätte eingefügt werden können.

Sie können das "Einfügen als"-Steuerelement öffnen, indem Sie darauf klicken oder die Tastenkombination ⌘. (Windows, Linux Ctrl+.) verwenden. Der Einfüge-Selektor verschwindet, sobald Sie zu tippen beginnen oder den Cursor außerhalb des eingefügten Texts bewegen. Sie können das Drop-Selektor-Steuerelement auch vollständig mit "editor.pasteAs.showPasteSelector": "never" deaktivieren.

Wenn Sie Inhalte in eine Markdown-Zelle in einem Notebook einfügen, können Sie mit dem "Einfügen als"-Steuerelement beispielsweise wechseln zwischen

  • Einfügen des Bildes als Anhang
  • Einfügen einer Markdown-Bildreferenz
  • Einfügen eines relativen Pfads (für Dateien im Arbeitsbereich)
  • Einfügen eines absoluten Pfads

Wenn Sie bevorzugen, vor dem tatsächlichen Einfügen auszuwählen, wie Inhalte in der Zwischenablage eingefügt werden sollen, können Sie stattdessen den neuen Befehl Einfügen als... verwenden. Dies ermöglicht es Ihnen auszuwählen, wie der Inhalt eingefügt werden soll.

Using the Paste As... command to select how content is pasted

Schnelle Vorschläge und Snippets

Schnelle Vorschläge bedeuten, dass VS Code Vorschläge anzeigt, während Sie tippen, ohne ⌃Space (Windows, Linux Ctrl+Space) drücken zu müssen. Diese Funktion ist sehr beliebt, etwa 90 % aller Vorschlagssitzungen werden durch Tippen gestartet. Eine große Anzahl von Vorschlägen wird über Tab angenommen (im Gegensatz zu Enter und Tippen von Akzeptierungszeichen).

Wenn ein Snippet eingefügt wird, wird die Tab-Taste verwendet, um zwischen den Snippet-Platzhaltern zu navigieren. Wenn nun schnelle Vorschläge aktiv werden, während ein Snippet eingefügt wird, kann die Tab-Taste eine Vervollständigung akzeptieren oder zum nächsten Snippet-Platzhalter navigieren. Um diesen Konflikt zu lösen, gibt es die Einstellung editor.suggest.snippetsPreventQuickSuggestions, um schnelle Vorschläge zu deaktivieren, wenn ein Snippet eingefügt wird. Sie war standardmäßig auf true gesetzt, und solange diese Einstellung existierte, erhielten wir Feedback, dass sie verwirrend sei. Daher haben wir beschlossen, den Standardwert auf false zu ändern, sodass das Tippen innerhalb eines Snippet-Platzhalters schnelle Vorschläge auslöst.

Sie können dann die folgenden Tastenanschläge verwenden:

  • Drücken Sie Tab, um eine Vervollständigung zu akzeptieren.
  • Drücken Sie Escape, um schnelle Vorschläge auszublenden.
  • Und Tab ohne Vorschläge navigiert zum nächsten Snippet-Platzhalter.

Terminal

Automatische Shell-Integration für Fish-Shell

Shell-Integration und ihre verbesserte Benutzererfahrung werden nun automatisch für die Fish-Shell aktiviert. Möglicherweise müssen Sie Fish aktualisieren, damit dies funktioniert.

Shell integration in fish enables several features

Overline-Unterstützung

Die Overline-Escape-Sequenzen (SGR 53, SGR 55), die in ECMA-48 spezifiziert sind, werden nun im Terminal unterstützt. Die häufigste Verwendung dieser Sequenz ist das Hinzufügen einer Zeile über der "Statusleiste" einer App in der unteren Zeile des Terminals.

The overline feature is similar to underline but will draw a line on top of the text

Quellcodeverwaltung

Standard-Branch-Name

Ab diesem Meilenstein werden für alle neuen Git-Repositories, die mit VS Code erstellt werden, main als Standard-Branch festgelegt. Wenn Sie einen anderen Namen für den Standard-Branch bevorzugen, können Sie ihn mit der Einstellung git.defaultBranchName ändern. Wenn die Einstellung leer ist, wird VS Code den in Git konfigurierten Standard-Branch-Namen übernehmen. Das Veröffentlichen eines Ordners auf GitHub berücksichtigt ebenfalls den auf GitHub konfigurierten Standard-Branch-Namen.

Branch-Picker-Integration mit vscode.dev und GitHub

Sie können nun einen Branch in vscode.dev auschecken oder ihn auf GitHub.com aus dem Branch-Picker auf dem VS Code-Desktop öffnen.

In dem kurzen Video unten haben die einzelnen Branches in der Dropdown-Liste des Branch-Pickers Schaltflächen auf der rechten Seite, um entweder Auf GitHub öffnen oder Auf vscode.dev auschecken zu wählen.

Ähnlichkeitsschwelle

Git Status verwendet einen Ähnlichkeitsindex (Anzahl der Hinzufügungen/Löschungen im Verhältnis zur Dateigröße), um zu bestimmen, ob ein Hinzufügen/Löschen-Paar als Umbenennung betrachtet wird. Sie können nun die Ähnlichkeitsschwelle mit der Einstellung git.similarityThreshold konfigurieren, die einen Wert zwischen 0 und 100 annimmt. Der Standardwert ist 50.

Notebooks

Sie können nun nach Rich Content in geöffneten Notebooks über die Suchleiste suchen. Wenn Ihr Notebook geöffnet ist, zeigt die Suchleiste Ergebnisse basierend darauf an, wie sie im Notebook-Editor erscheinen (anstatt den Inhalt der Rohdatei zu durchsuchen). Dies ermöglicht auch das Ersetzen von Text in den Notebook-Eingaben.

Mit dem neuen Umschalter für die Notebook-Suche können Sie auch filtern, nach welchen Arten von Zellinhalten Sie suchen möchten.

Verbesserte Interaktion mit Zellenausgaben

Der neue Kontextschlüssel notebookOutputInputFocused wurde hinzugefügt, um zu bestimmen, ob ein Textfeld innerhalb einer Zellenausgabe fokussiert ist, sodass rohe Hotkeys a/b/j/k sicher verwendet werden können, während die Ausgabe fokussiert ist. Das Fokussieren auf ein Eingabefeld verhindert, dass diese Hotkeys ausgelöst werden.

Formatieren beim Ausführen

Notebooks können nun Zellen beim Ausführen formatieren. Dies wird durch die Verwendung von Zelle ausführen, Alle ausführen, Oben/Unten ausführen und kombinierten Kernel+Ausführungsbefehlen ausgelöst. Diese Funktion kann über die Einstellung "notebook.formatOnCellExecution": true aktiviert werden.

Code-Aktionen beim Speichern

Notebooks unterstützen nun die Ausführung von Code-Aktionen beim Speichern. Code-Aktionen können unter der Einstellung notebook.codeActionsOnSave angegeben werden. Erweiterungsautoren können Anbieter mit den Standardtypen für Code-Aktionen auf Zellenebene definieren oder das neue Präfix notebook. verwenden, um Code-Aktionen zu definieren, die das gesamte Notebook verwalten. Sie können die Beispielerweiterung clean-nb-imports-ext überprüfen, um zu erfahren, wie Erweiterungen diese neue Einstellung nutzen können.

Sprachen

TypeScript 5.1

VS Code wird jetzt mit TypeScript 5.1.3 ausgeliefert. Dieses große Update bringt neue TypeScript-Sprachfunktionen, bessere Leistung und viele wichtige Verbesserungen und Fehlerbehebungen. Sie können mehr über TypeScript 5.1 auf dem TypeScript-Blog lesen.

Verknüpftes Bearbeiten für JSX-Tags

Beim verknüpften Bearbeiten, wenn Sie ein öffnendes JSX-Tag ändern, aktualisiert VS Code automatisch das entsprechende schließende Tag. Dies kann eine große Zeitersparnis sein.

Die Funktion ist standardmäßig deaktiviert, kann aber durch Setzen der Einstellung aktiviert werden.

"editor.linkedEditing": true

Sie können auch explizit mit dem Befehl Verknüpftes Bearbeiten starten ein verknüpftes Bearbeiten starten.

Umbenennen übereinstimmender JSX-Tags mit F2

Wenn Sie die Umbenennungsfunktion auf einem JSX-Tag auslösen, benennt VS Code nun nur den übereinstimmenden Tag um, anstatt zu versuchen, alle Referenzen auf den Tag zu aktualisieren.

Dies erfordert TypeScript 5.1+ und entspricht der Funktionsweise der Umbenennung in HTML.

Sie können dieses Verhalten mit javascript.preferences.renameMatchingJsxTags und typescript.preferences.renameMatchingJsxTags deaktivieren.

JSDoc @param-Vervollständigungen

Beim Schreiben von JSDoc-Kommentaren zeigt VS Code nun Vorschläge für alle fehlenden Parameter an.

JS Doc @param completions in a TypeScript file

Dies kann Ihnen helfen, die Dokumentation schnell zu vervollständigen.

In JavaScript-Dateien erstellen @param-Vervollständigungen Platzhalter für die Beschreibung des Parametertyps.

Kopieren externer Mediendateien in den Arbeitsbereich beim Ablegen oder Einfügen für Markdown

Möchten Sie ein Bild oder Video in ein Markdown-Dokument einfügen? Anstatt Zeit damit zu verschwenden, die Datei zuerst manuell in Ihren Arbeitsbereich zu kopieren und dann einen Link dazu einzufügen, können Sie die Datei jetzt einfach per Drag & Drop in Ihr Markdown ziehen oder einfügen. Wenn die Datei derzeit nicht Teil des Arbeitsbereichs ist, kopiert VS Code die Datei automatisch in Ihren Arbeitsbereich und fügt einen Link dazu ein.

Dies funktioniert auch hervorragend für Bilddaten in der Zwischenablage. Wenn Sie beispielsweise mit dem Snipping Tool unter Windows einen Screenshot machen, können Sie in einer Markdown-Datei Einfügen drücken und VS Code erstellt eine neue Bilddatei aus den Daten der Zwischenablage und fügt einen Markdown-Bildlink zu der neuen Datei ein. Dies funktioniert auch unter macOS, wenn Sie die Strg-Taste gedrückt halten, während Sie einen Screenshot machen, um ihn in die Zwischenablage zu kopieren.

Sie können das Verhalten dieser Funktion auch mit einigen Einstellungen anpassen

markdown.copyFiles.destination

Die Einstellung markdown.copyFiles.destination steuert, wo neue Mediendateien erstellt werden. Diese Einstellung ordnet Globs, die auf dem aktuellen Markdown-Dokument übereinstimmen, Bildzielen zu. Die Bildziele können auch einfache Variablen verwenden. Lesen Sie die Beschreibung der Einstellung markdown.copyFiles.destination für Informationen zu den verfügbaren Variablen.

Wenn wir beispielsweise möchten, dass jede Markdown-Datei unter /docs in unserem Arbeitsbereich neue Mediendateien in ein images-Verzeichnis legt, das spezifisch für die aktuelle Datei ist, können wir schreiben:

"markdown.copyFiles.destination": {
  "/docs/**/*": "images/${documentBaseName}/"
}

Wenn nun eine neue Datei in /docs/api/readme.md eingefügt wird, wird die Bilddatei unter /docs/api/images/readme/image.png erstellt.

Sie können sogar einfache reguläre Ausdrücke verwenden, um Variablen auf eine ähnliche Weise wie bei Snippets zu transformieren. Zum Beispiel verwendet diese Transformation nur den ersten Buchstaben des Dateinamens des Dokuments bei der Erstellung der Mediendatei:

"markdown.copyFiles.destination": {
  "/docs/**/*": "images/${documentBaseName/(.).*/$1/}/"
}

Wenn eine neue Datei in /docs/api/readme.md eingefügt wird, wird das Bild nun unter /docs/api/images/r/image.png erstellt.

markdown.copyFiles.overwriteBehavior

Die Einstellung markdown.copyFiles.overwriteBehavior steuert, ob neu erstellte Mediendateien bestehende Dateien überschreiben.

Standardmäßig überschreibt VS Code niemals bestehende Dateien. Wenn Sie stattdessen eine Datei namens image.png haben und versuchen, sie in ein Markdown-Dokument in einem Arbeitsbereich einzufügen, in dem bereits eine image.png existiert, erstellt VS Code stattdessen eine neue Datei namens image-1.png. Wenn Sie dann eine weitere Datei namens image.png einfügen, wird sie stattdessen als image-2.png erstellt.

Wenn Sie es bevorzugen, dass bestehende Dateien von neuen Dateien überschrieben werden, setzen Sie "markdown.copyFiles.overwriteBehavior": "overwrite". Nun verwendet VS Code immer den ursprünglichen Dateinamen und überschreibt alle vorhandenen Dateien unter diesem Pfad.

Kopieren von Dateien in den Arbeitsbereich deaktivieren

VS Code versucht nur dann, Dateien in Ihren Arbeitsbereich zu kopieren, wenn sie nicht bereits Teil des Arbeitsbereichs sind. Darüber hinaus kopieren wir derzeit nur Mediendateien (Bilder, Videos, Audio) in den Arbeitsbereich.

Wenn Ihnen dieses neue Verhalten jedoch zu aufdringlich ist, können Sie es sowohl für das Ablegen als auch für das Einfügen deaktivieren, indem Sie setzen:

"markdown.editor.drop.copyIntoWorkspace": "never"
"markdown.editor.filePaste.copyIntoWorkspace": "never"

IntelliSense für HTML-Pfade in Markdown-Dateien

Viele Markdown-Dialekte erlauben die Verwendung von rohen HTML-Tags in Markdown-Dokumenten. In diesem Update haben wir die meisten Markdown-IntelliSense-Funktionen von VS Code auf Dateipfade in diesen HTML-Tags erweitert. Dies beinhaltet Unterstützung für

Finding all references to an image file used in an HTML tag

Audio in Markdown einfügen

Wenn Sie eine Audiodatei in ein Markdown-Dokument ziehen und ablegen oder kopieren und einfügen, fügt VS Code nun ein <audio>-Element ein.

Syntaxhervorhebung für JSON mit Zeilen (JSONL)-Dateien

JSON mit Zeilen beschreibt eine Folge von JSON-Objekten, die durch Zeilenumbrüche getrennt sind. Wenn die Dateiendung jsonl verwendet wird, bietet VS Code Syntaxhervorhebung.

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

  • Neue Remote-Verbindungen öffnen (über einen Remote-Tunnel, zu einem Dev-Container) im aktuellen oder einem neuen VS Code-Fenster.
  • Einfacheres Workflow, um einen weitergeleiteten Port öffentlich zu machen.
  • Vorläufige Unterstützung für die Verbindung zu WSL von VS Code für das Web (vscode.dev) aus.

Sie können sich über neue Erweiterungsfunktionen und Fehlerbehebungen in den Remote Development Release Notes informieren.

Beiträge zu Erweiterungen

GitHub Copilot

Copilot-Chat in Stable VS Code verwenden

Zuvor mussten Sie VS Code Insiders verwenden, um Copilot Chat zu nutzen. Ab VS Code 1.79 können Sie Copilot Chat auch in Stable VS Code verwenden. Sie müssen immer noch die GitHub Copilot Chat-Erweiterung installieren.

Editor-Chat

Wir haben den Editor-Chat verbessert, insbesondere haben wir den Standardmodus auf "livePreview" geändert. In diesem Modus werden Änderungen direkt im Dokument angewendet und mit einer eingebetteten Diff-Ansicht angezeigt. Schauen wir uns das folgende Beispiel an:

  • Eine neue Eigenschaft wurde dem IUserFriendlyStatusItemEntry-Typ hinzugefügt, und
  • Copilot hat die isUserFriendlyStatusItemEntry-Prüfung entsprechend aktualisiert.
  • Die Antwort wird im Editor mit einer eingebetteten Diff-Ansicht angezeigt. Ihre rechte Seite ist editierbar und wird von den Sprach-Erweiterungen von VS Code geprüft.
  • Dies ermöglicht es Ihnen, einen Fehler in der Antwort zu erkennen (unter der Funktion isMarkdownString existiert nicht) und ihn zu beheben, bevor Sie den Vorschlag akzeptieren.

Copilot inline chat suggestion with proposed code change displayed as a live preview

Notebook-Verbesserungen

Wir haben die Chat-Erfahrung in Notebook-Editoren in diesem Monat verbessert. Wenn Sie Copilot in einem Notebook-Dokument verwenden, kann Copilot den Notebook-Kontext nutzen, um relevantere Vorschläge zu machen. Beispielsweise verwenden Code-Vorschläge Variablen oder Module, die in früheren Zellen definiert wurden, ohne sie neu zu erstellen oder neu zu importieren.

Beim Ausführen von Notebook-Zellen gibt Copilot nun auch Vorschläge für Zellenausführungsfehler. Diese können angezeigt werden, indem Sie die Aktion Mit Copilot beheben in der Statusleiste der Zelle auswählen.

Die Copilot-Vorschläge werden auch automatisch bei der Zellenausführung akzeptiert, sodass Sie sie nicht manuell akzeptieren müssen.

Integration von GitHub Pull Request und Issues

Wenn die GitHub Pull Requests and Issues-Erweiterung installiert und aktiviert ist und Sie einen Überprüfungs-Thread betrachten, ist es nun möglich, einen Überprüfungs-Kommentar direkt mit Copilot anzuwenden. Dies können Sie über die Schaltfläche Vorschlag mit KI anwenden im Kommentar-Menü tun.

Experimentelle Quick-Question-Erfahrung

Thema: Panda Theme (Vorschau auf vscode.dev)

In dieser Iteration haben wir experimentiert, Chat zu verwenden, um schnelle Programmierfragen zu stellen, ohne den Kontext zu verlassen. Wenn Sie Zugriff auf die Chat-Erfahrung haben, können Sie diese Funktion mit der folgenden Einstellung aktivieren:

"chat.experimental.quickQuestion.enable": true

Funktionsübersicht

  • Stellen Sie Copilot eine schnelle Frage.
  • Schalten Sie die Erfahrung mit ⇧⌥⌘L (Windows, Linux Ctrl+Shift+Alt+L) um (der Zustand wird 30 Sekunden lang gespeichert, sodass Sie ihn leicht ein- und ausblenden und wieder einblenden können).
  • Eine Schaltfläche In Chat öffnen, um die Konversation in einen Langform-Chat in der Chat-Ansicht fortzusetzen.

Chat-Eintrag löschen

Sie können nun ein Chat-Anfrage-/Antwortpaar löschen, indem Sie auf das X-Symbol in der Chat-Anfrage klicken.

A chat request with X icon

Warum möchten Sie das tun? Manchmal liefert Copilot eine Antwort, die nicht zum Thema gehört oder falsch ist. Sie können Ihre Frage erneut stellen, aber das Entfernen der schlechten Antwort aus dem Chat-Verlauf Ihrer Sitzung kann auch helfen, die Konversation auf Kurs zu halten. Es gibt auch eine Grenze für den Kontext, der mit jeder Chat-Anfrage einbezogen werden kann. Das Entfernen einer langen, schlechten Antwort kann also helfen, Ihr Kontextbudget für nützlichere Informationen zu sparen.

Chat-Sitzung vom Sidebar in den Editor verschieben

Es war bereits möglich, eine Chat-Sitzung in einem Editor zu öffnen, indem der Befehl Chat: Editor öffnen ausgeführt wurde, aber jetzt ist es auch möglich, Chat-Sitzungen zwischen dem Sidebar und dem Editor hin und her zu verschieben. Sie finden die Befehle Sitzung im Editor öffnen und Sitzung im Sidebar öffnen unter dem "..."-Menü in der Titelleiste des Chat-Fensters oder den Menüs der Titelleiste des Editors.

Chat-Sitzungsverlauf

Ihre Chat-Sitzungen werden nun im Verlauf gespeichert, den Sie durch Auswahl der Schaltfläche Verlauf anzeigen im Menü der Titelleiste des Chat-Fensters durchsuchen können. Sie können einen Verlaufs-Eintrag auswählen, um diese Konversation in einen Chat-Editor zu laden, und dann nahtlos dort weitermachen, wo Sie aufgehört haben. Sie können Sitzungen aus dem Verlauf entfernen, indem Sie auf die X-Schaltfläche in jeder Zeile klicken.

Chat-Sitzungen in JSON-Datei exportieren

Wir haben einen Befehl hinzugefügt, Chat: Sitzung exportieren, der die aktuell fokussierte Chat-Sitzung in eine JSON-Datei exportiert. Sie können dann den Befehl Chat: Sitzung importieren ausführen, um diese Sitzung zu importieren und Ihre Konversation fortzusetzen. Sie können diese Datei in Ihr Repository einchecken, sie mit anderen teilen oder einfach Ihre Konversation als Referenz speichern. Beachten Sie, dass bei fortgesetzten Konversationen in einer importierten Chat-Sitzung neue Nachrichten nicht gespeichert werden, es sei denn, Sie exportieren die Sitzung erneut.

Codeblock-Navigation und Tastenkombinationen

Wir haben einige Befehle und Tastenkombinationen hinzugefügt, die die Arbeit mit Codeblöcken in Chat-Antworten erleichtern. Chat: Nächster Codeblock (⌥⌘PageDown (Windows, Linux Ctrl+Alt+PageDown)) und Chat: Vorheriger Codeblock (⌥⌘PageUp (Windows, Linux Ctrl+Alt+PageUp)) bewegen den Cursor zum nächsten oder vorherigen Codeblock in der aktuellen Chat-Antwort. Wenn ein Codeblock fokussiert ist, können die Befehle in der Codeblock-Symbolleiste auch aus der Befehlspalette aufgerufen werden, oder Sie können ihnen Tastenkombinationen zuweisen. In Terminal ausführen hat standardmäßig eine Tastenkombination zugewiesen: ⌃⌥Enter (Windows, Linux Ctrl+Alt+Enter). Und der Befehl Kopieren wird nun ausgeführt, wenn Sie die normale Kopier-Tastenkombination im Codeblock drücken, ohne eine Auswahl zu haben.

Wir haben auch Tastenkombinationen hinzugefügt, um das Chat-Fenster zu fokussieren (⌃⌘I (Windows, Linux Ctrl+Alt+I)) und die Chat-Sitzung zu löschen ().

Copilot YouTube-Playlist

Um mehr über GitHub Copilot sowie Tipps und Tricks und Best Practices zu erfahren, werfen Sie einen Blick auf die VS Code Copilot Series auf YouTube. Dort finden Sie eine Einführung in GitHub Copilot, sprachspezifische Nutzung und Anleitungen für effektives Prompting bei der Verwendung von Copilot für die Entwicklung.

Python

Python-Datei in dediziertem Terminal ausführen

Die Python-Erweiterung erstellt nun für jede Datei, die Sie mit der Schaltfläche Ausführen oben im Editor oder dem Befehl Python: Python-Datei im Terminal ausführen ausführen, ein neues Terminal und wird dieses "dedizierte" Terminal für diese Datei jedes Mal wiederverwenden, wenn Sie sie erneut ausführen.

Jedes Mal, wenn Sie dieselbe Datei in einem separaten Terminal ausführen möchten, können Sie unter dem Menü der Schaltfläche Ausführen die Option Python: Python-Datei in dediziertem Terminal ausführen auswählen.

Options under the run button menu

Neufassung von Test-Erkennung und Ausführung

In diesem Monat beginnen wir mit der Einführung unseres Test-Rewrites als Experiment. Dieses Rewrite überarbeitet die Architektur hinter der Testfindung und -ausführung für unittest und pytest in der Erweiterung. Obwohl es keine zusätzliche Funktionalität für den Benutzer bietet, reduziert es fehlerhaftes Verhalten und eröffnet neue funktionale Möglichkeiten für die Zukunft. Das Rewrite wird über das Experiment pythonTestAdapter ausgerollt, dem Sie über python.experiments.optInto in Ihrer settings.json beitreten und es verlassen können. Schließlich planen wir, diese Einstellung zu entfernen und diese neue Architektur zu übernehmen. Wenn Sie Kommentare oder Vorschläge zu diesem Experiment oder Rewrite haben, können Sie diese im vscode-python Repository teilen.

Konfigurierbare Indizierungslimits mit Pylance

Es gibt eine neue Pylance-Einstellung, mit der Sie das Limit für die Dateianzahl für die Indizierung konfigurieren können: "python.analysis.userFileIndexingLimit", das standardmäßig auf 2000 gesetzt ist. Diese Einstellung kann hilfreich sein, wenn Sie mit sehr großen Projekten arbeiten und bereit sind, Kompromisse bei der Leistung einzugehen, um ein verbessertes IntelliSense-Erlebnis zu erzielen.

Jupyter

Fortsetzung der Ausführung von Zellen gegen Remote-Jupyter-Kernel

Die Jupyter-Erweiterung unterstützt nun die Fortsetzung der Ausführung von Zellen gegen Remote-Jupyter-Kernel, wenn die Zelle noch beschäftigt ist, selbst wenn das Notebook nach dem Herunterfahren von VS Code wieder geöffnet wird.

Nehmen Sie beispielsweise an, Sie führen einen langlaufenden Codeabschnitt wie das Trainieren eines Modells gegen einen Remote-Jupyter-Kernel aus. Dies kann einige Minuten oder länger dauern, sodass Sie sich entscheiden, VS Code zwischendurch herunterzufahren. Einige Minuten später wird VS Code mit demselben geöffneten Notebook neu gestartet, und wenn die Zelle noch beschäftigt ist, wird dieser Zustand in der Notebook-Zelle reflektiert und jede neue Ausgabe wird in der Zellen-Ausgabe angezeigt.

Wenn die Zelle hingegen die Ausführung abgeschlossen hat, während VS Code heruntergefahren war, würden die dazwischen erzeugten Ausgaben nicht im Notebook erhalten bleiben. Die Fortsetzung von Ausführungen auf diese Weise und die Anzeige neuer Ausgaben sind auf einfache Ausgaben wie reinen Text, HTML, Bilder und Ähnliches beschränkt. Die Wiederherstellung des Zustands von Widgets und anderen komplexen Ausgaben wird nicht unterstützt.

Resuming notebook cell execution after closing and reopening VS Code

GitHub Pull Requests und Issues

Es gab weitere Fortschritte bei der GitHub Pull Requests and Issues-Erweiterung, die es Ihnen ermöglicht, Pull-Anfragen und Probleme zu bearbeiten, zu erstellen und zu verwalten. Zu den Highlights gehören

  • Zwei neue Aktionen zum Anzeigen von Unterschieden von ausgecheckten PRs: Vergleiche Basis mit Pull Request Head (schreibgeschützt) und Vergleiche Pull Request Head mit Lokal.
  • Die neue Einstellung "githubPullRequests.pullPullRequestBranchBeforeCheckout" kann verwendet werden, um das Herunterladen eines zuvor ausgecheckten PR-Branches zu deaktivieren, wenn derselbe Branch erneut ausgecheckt wird.

Sehen Sie sich das Changelog für die Version 0.66.0 der Erweiterung an, um mehr über die anderen Highlights zu erfahren.

Vorschau-Funktionen

Projektweite JS/TS IntelliSense unter insiders.vscode.dev

vscode.dev ist eine leichtgewichtige Version von VS Code, die vollständig in Ihrem Browser läuft. In dieser Iteration haben wir die JavaScript- und TypeScript-Unterstützung von vscode.dev erheblich verbessert, sodass sie alle Dateien in Ihrem Arbeitsbereich analysieren kann, anstatt auf aktuell geöffnete Dateien beschränkt zu sein. Dies verbessert die Navigation durch den Code erheblich und ermöglicht Ihnen Definition finden und Alle Referenzen finden zu einem Symbol. Es verbessert auch IntelliSense, indem sichergestellt wird, dass Einstellungen aus Ihrer tsconfig.json / jsconfig.json berücksichtigt werden. Wir unterstützen sogar automatische Imports beim Schreiben von Code.

Im Bild unten zeigt die Ansicht Referenzen alle Referenzen auf ITextDocument im Arbeitsbereich an.

Find All References in a TypeScript project on vscode.dev

Diese neuen IntelliSense-Funktionen funktionieren für Ordner, die Sie von Ihrem lokalen Computer aus öffnen, und für GitHub-Repositorys, die Sie über die integrierte GitHub Repositories-Erweiterung von vscode.dev öffnen.

Bitte beachten Sie, dass es immer noch einige Einschränkungen bei JS/TS IntelliSense auf vscode.dev gibt

  • Derzeit gibt es keine IntelliSense-Unterstützung für Drittanbieterbibliotheken.
  • Derzeit gibt es keine Unterstützung für automatische Typenbeschaffung für JavaScript-Projekte.
  • Aufgrund der oben genannten Einschränkungen sind alle Tippfehlerfehler auf vscode.dev deaktiviert.
  • Projektweite IntelliSense ist derzeit nur in der Insiders-Version von vscode.dev aktiviert: insiders.vscode.dev. Diese Funktion ist derzeit auf github.dev deaktiviert.

Wir planen, diese Einschränkungen in Zukunft zu beheben, und freuen uns darauf, unsere JavaScript- und TypeScript-Unterstützung im Web weiter zu verbessern!

Bilder im Terminal

Es gibt jetzt experimentelle Unterstützung für Bilder im Terminal. Bilder in einem Terminal funktionieren typischerweise, indem die Bildpixeldaten als Text kodiert werden, der über eine spezielle Escape-Sequenz an das Terminal geschrieben wird. Die aktuell unterstützten Protokolle sind sixel und das Inline-Images-Protokoll, das von iTerm entwickelt wurde.

Aktivieren Sie diese Funktion durch Setzen von

"terminal.integrated.experimentalImageSupport": true

Nach der Aktivierung können Sie zum Testen eine .six-Beispieldatei aus dem libsixel-Repository herunterladen und mit cat ausgeben

Running cat with a sixel file will print an image

Oder verwenden Sie das imgcat Python-Paket oder das imgcat-Skript mit einer png-, gif- oder jpg-Datei

Running imgcat with a png file will print the image

Die aktuellen Einschränkungen dieser Funktion sind

TypeScript 5.2 Unterstützung

Dieses Update beinhaltet die Unterstützung für die kommende Veröffentlichung von TypeScript 5.2. Lesen Sie den TypeScript 5.2 Iterationsplan für weitere Details darüber, woran das TypeScript-Team derzeit arbeitet. Einige spannende zukünftige Tooling-Highlights umfassen

  • Eine neue Inline-Konstante-Refaktorierung.
  • Eine neue In Datei verschieben-Refaktorierung, mit der Sie ein Symbol in eine vorhandene Datei verschieben können.

Um die TypeScript 5.2 Nightly-Builds zu verwenden, installieren Sie die TypeScript Nightly-Erweiterung.

In Datei verschieben-Refaktorierung für JavaScript und TypeScript

Die In Datei verschieben-Refaktorierung in TypeScript 5.2 Nightly ermöglicht es Ihnen, eine Klasse, Funktion oder Konstante in eine vorhandene Datei zu verschieben. Dies aktualisiert auch automatisch alle Referenzen auf das Symbol und aktualisiert bei Bedarf auch die Imports.

Wenn Sie In Datei verschieben auswählen, zeigt VS Code eine Liste aller Dateien im aktuellen TypeScript- oder JavaScript-Projekt an. Sie können mit der Eingabe beginnen, um die gewünschte Datei schnell zu finden.

Alternativ können Sie Vorhandene Datei auswählen... verwenden, um eine Datei über den normalen Dateiauswahldialog auszuwählen, oder Neuen Dateipfad eingeben..., um eine neue zu erstellende Datei anzugeben.

Diese Funktion wird noch aktiv entwickelt, probieren Sie sie also aus und geben Sie Ihr Feedback!

WebAssemblies in VS Code für das Web

Um die Unterstützung für weitere Programmiersprachen in vscode.dev zu erweitern, hat das VS Code-Team untersucht, wie allgemeine WebAssembly in VS Code für das Web ausgeführt werden können. Wenn Sie an diesem Ansatz interessiert sind und mehr erfahren möchten, lesen Sie den aktuellen Blogbeitrag VS Code und WebAssemblies.

Erweiterungs-Authoring

Verbesserte vscode.fs-Leistung für lokale Dateien

Wenn Sie die vscode.fs API zur Bearbeitung von Dateien verwenden (was Sie tun sollten!), werden Operationen auf Dateien, die lokal zum Extension Host gehören, jetzt viel schneller aufgelöst.

Zuvor delegierte der Extension Host diese Operationen zur Ausführung an den VS Code Client, aber jetzt werden sie direkt im Extension Host ausgeführt, wodurch Rundläufe eingespart werden.

Strengere Statusleisten-API

Die API zur Erstellung eines Statusleistenelements createStatusBarItem ermöglicht es Erweiterungen, eine Kennung zu übergeben. Diese Kennung wird verwendet, um das Ein- und Ausblenden des Statusleistenelements zu steuern. Die Kennung sollte für die Erweiterung eindeutig sein, aber bisher wurde dies nicht erzwungen. Mit dieser Veröffentlichung machen wir dies etwas strenger und Statusleistenelemente, die von derselben Erweiterung mit derselben Kennung erstellt werden, werden nun zu einem zusammengeführt.

Aufgaben

Die Aufgabenpräsentationsoption zum Schließen des Terminals nach Abschluss der Aufgabe wurde finalisiert.

Vorgeschlagene APIs

Jeder Meilenstein bringt neue vorgeschlagene APIs mit sich, und Erweiterungsautoren können sie ausprobieren. Wie immer freuen wir uns über Ihr Feedback. Hier sind die Schritte, um eine vorgeschlagene API auszuprobieren:

  1. Suchen Sie nach einem Vorschlag, den Sie ausprobieren möchten, und fügen Sie dessen Namen zu package.json#enabledApiProposals hinzu.
  2. Verwenden Sie die neueste Version von @vscode/dts und führen Sie npx @vscode/dts dev aus. Dies lädt die entsprechenden d.ts-Dateien in Ihren Workspace herunter.
  3. Sie können nun gegen den Vorschlag programmieren.

Sie können keine Erweiterung veröffentlichen, die eine vorgeschlagene API verwendet. Es kann zu Breaking Changes in der nächsten Version kommen und wir möchten niemals bestehende Erweiterungen beeinträchtigen.

EnvironmentVariableCollection.description

Dieser Vorschlag ermöglicht die Angabe einer Beschreibung für EnvironmentVariableCollection, die dem Benutzer im Terminal-Tab-Hover angezeigt wird und erklärt, was genau die Änderung bewirkt.

// Example of what the Git extension could use
context.environmentVariableCollection.description = 'Enables a Git authentication provider';

Environment variable collection descriptions are explained in a terminal tab's hover

EnvironmentVariableMutator.options

Dieser Vorschlag fügt Optionen hinzu, die an EnvironmentVariableMutator übergeben werden können, wodurch Sie genau angeben können, wann die Umgebungsvariablenänderung angewendet wird, entweder bei der Prozess-Erstellung oder im Shell-Integrationsskript (nachdem die Shell-Initialisierungsskripte ausgeführt wurden).

const collection = context.environmentVariableCollection;
// Apply only when the process is created
collection.replace('FOO', 'bar');
// Apply only during the shell integration script
collection.replace('FOO', 'bar', {
  applyAtProcessCreation: false,
  applyAtShellIntegration: true
});
// Apply twice, during process creation and the shell integration script
collection.replace('FOO', 'bar', {
  applyAtProcessCreation: true,
  applyAtShellIntegration: true
});

Freigabe-Provider

Der Share API-Vorschlag ermöglicht es Erweiterungen, Möglichkeiten zur Freigabe von Ressourcen in VS Code bereitzustellen.

Die Ergebnisse des Freigabe-Providers werden derzeit als Top-Level-Aktion im Share... Command Palette und als neues Symbol in der Nähe des Command Centers angezeigt, vorausgesetzt, Sie haben sich mit "workbench.experimental.share.enabled": true und "window.commandCenter": true dafür entschieden.

Sie können Feedback in der API-Vorschlag-Ausgabe #176316 hinterlassen.

Statische Statusleistenelemente

Statusleistenelemente können nun statisch über package.json#contributes/statusBarItems beigesteuert werden. Mit diesem Beitrags-Punkt kann eine Erweiterung ihre Aktivierung verzögern und erst aktivieren, wenn mit dem Statusleistenelement interagiert wird, z. B. über den Befehl. Nach der Aktivierung können Erweiterungen auf ihre statischen Statusleistenelemente über die vscode.window.createStatusBarItem API zugreifen.

workspace.save und workspace.saveAs

Der Save Editor API-Vorschlag ermöglicht es Erweiterungen, den Prozess des Speicherns eines Editors entweder auf seiner Ressource auszulösen oder den Benutzer zur Angabe einer Ressource aufzufordern.

Alle Methoden zum Speichern geben die resultierende Uri oder undefined zurück, wenn die Operation abgebrochen wurde. Unbenannte Dateien fordern den Benutzer immer zur Angabe eines Ziels auf, es sei denn, es ist bereits ein Pfad zugeordnet.

Vorgeschlagene API für Authentication authGetSessions

Da wir uns der Unterstützung mehrerer GitHub-Konten nähern, gibt es eine neue vorgeschlagene Authentifizierungs-API, mit der Ihre Erweiterung alle zugänglichen Sitzungen für einen bestimmten Satz von Bereichen abrufen kann. Der Vorschlag für diese API-Ergänzungen hat mehrere Punkte zu beachten

  • Die Einführung von vscode.authentication.getSessions, um Sitzungen für jedes Konto abzurufen, auf das Ihre Erweiterung Zugriff hat. Wenn Sie ein zusätzliches Konto anfordern möchten, verwenden Sie { createIfNone: true, clearSessionPreference: true }, um den Benutzer zur Auswahl eines Kontos aufzufordern.
  • Die Eigenschaft forceNewSession kann jetzt ein Objekt { sessionToRecreate: session } annehmen, damit konsumierende Erweiterungen die genaue Sitzung angeben können, die sie neu erstellen möchten.
  • Die Funktion createSession, die ein Authentifizierungsanbieter implementiert, erhält nun die neu zu erstellende Sitzung übergeben (unter Verwendung der Sitzungspräferenz der Erweiterung, wenn true für den Wert von forceNewSession verwendet wird).

Es ist noch weitere Arbeit erforderlich, um dies für die Übernahme in die GitHub-Authentifizierungserweiterung vorzubereiten. Wenn Sie interessiert sind, können Sie mitverfolgen und Feedback in der Ausgabe geben, die diesen Vorschlag verfolgt.

Window Activity API

Eine neue API steht zur Verfügung, um Erweiterungen zu benachrichtigen, wenn das Fenster aktiv oder inaktiv wird. Dies kann verwendet werden, um persistente Ressourcen oder Prozesse zu entsorgen oder zu erstellen, die zur Ressourceneinsparung in den Leerlauf versetzt werden können.

Dies wird durch die Hinzufügung eines neuen active-Booleans zum bestehenden WindowState-Typ implementiert.

vscode.window.onDidChangeWindowState(state => {
  if (state.active && !longRunningProcess) {
    longRunningProcess = startLongRunningProcess();
  } else if (!state.active && longRunningProcess) {
    longRunningProcess.end();
    longRunningProcess = undefined;
  }
});

Technik

Electron-Sandbox für alle Benutzer aktiviert

Wir freuen uns, Ihnen mitteilen zu können, dass die Electron-Sandbox für alle unsere Benutzer ausgerollt wird. Dies war eine Reise, die Anfang 2020 begann und nun endlich endet. Sie können den Blogbeitrag Migration von VS Code zu Process Sandboxing für weitere Details einsehen.

Beteiligung am Neustart des Extension Hosts

Bestimmte Aktionen in der Benutzeroberfläche können dazu führen, dass der Extension Host neu gestartet wird, ohne das aktuelle Fenster neu zu laden. Wenn Sie beispielsweise Profile wechseln, startet VS Code den Extension Host neu, um eine andere Reihe von Erweiterungen für dieses Profil auszuführen.

Einige benutzerdefinierte und Notebook-Editoren sind jedoch möglicherweise nach dem Wechseln der Profile nicht mehr funktionsfähig, da eine erforderliche Erweiterung in diesem Profil nicht installiert ist. Wenn der Editor ungespeckte Änderungen enthält, kann dies zu Datenverlust führen. Als Lösung können Komponenten in VS Code nun am Neustart des Extension Hosts teilnehmen und sicherstellen, dass alle ungespeckten Änderungen gespeichert werden, bevor der Extension Host neu gestartet wird.

Wir planen, diese Erfahrung im nächsten Meilenstein weiterzuentwickeln, also bleiben Sie dran!

Die Unterstützung für Windows 8 und 8.1 wurde beendet

Wie in unseren Versionshinweisen zu v1.77 erwähnt, ist v1.79 die letzte Version, die Windows 8 / Windows Server 2012 und Windows 8.1 / Windows Server 2012 R2 unterstützt. Weitere Informationen finden Sie in unserer FAQ.

Meilenstein-Automatisierung

Wir haben die automatisierte Meilensteinreplikation in all unseren GitHub-Repositorys implementiert. Das bedeutet, dass die monatlichen Meilensteine, die in microsoft/vscode festgelegt werden, die Grundlage für alle anderen erstellten und gepflegten Meilensteine bilden.

VS Code auf der Microsoft Build

Wenn Sie keine Gelegenheit hatten, die Microsoft Build 2023 live zu verfolgen, können Sie die Keynotes und Sitzungen auf dem YouTube-Kanal Microsoft Developer nachholen.

Einige Sitzungen von besonderem Interesse für VS Code-Benutzer sind

Bemerkenswerte Fehlerbehebungen

  • 165933 [emmet] http-equiv="X-UA-Compatible" im Jahr 2023
  • 181889 treeView.reveal mit expand: 3 erweitert nur den ersten Ordner der Ebene 3

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-pull-request-github

Beiträge zu monaco-editor

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