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

Mai 2021 (Version 1.57)

Update 1.57.1: Das Update behebt diese Probleme.

Die Funktion Workspace Trust behebt CVE-2021-34529.

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


Willkommen zur Mai 2021-Version von Visual Studio Code. Es gibt eine Reihe von 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.

Sehen Sie sich ein Highlight der neuen Funktionen in dieser Version in der Releaseparty des VS Code-Teams an. Die Aufzeichnung der Veranstaltung finden Sie auf unserem YouTube-Kanal.

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.

Workbench

Vertrauen in Arbeitsbereiche

Visual Studio Code nimmt Sicherheit ernst und möchte Ihnen helfen, Code sicher zu durchsuchen und zu bearbeiten, unabhängig von Quelle oder Autor. Die Funktion Workspace Trust ermöglicht es Ihnen zu entscheiden, ob Ihre Projektordner die automatische Codeausführung zulassen oder einschränken sollen.

Trust this folder dialog

Hinweis: Im Zweifelsfall lassen Sie einen Ordner im eingeschränkten Modus. Sie können das Vertrauen jederzeit später aktivieren.

Sicheres Browsen von Code

Es ist großartig, dass so viel Quellcode in öffentlichen Repositories und Dateifreigaben verfügbar ist. Unabhängig von der Coding-Aufgabe oder dem Problem gibt es wahrscheinlich bereits eine gute Lösung. Die Verwendung von Open-Source-Code und -Tools birgt jedoch Risiken und Sie können sich böswilliger Codeausführung und Exploits aussetzen.

Workspace Trust bietet eine zusätzliche Sicherheitsebene, wenn Sie mit unbekanntem Code arbeiten, indem die automatische Codeausführung verhindert wird, wenn ein Workspace im eingeschränkten Modus geöffnet ist.

Hinweis: Wenn Sie die Workspace Trust-Funktion deaktivieren möchten, können Sie security.workspace.trust.enabled auf false setzen. Deaktivieren Sie Workspace Trust nur, wenn Sie sicher sind, dass Sie die Quelle und Integrität der Dateien, mit denen Sie arbeiten, kennen.

Eingeschränkter Modus

Wenn Sie von einem Workspace Trust-Dialog aufgefordert werden und Nein, ich vertraue den Autoren nicht wählen, wechselt VS Code in den eingeschränkten Modus, um die Codeausführung zu verhindern. Die Werkbank zeigt oben ein Banner mit Links zum Verwalten Ihres Ordners über den Workspace Trust-Editor und Mehr erfahren, das Sie zum Benutzerhandbuch für Workspace Trust führt.

Workspace Trust Restricted Mode banner

Sie sehen auch eine "Eingeschränkter Modus"-Markierung in der Statusleiste.

Workspace Trust Restricted Mode Status bar badge

Der eingeschränkte Modus versucht, die automatische Codeausführung zu verhindern, indem er die Ausführung mehrerer VS Code-Funktionen deaktiviert oder einschränkt: Aufgaben, Debugging, Workspace-Einstellungen und Erweiterungen.

Die vollständige Liste der im eingeschränkten Modus deaktivierten Funktionen finden Sie im Workspace Trust-Editor, indem Sie auf den Link Verwalten im Banner klicken oder auf die Markierung "Eingeschränkter Modus" in der Statusleiste.

Workspace Trust editor

Ein Workspace vertrauen

Wenn Sie den Autoren und Maintainern eines Projekts vertrauen, können Sie den Ordner des Projekts auf Ihrem lokalen Computer vertrauen. Es ist zum Beispiel normalerweise sicher, Repositories von bekannten GitHub-Organisationen wie github.com/microsoft oder github.com/docker zu vertrauen. Die anfängliche Workspace Trust-Aufforderung beim Öffnen eines neuen Ordners ermöglicht es Ihnen, diesem Ordner und seinen Unterordnern zu vertrauen.

Sie können auch den Workspace-Editor aufrufen und den Vertrauensstatus eines Ordners schnell umschalten. Es gibt mehrere Möglichkeiten, den Workspace-Editor-Dialog aufzurufen.

Im eingeschränkten Modus

  • Link Verwalten im Banner des eingeschränkten Modus
  • Statusleistenelement "Eingeschränkter Modus"

Sie können auch jederzeit Folgendes verwenden:

  • Befehl Workspaces: Workspace Trust verwalten aus der Befehlspalette (⇧⌘P (Windows, Linux Ctrl+Shift+P))
  • Workspace Trust verwalten aus dem Verwalten-Zahnrad in der Aktivitätsleiste

Manage Workspace Trust command in the Manage gear context menu

Ordner auswählen

Wenn Sie einem Ordner vertrauen, wird er zur Liste Vertrauenswürdige Ordner & Workspaces hinzugefügt, die im Workspace Trust-Editor angezeigt wird.

Workspace Trust editor Trusted Folders and Workspaces list

Sie können Ordner manuell zu dieser Liste hinzufügen, bearbeiten und entfernen. Der aktive Ordner, dem vertraut wird, ist fett hervorgehoben.

Sie haben auch die Möglichkeit, dem übergeordneten Ordner zu vertrauen. Dies wendet das Vertrauen auf den übergeordneten Ordner und alle Unterordner an. Dies kann hilfreich sein, wenn Sie viele Ordner mit vertrauenswürdigem Inhalt unter einem Ordner haben.

Erweiterungen vertrauen

Was passiert, wenn Sie den eingeschränkten Modus verwenden möchten, aber Ihre Lieblingserweiterung Workspace Trust nicht unterstützt? Dies kann passieren, wenn eine Erweiterung zwar nützlich und funktionsfähig ist, aber nicht aktiv gepflegt wird und ihre Unterstützung für Workspace Trust nicht deklariert hat. Um dieses Szenario zu bewältigen, können Sie den Vertrauensstatus der Erweiterung mit der Einstellung extensions.supportUntrustedWorkspaces überschreiben.

Hinweis: Seien Sie vorsichtig beim Überschreiben der Workspace Trust-Unterstützung einer Erweiterung. Es kann sein, dass der Erweiterungsautor gute Gründe hat, seine Erweiterung im eingeschränkten Modus zu deaktivieren.

Unten sehen Sie den Benutzereintrag settings.json für die Prettier-Erweiterung.

  "extensions.supportUntrustedWorkspaces": {
    "esbenp.prettier-vscode": {
      "supported": true,
      "version": "6.4.0"
    },
  },

