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

März 2020 (Version 1.44)

Update 1.44.1: Das Update behebt dieses Sicherheitsproblem Problem.

Update 1.44.2: Das Update behebt diese Probleme.

Downloads: Windows: x64 | Mac: Intel | Linux: deb rpm tarball snap


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

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. Und für die neuesten Nachrichten, Updates und Inhalte von Visual Studio Code folgen Sie uns auf Twitter @code!

Barrierefreiheit

In diesem Meilenstein erhielten wir großartiges Feedback von unserer Community, das uns geholfen hat, viele Probleme bei der Barrierefreiheit zu identifizieren und zu beheben.

  • Die Diff-Ansicht ist jetzt barrierefreier. Verwenden Sie F7 und ⇧F7 (Windows, Linux Shift+F7), um durch Änderungen im Accessible Diff Viewer zu navigieren, und verwenden Sie die Befehle Stage / Unstage / Revert Selected Ranges, um die aktuelle Änderung zu stagen, zu unstagen oder rückgängig zu machen.
  • Bessere Rollen wurden in unseren Widgets verwendet. Die listbox-Rolle wird für das Suggest-Widget und Quick Pick verwendet, list für statische Listen und document für schreibgeschützte Inhalte wie die Willkommensansicht und die Markdown-Vorschau.
  • Das Verhalten unseres Quick Pick-Widgets wurde optimiert.
  • Die aktuelle CodeLens-Zeile kann jetzt im Quick Pick mit dem Befehl Show CodeLens Commands For Current Line angezeigt werden.

Timeline-Ansicht

Die Timeline-Ansicht ist nun aus der Vorschau heraus und standardmäßig aktiviert. Dies ist eine einheitliche Ansicht zur Visualisierung von zeitbasierten Ereignissen (z. B. Git-Commits, Dateispeicherung, Testläufe usw.) für eine Datei. Die Timeline-Ansicht wird automatisch aktualisiert und zeigt standardmäßig die Timeline für den aktuell aktiven Editor an. Sie können dieses Standardverhalten steuern, indem Sie auf das Augensymbol in der Ansichts-Symbolleiste umschalten. Ähnlich wie andere Ansichten unterstützt auch die Timeline-Ansicht die Suche oder Filterung während der Eingabe.

Die Timeline-Ansicht ist standardmäßig am unteren Rand des Datei-Explorers zusammengeklappt. Durch Auswahl des Trennzeichens der Timeline wird die Timeline-Ansicht erweitert.

Collapsed Timeline view

In dieser Version trägt die integrierte Git-Erweiterung eine Zeitquellenquelle, die den Git-Commit-Verlauf der angegebenen Datei bereitstellt. Die Auswahl eines Commits öffnet eine Diff-Ansicht der von diesem Commit eingeführten Änderungen. Ein Kontextmenü bietet Befehle zum Kopieren der Commit-ID und Kopieren der Commit-Nachricht. Es gibt auch einen neuen Befehl Timeline öffnen im Kontextmenü des Datei-Explorers, um schnell die Timeline für die ausgewählte Datei anzuzeigen.

Hier sehen Sie die Timeline-Ansicht in Aktion

Timeline view

Theme: Dark Amethyst

Zusätzliche Zeitquellen können durch Erweiterungen bereitgestellt werden (obwohl die API noch im Vorschlagsstadium ist) und werden in der einheitlichen Timeline-Ansicht angezeigt. Erweiterungen können auch Menüpunkte zur Timeline-Ansicht und zu einzelnen Zeitpunkten beitragen. Sie können auch einfach auswählen, welche Quellen in der Ansicht enthalten sein sollen.

Workbench

Überarbeitung von Quick Open

Das Quick Open-Steuerelement (⌘P (Windows, Linux Ctrl+P)) verwendete eine ältere Version unseres Baum-Widgets und wurde in dieser Iteration auf die Verwendung unserer neuesten Listensteuerung migriert, die bereits im Rest der VS Code-UI verwendet wird. Funktional sollten Sie keinen Unterschied feststellen können, da alle Befehle wie zuvor funktionieren.

Wir haben diese Gelegenheit genutzt, einige Funktionen hinzuzufügen, die Sie möglicherweise nützlich finden.

Quick Open

Navigation von Dateien zu Symbolen

Sie können nun weiterhin zu den Symbolen eines Dateiergebnisses navigieren, indem Sie einfach @ eingeben. Für die aktuell ausgewählte Datei werden alle Symbole angezeigt und der Editor wird im Hintergrund geöffnet, um das aktive Symbol anzuzeigen. Das folgende Video zeigt auch, dass Sie Symbole nach Kategorie gruppieren können, indem Sie @ mit : gefolgt eingeben.

Quick Open navigate to symbols

Ergebnisse nach Trennung mehrerer Abfragen durch Leerzeichen filtern

Wenn Sie zu viele Ergebnisse für eine Dateisuche erhalten, können Sie nach Eingabe eines Leerzeichens weitere Suchmuster hinzufügen. Sie können beispielsweise die Ergebnisse nach Ordner einschränken, indem Sie <Dateiname> <Ordnername> nacheinander eingeben.

Quick Open filtering

Hinweis: Dies funktioniert auch für den Symbol-Picker des Editors (⇧⌘O (Windows, Linux Ctrl+Shift+O)) und des Arbeitsbereichs (⌘T (Windows, Linux Ctrl+T)). Jeder Text nach einem Leerzeichen wird verwendet, um nach dem Container dieses Symbols zu filtern.

Eingabe bleibt beim Wechseln der Anbieter erhalten