Sie können die Unterstützung für Workspace Trust entweder mit dem Attribut supported aktivieren oder deaktivieren. Das Attribut version gibt die exakte Erweiterungsversion an, für die dies gilt. Sie können das Feld "version" entfernen, wenn Sie den Status für alle Versionen festlegen möchten.

Wenn Sie mehr darüber erfahren möchten, wie Erweiterungsautoren bewerten und bestimmen, welche Funktionen im eingeschränkten Modus eingeschränkt werden sollen, lesen Sie die Workspace Trust Extension Guide.

Einstellungen

Im Folgenden finden Sie die verfügbaren Workspace Trust-Einstellungen

  • security.workspace.trust.enabled – Aktiviert die Workspace Trust-Funktion. Standard ist true.
  • security.workspace.trust.startupPrompt – Ob der Workspace Trust-Dialog beim Start angezeigt werden soll. Standardmäßig wird er nur einmal pro separatem Ordner oder Workspace angezeigt.
  • security.workspace.trust.emptyWindow – Ob ein leeres Fenster (kein offener Ordner) immer vertrauenswürdig ist. Standard ist true.
  • security.workspace.trust.untrustedFiles – Steuert, wie lose Dateien in einem Workspace behandelt werden. Standard ist Aufforderung.
  • extensions.supportUntrustedWorkspaces – Überschreibt Deklarationen von Erweiterungen für Workspace Trust. Entweder true oder false.

Um mehr über Workspace Trust zu erfahren, lesen Sie das Benutzerhandbuch Workspace Trust.

Neues "Erste Schritte"-Erlebnis

In den letzten Iterationen haben wir die Willkommensseite für VS Code überarbeitet und freuen uns, ankündigen zu können, dass unsere neue Willkommensseite (Erste Schritte) ab dieser Iteration standardmäßig für alle Benutzer aktiviert ist. In diesem neuen Erlebnis können sowohl der Kern von VS Code als auch installierte Erweiterungen "Walkthroughs" zur Willkommensseite beitragen, die Ihnen helfen sollen, entweder mit VS Code selbst oder mit einer neuen Erweiterung zu beginnen. Zum Beispiel trägt die Erweiterung Luna Paint einen Walkthrough mit Anleitungen bei, um jede Komponente des Bildeditors zu verstehen.

New welcome page, showing some of the walkthroughs core and extensions can contribute

Zusätzlich, sobald Sie alle Walkthroughs abgeschlossen (oder geschlossen) haben, ordnet VS Code die Inhalte neu an, um die Anzahl der zuletzt verwendeten Workspaces, die mit einem Klick zugänglich sind, zu verdoppeln.

New welcome page with all walkthroughs dismissed, showing extra recent workspaces entries

Einstellungen

  • workbench.startupEditor – Steuert den Standardeditor, der beim Start angezeigt wird. Der neue Wert gettingStarted ersetzt den alten Standardwert welcome. Einige der anderen verfügbaren Optionen sind readme, gettingStartedInEmptyWorkbench, newUntitledFile oder none.
  • workbench.welcomePage.walkthroughs.openOnInstall – Ob von Erweiterungen beigesteuerte Walkthroughs nach der Installation automatisch geöffnet werden sollen.

Die neue Seite wird Erste Schritte heißen, bis die vorhandene Willkommensseite vollständig eingestellt ist.

Remote Repositories

Die Erweiterung Remote Repositories wurde als integrierte Vorschau-Funktion in 1.56 eingeführt und ist jetzt öffentlich verfügbar, aber sie ist nicht mehr in VS Code integriert, sodass Sie sie aus dem VS Code Marketplace installieren müssen.

Kurz zusammengefasst: Die Erweiterung Remote Repositories ermöglicht es Ihnen, jedes GitHub-Repository direkt aus VS Code heraus zu durchsuchen, zu suchen, zu bearbeiten und zu committen, ohne es klonen oder lokal haben zu müssen.

In dieser Iteration, während wir uns hauptsächlich auf die Fehlerbehebung und Politur der Erweiterung für die Veröffentlichung konzentrierten, haben wir einige neue Funktionen hinzugefügt. Sie können nun Ihre Remote-Repositories im Remote Explorer sehen, um alle uncommitted Änderungen schnell zu öffnen oder zu vergleichen. Zusätzlich können Sie Änderungen aus demselben Repository auf das aktuelle Remote-Repository anwenden, was es Ihnen ermöglicht, uncommitted Änderungen schnell und einfach von einem Branch zum anderen zu verschieben.

Remote Repositories Remote Explorer view

Thema: Amethyst Dark Theme

Um mehr über Remote-Repositories zu erfahren, können Sie den Blogbeitrag Remote Repositories und das YouTube-Video lesen.

Verbessertes Drag & Drop von Editoren über Fenster hinweg

Die Unterstützung für das Ziehen von Editoren zu anderen Fenstern wurde in dieser Version verbessert. Sie können jetzt Diff-Editoren, benutzerdefinierte Editoren und die gesamte Editorgruppe zu einem anderen Fenster ziehen, um die Editoren dort zu öffnen.

Improved editor drag and drop across windows

Thema: GitHub Light Theme

Hinweis: Wenn Sie diese Funktion häufig nutzen, stellen Sie sicher, dass Auto-Speichern aktiviert ist (files.autoSave), damit Änderungen in einem Fenster automatisch im anderen Fenster widergespiegelt werden.

Entfernte Tastenkombination Cmd+W / Ctrl+W zum Schließen des Fensters, wenn kein Editor geöffnet ist

Wir haben Feedback erhalten, dass Benutzer frustriert sind, wenn das VS Code-Fenster (Instanz) nach dem schnellen Schließen des letzten Editors mit Cmd+W / Ctrl+W plötzlich geschlossen wird. Eine schnelle Umfrage im Team ergab auch, dass viele Leute diese Tastenkombination zum Schließen des Fensters nicht mehr zugewiesen hatten, daher haben wir Cmd+W / Ctrl+W als Tastenkombination zum Schließen des Fensters entfernt, wenn kein Editor geöffnet ist.

Sie können die Tastenkombination einfach wiederherstellen, indem Sie sie wie folgt in Ihrer keybindings.json-Datei konfigurieren:

macOS

{
  "key": "cmd+w",
  "command": "workbench.action.closeWindow",
  "when": "!editorIsOpen && !multipleEditorGroups"
}