Wenn Sie Quick Open sichtbar lassen und zu einem anderen Anbieter wechseln (z. B. von der Dateisuche zur Symbolsuche), wendet VS Code den eingegebenen Filter an und verwendet ihn für den neuen Anbieter. Dies ermöglicht es Ihnen, die eingegebene Eingabe schnell für die Symbolsuche wiederzuverwenden, wenn sie zuvor für eine Dateisuche verwendet wurde.

Editorverlauf nach zuletzt verwendet sortieren

Eine neue Einstellung "search.quickOpen.history.filterSortOrder": "recency" ermöglicht es Ihnen, den Editorverlauf nach den zuletzt geöffneten Elementen zu sortieren, auch wenn Sie mit der Suche beginnen. Standardmäßig werden die Ergebnisse des Editorverlaufs nach Relevanz basierend auf dem verwendeten Filtermuster sortiert.

Neuer Befehl zum Öffnen des Editors auf der Seite

Ein neuer Befehl workbench.action.alternativeAcceptSelectedQuickOpenItem ermöglicht es Ihnen, eine zusätzliche Tastenkombination hinzuzufügen, um Dateien oder Symbole aus Quick Open auf der Seite zu öffnen. Standardmäßig öffnet Strg+Eingabe (macOS: Cmd+Eingabe) die Datei auf der Seite in einer neuen Editor-Gruppe anstelle der aktuellen.

Verbesserte Anzeige von Erweiterungspaketen

Um Erweiterungspakete in der Erweiterungsansicht zu identifizieren, gibt es jetzt eine Zahlenanzeige, die die Anzahl der im Erweiterungspaket enthaltenen Erweiterungen anzeigt.

Extension Pack number of extensions badge

Theme: GitHub Sharp with Customizations

Die Detailseite der Erweiterung zeigt nun alle im Erweiterungspaket gebündelten Erweiterungen an.

Extension Pack details page showing bundled extensions

Theme: GitHub Sharp with Customizations

Anpassung der Scrollleistenhöhe von Editor-Tabs

Eine neue Einstellung workbench.editor.titleScrollbarSizing ermöglicht es Ihnen, die Größe der Scrollleiste für Editor-Tabs und Breadcrumbs zu erhöhen. Dies erleichtert das Scrollen durch eine lange Liste geöffneter Editoren.

Konfigurieren Sie sie auf large für eine größere Scrollleiste.

Large scrollbar

Datei-Explorer kann versteckte Dateien anzeigen

Wenn eine Datei versteckt ist (über die Einstellung files.exclude), aber geöffnet und im Editor sichtbar ist, wird die Datei im Datei-Explorer zusammen mit ihrer Elternkette angezeigt. Diese Dateien und ihre Eltern werden im Datei-Explorer mit einer gedimmten Farbe dargestellt, solange die Datei im Editor-Bereich sichtbar ist.

Ansicht: Erneut öffnen mit

Der neue Befehl Ansicht: Erneut öffnen mit ermöglicht es Ihnen, die aktuell aktive Datei mit einem anderen benutzerdefinierten Editor neu zu öffnen.

Using the Reopen With command with the custom editor example extension

Sie können diesen Befehl verwenden, um zwischen dem Standard-Texteditor von VS Code und dem benutzerdefinierten Editor zu wechseln oder um zwischen mehreren benutzerdefinierten Editoren für eine Ressource zu wechseln.

Einstellung workbench.editorAssociations

Auch für benutzerdefinierte Editoren ermöglicht die neue Einstellung workbench.editorAssociations die Konfiguration, welcher Editor für eine bestimmte Ressource verwendet wird.

Das folgende Beispiel konfiguriert alle Dateien, die auf .catScratch enden, so dass sie mit dem benutzerdefinierten Texteditor-Beispiel aus unseren Erweiterungsbeispielen geöffnet werden.

"workbench.editorAssociations": [
  {
    "viewType": "catCustoms.catScratch",
    "filenamePattern": "*.catScratch"
  }
]

Fortschrittsanzeige für Ansichten nun auf der Ansicht angezeigt

Wir haben die Fortschrittsanzeige für benutzerdefinierte Ansichten geändert, sodass sie nun auf jeder Ansicht selbst angezeigt wird und nicht mehr am oberen Rand des Ansichtscontainers. Dies ermöglicht eine direktere Verbindung zwischen der langlaufenden Operation und ihrem Fortschritt. Es gibt auch eine neue API-Option für Erweiterungen, um benutzerdefinierte Fortschritte auf Ansichten anzuzeigen.

Hier sehen Sie die Fortschrittsanzeige in der GitLens-Erweiterungsansicht.

View progress indication

Neue Standard-Monospace-Schriftart

Wir haben die Monospace-Schriftart, die in der VS Code-UI verwendet wird, aktualisiert auf

.mac { --monaco-monospace-font: "SF Mono", Monaco, Menlo, Courier, monospace; }
.windows { --monaco-monospace-font: Consolas, "Courier New", monospace; }
.linux { --monaco-monospace-font: "Ubuntu Mono", "Liberation Mono", "DejaVu Sans Mono", "Courier New", monospace; }

Diese Änderung wirkt sich nicht auf die Schriftartauswahl im Editor aus.

Editor

Undo-Stapel beim Wiederöffnen von Dateien beibehalten

VS Code behält nun den Undo/Redo-Stapel einer Datei bei, wenn die Datei geschlossen wird. Wenn die Datei wieder geöffnet wird und ihr Inhalt seit dem Schließen nicht geändert wurde, wird der Undo/Redo-Stapel wiederhergestellt.

Dies ist sehr nützlich, wenn Sie die Anzahl der offenen Editoren mit der Einstellung workbench.editor.limit.value begrenzen oder wenn Sie versehentlich eine Datei schließen, an der Sie gerade arbeiten.

Explizite Reihenfolge für Code-Aktionen beim Speichern