Windows/Linux

{
  "key": "ctrl+w",
  "command": "workbench.action.closeWindow",
  "when": "!editorIsOpen && !multipleEditorGroups"
}

Hinweis: Auf allen Plattformen gibt es eine dedizierte zugewiesene Tastenkombination zum Schließen des Fensters.

  • macOS: Cmd+Shift+W
  • Linux: Alt+F4
  • Windows: Alt+F4

Notebook-Layout-Anpassung

Wir haben diesen Monat mehrere Notebook-Layout-Einstellungen hinzugefügt, um Benutzern die Anpassung des Notebook-Editors an ihren Workflow zu ermöglichen. Die standardmäßig aktivierten Anpassungen sind:

Notebook-Werkzeugleiste

Wir haben eine Notebook-Werkzeugleiste im Editor hinzugefügt, über die Sie einfach Aktionen wie Zelle einfügen, alle Zellen ausführen oder Kernel wechseln können. Die Werkzeugleiste kann durch Setzen von notebook.globalToolbar auf false deaktiviert werden.

Notebook toolbar

Output-Werkzeugleiste

Die Aktion Zellenausgaben löschen und die Schaltfläche zum Auswählen eines anderen Ausgabe-Renderers oder Mimetypes wurden zu einem einzigen Menü mit drei Punkten (...) neben den Zellenausgaben zusammengefasst. Dies kann durch Setzen von notebook.consolidatedOutputButton auf false deaktiviert werden.

Notebook output toolbar

Fokusierte Zellhervorhebung in der Spalte

VS Code unterstützt jetzt die Anzeige einer Fokus-Zellhervorhebung im Spaltenbereich einer Zelle, was hilft, die fokussierte Zelle zu identifizieren, wenn ein Notebook viele Zellen enthält. Die Einstellung notebook.cellFocusIndicator kann entweder gutter, der neue Standard, oder border sein, um den gesamten Zellrahmen hervorzuheben.

Notebook focus indicator on gutter

Falt-Symbol bei Mausüberfahrt anzeigen

Das Falt-Symbol bei Markdown-Zellen ist jetzt beim Überfahren mit der Maus sichtbar und nicht mehr dauerhaft sichtbar. Sie können das Verhalten anpassen, indem Sie notebook.showFoldingControls entweder auf mouseover (Standard) oder always setzen.

Notebook show focus icon on mouse over

Die vollständige Liste der in diesem Monat implementierten Notebook-Layout-Einstellungen ist:

  • notebook.cellFocusIndicator: Fügt die Option hinzu, dass Zellen ihren Fokusstatus mit einem farbigen Balken an der Seite der Zelle (gutter) anzeigen, ähnlich wie bei Jupyter.
  • notebook.cellToolbarVisibility: Bestimmt, ob die Zellwerkzeugleiste angezeigt wird, wenn die Zelle den Fokus hat oder wenn die Maus darüberfährt. Standardmäßig wird sie nur angezeigt, wenn eine Zelle den Fokus hat.
  • notebook.compactView: Wenn aktiviert, werden Zellen in einem kompakteren Stil mit weniger leerem Platz gerendert. Es ist standardmäßig aktiviert.
  • notebook.consolidatedOutputButton: Die Aktion Zellenausgaben löschen und die Schaltfläche zum Auswählen eines anderen Ausgabe-Renderers oder Mimetypes wurden zu einem einzigen ...-Menü neben den Zellenausgaben zusammengefasst. Das neue Menü kann mit dieser Einstellung deaktiviert werden.
  • notebook.consolidatedRunButton: Es gibt zwei neue Aktionen, Zellen darüber ausführen und Zelle und darunter ausführen. Sie werden standardmäßig in der Zellwerkzeugleiste angezeigt, aber durch Aktivieren dieser Einstellung werden sie in ein neues Kontextmenü neben der Ausführungs-Schaltfläche verschoben.
  • notebook.dragAndDropEnabled: Deaktiviert das Ziehen und Ablegen von Zellen. Sie können Zellen immer noch mit den Befehlen (Alt+Oben/Alt+Unten standardmäßig) neu anordnen.
  • notebook.globalToolbar: Fügt eine Werkzeugleiste am oberen Rand des Notebook-Editors hinzu.
  • notebook.insertToolbarLocation: Steuert, ob die Schaltflächen zum Einfügen neuer Zellen zwischen Zellen, in der Werkzeugleiste, beides oder gar nicht angezeigt werden.
  • notebook.showCellStatusBar: Diese Einstellung hat eine neue Option, visibleAfterExecute, die die Zellstatusleiste ausblendet, um Platz zu sparen, bis eine Zelle ausgeführt wurde. Sobald sie ausgeführt wurde, wird sie sichtbar, damit der Benutzer die Ausführungsdetails überprüfen kann.
  • notebook.showFoldingControls: Steuert, ob der Falt-Chevron, der bei Markdown-Headern erscheint, immer sichtbar ist oder nur beim Überfahren mit der Maus.
  • notebook.editorOptionsCustomizations: Ermöglicht dem Benutzer die Anpassung der Zell-Editor-Einstellungen im Notebook.

Das Bild unten zeigt die Auswirkungen mehrerer dieser Einstellungen (Werkzeugleiste oben, Spaltenhervorhebung, ...-Schaltfläche für Ausgaben)

Notebook layout changes

Aktualisierte Farben für Quick Pick & Suggest-Widgets

Wir haben den Fokusstatus im Quick Pick und Suggest-Widget aktualisiert, um besser mit unseren Baum-Widget-Stilen übereinzustimmen. Dies führt einige neue Farb-Tokens ein, die den Fokus-Vordergrund steuern:

  • list.focusHighlightForeground
  • quickInputList.focusForeground
  • editorSuggestWidget.selectedForeground

Quick Pick style in light theme

Suggest style in light theme

Icon-Thema: Fluent Icons

Aktualisierte Touch Bar-Icons für macOS

Wir haben unsere macOS Touch Bar-Icons aktualisiert, damit sie mit unserem aktualisierten Iconografie-Stil übereinstimmen.

macOS Touch Bar-Icons Standardansicht

macOS Touch Bar-Icons während des Debuggens mit mehr Steuerelementen Während des Debuggens

Kontextmenüs für Webviews

VS Code unterstützt jetzt die Anzeige eines einfachen Kontextmenüs innerhalb von Webviews, wie z. B. der Markdown-Vorschau, den Versionshinweisen und den Seiten für Erweiterungsdetails.

A context menu in a webview

Dieses Kontextmenü enthält derzeit Aktionen zum Kopieren und Einfügen von Text. Wir können das Menü in Zukunft um zusätzliche Aktionen erweitern.

Wenn dieses Kontextmenü eine Webview in Ihrer Erweiterung stört, können Sie verhindern, dass es angezeigt wird, indem Sie preventDefault für das contextmenu-Ereignis aufrufen.

document.body.addEventListener('contextmenu', e => {
  e.preventDefault(); // cancel the built-in context menu
});

Editor

Vorschau von Vorschlägen

Mit der neuen Einstellung editor.suggest.preview wird eine Vorschau des ausgewählten Vorschlags oder Snippets an der Cursorposition angezeigt.

Suggestion preview showing smart completions for the letter 'i'

Thema: Dark+ (Standard-Dunkel)

Veraltete Vorschläge ausblenden

Es gibt eine neue Einstellung editor.suggest.showDeprecated, die standardmäßig auf on steht, aber wenn sie auf off gestellt wird, werden keine als veraltet markierten Elemente mehr angezeigt.

Integriertes Terminal

Terminal-Tabs

Terminal-Tabs wurden als Vorschau-Funktion in 1.56 eingeführt und sind jetzt standardmäßig aktiviert. Die neue Tab-Ansicht wird standardmäßig nur angezeigt, wenn mindestens zwei Terminals vorhanden sind. Bei einzelnen Terminals ist der Tab in den Panel-Titel "inline" integriert. Dies führt auch das Konzept von Terminal-Status ein, z. B. ob eine Aufgabe ausgeführt wird, erfolgreich war oder fehlgeschlagen ist.

Single inlined terminal tab, terminal tabs with status, and collapsed terminal tabs

Nachfolgend einige Highlights dieser Version:

  • Die Farbe eines Tabs kann geändert werden, um eine schnelle Navigation und Unterscheidung zwischen ihnen zu ermöglichen.
  • Tabs können per Drag & Drop neu angeordnet werden.
    drag and drop
  • Das Ziehen eines Tabs in einer Terminalgruppe in den leeren Bereich entfernt ihn aus der Gruppe (teilt das Terminal auf, auch über das Kontextmenü verfügbar).
    unsplit
  • Das Ziehen eines Tabs in den Hauptterminalbereich ermöglicht das Zusammenführen einer Gruppe (auch über das Kontextmenü verfügbar).
    dragging a terminal tab to join a tab group
  • Alt teilt jetzt das Terminal, wenn Sie auf einen Tab, die Schaltfläche + oder den einzelnen Tab klicken. Das Gleiche gilt für die Mitteltaste zum Schließen eines Terminals.
    split terminal buttons
  • Die Inline-Aktionen werden nicht angezeigt, es sei denn, die Tab-Liste ist ausreichend groß, um ein versehentliches Aufteilen/Schließen von Terminals zu vermeiden.
  • Beim Schließen eines Terminals, sodass nur noch eines übrig bleibt, wird die Tab-Liste nicht ausgeblendet, bis die Maus die Ansicht verlässt.

Wenn Sie mit der neuen Benutzeroberfläche nicht zufrieden sind, können Sie zum Dropdown zurückkehren, indem Sie "terminal.integrated.tabs.enabled": false setzen. Der Plan ist, diese Option auch weiterhin als Option anzubieten.

Verbesserungen bei Terminal-Profilen

Das Terminal-Profilsystem hat in dieser Version viele Verbesserungen erfahren. Hier einige Highlights:

  • defaultProfile wird berücksichtigt, wenn das Terminal beim Starten von VS Code wiederhergestellt wird, und wird für Aufgaben und Debugging verwendet.
  • IntelliSense funktioniert jetzt in settings.json für icon und defaultProfile.
  • overrideName funktioniert jetzt für das Standardprofil.
  • defaultProfile kann jetzt in den Workspace-Einstellungen festgelegt werden. Dies wird jetzt auch durch die neue Workspace Trust-Funktion gesteuert.
  • Wenn defaultProfile und die Einstellungen shell oder shellArgs verwendet werden, werden Sie nun aufgefordert, die veralteten Einstellungen in das Profilsystem zu migrieren.
  • color kann jetzt für ein Profil festgelegt werden.

Unterstützung für Titelsequenzen

Die Einstellung terminal.integrated.experimentalUseTitleEvent wurde als stabil unter terminal.integrated.titleMode befördert. Standardmäßig ist diese Einstellung executable, was Terminals basierend auf dem erkannten Vordergrundprozess benennt.

Running 'git show' will result in the terminal's title changing to 'git'

Wenn dies auf sequence gesetzt ist, wird der Titel basierend darauf gesetzt, was die Shell festlegt. Dies erfordert Shell-Unterstützung. Ein Beispiel dafür ist die Standard-Eingabeaufforderung von oh-my-zsh, die zusätzliche Informationen über die Sitzung anzeigt.

The oh-my-zsh default prompt will show the computer's name and current working directory

Verbessertes Starten mit sauberer Umgebung

Die Einstellung terminal.integrated.inheritEnv ist seit v1.36 verfügbar, aber die Implementierung hatte einige Fehler, die unter Linux aufgrund von Berechtigungsproblemen fehlschlagen konnten und unter macOS möglicherweise nicht wie erwartet funktionierten.

Aufgrund von Verbesserungen an der Art und Weise, wie VS Code seine zugrunde liegende Umgebung einrichtet, ist es nun möglich, auf die anfängliche Umgebung zuzugreifen, mit der es gestartet wurde, was die meisten Terminals tun. Wenn inheritEnv auf true gesetzt ist, verwendet VS Code nun die anfängliche Umgebung, und wenn false, die "geladene" Shell-Umgebung. Diese Einstellung kann helfen, dass das Terminal sich mehr wie ein reguläres Terminal verhält. Sie können jedoch auf Probleme stoßen, wenn Ihre Profil-/RC-Konfiguration nicht korrekt eingerichtet ist.

Native Zeilenumbruch-Unterstützung unter Windows