Sie können jetzt editor.codeActionsOnSave als Array von Code-Aktionen festlegen, die in der Reihenfolge ausgeführt werden sollen. Sie können dies verwenden, um sicherzustellen, dass eine bestimmte Code-Aktion immer vor oder nach einer anderen ausgeführt wird, die mit ihr in Konflikt stehen könnte.

Die folgende Einstellung editor.codeActionsOnSave führt immer Organize Imports gefolgt von Fix All aus, sobald Organize Imports abgeschlossen ist.

"editor.codeActionsOnSave": [
    "source.organizeImports",
    "source.fixAll"
]

Verwendung von editor.wordSeparators für "Next Find Match"

Der Befehl Add Selection to Next Find Match (⌘D (Windows, Linux Ctrl+D)) berücksichtigt nun die Einstellung editor.wordSeparators. Zuvor verwendete der Befehl die Wortdefinition, wie sie durch die Sprache der aktuellen Datei definiert wurde.

Debugging

Verbesserungen der Aufrufstapel-Ansicht

Die CALL STACK-Ansicht ist eine komplexe Ansicht, da sie verschiedene Objekttypen (Sitzungen, Prozesse, Threads, Stapelrahmen und Trennelemente) anzeigt und verschiedene Aktionen für verschiedene Typen bereitstellt. Um die Unterscheidung der Objekttypen und das Verständnis ihrer unterstützten Interaktionen zu erleichtern, haben wir mit einigen visuellen Verbesserungen begonnen.

  • Debug-Sitzungen werden jetzt mit einem Symbol versehen.
  • Klickbare Elemente verwenden die Link-Farbe.
  • Kleinere Trenn- und Präsentationselemente.

Call Stack

Neues Symbol für die Debug-Konsole

Wir haben ein neues Symbol für die Debug-Konsole eingeführt und verwenden es auch in der Aktivitätsleiste, wenn die Debug-Konsolenansicht aus dem Panel verschoben wird.

Debug Console icon

Fortschritts-Feedback-UI für Debug-Erweiterungen

VS Code unterstützt nun die "Fortschrittsereignisse", die im letzten Meilenstein für das Debug Adapter Protocol (DAP) vorgeschlagen wurden. Mit Fortschrittsereignissen kann eine Debug-Erweiterung Benutzern Feedback für langlaufende Operationen geben.

Die Debug-UI von VS Code zeigt Fortschritts-Feedback an zwei Stellen an:

  • Als Fortschrittsbalken am oberen Rand der Debug-Ansicht.
  • Als "stille Benachrichtigung", was bedeutet, dass der Fortschritt "stumm" (ohne den Benutzer zu unterbrechen) in der Statusleiste angezeigt wird und durch Anklicken in eine Benachrichtigung geöffnet werden kann. Die Benachrichtigung zeigt detailliertere Informationen an und ermöglicht das Abbrechen der zugrunde liegenden langlaufenden Operation (falls die Operation den Abbruch unterstützt).

Um Flimmern bei kurzen Operationen zu vermeiden, beginnt die Fortschritts-UI erst nach einer Verzögerung von 0,5 Sekunden.

Das folgende Video zeigt die neue Fortschritts-UI für eine (simulierte) langlaufende Operation in Mock Debug (derzeit die einzige unterstützende Debug-Erweiterung). Wir erwarten, dass andere Debug-Erweiterungen die Fortschrittsunterstützung bald übernehmen werden.

Debug progress UI

Code-Vervollständigungsauswahl in der Debug-Konsole

Im letzten Meilenstein haben wir Auswahlkontrolle zur "Vervollständigungs"-Anfrage des Debug Adapter Protocol hinzugefügt. Mit dieser Version unterstützt VS Code die Protokollergänzung vollständig, und eine Debug-Erweiterung kann die Auswahl (oder Einfügeposition) nach dem Einfügen eines Vervollständigungselements anpassen.

Integriertes Terminal

Menüleisten-Mnemonics können das Terminal überspringen

Wenn die neue Einstellung terminal.integrated.allowMenubarMnemonics aktiviert ist, überspringen alle Tastendrücke mit Alt das Terminal, sodass sie vom Schlüsselbindungsmanager von VS Code verarbeitet werden. Dadurch funktionieren alle Menü-Mnemonics auf Kosten von Alt-Hotkeys innerhalb des Terminals. Diese Einstellung ist standardmäßig deaktiviert.

Sprachen

Auto-Import-Stil in JavaScript

Die neue Einstellung javascript.preferences.importModuleSpecifierEnding ermöglicht die Steuerung des Stils von Imports, die VS Codes Auto-Imports verwenden. Dies kann nützlich sein, wenn Sie Code für Plattformen wie Browser schreiben, die native ES6-Module unterstützen.

Mögliche Werte sind:

  • auto - Der Standard. Verwendet die jsconfig des Projekts, um den zu verwendenden Importstil zu ermitteln.
  • minimal - Verwendet Node.js-Stil-Imports. Kürzt Imports für src/component/index.js zu src/component.
  • index - Beinhaltet auch den index-Teil des Pfads. Kürzt src/component/index.js zu src/component/index.
  • js - Verwendet den vollständigen Pfad, einschließlich der Dateierweiterung (.js).

Aufgaben

Schnellerer Task-Quick-Pick

Der Task-Quick-Pick hat zuvor alle Tasks von allen Task-Anbieter-Erweiterungen abgerufen, bevor die Liste der auszuwählenden Tasks angezeigt wurde. Jetzt ruft VS Code keine zusätzlichen Erweiterungsaufgaben ab, bevor der Quick-Pick-Dropdown angezeigt wird, was ihn erheblich beschleunigt. Erweiterungsbeitragsaufgaben werden ebenfalls nur abgerufen, wenn Sie sie anfordern, was den Erweiterungshost entlastet.