Der Zeilenumbruch im Terminal steuert Task-Problem-Matcher und Linkerkennung. Historisch gesehen verwendete das Windows-Terminal eine Heuristik, um Zeilen als umgebrochen zu kennzeichnen, da die Emulationstechnologie, die eine Unix-pty simuliert, keinen Umbruch unterstützte. Dies hat sich in neueren Versionen von Windows geändert, und bei der Aktualisierung auf Windows 10 21376+ (derzeit nur Insider) wird diese Heuristik deaktiviert und umgebrochene Zeilen sollten wie im Windows Terminal korrekt funktionieren.

Aufgaben

Task-Status auf Terminal-Tab

Der Status einer Aufgabe wird jetzt in ihrem Terminal-Tab angezeigt. Für Hintergrundaufgaben wird der Status nur angezeigt, wenn ein zugehöriger Problem-Matcher vorhanden ist.

Task status on a terminal tab

Task-Terminals automatisch schließen

Die Task-Eigenschaft presentation hat eine neue Eigenschaft close. Wenn close auf true gesetzt wird, schließt sich das Terminal, wenn die Aufgabe beendet wird.

{
  "type": "shell",
  "command": "node build/lib/preLaunch.js",
  "label": "Ensure Prelaunch Dependencies",
  "presentation": {
    "reveal": "silent",
    "close": true
  }
}

Debugging

JavaScript-Debugging

Wie üblich finden Sie die vollständige Liste der Änderungen im Changelog von vscode-js-debug.

Integration der Edge Developer Tools

Der JavaScript-Debugger integriert sich in die Microsoft Edge Developer Tools, um einen DOM-, Stil- und Netzwerkinspektor für das Browser-Debugging bereitzustellen, der über das neue "Inspizieren"-Symbol in der Debug-Werkzeugleiste zugänglich ist.

Debugger inspect button

Das kurze Video unten zeigt die Auswahl der Schaltfläche "Inspizieren" und die Navigation durch Elemente in den Edge DevTools.

Demonstration des Klickens auf das Symbol "Inspizieren" und des Durchklickens von Elementen in Edge Thema: Codesong

Wenn Sie Microsoft Edge noch nicht für das Browser-Debugging verwenden, können Sie darauf umsteigen, indem Sie "type": "chrome" oder "type": "pwa-chrome" in Ihrer launch.json durch "type": "pwa-msedge" ersetzen. Dies wird auch in Blazor-Anwendungen unterstützt, indem "browser": "edge" in der Launch-Konfiguration gesetzt wird.

Unterstützung für umbenannte Bezeichner in Sourcemaps

Eine lang erwartete Funktion: Der JavaScript-Debugger unterstützt jetzt umbenannte Bezeichner in Sourcemaps. Dies ist besonders nützlich beim Debuggen von minifiziertem Code.

Ein Screenshot, der an einem Breakpoint angehalten hat. Minifizierter Code wird ausgeführt, aber die Ansichten Variablen, Überwachung und Debug-Konsole zeigen, dass Variablen mit den ursprünglichen Namen zugegriffen werden können. Thema: Codesong

Umbenannte Variablen werden in der Variablenansicht, der Überwachungsansicht und der Debug-Konsole-REPL unterstützt. Sie können überprüfen, ob Ihre Tools Umbenennungen ausgeben, indem Sie nach einem nicht leeren "names"-Array in den generierten Sourcemap-Dateien suchen.

Treffer-Breakpoint in der BREAKPOINTS-Ansicht anzeigen

Wenn ein Breakpoint erreicht wird, wählt und zeigt VS Code diesen nun in der BREAKPOINTS-Ansicht an. Dies sollte es einfacher machen zu verstehen, welcher genaue Breakpoint den Abbruch des Programms verursacht hat.

Derzeit unterstützt nur die JS-Debug-Erweiterung diese Funktion, aber wir erwarten, dass andere Debug-Erweiterungen bald folgen.

As the user steps in the program, a breakpoint that got hit is selected and revealed in the BREAKPOINTS view

Sprachen

TypeScript 4.3.2

VS Code wird jetzt mit TypeScript 4.3.2 ausgeliefert. Dieses große Update enthält viele Verbesserungen der TypeScript-Sprache sowie viele Verbesserungen und Fehlerbehebungen für JavaScript- und TypeScript-Tools.

Sie können mehr über TypeScript 4.3 auf dem TypeScript-Blog lesen.

VS Code unterstützt jetzt JSDoc @link-Tags in JavaScript- und TypeScript-Kommentaren. Diese ermöglichen es Ihnen, klickbare Links zu einem Symbol in Ihrer Dokumentation zu erstellen.

Navigating code using JSDoc @link tags

JSDoc @link-Tags werden geschrieben als: {@link symbolName}. Sie können optional auch Text angeben, der anstelle des Symbolnamens gerendert wird: {@link class.property Alt-Text}.

@link wird in Hovers, Vorschlägen und Signaturhilfen unterstützt. Wir haben auch die VS Code-Erweiterbarkeits-Typdefinitionsdatei vscode.d.ts aktualisiert, um @link zu verwenden.

Vervollständigungen in Importanweisungen

Auto-Import in JavaScript und TypeScript fügt automatisch Importe hinzu, wenn Sie einen Vorschlag annehmen. Mit VS Code 1.57 funktionieren diese jetzt auch beim Schreiben einer Importanweisung selbst.

Auto imports in an import statement

Dies kann Zeit sparen, wenn Sie jemals einen Import manuell hinzufügen müssen.

Zu Definition springen für Nicht-JS/TS-Dateien

Viele moderne JavaScript-Bundler und -Frameworks verwenden import-Anweisungen, um Assets wie Bilder und Stylesheets zu importieren. Wir unterstützen jetzt die Navigation durch diese Importe mit Zu Definition springen.

Navigating to a non-JS/TS import

Dies ist wahrscheinlich am nützlichsten, wenn Sie Strg/Cmd-Klick verwenden, um durch Ihren Code zu navigieren.

Sortieren von Importen – Code-Aktion

Die Importe sortieren Code-Aktion für JavaScript und TypeScript sortiert Ihre Importe. Im Gegensatz zu Importe organisieren werden jedoch keine ungenutzten Importe entfernt.

Sie können auch das Sortieren von Importen beim Speichern aktivieren, indem Sie

"editor.codeActionsOnSave": {
    "source.sortImports": true
}

Quick Fix "Funktionsrückgabetyp ableiten"

Die Umgestaltung Funktionsrückgabetyp ableiten für TypeScript fügt explizite Rückgabetyp-Annotationen zu Funktionen hinzu.