Unter den von TypeScript beigesteuerten tsc-Tasks werden diese erst abgerufen, nachdem der Benutzer die TypeScript-Erweiterung ausgewählt hat.

Task Quick Pick

Thema: One Dark Pro

Vorschau-Funktionen

Vorschau-Features sind noch nicht zur Veröffentlichung bereit, aber funktionsfähig genug, um sie zu nutzen. Wir freuen uns über Ihr frühes Feedback, während sie sich in der Entwicklung befinden.

Einstellungen-Synchronisierung

In den letzten Monaten haben wir daran gearbeitet, die Synchronisierung von VS Code-Einstellungen, Erweiterungen und Tastenkombinationen über verschiedene Maschinen hinweg zu unterstützen. Diese Funktion ist in der Vorschau in der Insiders-Version verfügbar.

In diesem Meilenstein haben wir die Synchronisierung von Benutzersnippets und weiteren UI-Status hinzugefügt.

Settings Sync configuration

Theme: GitHub Sharp with Customizations

Derzeit werden die folgenden UI-Status synchronisiert:

  • Anzeigesprache
  • Einträge der Aktivitätsleiste
  • Einträge des Panels
  • Layout und Sichtbarkeit der Ansichten
  • Zuletzt verwendete Befehle
  • Benachrichtigungen "Nicht erneut anzeigen"

Hinweis: Derzeit werden nur benutzerdefinierte Sprach-Snippets synchronisiert. Die Unterstützung für globale Snippets wird im nächsten Meilenstein hinzugefügt.

Wir haben auch Remote- und lokale Synchronisierungs-Backup-Ansichten hinzugefügt, um Ihre Daten wiederherzustellen und bei der Fehlerbehebung zu helfen. Sie können diese Ansichten über die Befehle Preferences Sync: Show Remote Backup und Preferences Sync: Show Local Backup aufrufen.

Settings Sync backups view

Theme: GitHub Sharp with Customizations

Weitere Informationen finden Sie in der Dokumentation zu Einstellungen-Synchronisation.

Kontoverwaltung

Erweiterungen, die einen Authentifizierungsanbieter bereitstellen, zeigen nun ihre Konten in einem neuen Kontextmenü Accounts über dem Einstellungen-Zahnrad an. Sie können alle Konten anzeigen, mit denen Sie derzeit angemeldet sind, sich abmelden und vertrauenswürdige Erweiterungen verwalten. Die Anmeldung bei einem Microsoft-Konto von hier aus ist eine weitere Möglichkeit, die Einstellungen-Synchronisation zu starten.

Accounts context menu

Thema: Pop Light mit Anpassungen

Neuer JavaScript-Debugger

In diesem Monat haben wir weitere Fortschritte bei unserem neuen JavaScript-Debugger gemacht. Er ist standardmäßig in Insiders installiert und kann über den Marketplace in VS Code Stable installiert werden. Sie können ihn mit Ihren vorhandenen Startkonfigurationen verwenden, indem Sie die Einstellung debug.javascript.usePreview aktivieren. Hier sind einige neue Funktionen, die in diesem Monat hinzugefügt wurden:

Link-Handling im Debug-Terminal

Sie konnten das Debug-Terminal (Debug: Create JavaScript Debug Terminal) verwenden, um jeden Node.js-Prozess automatisch zu debuggen. Nun behandelt der Debugger auch Links zum Starten des Debuggens Ihres Browsers, wenn Sie Cmd/Strg+Klick auf Links machen, ohne dass eine Konfiguration erforderlich ist.

Animation showing clicking on a link in the debug terminal, Chrome opening, and hitting a breakpoint

Theme: Earthsong, Font: Fira Code

Referenzieren von $returnValue in Watch und Debug-Konsole

Wenn es im Aufrufstapel verfügbar ist, können Sie nun den $returnValue einer Funktion in der Debug-Konsole und in Watch-Ausdrücken referenzieren.

Screenshot showing $returnValue being referenced in the Debug Console and Watch expression

Unterstützung für TypeScript 3.9 Beta

In dieser Iteration haben wir Unterstützung für die neuen TypeScript 3.9 Beta-Funktionen hinzugefügt. Einige Highlights von TypeScript 3.9 sind:

  • Vorschläge für die Direktive // @ts-expect-error.
  • Refactorings, die neue Zeilen und Formatierungen besser beibehalten.
  • Auto-Imports in JavaScript können jetzt gängige JS-Stil-Imports (require(...)) hinzufügen.

Sie können die neuen TypeScript 3.9-Funktionen noch heute ausprobieren, indem Sie die Erweiterung TypeScript Nightly installieren. Bitte geben Sie Feedback und lassen Sie uns wissen, wenn Sie auf Fehler bei der TypeScript 3.9 Beta stoßen!

Erhöhte Flexibilität bei der Platzierung von Ansichten

Seit mehreren Iterationen arbeiten wir daran, die Flexibilität unseres Layouts zu verbessern, indem wir einzelne Ansichten verschieben können. Mit dieser Iteration haben wir nicht nur Funktionen hinzugefügt, sondern auch die Benutzererfahrung optimiert.

Neues Drag-and-Drop-Erlebnis

Das Ziehen und Ablegen von Symbolen der Aktivitätsleiste, Panels und Ansichten innerhalb der Seitenleiste war einfach, aber mehrdeutig. Es war schwierig zu wissen, was genau passieren würde, wenn man eines dieser Elemente ablegte. Das neue Erlebnis zielt darauf ab, die Klarheit zu verbessern und die neuen Funktionen hervorzuheben, die wir dabei ermöglichen.

Unten beginnt der Benutzer mit der Neuanordnung von Ansichten innerhalb der Seitenleiste, gefolgt von der Neuanordnung von Tabs im Panel und Symbolen in der Aktivitätsleiste.