The Infer function return type refactoring in action

Dies ist nützlich, wenn Sie explizitere Typisierungen hinzufügen möchten. Diese Umgestaltung kann auch Zeit sparen, wenn Sie den Rückgabetyp in einen benannten Typ/eine Schnittstelle extrahieren möchten oder wenn Sie den Rückgabetyp einer Funktion ändern müssen.

Aufforderung zum Deaktivieren der TS Server-Protokollierung

VS Code fordert Sie nun auf, wenn die TypeScript-Server-Protokollierung über einen längeren Zeitraum aktiviert ist.

TS server logging enabled notification

Die Protokollierung kann die Leistung erheblich beeinträchtigen, daher ist es am besten, sie deaktiviert zu lassen, es sei denn, Sie versuchen aktiv, ein Problem zu diagnostizieren.

Beiträge zu Erweiterungen

Remote-Entwicklung

Die Arbeit an den Remote Development-Erweiterungen wird fortgesetzt. Diese ermöglichen es Ihnen, einen Container, eine Remote-Maschine oder das Windows Subsystem for Linux (WSL) als voll ausgestattete Entwicklungsumgebung zu nutzen.

Funktions-Highlights in 1.57 umfassen:

  • Steuern des gewünschten Protokolls für weitergeleitete Ports.
  • Optionales Überwachen auf Kollisionen von weitergeleiteten Ports.
  • Dev-Container unterstützen die Workspace Trust-Sicherheitsfunktion.
  • Bessere Erkennung von Umgebungsvariablen in Dev-Containern.

Sie können sich über neue Erweiterungsfunktionen und Fehlerbehebungen in den Versionshinweisen zur Remote-Entwicklung informieren.

Erweiterungs-Authoring

Notebook-API

Wir haben die meisten Notebook-APIs fertiggestellt. Die API ist in drei separate Teile gegliedert:

  1. Die NotebookSerializer-API, die in Kombination mit dem notebooks-Beitragspunkt es VS Code ermöglicht, Notebook-Dokumente zu öffnen, zu ändern und zu speichern.
  2. Notebook-Renderer, die Zellenausgaben präsentieren. Sie werden über den notebookRenderer-Beitragspunkt der package.json-Datei Ihrer Erweiterungen hinzugefügt.
  3. Die NotebookController-API zum Generieren von Ausgaben für Code-Zellen.

Beispiel für einen einfachen Notebook-Serializer und einen Echo-Controller. Der Serializer verwendet JSON.parse und stringify mit spezieller Behandlung für leere Dateien. Der Controller gibt die großgeschriebene Variante des Zelltextes zurück – einmal als einfacher Text und einmal als HTML.

// serialize/deserialize notebook
vscode.workspace.registerNotebookSerializer(
  'echobook',
  new (class implements vscode.NotebookSerializer {
    // serializer is relying on JSON.parse/stringify
    deserializeNotebook(content: Uint8Array) {
      return JSON.parse(new TextDecoder().decode(content) || '{"cells":[]}');
    }
    serializeNotebook(data: vscode.NotebookData) {
      return new TextEncoder().encode(JSON.stringify(data));
    }
  })()
);

// notebook controller
vscode.notebooks.createNotebookController(
  'myId',
  'echobook',
  'Echo',
  (cells, _notebook, controller) => {
    for (let cell of cells) {
      // execution means to echo in upper-case, once as plain text and once as html
      const execution = controller.createNotebookCellExecution(cell);
      execution.start();
      const echo = cell.document.getText().toUpperCase();
      const textItem = vscode.NotebookCellOutputItem.text(echo, 'text/plain');
      const htmlItem = vscode.NotebookCellOutputItem.text(`<b>${echo}</b>`, 'text/html');
      const output = new vscode.NotebookCellOutput([textItem, htmlItem]);
      execution.replaceOutput(output);
      execution.end(true);
    }
  }
);

Das Beispiel registriert statisch den Notebook-Typ für *.echobook-Dateien. Außerdem gibt VS Code ein onNotebook:echobook-Aktivierungsereignis aus, wann immer solche Notebooks geöffnet werden.

"contributes": {
  "notebooks": [{
      "type": "echobook",
      "displayName": "Echobook",
      "selector": [{
        "filenamePattern": "*.echobook"
      }]
  }]
}

Statusleisten-Element 'id'- und 'name'-Eigenschaften

Wir haben die API für die Eigenschaften des Identifikators und Namens von StatusBarItem finalisiert. Die ID kann über die neue Überladung der Methode createStatusBarItem übergeben werden, während die name-Eigenschaft dynamisch auf dem StatusBarItem selbst geändert werden kann.

Diese neuen Eigenschaften werden für das Kontextmenü in der Statusleiste verwendet, um einzelnen Einträgen einen Namen zu geben und es dem Benutzer zu ermöglichen, Einträge anzuzeigen und auszublenden. Wenn Sie diese Eigenschaften nicht angeben, fasst das Menü alle Status-Einträge einer Erweiterung unter einem einzigen Eintrag zusammen.

Status bar item menu

Wenn Ihre Erweiterung zur Statusleiste beiträgt, sollten Sie die Aktualisierung auf die neue API in Betracht ziehen.

Eine Nachricht in neuen Terminals ausgeben

Beim Erstellen eines Terminals mit window.createTerminal ist es jetzt möglich, eine Nachricht über TerminalOptions.message festzulegen, die am oberen Rand des Terminals gedruckt wird. Diese Nachricht unterstützt ANSI-Escape-Sequenzen zur Aktivierung von Textstilen.

vscode.window.createTerminal({
  name: `My terminal`,
  message: '\x1b[3;1mSome custom message\x1b[0m'
});

Terminal displaying a custom message

Neue Theme-Farben für Inline-Werte

Neue Farben wurden hinzugefügt, um die Debugger-Inline-Werte thematisch zu gestalten.

  • editor.inlineValuesBackground: Farbe für den Debug-Inline-Wert-Vordergrundtext.
  • editor.inlineValuesForeground: Farbe für den Debug-Inline-Wert-Hintergrund.

Zur Erinnerung: Inline-Werte werden während des Debuggens für Debug-Erweiterungen angezeigt, die Inline-Wert-Anbieter registriert haben, oder wenn die Einstellung debug.inlineValues auf true gesetzt ist.

Debug inline values are shown with the foreground and background color customized

vscode-webview.d.ts

Das neu veröffentlichte Paket @types/vscode-webview fügt Typisierungen für die API hinzu, die VS Code in Webviews bereitstellt.

Sie können diese Typen mit npm install --save-dev @types/vscode-webview installieren. Wenn die Webview-Typen in Ihrem Projekt nicht erkannt werden, versuchen Sie, sie dem typeAcquisition-Abschnitt Ihrer jsconfig / tsconfig hinzuzufügen.

"typeAcquisition": {
  "include": [
    "@types/vscode-webview"
  ]
}

Oder fügen Sie eine Triple-Slash-Referenz in Ihrem Code hinzu:

///<reference types="@types/vscode-webview"/>

Verbesserte Webview-Array-Buffer-Übertragungen

In früheren Versionen von VS Code gab es beim Senden von Typ-Arrays an oder von einer Webview einige Eigenheiten:

  • Typisierte Arrays, wie z. B. UInt8Array, werden ineffizient serialisiert. Dies kann zu Leistungsproblemen führen, wenn Sie viele Megabyte Daten übertragen müssen.
  • Gesendete Typed Arrays werden auf der Empfängerseite nicht als korrekter Typ neu erstellt. Wenn Sie ein UInt8Array senden, erhält der Empfänger stattdessen ein generisches Objekt mit den Datenwerten des UInt8Array.

Obwohl beides Fehler sind, können wir sie nicht beheben, ohne möglicherweise Erweiterungen zu beschädigen, die vom bestehenden Verhalten abhängen. Gleichzeitig gibt es absolut keinen Grund, warum eine neu geschriebene Erweiterung das derzeit verwirrende und ineffiziente Verhalten wünschen würde.

Daher haben wir beschlossen, das bestehende Verhalten für bestehende Erweiterungen beizubehalten, aber neue Erweiterungen auf das korrektere Verhalten umzustellen. Dies geschieht durch die Überprüfung des engines-Werts in der package.json Ihrer Erweiterung.

"engines": {
  "vscode": "^1.57.0",
}

Wenn die Erweiterung VS Code 1.57+ anvisiert, sollten Typed Arrays auf der Empfängerseite neu erstellt werden und die Übertragung großer Typed Arrays zu und von Webviews deutlich effizienter sein.

parentSession bei Debug-Sitzungen

Vor einiger Zeit hat VS Code die Unterstützung für hierarchische Debug-Sitzungen hinzugefügt, aber keine Informationen über die Hierarchie wurden in den Extension APIs verfügbar gemacht. Um dies zu beheben, gibt es eine neue Eigenschaft in der DebugSession-Schnittstelle, die auf die übergeordnete Sitzung verweist, falls vorhanden. Die übergeordnete Sitzung einer Sitzung wird sich nie ändern.

export interface DebugSession {
  /**
    * The parent session of this debug session, if it was created as a child.
    * @see DebugSessionOptions.parentSession
    */
  readonly parentSession?: DebugSession;

  // ...

Verbesserte Zielgenauigkeit für VS Code Insiders-Versionen

Bei der Arbeit an Erweiterungen, die vorgeschlagene APIs verwenden, ist es möglich, dass ein neuer Insiders-Build mit Breaking Changes veröffentlicht wird. Um eine nahtlosere Übergangsphase für Benutzer zu ermöglichen, können Sie jetzt Insiders-Versionen präzise mit einem Datums-Tag anvisieren. Zum Beispiel zielt die Einstellung engines.vscode auf ^1.56.0-20210428 auf jede VS Code 1.56 (oder neuere) Version ab, die am oder nach dem 28. April 2020, 0:00 UTC, erstellt wurde. Dies ermöglicht es Ihnen, Erweiterungsaktualisierungen mit einem späteren Datum sicher zu veröffentlichen, bevor eine bevorstehende Insiders-Version veröffentlicht wird.

"engines": {
  "vscode": "^1.56.0-20210428",
}

Tree Hovers unterstützen Befehls-URIs

Wenn ein TreeItem einen vertrauenswürdigen Markdown-Tooltip hat, kann dieser Tooltip Befehle im Format [dies ist ein Link](command:workbench.action.quickOpenView) enthalten. Dies folgt demselben Format wie alle anderen Stellen, an denen Befehlslinks in Markdown unterstützt werden.

Vorgeschlagene Erweiterungs-APIs

Jeder Meilenstein bringt neue vorgeschlagene APIs mit sich und Erweiterungsautoren können sie ausprobieren. Wie immer wünschen wir uns Ihr Feedback. Hier erfahren Sie, wie Sie eine vorgeschlagene API ausprobieren können