New Drag and Drop experience

Mehrere Ansichten in einem einzigen Panel

Sie können jetzt mehrere Ansichten in einem einzigen Panel haben, um den horizontalen Platz besser zu nutzen. Eine häufige Anforderung ist es, das Terminal gleichzeitig mit der Problems-Ansicht anzuzeigen. Dies ist nun möglich, indem Sie das Terminal in die Problems-Ansicht ziehen, wie unten gezeigt.

Terminal and Problems view side by side

Erstellen neuer Seitenleisten-Gruppen und Verschieben von Panels

Es ist nun möglich, Ansichten in neue Seitenleisten-Gruppen zu verschieben, wodurch ein neuer Symbol-Eintrag in der Aktivitätsleiste erstellt wird. Die integrierten Panels sind keine Ausnahme und können nun in die bestehenden Seitenleisten-Einträge oder in eigene Einträge verschoben werden.

Das nächste Video zeigt, wie der Benutzer das Terminal in die Aktivitätsleiste zieht, was ein Terminal-Symbol und Platz für das Terminal in der Seitenleiste erstellt. Als Nächstes lässt der Benutzer "Output" in der Terminal-Seitenleiste fallen. Schließlich wird "Outline" vom Explorer in die Aktivitätsleiste verschoben und erstellt einen eigenen Seitenbereich für "Outline".

Dragging views into the Activity Bar

Beisteuern eines Ansichtscontainers zum Panel

Wir haben nun alles Notwendige, um einer Erweiterung zu ermöglichen, eine Ansicht direkt zum Panel beizusteuern, ähnlich wie Sie es heute mit der Aktivitätsleiste tun können, wie im Tree View API-Leitfaden dokumentiert. Beachten Sie, dass diese Funktion noch in der Vorschau ist und die Dokumentation der Baumansicht diese Änderungen erst widerspiegeln wird, wenn sie als stabil gelten. Um es jedoch auszuprobieren, können Sie den Snippet in der Dokumentation durch Folgendes ersetzen:

"contributes": {
  "viewsContainers": {
    "panel": [
      {
        "id": "package-explorer",
        "title": "Package Explorer",
        "icon": "media/dep.svg"
      }
    ]
  }
}

Befehle zur Ansichtsverschiebung

Schließlich gibt es neue Befehle, um Ansichten mit der Tastatur zu verschieben und Ihr Layout zurückzusetzen. Der Befehl Ansicht: Fokussierte Ansicht verschieben (workbench.action.moveFocusedView) wurde aktualisiert, um die neuen Funktionen der Iteration zu unterstützen. Der Befehl Ansicht: Position der fokussierten Ansicht zurücksetzen (workbench.action.resetFocusedViewLocation) wurde hinzugefügt, um eine einzelne Ansicht an ihren Standardplatz zurückzusetzen.

Symbole der Aktivitätsleiste für Panel- und benutzerdefinierte Ansichten

Mit der Einführung des flexiblen Layouts gibt es nun dedizierte Symbole für die Standard-Panel-Ansichten, wenn diese in die Aktivitätsleiste verschoben werden. Es gibt auch ein (Standard-)Symbol für benutzerdefinierte Ansichten, wenn mehrere Ansichten kombiniert werden.

Panel view icons

Synchrone Regionen

Wir haben die Spiegelcursor-Funktion, die letzten November eingeführt wurde, mit einer neuen Implementierung namens Synced Regions verbessert. Derzeit ist diese Funktion für HTML verfügbar und Sie können sie auf eine der folgenden Arten ausprobieren:

  • Ausführen des Befehls Symbol beim Tippen umbenennen für ein HTML-Tag (standardmäßig gebunden an ).
  • Aktivieren der Einstellung editor.renameOnType und Verschieben des Cursors auf ein HTML-Tag.

HTML rename on type

Die roten Regionen sind synchrone Regionen. Wie der Name schon sagt, wird jede Änderung in einer Region auf andere Regionen synchronisiert. Sie können diesen Modus verlassen, indem Sie entweder den Cursor aus den Regionen bewegen oder ESC drücken. Zusätzlich beendet das Tippen oder Einfügen von Inhalten, die mit einem Leerzeichen beginnen, in einer beliebigen Region diesen Modus.

Wir freuen uns darauf, eine API bereitzustellen, die dieses Umbenennen beim Tippen für andere Sprachen wie JSX, XML oder sogar lokale Variablen in TypeScript verfügbar machen könnte.

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.

Funktionshighlights in 1.44 sind:

  • Entwicklungscontainer: PR direkt in einen Container auschecken.
  • Entwicklungscontainer: Unterstützung für das Anhängen an Kubernetes-Container.
  • Entwicklungscontainer: Experimentelle Unterstützung für die WSL 2 Docker-Engine.

Sie können sich in den Release Notes zur Remote-Entwicklung über neue Erweiterungsfunktionen und behobene Fehler informieren.

Erweiterungs-Authoring

API für Willkommensinhalte

Bestimmte Ansichten unterstützen nun Willkommensinhalte, die von Erweiterungen beigesteuert werden. Weitere Informationen finden Sie im ursprünglichen Issue. Details zur Verwendung dieser API mit von Erweiterungen bereitgestellten Ansichten finden Sie in der Tree View-Dokumentation.

Diese API wurde wie im letzten Meilenstein vorgeschlagen hinzugefügt und wir haben sie nun finalisiert.

API für semantische Token-Provider

Die API für semantische Token-Provider wurde nun finalisiert.

Themenunterstützung für semantische Token

Farbthemen können nun Regeln schreiben, um semantische Token einzufärben, die von Sprach-Erweiterungen wie TypeScript gemeldet werden.

"semanticHighlighting": true,
"semanticTokenColors": {
    "variable.declaration.readonly:java": { "foreground": "#00ff00" "fontStyle": "bold" }
}

Die obige Regel definiert, dass alle Deklarationen von schreibgeschützten Variablen in Java grün und fett gefärbt werden sollen.

Die Wiki-Seite "Semantic Highlighting" enthält weitere Informationen.

Verbesserungen an TypeScript-semantischen Token

Mehr semantische Token-Typen werden vom TypeScript Language Server zurückgegeben. Farbthemen können diese neuen Token-Typen für das Styling nutzen.

  • Alle Symbole aus der Standardbibliothek von JavaScript erhalten den Modifikator defaultLibrary.
  • Funktionsparameter, die Rückruffunktionen sind, werden als function klassifiziert.

Lesen Sie die README des TypeScript Semantic Highlighting Plugins für einen Überblick über alle semantischen Token-Typen und Modifikatoren, die vom TypeScript-Sprachserver zurückgegeben werden.

Fehlercode des Dateisystems

Wir haben FileSystemError#code hinzugefügt, einen String, der den Fehler identifiziert. Wenn ein Dateisystemfehler über eine seiner Factory-Funktionen erstellt wird, dann ist code der Name dieser Funktion, z. B. FileSystemError.FileNotFound(msg).code === 'FileNotFound'.

Argumente für StatusBarItem.command

StatusBarItem.command akzeptiert nun ein vollständiges Command-Objekt anstelle nur einer Befehls-ID. Dies ermöglicht es Erweiterungen, Argumente an den Befehl zu übergeben, wenn das Statusleisten-Element aktiviert wird.

Benutzerdefinierte Texteditoren

Mit benutzerdefinierten Texteditoren können Erweiterungen den Standardeditor von VS Code durch eine benutzerdefinierte, auf WebViews basierende Ansicht für bestimmte textbasierte Ressourcen ersetzen. Mögliche Anwendungsfälle sind:

  • Vorschau von Assets wie Shader oder .obj-Dateien.
  • Erstellung von WYSIWYG-Editoren für Markup-Sprachen wie XAML.
  • Bereitstellung alternativer, interaktiver Ansichten von Datendateien wie JSON oder CSV.

Die Dokumentation zu benutzerdefinierten Editoren beschreibt, wie die neue API für benutzerdefinierte Texteditoren verwendet wird und wie Sie sicherstellen können, dass Ihr neuer Editor gut mit VS Code zusammenarbeitet. Schauen Sie sich auch das Beispiel für Erweiterungen für benutzerdefinierte Editoren an.

The custom editor example extension

In der nächsten Iteration hoffen wir, den vollständigen Vorschlag für benutzerdefinierte Editoren zu finalisieren, der benutzerdefinierte Editoren auch für Binärdateien unterstützt.

Ansichtsbezogene Fortschrittsanzeige

Wir haben eine neue Option zur ProgressOptions.location der window.withProgress-API hinzugefügt, um den Fortschritt auf einer bestimmten Ansicht anzuzeigen. Zur Verwendung setzen Sie ProgressOptions.location = { viewId: <view-id> };, wobei <view-id> die ID der Ansicht angibt, für die Sie den Fortschritt anzeigen möchten. Ein kurzes Video, das dies in Aktion zeigt, finden Sie im Abschnitt Fortschrittsanzeige für Ansichten oben.

Kontextbedingung "when-clause" für das Kontextmenü der Erweiterungsansicht

Wir haben einen neuen extension-Kontext für die "when"-Klausel zum Kontextmenü der Erweiterungsansicht hinzugefügt, der die Kennung der Erweiterung enthält.

Beispiel

  "extension/context": [
      {
          "command": "gitlens.showSettingsPage",
          "group": "2_configure",
          "when": "extension == eamodio.gitlens && extensionStatus == installed",
      }
  ]

Neue Codicons

Wir haben die folgenden Symbole zur Codicon-Bibliothek hinzugefügt:

  • account
  • bell-dot
  • debug-console
  • library
  • output
  • run-all
  • sync-ignored

New codicons

Dokumentation zum Schreiben von eingebetteten Sprachservern

Das Schreiben eines Sprachservers für eingebettete Programmiersprachen ist aufwendiger als das Schreiben eines einfachen Sprachservers. Angesichts der heutigen Popularität von eingebetteten Sprachen haben wir ein Thema Eingebettete Sprachen zu unserem Abschnitt "Sprach-Erweiterungen" hinzugefügt. Die Dokumentation enthält zwei Beispiele, die die beiden Ansätze zur Erstellung von eingebetteten Sprachservern veranschaulichen: Sprachdienste und Anforderungsweiterleitung. Beginnen Sie mit der Überprüfung der Dokumentation zu eingebetteten Sprachen oder rufen Sie direkt die beiden Beispiele auf:

Debug Adapter Protocol

Neue Fortschrittsereignisse

Wir haben die Unterstützung für die Meldung von Fortschritt im Debug Adapter Protocol (DAP) abgeschlossen. Debug-Adapter können nun Fortschrittsereignisse (progressStart, progressUpdate und progressEnd) an den Frontend-Client senden, um den Fortschritt für langlaufende Debug-Adapter-Operationen anzuzeigen. Das Ereignis progressStart kann als abbrechbar markiert werden, um dem Client eine Abbruch-UI anzuzeigen und eine cancel-Anforderung zu senden. Um Fortschrittsereignisse in einem unterstützenden Debug-Adapter zu aktivieren, muss der Frontend-Client die neue Client-Fähigkeit supportsProgressReporting in der initialize-Anforderung einschließen.

Weitere Details finden Sie in der entsprechenden DAP-Feature-Anforderung. VS Code unterstützt Fortschrittsereignisse ab diesem Meilenstein.