  • Sie müssen Insiders verwenden, da sich vorgeschlagene APIs häufig ändern.
  • Sie müssen diese Zeile in der Datei package.json Ihrer Erweiterung haben: "enableProposedApi": true.
  • Kopieren Sie die neueste Version der Datei vscode.proposed.d.ts in den Quellcode-Speicherort Ihres Projekts.

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.

Testen

Wir hatten vor, die ersten Teile der Test-APIs in dieser Iteration zu finalisieren, aber dies wurde aufgrund der Anzahl anderer laufender Features verschoben. Obwohl es in dieser Iteration keine Breaking Changes an den Test-APIs gab, haben wir weitere Fortschritte bei der Editor-Erfahrung gemacht. Zum Beispiel hat die Peek-Ansicht eine geteilte Ansicht erhalten, die es Ihnen ermöglicht, die Ergebnisse aktueller und vergangener Testläufe zu durchsuchen.

Bild einer Peek-Ansicht mit einem referenzartigen Baum auf der rechten Seite einer geteilten Ansicht Thema: Codesong

Tests erhielten eine neue Reihe von Tastenkombinationen als Chords, beginnend mit Ctrl+;, die Peek-Ansicht hat jetzt eine bessere Unterstützung für Markdown-Nachrichten und viele Fehler wurden behoben.

Wenn Sie die Test Explorer UI-Erweiterung für Tests verwenden, können Sie die Einstellung testExplorer.useNativeTesting aktivieren, um zur neuen nativen Benutzeroberfläche zu wechseln. In der nächsten Iteration planen wir, die Sozialisierung dieser Einstellung zu erhöhen und die Einführung bei Partner-Erweiterungsteams zu beginnen.

Terminalprofilbeiträge

Diese API ermöglicht es Erweiterungen, zum Terminalprofilsystem beizutragen. Eine Erweiterung muss einige Dinge tun, damit dies funktioniert. Zuerst tragen Sie das Profil in der package.json ein

"contributes": {
  "terminal": {
    "profiles": [
      {
        "title": "Profile from extension",
        "id": "my-ext.terminal-profile",
        "icon": "lightbulb"
      }
    ]
  },
}

Aktivieren Sie dann die Erweiterung mit dem neuen Aktivierungsereignis onTerminalProfile

"activationEvents": [
  "onTerminalProfile:my-ext.terminal-profile"
]

Registrieren Sie schließlich den Provider im Aktivierungsereignis

vscode.window.registerTerminalProfileProvider('my-ext.terminal-profile', {
  provideProfileOptions(token) {
    return {
      name: 'Profile from extension',
      shellPath: 'cmd.exe'
    };
  }
});

Wenn die vorgeschlagene API aktiviert ist, sollte das von der Erweiterung beigesteuerte Profil in der Profiliste angezeigt werden

Extension contributed profile is displayed in the profiles list

iconPath-Unterstützung in Terminaloptionen

Der Standardtyp iconPath wird für TerminalOptions und TerminalExtensionOptions unterstützt, um das Symbol des Terminals festzulegen, das auf der Registerkarte des Terminals angezeigt wird

readonly iconPath?: Uri | { light: Uri; dark: Uri } | ThemeIcon;

Ändern des Titels von Pseudoterminal

Das neue Ereignis Pseudoterminal.onDidChangeName ermöglichte die Steuerung von Pseudoterminal-basierten Terminals

const writeEmitter = new EventEmitter<string>();
const nameEmitter = new EventEmitter<string>();
const pty = {
  onDidWrite: writeEmitter.event,
  open: () => writeEmitter.fire('Type to change the title of the terminal'),
  close: () => {
    /* noop*/
  },
  handleInput: (data: string) => nameEmitter.fire(data)
};
const terminal = vscode.window.createTerminal({
  name: `My Terminal`,
  pty
});
terminal.show();

Ermöglichen Sie Dateisystemanbietern, eine Datei als schreibgeschützt zu deklarieren

Dateisystemanbieter können jetzt einzelne Dateien als schreibgeschützt markieren, indem sie eine neue Eigenschaft permissions auf dem FileStat verwenden und den Wert der Eigenschaft auf FilePermission.Readonly setzen. Schreibgeschützte Dateien sind nicht editierbar.

Hinweis: Wenn alle Dateien als schreibgeschützt behandelt werden sollen, können Sie die bestehende Option isReadonly verwenden, wenn Sie registerFileSystemProvider aufrufen.

Unterstützung von Workspace-URIs in asExternalUri

Die bereits vorhandene API vscode.env.asExternalUri unterstützt jetzt die Verarbeitung von Workspace-URIs. Dies ermöglicht es Erweiterungsautoren, systemweite URIs zu erstellen, die den angegebenen Workspace direkt öffnen.

Zum Beispiel

const uri = await vscode.env.asExternalUri('file:///Users/john/work/code');

Die resultierende uri kann vom Betriebssystem geöffnet werden und VS Code wird diesen Workspace öffnen.

Technik

Fortschritt bei der Unterstützung der Electron-Sandbox

In diesem Meilenstein haben wir das VS Code-Fenster weiterhin für die Aktivierung der Funktionen Sandbox und Kontextisolierung von Electron vorbereitet.

Insbesondere

  • Wir haben Node.js-Abhängigkeiten aus mehr Code entfernt, der im Renderer verwendet wird.
  • Wir haben die vollständige Abschaffung der webview-Nutzung und den Wechsel zu iframe für unsere benutzerdefinierten Ansichten und Editoren weiter untersucht.

Dokumentation

VS Code auf der Build 2021

Wenn Sie die Entwicklerkonferenz Microsoft Build 2021 verpasst haben, können Sie die Sitzungen immer noch on-demand ansehen. Schauen Sie sich den Blogbeitrag Visual Studio Code auf der Build 2021 an, in dem wir eine Liste von Sitzungen zusammengestellt haben, die unserer Meinung nach für VS Code-Benutzer interessant sein werden.

What's New in VS Code Build 2021 session on YouTube

Browser-Debugging

Ein neues Thema Browser-Debugging in VS Code beschreibt die integrierte Debugging-Unterstützung für die Edge- und Chrome-Browser. Sie können VS Code so konfigurieren, dass entweder eine neue Browser-Debugging-Sitzung gestartet (über den Befehl Debug: Link öffnen) oder an einen laufenden Browser angehängt wird.

PyTorch

Es gibt ein neues Thema zur Verwendung des PyTorch Machine Learning Frameworks in VS Code. Im Artikel PyTorch-Unterstützung in VS Code erfahren Sie, wie Jupyter Notebooks mit PyTorch und TensorFlow-Datentypen erweitert werden können.

PyTorch logo

Bemerkenswerte Fehlerbehebungen

  • 71966: Häufiges Einfrieren des gesamten Fensters
  • 85332: Windows: Einfrieren beim Löschen von Dateien
  • 95077: Terminal "Wort"-Linkanbieter unterstützt kein Umbruch
  • 108804: Nicht auf die Auflösung der Shell-Umgebung warten, bevor das Fenster geöffnet wird
  • 120004: Seltsame Buchstabenabstände im integrierten Terminal von VS Code
  • 125035: Der Filtertext der Debug-Konsole sollte über Neuladungen hinweg erhalten bleiben
  • iOS/iPadOS: Es wurden mehrere Fehlerbehebungen für die iOS/iPadOS-Plattform vorgenommen

Vielen Dank

Last but certainly not least, ein großes Danke an die folgenden Personen, die diesen Monat zu VS Code beigetragen haben

Beiträge zu unserer Fehlerverfolgung

Beiträge zu vscode

Beiträge zu vscode-css-languageservice

Beiträge zu vscode-eslint

Beiträge zu vscode-js-debug

Beiträge zu vscode-languageserver-node

  • @yanmofeixi: Mehr Informationen zur Fehlermeldung "Client nicht bereit" hinzugefügt PR #764

Beiträge zu vscode-pull-request-github

Beiträge zu vscode-vsce

Beiträge zu language-server-protocol

Beiträge zu monaco-languages

Beiträge zu monaco-typescript

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