Clipboard-Kontextwert für die "evaluate"-Anforderung

DAP-Clients (Frontends) verwenden die evaluate-Anforderung beim Kopieren von Variablen- und Ausdruckswerten in die Zwischenablage. Um Debug-Adapter bei der Erkennung dieses Szenarios zu unterstützen, wurde ein neuer Wert clipboard zur Wertemenge für das Argument context hinzugefügt, das an die evaluate-Anforderung übergeben wird. Um die Abwärtskompatibilität zu gewährleisten, darf ein Client den neuen Wert nur übergeben, wenn der Debug-Adapter eine supportsClipboardContext-Fähigkeit zurückgibt.

Language Server Protocol

Eine neue Version (0.5.0) der Spezifikation des Language Server Index Format wurde veröffentlicht. Die Version unterstützt die Verknüpfung von Referenzergebnissen über Projektdumps hinweg mithilfe von Monikern. Darüber hinaus wurden neue Versionen der LSP-Client- (6.2.0-next.2) und Server-Bibliotheken (6.2.0-next.2) veröffentlicht.

Vorgeschlagene Erweiterungs-APIs

Jeder Meilenstein bringt neue vorgeschlagene APIs mit sich, und Erweiterungsautoren können sie ausprobieren. Wie immer freuen wir uns über Ihr Feedback. So probieren Sie eine vorgeschlagene API aus:

  • 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.

Beachten Sie, dass Sie keine Erweiterung veröffentlichen können, die eine vorgeschlagene API verwendet. Möglicherweise gibt es in der nächsten Version Breaking Changes, und wir möchten niemals bestehende Erweiterungen brechen.

Diese neue API ermöglicht es Erweiterungen, Links abzufangen und zu behandeln, auf die im Terminal geklickt wird.

window.registerTerminalLinkHandler({
  handleLink((terminal, link) => {
    if (link === 'https://visualstudiocode.de') {
      window.showInformationMessage('Handled');
      return true;
    }
    return false;
  });
});

Beisteuern zu Terminal-Umgebungen

Diese neue API ermöglicht es Erweiterungen, Umgebungsvariablen zu ändern, wenn das Terminal gestartet wird.

const collection = window.getEnvironmentVariableCollection(true);
const separator = process.platform === 'win32' ? ';' : ':';
collection.prepend('PATH', `/foo${separator}`);
collection.replace('JAVA_HOME', '/bar');

Diese Sammlungen sind erweiterungs- und arbeitsbereichsspezifisch, und VS Code regelt den Umgang mit Konflikten zwischen mehreren Erweiterungen. Sie können optional über Fensterneustarts hinweg beibehalten werden, und es wurde darauf geachtet, dass dies so geschieht, dass Terminals, die unmittelbar nach dem Laden des Fensters erstellt werden, nicht auf den Start des Erweiterungs-Hosts warten müssen, sondern stattdessen die zuletzt bekannte Version verwenden. Diese gespeicherten Sammlungen können durch Entsorgen der Sammlung oder Erstellen einer neuen nicht persistenten Sammlung entfernt werden, oder wenn die Erweiterung deinstalliert wird.

Der Plan ist, diese Umgebungsvariablenänderungen dem Benutzer über eine Anzeige zugänglich zu machen, die die Aktualisierung von "veralteten" Terminalumgebungen ermöglicht. Dies ist jedoch noch in Arbeit. Sie können die Diskussion in Issue #46696 verfolgen.

Browserunterstützung

Remote-Indikator

Bei der Verwendung von VS Code in einem Browser gibt es jetzt einen Remote-Indikator. Dieser zeigt Ihnen an, mit welcher Remote-Umgebung Sie verbunden sind, und ermöglicht es Erweiterungen, zusätzliche Befehle hinzuzufügen, die mit der Remote-Umgebung verknüpft sind. Mit dieser Änderung wurde der Link In Desktop öffnen aus der Statusleiste entfernt und wird in den Remote-Picker verschoben.

Hinweis: VS Code unterstützt derzeit keine Verbindung zu einer anderen Remote-Umgebung – wie z. B. SSH, einem Container oder WSL – aus dem Browser heraus.

Web remote indicator

Ein neuer Menüpunkt ermöglicht es Erweiterungen, die im Browser ausgeführt werden, Links zum Hamburger-Menü oben links beizusteuern.

Web navigational links

Technik

VS Code kompiliert zu ES6

VS Code hat ES6 vollständig übernommen. Dank TypeScript verwenden wir schon lange ES6-Syntax, aber wir gehen jetzt davon aus, dass die Ziel-Laufzeitumgebung auch ES6 unterstützt. Dies ermöglicht uns die Verwendung von ES6-"Globals" wie Strings#endsWith und die Nutzung neuer Sprachfeatures wie Generatorfunktionen und Symbole.

Automatisierte Issue-Triage mit GitHub Actions

In dieser Iteration haben wir unsere bestehenden Triage-Automatisierungen von der Verwendung von GitHub Apps auf GitHub Actions umgestellt. Dies brachte einige schöne Vorteile mit sich, wie z. B. die Protokolle im Repository vscode und eine Steigerung der Entwicklungsgeschwindigkeit. Zusätzlich haben wir mehrere neue Automatisierungen hinzugefügt, wie z. B. eine Action, die Issue-Autoren benachrichtigt, wenn Fixes in VS Code Insiders übernommen werden, sodass Autoren schnell überprüfen können, ob Fixes wirksam sind.

Der vollständige Satz von Actions, die wir verwenden, wird unter einer MIT-Lizenz auf GitHub veröffentlicht.

Dokumentation und Erweiterungen

Python

Es gibt zwei neue Python-Tutorials

C++

Die Tutorials für die C++-Erweiterung wurden neu geschrieben und es gibt ein neues Tutorial speziell für die Verwendung von C++ unter Linux.

Docker-Erweiterung

Die Version 1.0 der Microsoft Docker-Erweiterung ist jetzt verfügbar. Die Erweiterung kann Docker-Dateien zu Ihrem Projekt hinzufügen, Docker-Images erstellen und debuggen und enthält einen Explorer zum einfachen Starten, Stoppen, Überprüfen und Entfernen von Containern und Images.

Docker extension

Azure-Erweiterungen

Es gibt zwei neue Erweiterungen für die direkte Arbeit mit Azure-Assets innerhalb von VS Code.

  • Azure Virtual Machines – Erstellen Sie Ubuntu Virtual Machines mit vorkonfiguriertem SSH-Zugriff, damit Sie sich mit der Remote-SSH-Erweiterung verbinden können.

  • Azure Resource Groups – Zeigen Sie alle Ihre Azure-Ressourcen an und navigieren Sie schnell zu ihnen in der Azure-Ansicht.

Azure Virtual Machines extension

Bemerkenswerte Fehlerbehebungen

  • 75932: Debuggen konnte nicht geladen werden: Prozess-Picker fehlgeschlagen (Ihre Bildschirmgröße von 131072x1 ist fehlerhaft, erwarten Sie Probleme)
  • 84271: "x" hinzufügen, um eine Datei aus zuletzt geöffneten Elementen zu entfernen (Quick Pick)
  • 89658: Kein Debug-Adapter gefunden
  • 92381: "Ordner zum Arbeitsbereich hinzufügen"-Aufforderung dupliziert sich, wenn Sie einen Ordner wiederholt zum Arbeitsbereich hinzufügen und dann wieder entfernen.
  • 93344: Willkommensansicht sollte scrollbar sein
  • 93634: Fortschritt: Fensterfortschritt in stillen Benachrichtigungsfortschritt umwandeln

Vielen Dank

Nicht zuletzt ein großes Dankeschön! an die folgenden Personen, die dazu beigetragen haben, VS Code noch besser zu machen

Beiträge zu unserer Fehlerverfolgung

Beiträge zu vscode

Unsere Barrierefreiheits-Community für ständiges Feedback! Um nur einige zu nennen

Beiträge zu vscode-vsce

Beiträge zu language-server-protocol

Beiträge zu vscode-languageserver-node

Beiträge zu vscode-generator-code

Beiträge zu vscode-loader

Beiträge zu localization

Es gibt über 800 Cloud + AI-Lokalisierungs-Community-Mitglieder, die die Microsoft Localization Community Platform (MLCP) nutzen, mit über etwa 170 aktiven Mitwirkenden an Visual Studio Code. Wir schätzen Ihre Beiträge, sei es durch die Bereitstellung neuer Übersetzungen, die Abstimmung über Übersetzungen oder die Vorschläge zur Prozessverbesserung.

Hier ist eine Momentaufnahme der Mitwirkenden. Details zum Projekt, einschließlich der Liste der Mitwirkenden, finden Sie auf der Projektseite unter https://aka.ms/vscodeloc.

  • Chinesisch (vereinfacht, China) Tingting Yi, Yizhi Gu, Charles Dong, Justin Liu, Joel Yang, Tony Xia, 朱知阳, meng shao, 普鲁文, paul cheung, 张锐, Yiting Zhu, Nong Zhichao, Liam Kennedy, 武 健, Zhao Liguo, 宁 倬, Bochen Wang, 一斤瓜子, 顺 谭, 云 何, Yun Liu, yungkei fan.
  • Chinesisch (traditionell, Taiwan) 船長, Winnie Lin, 予 恆.
  • Tschechisch David Knieradl.
  • Dänisch (Dänemark) Javad Shafique, Lasse Stilvang.
  • Englisch (Vereinigtes Königreich) Martin Littlecott, Oren Recht, Faris Ansari.
  • Finnisch (Finnland) Teemu Sirkiä.
  • Französisch (Frankreich) Antoine Griffard, Thierry DEMAN-BARCELÒ, Rodolphe NOEL, Nathan Bonnemains.
  • Hebräisch (Israel) Chayim Refael Friedman, Asaf Amitai.
  • Indonesisch (Indonesien) Gerry Surya, Laurensius Dede Suhardiman.
  • Italienisch (Italien) Alessandro Alpi, Riccardo Cappello.
  • Japanisch (Japan) Ikko Ashimine, Aya Tokura, Takayuki Fuwa, ちゃん きさらぎ, 住吉 貴志, Koichi Makino, Yoshihisa Ozaki, TENMYO Masakazu.
  • Koreanisch (Korea) Kyunghee Ko, June Heo.
  • Norwegisch (Norwegen) Torbjørn Viem Ness.
  • Polnisch (Polen) Makabeus Orban, Kacper Łakomski.
  • Portugiesisch (Brasilien) Alessandro Trovato, Marcelo Fernandes, Arthur Lima, Luciana de Melo, Luiz Gustavo Nunes.
  • Portugiesisch (Portugal) Pedro Filipe.
  • Russisch (Russland) Andrey Veselov, Vadim Svitkin, Минаков Антон.
  • Spanisch (Spanien, internationale Sortierung) Sifredo Da Silva, Ariel Costas Guerrero, David Roa, Abdón Rodríguez P., Luis Manuel, Carlos A. Echeverri V.
  • Schwedisch (Schweden) Per Ragnar Edin.
  • Tamil (Indien) krishnakoumar c.
  • Türkisch (Türkiye) Umut Can Alparslan, Mehmet Yönügül.
  • Ukrainisch (Ukraine) Nikita Potapenko.
  • Vietnamesisch (Vietnam) Hieu Nguyen Trung.

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