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

April 2020 (Version 1.45)

Update 1.45.1: Dieses Update behebt die folgenden Issues.

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


Willkommen zur April 2020-Version von Visual Studio Code. Diese Version enthält eine Reihe von Updates, die Ihnen hoffentlich gefallen werden. Hier sind einige der wichtigsten Highlights:

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 haben wir großartiges Feedback von unserer Community erhalten, das uns geholfen hat, viele Barrierefreiheitsprobleme zu identifizieren und zu beheben.

  • Wir haben die Befehle Nächsten Teil fokussieren (F6) und Vorherigen Teil fokussieren (⇧F6 (Windows, Linux Shift+F6)) eingeführt, um die Navigation in der Arbeitsumgebung zu erleichtern.
  • Die Statusleiste ist jetzt barrierefrei und beim Fokussieren können Screenreader ihren Inhalt vorlesen.
  • Angemessene ARIA-Labels wurden für jedes Listen- und Baum-Widget in der Arbeitsumgebung eingeführt, wie z.B. Offene Editoren, Breadcrumbs, Problemansicht und mehr.

Eine der obersten Prioritäten unseres Teams ist es, Visual Studio Code zu einem barrierefreieren Produkt zu machen und die Erfahrungen für jeden Benutzer zu verbessern. Deshalb haben wir einen neuen Gitter-Kanal für VS Code Barrierefreiheit eingerichtet. Wir ermutigen Benutzer, beizutreten und Feedback zu geben, Probleme anzusprechen und Barrierefreiheitspraktiken zu teilen.

Workbench

Tabs per Mausrad wechseln

Wenn Sie mit dem Mausrad über die Editor-Tabs scrollen, können Sie derzeit keine Tabs wechseln, sondern nur außerhalb des sichtbaren Bereichs befindliche Tabs anzeigen. Mit der neuen Einstellung workbench.editor.scrollToSwitchTabs können Sie nun das Verhalten ändern, um den aktiven Editor-Tab zu wechseln.

Wenn der Mauszeiger im Bereich der Editor-Tabs platziert ist und der Benutzer mit dem Mausrad scrollt, wechselt der aktive Editor.

Changing editor tabs using the mouse wheel

Hinweis: Sie können auch die Umschalt-Taste gedrückt halten, während Sie scrollen, um das gegenteilige Verhalten zu erzielen (z. B. können Sie Editor-Tabs wechseln, auch wenn die Einstellung scrollToSwitchTabs deaktiviert ist).

Benutzerdefinierter Fenstertitel-Trennstrich

Eine neue Einstellung window.titleSeparator ermöglicht es Ihnen, das Trennzeichen zu ändern, das im Fenstertitel verwendet wird. Standardmäßig wird ein Bindestrich '-' verwendet.

Window title separator using dash

Aktualisierte Kopfzeilen von Seitenleistenabschnitten für Standardthemen

Wir haben das Styling der Kopfzeilen von Seitenleistenabschnitten für unsere Standard-Dunkel- und -Lichttimemodelle aktualisiert. Wir verwenden jetzt einen transparenten Hintergrund und zeigen eine Umrandung für jede Kopfzeile an.

Unter der Kopfzeile des Abschnitts OFFENE EDITOREN gibt es keine Hintergrundfarbe, und die Kopfzeilen VSCODE und UMRISS haben eine obere Umrandung.

Side Bar section headers

Editor

Schnellere Syntaxhervorhebung

Die Syntaxhervorhebung in VS Code wird durch die Interpretation von Text Mate Grammars ausgeführt. Diese Grammatiken werden mit regulären Ausdrücken erstellt und können mit der oniguruma Regular-Expression-Bibliothek ausgewertet werden. Bisher haben wir zwei verschiedene Bibliotheken zur Auswertung solcher regulärer Ausdrücke verwendet, eine für VS Code Desktop (ein natives Node-Modul) und eine weitere für VS Code im Browser (ein Web-Assembly-Binärdatei).

Wir haben nun eine dedizierte Web-Assembly-Bindung geschrieben, die für die Verwendung durch unseren TextMate-Interpreter optimiert ist. Indem wir Speicherzuweisungen in inneren Schleifen vermeiden und neue APIs nutzen, die erst vor wenigen Monaten zu oniguruma hinzugefügt wurden, konnten wir eine Variante erstellen, die schneller als beide bisherigen Ansätze ist und bis zu 3-mal höhere Leistung bei der Hervorhebung regulärer Programmdateien erzielt. Sie können Pull Request #95958 für weitere Details und Messungen einsehen.

Semantisches Token-Styling

Sie können semantische Theming-Regeln jetzt in Ihren Benutzereinstellungen anpassen. Semantische Farbgebung ist für TypeScript und JavaScript verfügbar, mit Unterstützung für Java und C++ in Entwicklung. Sie ist standardmäßig für integrierte Themes aktiviert und wird von Theme-Erweiterungen übernommen.

Die Einstellung editor.semanticTokenColorCustomizations ermöglicht es Benutzern, die Standard-Theme-Regeln zu überschreiben und das Theming anzupassen.

Semantic token color customization

Die obige Einstellung ändert das Theme Default Dark+. Sie verleiht Parametern einen neuen Stil (kursiv und eine neue Farbe) und unterstreicht alle Symbole aus einer Standardbibliothek (z.B. Promise, Map und deren Eigenschaften).

Das folgende Beispiel fügt allen Themes semantisches Styling hinzu

"editor.semanticTokenColorCustomizations": {
    "enabled": true, // enable semantic highlighting for all themes
    "rules": {
        // different color for all constants
        "property.readonly": "#35166d",

        // make all symbol declarations bold
        "*.declaration": { "bold": true }
    }
}

Das Theming für semantische Tokens wird im Leitfaden zur semantischen Hervorhebung detaillierter erläutert.

Neue Farbe für Konstanten im Standard Dark+ Theme

Die Standard-Themes Dark+ und Light+ färben Konstanten nun in einem anderen Farbton als beschreibbare Variablen.

Beachten Sie unten, dass die Konstanten htmlMode und range eine andere Farbe haben als die Variable result.

Standard Dark+ Theme

Constant color in the Dark+ theme

Standard Light+ Theme

Constant color in the Light+ theme

Persistentes Rückgängigmachen deaktivieren

Im letzten Meilenstein wurde der Rückgängig/Wiederholen-Stapel so geändert, dass er beim Schließen und Wiederöffnen einer Datei gespeichert wird. Nicht jeder wollte diese neue Funktion, daher gibt es jetzt eine Einstellung, files.restoreUndoStack, um das persistente Rückgängigmachen zu deaktivieren.

Integriertes Terminal

Entfernung mehrerer Befehle zur Eingabeaufforderung

Die folgenden Befehle wurden entfernt:

  • workbench.action.terminal.deleteWordLeft
  • workbench.action.terminal.deleteWordRight
  • workbench.action.terminal.deleteToLineStart
  • workbench.action.terminal.moveToLineStart
  • workbench.action.terminal.moveToLineEnd

Diese Befehle funktionierten, indem sie eine bestimmte Zeichensequenz an das Terminal sendeten, was eine Best-Effort-Schätzung war, basierend darauf, welche Tastenkombinationen Terminals verwenden. Das Problem mit diesen Befehlen war, dass sie eine Blackbox waren; man musste den VS Code-Code durchsuchen, um herauszufinden, wie sie funktionierten. Sie wurden durch benutzerdefinierte Tastenkombinationen für den Befehl workbench.action.terminal.sendSequence ersetzt, der dasselbe auf generische Weise tut.

Dies sind erweiterte Tastenkombinationen und können nicht vollständig über die Benutzeroberfläche für Tastenkombinationen eingesehen werden, da sie Argumente enthalten. Sie können jedoch ihre JSON-Definitionen einsehen, indem Sie den Befehl Einstellungen: Standard-Tastenkombinationen (JSON) öffnen ausführen.

Terminal sendSequence keybindings JSON

Unterstützung für das Einfügen von mehrzeiligem Text in PowerShell

Das Einfügen von mehrzeiligem Text funktionierte in PowerShell nie, da VS Code den Text immer auf die gleiche Weise sendete, als würde er getippt werden. Wie oben erklärt, wurden mehrere Tastenkombinationen ausgetauscht, um den Befehl workbench.action.terminal.sendSequence zu verwenden, und Sie haben möglicherweise eine neue Tastenkombination für Windows bemerkt.

{ "key": "ctrl+v",                "command": "workbench.action.terminal.sendSequence",
                                     "when": "terminalFocus && !accessibilityModeEnabled && terminalShellType == 'pwsh'",
                                     "args": {"text":"\u0016"} },

Diese neue Tastenkombination sendet den Text, der Strg+V repräsentiert, direkt an PowerShell, der von PSReadLine aufgegriffen und ordnungsgemäß verarbeitet wird.

Vorher

Terminal paste error before

Nachher

Terminal paste correctly after

Theme: Sapphire (Dim)

Steuerung der Wortauswahl per Doppelklick

Die neue Einstellung terminal.integrated.wordSeparators ermöglicht es Ihnen, die Trennzeichen anzupassen, die zur Abgrenzung eines Wortes beim Doppelklick im Terminal verwendet werden.

Die Standard-Trennzeichen sind

  "terminal.integrated.wordSeparators": " ()[]{}',\"`─"

Debugging

Automatische Debug-Konfigurationen

Das Einrichten des Debuggens in VS Code kann eine entmutigende Aufgabe sein, da ein Benutzer eine neue Debug-Konfiguration erstellen (oder zumindest eine Vorlage an seine Bedürfnisse anpassen) muss. In unserem fortlaufenden Bemühen, die Debugging-Erfahrung zu vereinfachen, haben wir eine neue Funktion hinzugefügt, die Debug-Erweiterungsautoren eine Möglichkeit bietet, das aktuelle Projekt zu analysieren und automatisch qualitativ hochwertige Debug-Konfigurationen anzubieten, die keine zusätzliche Benutzerkonfiguration erfordern.

Ähnlich wie bei Build-Aufgaben werden die automatischen Debug-Konfigurationen unter dem entsprechenden Debugger (Ordnerikone) im Konfigurations-Dropdown der Debug-Ansicht und im Schnellauswahl-Menü **Debuggen auswählen und starten** gruppiert. Sobald der Debugger ausgewählt ist, präsentiert VS Code alle verfügbaren automatischen Konfigurationen. Die Auswahl einer Konfiguration startet eine neue Debugging-Sitzung.

Der folgende Screencast zeigt die Funktion für den neuen JavaScript-Debugger (in der Vorschau) und unser lehrreiches Mock Debug.

Automatic debug configurations

Die Debug-Schnellauswahl kann durch Eingabe von 'debug ' (mit Leerzeichen) in Schnellauswahl (⌘P (Windows, Linux Strg+P)) oder durch Auslösen des Befehls Debug: Debuggen auswählen und starten geöffnet werden.

Im nächsten Meilenstein werden wir eine Benutzeroberfläche hinzufügen, damit eine automatische Debug-Konfiguration einfach zur launch.json hinzugefügt werden kann, um sie weiter zu konfigurieren.

Aufgaben

Schnelle Schnellauswahl deaktivieren

Mit Version 1.44 haben wir den Task-Auswahl-Dialog, der beim Ausführen des Befehls Aufgaben: Aufgabe ausführen angezeigt wird, verbessert, indem wir das Layout geändert und ihn schneller gemacht haben. Die schnellere Schnellauswahl macht den Task-Auswahl-Dialog jedoch zwei Ebenen tief, je nachdem, welche Aufgabe Sie ausführen möchten. Wenn Sie die vorherige Benutzeroberfläche wünschen, können Sie die schnellere Auswahl nun mit der Einstellung task.quickOpen.showAll deaktivieren.

Beim Ausführen speichern

Zuvor wurden alle schmutzigen Editoren immer gespeichert, wenn eine Aufgabe ausgeführt wurde. Wenn Sie nicht möchten, dass Ihre Editoren beim Ausführen einer Aufgabe gespeichert werden, können Sie dieses Verhalten jetzt mit task.saveBeforeRun konfigurieren.

Sprachen

Verbesserungen an der TypeScript-Statusleiste

Wenn Sie sich auf eine TypeScript-Datei konzentrieren, zeigt VS Code die aktuelle TypeScript-Version in der Statusleiste an.

TypeScript version status bar entry

Ein Klick auf die Version öffnet nun Befehle, die für das aktuelle TypeScript-Projekt relevant sind.

TypeScript project commands

Benutzer zur Verwendung der Workspace-Version von TypeScript auffordern

Die neue Einstellung typescript.enablePromptUseWorkspaceTsdk zeigt eine Eingabeaufforderung an, die Benutzer fragt, ob sie zur Workspace-Version von TypeScript wechseln möchten.

Prompt shown when opening a workspace with local TypeScript version

Um die Aufforderung zu aktivieren, fügen Sie "typescript.enablePromptUseWorkspaceTsdk": true und typescript.tsdk als Workspace-Einstellungen für Ihr Projekt hinzu.

Editor-Links in Markdown-Dateien und Links in der Markdown-Vorschau können nun auf Ordner verweisen. Ein Klick auf einen dieser Links öffnet den Zielordner im Datei-Explorer von VS Code.

Quellcodeverwaltung

GitHub-Authentifizierung für GitHub-Repositorys

VS Code verfügt nun über eine automatische GitHub-Authentifizierung gegenüber GitHub-Repositorys. Sie können nun öffentliche und private Repositorys klonen, pushen und von ihnen abrufen, ohne einen Anmeldeinformationsmanager in Ihrem System konfigurieren zu müssen. Selbst Git-Befehle, die im integrierten Terminal aufgerufen werden, z. B. git push, werden nun automatisch gegen Ihr GitHub-Konto authentifiziert.

Sie können die GitHub-Authentifizierung mit der Einstellung git.githubAuthentication deaktivieren. Sie können die Terminal-Authentifizierungsintegration auch mit der Einstellung git.terminalAuthentication deaktivieren.

Git-Commit-Eingabefeld ausblenden

Eine neue Einstellung git.showCommitInput ermöglicht es Ihnen, das Commit-Eingabefeld für Git-Repositorys auszublenden.

Inline-Diff ist jetzt editierbar

Sie können nun innerhalb des Quick-Diff-Editors bearbeiten, wenn Sie Änderungen in einer Datei in der Vorschau anzeigen.

Editable inline diff

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

Wir haben in den letzten Monaten daran gearbeitet, die Synchronisierung von VS Code-Einstellungen über mehrere Maschinen hinweg zu unterstützen, und diese Funktion ist in der Insiders-Version zur Vorschau verfügbar.

Sie können sich jetzt mit Ihrem GitHub-Konto anmelden, um Ihre VS Code-Einstellungen zu synchronisieren.

Settings Sync Sign in with GitHub

Theme: GitHub Sharp with Customizations

Es gibt nun auch Unterstützung für die Synchronisierung von globalen Snippets.

Neuer JavaScript-Debugger

Diesen Monat haben wir weitere Fortschritte bei unserem neuen JavaScript-Debugger gemacht. Er ist standardmäßig in Insiders installiert und kann aus dem 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 diesen Monat hinzugefügt wurden:

Profiling-Unterstützung

Sie können CPU-Profile Ihrer Node.js- oder Browseranwendungen erfassen, indem Sie auf die neue Schaltfläche Profil erstellen in der Aufrufstapelansicht klicken oder den Befehl Debuggen: Leistungsprofil erstellen verwenden. Sobald Sie dies tun, können Sie wählen, wie lange das Profil ausgeführt werden soll: bis Sie es stoppen, für eine bestimmte Zeit oder bis Sie einen weiteren Haltepunkt erreichen.

Nach Beendigung des Profils wird es in Ihrem Arbeitsordner gespeichert und in VS Code geöffnet. Wenn Sie unsere stabile Version ausführen, sollten Sie unsere Visualisierungs-Erweiterung installieren, um es anzuzeigen. In Insiders ist die Erweiterung bereits integriert. Wenn Sie das Profil öffnen, werden Code-Lenses zu Ihren Dateien hinzugefügt, die Performance-Informationen auf Funktionsebene und für bestimmte "heiße" Zeilen enthalten. Im Gegensatz zu Profilen, die in vielen anderen Tools erfasst werden, ist das aufgezeichnete Profil quellenzuordnungsbewusst.

Animation showing the process of taking a profile

Theme: Earthsong, Font: Fira Code

Auto Attach-Integration

Wenn debug.javascript.usePreview aktiviert ist, verwendet der Auto Attach von VS Code eine neue Methode, die von js-debug bereitgestellt wird und es allen Terminals ermöglicht, ähnlich wie das Debug-Terminal zu funktionieren.

Verbesserungen des Auto Attach gegenüber dem bestehenden Debugger

  • Der Debugger wird sofort angehängt, sodass Sie Haltepunkte früh im Programm erreichen können.
  • Untergeordnete Prozesse werden automatisch gedebuggt.
  • Es gibt keine Prozess-Polling-Überlastung während Auto Attach.

Kopieren komplexer Werte aus der Variablenansicht

Zuvor führte der Versuch, komplexe Werte wie Objekte aus der VS Code Variablen-Ansicht zu kopieren, oft zu abgeschnittenen oder unvollständigen Daten. Änderungen in VS Code und js-debug ermöglichen es uns, den vollständigen Wert zu kopieren.

Animation showing copying and pasting a very large array

Produkt-Icon-Themen

Visual Studio Code enthält eine Reihe integrierter Icons, die in Ansichten und im Editor verwendet werden, aber auch in Hovers, der Statusleiste und von Erweiterungen verwendet werden können. Dies sind Produkt-Icons im Gegensatz zu Datei-Icons, die neben Dateinamen in der Benutzeroberfläche angezeigt werden.

Die mit VS Code ausgelieferten Produkt-Icons sind in der Codicon-Schriftart enthalten und werden für das Standard-Produkt-Icon-Thema verwendet. Erweiterungen können nun neue Produkt-Icon-Themen bereitstellen, um diese Icons neu zu definieren und VS Code ein neues Aussehen zu verleihen.

Custom product icon themes

Die Dokumentation zu Produkt-Icon-Themen enthält weitere Details, und es gibt ein Beispiel für Produkt-Icon-Themen.

TypeScript/JavaScript-Symbolsuche über alle geöffneten Projekte hinweg

Wenn Sie TypeScript 3.9+ verwenden, umfasst die Arbeitsbereich-Symbolsuche von VS Code standardmäßig Ergebnisse aus allen geöffneten JavaScript- und TypeScript-Projekten. Zuvor wurde nur das Projekt der aktuell aktiven Datei durchsucht.

Dies wird durch die neue Einstellung "typescript.workspaceSymbols.scope" gesteuert. Um zum alten Verhalten zurückzukehren, setzen Sie: "typescript.workspaceSymbols.scope": "currentProject".

Links im Terminal wurden überarbeitet, wobei das zugrunde liegende System durch eine wesentlich robustere Implementierung ersetzt wurde, die Folgendes ermöglicht:

  • Die Verwendung der Linkerkennung des Editors für eine bessere Erkennung von Web- und file://-Links.
  • Unterstützung für Ordnerlinks, die den Ordner im Explorer öffnen oder ein neues VS Code-Fenster öffnen.
  • Unterschiedliche Linkaktionen für verschiedene Linktypen, wobei auf "Wort"-Links zurückgegriffen wird, die im Arbeitsbereich suchen (basierend auf der Einstellung terminal.integrated.wordSeparators).
  • Ähnliche Link-Hervorhebung und Hover-Erfahrung wie im Editor.

Terminal with various links

Theme: Topaz (Dim)

Eine Liste bekannter Probleme finden Sie in dieser Abfrage.

Dynamische Ansichts-Icons und Titel

In diesem Meilenstein haben wir die Arbeit zur flexibleren Gestaltung des Layouts fortgesetzt. Das Verschieben von Ansichten in der Arbeitsumgebung ermöglicht es Ihnen, neue Icons in der Aktivitätsleiste oder neue Tabs im Panel zu erstellen. Um besser zu verstehen, was sich in einem dieser neu erstellten Ansichtscontainer befindet, haben wir die Logik so aktualisiert, dass sie leichter verständlich ist.

Wenn Sie einen benutzerdefinierten Container haben, erben wir nun den Titel und das Icon von der ersten sichtbaren Ansicht. Dies ermöglicht es Ihnen, ihn durch Umordnen der Ansichten zu ändern. Für Container, die integriert sind oder von Erweiterungen stammen, versuchen wir, dieses Icon so lange wie möglich beizubehalten. Unten, wenn eine neue Ansicht am oberen Rand des Ansichtscontainers platziert wird, werden ihr Icon und Titel aktualisiert.

Dynamic icons and titles

Schließlich können Sie nun Ihre benutzerdefinierten Container mit allen enthaltenden Ansichten in einer Bewegung verschieben. Das kurze Video unten zeigt das Ziehen einer Kombination aus Terminal- und Ausgabeansicht in die Aktivitätsleiste.

Moving whole View Containers

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.

Feature-Highlights in 1.45 umfassen:

  • Entwickler-Container: Empfehlungen zur Containerkonfiguration.
  • Entwickler-Container: Unterstützung für WSL 2 Docker- und Podman-Engines.
  • Entwickler-Container: Neue devcontainer.json-Variablen für lokale und Container-Ordner.

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

GitHub Pull Requests und Issues

Die früher als "GitHub Pull Requests" bezeichnete GitHub Pull Requests and Issues-Erweiterung ermöglicht es Ihnen seit über einem Jahr, Pull Requests innerhalb von VS Code zu verwalten und zu überprüfen. Jetzt wurde die Erweiterung um die Unterstützung für GitHub Issues erweitert.

Die Issue-Unterstützung umfasst:

  • Hovers für #-referenzierte Issues und @-erwähnte Benutzer.
  • Inline-Vervollständigungsvorschläge für Issues und Benutzer.
  • Eine Issues-Ansicht, in der Sie benutzerdefinierte Abfragen verwenden können.
  • Eine Aktion zum Beginnen der Arbeit an einem Issue, die einen Branch erstellt und die Commit-Nachricht ausfüllt.

Es gibt auch neue Repository-Unterstützung:

  • Klonen eines Repositorys mithilfe eines Remote-Quellanbieters.
  • Veröffentlichen eines Repositorys auf GitHub.

Das kurze Video unten illustriert die Veröffentlichung in einem neuen privaten Repository auf GitHub, mit der Option, das Repository auf GitHub zu durchsuchen, nachdem die Dateien erfolgreich hochgeladen wurden.

Publish repository

Weitere Informationen finden Sie im aktuellen Blogbeitrag zur GitHub Issues-Integration und in der Dokumentation Arbeiten mit GitHub.

GitHub Issue Notebook

Das VS Code-Team arbeitet an nativer Unterstützung für Notebooks. Die heute am weitesten verbreiteten Notebooks sind Jupyter Notebooks, und bei deren Untersuchung haben wir uns nach Möglichkeiten umgesehen, eine Notebook-Lösung zu entwickeln, die unabhängig ist und verschiedene Notebook-Stile unterstützt.

Eines dieser Notebooks ist die GitHub Issue Notebooks-Erweiterung, mit der Sie Issue- und Pull-Request-Suchen verwalten und Ergebnisse inline rendern können.

GitHub Issue Notebook

Diese Erweiterung befindet sich noch in der Entwicklung und funktioniert nur mit VS Code Insiders, aber damit können Sie Notebooks aus erster Hand erleben und uns Feedback geben.

Erweiterungs-Authoring

Neue Theme-Farben für Editor-Tabs

Neue Farben wurden hinzugefügt, um die Editor-Tabs der Arbeitsumgebung weiter thematisieren zu können.

  • tab.unfocusedInactiveBackground: Hintergrundfarbe eines inaktiven Tabs in einer nicht fokussierten Gruppe
  • tab.hoverForeground: Vordergrundfarbe eines Tabs beim Überfahren mit der Maus
  • tab.unfocusedHoverForeground: Vordergrundfarbe eines Tabs in einer nicht fokussierten Gruppe beim Überfahren mit der Maus

Neue Theme-Farbe für die Umrandung des Editor-Titels

Die vorhandene Farbe editorGroupHeader.tabsBorder wurde geändert, um eine Umrandung unter den Editor-Tabs, aber über den Breadcrumbs zu rendern. Eine neue Farbe editorGroupHeader.border ermöglicht es Ihnen, eine Umrandung unter dem Editor-Gruppenkopf (z.B. unter Breadcrumbs, falls aktiviert) zu rendern, um das vorherige Verhalten von editorGroupHeader.tabsBorder wiederherzustellen.

Außerbetriebnahme und Archivierung des vscode NPM-Moduls

Im Juni 2019 haben wir das vscode-Modul in @types/vscode und vscode-test aufgespalten, im Lichte des event-stream-Vorfalls. Heute hat eine Sicherheitswarnung für minimist Sicherheitswarnungen für Erweiterungen verursacht, die immer noch von vscode abhängen, welches von mocha@5.2.0 und daher minimist@0.0.8 abhängt. Leider erhält mocha@5.2.0 keine Updates mehr und ein Upgrade auf eine neue mocha-Version würde bestehende Funktionalitäten brechen.

Wir haben eine neue Version von vscode veröffentlicht, die einige unnötige Abhängigkeiten entfernt. Wir haben auch das Repository archiviert und das vscode-Modul auf NPM als veraltet markiert. Bitte migrieren Sie zu @types/vscode und vscode-test.

Neue Completion Item Kinds

Es gibt zwei neue Einträge für vscode.CompletionItemKind, die Issues und Benutzer darstellen. Diese können zum Beispiel verwendet werden, um Benutzernamen vorzuschlagen, wenn TODO-Tags hinzugefügt werden.

Arbeiten mit URIs

Wir haben eine Hilfsfunktion vscode.Uri.joinPath hinzugefügt. Es ist eine Factory-Funktion, die neue URIs erstellt, indem Pfadsegmente mit einem vorhandenen URI verbunden werden. Denken Sie daran wie an die path.join-Hilfsfunktion von Node.js, aber für URIs.

Für Erweiterungen gibt VS Code die URI preis, unter der Erweiterungen installiert sind, über Extension.extensionUri und über ExtensionContext.extensionUri. Mit der Join-Hilfsfunktion können Sie jetzt URIs für Ressourcen Ihrer Erweiterung erstellen.

Zum Beispiel

const fileUri = vscode.Uri.joinPath(context.extensionUri, './file.png');
const bytes = await vscode.workspace.fs.readFile(fileUri);

debug/callstack/Kontextmenü Inline-Gruppe

VS Code unterstützt nun Beiträge zur debug/callstack/context-Menügruppe inline. Befehle, die zu dieser Gruppe beitragen, werden inline im Aufrufstapel gerendert, wenn ein Benutzer über das Debug-Sitzungselement fährt.

Call Stack inline contribution

Neue Debug-Theme-Farben

Es gibt neue Farben für das Styling der Debug-Ansicht:

  • debugView.exceptionLabelForeground: Vordergrundfarbe für eine Bezeichnung in der CALL STACK-Ansicht, wenn der Debugger bei einer Ausnahme stoppt.
  • debugView.exceptionLabelBackground: Hintergrundfarbe für eine Bezeichnung in der CALL STACK-Ansicht, wenn der Debugger bei einer Ausnahme stoppt.
  • debugView.stateLabelForeground: Vordergrundfarbe für eine Bezeichnung in der CALL STACK-Ansicht, die den Zustand der aktuellen Sitzung oder des aktuellen Threads anzeigt.
  • debugView.stateLabelBackground: Hintergrundfarbe für eine Bezeichnung in der CALL STACK-Ansicht, die den Zustand der aktuellen Sitzung oder des aktuellen Threads anzeigt.
  • debugView.valueChangedHighlight: Farbe, die zur Hervorhebung von Wertänderungen in den Debug-Ansichten (z.B. der Variablenansicht) verwendet wird.
  • debugTokenExpression.name: Vordergrundfarbe für die Token-Namen, die in Debug-Ansichten angezeigt werden (z.B. Variablen- oder Überwachungsansicht).
  • debugTokenExpression.value: Vordergrundfarbe für die Token-Werte, die in Debug-Ansichten angezeigt werden.
  • debugTokenExpression.string: Vordergrundfarbe für Zeichenketten in Debug-Ansichten.
  • debugTokenExpression.boolean: Vordergrundfarbe für Booleans in Debug-Ansichten.
  • debugTokenExpression.number: Vordergrundfarbe für Zahlen in Debug-Ansichten.
  • debugTokenExpression.error: Vordergrundfarbe für Ausdrucksfehler in Debug-Ansichten.

Quellcodeverwaltung

Neues Argument preserveFocus für Befehle zum Öffnen von Ressourcen

Beim Aufrufen des Befehls SourceControlResourceState.command wird ein zusätzliches Argument preserveFocus: boolean übergeben, das es Erweiterungsautoren ermöglicht, eine bessere Benutzererfahrung zu bieten.

Input-Text Mimetype

Der Quellcodeverwaltungs-Input-Text hat nun einen dedizierten Mimetype: text/x-scm-input.

Steuerung der Sichtbarkeit des Input-Feldes

Erweiterungen können nun die Sichtbarkeit des Quellcodeverwaltungs-Input-Feldes für jedes Repository über die Eigenschaft SourceControlInputBox.visible steuern.

Git

Remote-Quellanbieter

Die Git-Erweiterungs-API ermöglicht es nun anderen Erweiterungen, Remote-Quellen bereitzustellen, um am Befehl Git: Klonen teilzunehmen.

Hier ist ein Beispiel von der GitHub Pull Requests and Issues-Erweiterung.

Clone from GitHub

Anmeldeinformationsanbieter

Die Git-Erweiterungs-API wurde erweitert, damit Erweiterungen Authentifizierungsanmeldeinformationen bereitstellen können, um Git-Befehle zu authentifizieren, die gegen HTTPS-Git-Repositorys innerhalb der Arbeitsumgebung und des integrierten Terminals ausgeführt werden.

SignatureInformation.activeParameter

Die neue Eigenschaft activeParameter in SignatureInformation ermöglicht es Ihnen, den aktiven Parameter für jede Signatur einzeln anzugeben. Wenn angegeben, überschreibt dies die Top-Level-Eigenschaft SignatureHelp.activeParameter.

Strict Null-Korrektur für EventEmitter

In VS Code 1.44 und darunter ist das Argument für EventEmitter.fire optional.

// Valid in VS Code 1.44
const emitter = new EventEmitter<number>();

emitter.event((x: number) => console.log(x));

// Calling fire with no argument was valid but resulted in the `x` above being `undefined`
emitter.fire();

Dies verletzte strict null checking, verursachte aber keine Kompilierungsfehler.

In VS Code 1.45 erfordert fire nun ein Argument. Wenn Sie .fire() immer noch ohne Argumente in Ihrem Quellcode aufrufen möchten, verwenden Sie new EventEmitter<void>.

Language Server Protocol

Die Arbeit an der Version 3.16 der Spezifikation hat begonnen. Als erster Schritt wurde die Call Hierarchy-Unterstützung aus dem vorgeschlagenen Zustand entfernt. Bitte beachten Sie, dass die 3.16-Spezifikation noch nicht endgültig ist und sich je nach Feedback noch ändern kann.

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.

Beitrag zu Terminal-Umgebungen

Diese neue vorgeschlagene API wurde letzten Monat eingeführt, damit Erweiterungsautoren zu Terminal-Umgebungen beitragen können. Diesen Monat wurde hauptsächlich die Benutzeroberfläche für diese Funktion angewendet und sie wurde verfeinert. Es gibt nun ein Warnsymbol, wenn ein Terminal eine "veraltete" Umgebung hat, die einen reichhaltigen Hover-Text anzeigt, der erklärt, was sich ändern wird, und eine praktische Aktion Terminal neu starten enthält. Ein Informationssymbol ist auch verfügbar, wenn Änderungen aktiv sind, dies ist jedoch standardmäßig deaktiviert.

Terminal stale environment warning

Bereitstellung von Debug-Konfigurationen dynamisch

Wir haben die Debug-Erweiterungs-API aktualisiert, um Debug-Erweiterungsautoren eine Möglichkeit zu geben, Debug-Konfigurationen dynamisch basierend auf Informationen im Arbeitsbereich oder Projekt hinzuzufügen. Diese Debug-Konfigurationen werden an denselben UI-Orten angezeigt, an denen statische Debug-Konfigurationen aus der launch.json angezeigt werden.

In dieser Version werden dynamische Debug-Konfigurationen im Konfigurations-Dropdown der Debug-Ansicht und in der Schnellauswahl Debuggen auswählen und starten angezeigt. In einer zukünftigen Version erwägen wir, sie auch in der "Willkommens"-Ansicht anzuzeigen.

Die neue API basiert auf der Methode provideDebugConfigurations des vorhandenen DebugConfigurationProvider. Bis zu dieser Version wurde provideDebugConfigurations von VS Code aufgerufen, um die anfänglichen "statischen" Debug-Konfigurationen bereitzustellen, die in eine neu erstellte launch.json kopiert werden. Mit der neuen API kann ein DebugConfigurationProvider nun über vscode.debug.registerDebugConfigurationProvider für den "dynamischen" Fall registriert werden, indem der Wert DebugConfigurationProviderTriggerKind.Dynamic an das neue optionale Argument triggerKind übergeben wird. Mit dieser neuen Registrierung ruft VS Code die Methode provideDebugConfigurations auf, wann immer die Liste aller Debug-Konfigurationen in der Benutzeroberfläche angezeigt werden soll.

Um Erweiterungen, die diese neue API nutzen, rechtzeitig zu aktivieren, wurde ein neues Aktivierungsereignis onDebugDynamicConfigurations:<debug type> eingeführt. Der <debug type> ist obligatorisch und gibt an, für welchen Debugger die dynamischen Debug-Konfigurationen angegeben sind.

Ein Anwendungsbeispiel finden Sie in Mock Debug.

Binary Custom Editor API

Wir haben diese Iteration damit verbracht, die vorgeschlagene API für binäre benutzerdefinierte Editoren zu überarbeiten, um sie für die Stabilisierung vorzubereiten. Zur Erinnerung: Benutzerdefinierte Editoren ermöglichen es Erweiterungen, ihre eigene Benutzeroberfläche anstelle des normalen Texteditors von VS Code bereitzustellen. Wir haben die Unterstützung für benutzerdefinierte Editoren für textbasierte Dateien bereits stabilisiert. Die vorgeschlagene API erweitert benutzerdefinierte Editoren auf binäre Dateiformate wie Bilder oder Hex-Dumps.

A custom editor for binary files

Wir bitten um Ihr Feedback zu dieser API, damit wir sie hoffentlich in der nächsten Iteration finalisieren können. Sehen Sie sich das Beispiel für eine benutzerdefinierte Editor-Erweiterung an, um eine Beispielimplementierung eines benutzerdefinierten Editors für Binärdateien zu überprüfen. Die Dokumentation zur Custom Editor API behandelt jetzt auch benutzerdefinierte Editoren für Binärdateien.

Bitte lassen Sie uns wissen, ob diese API für Sie funktioniert oder ob Sie Probleme bei der Implementierung Ihres benutzerdefinierten Editors haben.

Technik

Native Iteratoren

Wir verwenden jetzt native ES6-Iteratoren, um die Leistung zu steigern. Weitere Details finden Sie in Issue #94540.

Kompilierungs-Daemon

Dank des deemon-Tools führen wir unseren Selfhost-Kompilierungs-Task als Hintergrundprozess aus: Er bleibt auch dann aktiv, wenn VS Code neu gestartet wird.

Automatisierte Issue-Klassifizierung

Im Rahmen unserer fortlaufenden Arbeit, unseren Issue-Triaging-Flow auf GitHub Actions zu verlagern, haben wir Actions zur automatischen Issue-Klassifizierung erstellt. Diese Actions laden automatisch alle unsere Issues herunter und generieren Machine-Learning-Modelle, um Issues planmäßig in Feature-Bereiche zu klassifizieren. Die vollständige Implementierung all unserer Actions finden Sie in unserem Repository GitHub Triage Actions.

Neue Dokumentation

Docker Compose

Es gibt ein neues Thema zu Docker Compose, das erklärt, wie die Docker-Erweiterung von Microsoft Ihnen helfen kann, Docker Compose-Dateien zu Ihren Projekten hinzuzufügen, um einfach mit mehreren Docker-Containern zu arbeiten.

Java-Themen

Die Java-Themen wurden aktualisiert und enthalten neue Themen zu Linting und Refactoring von Java-Quellcode unter Verwendung der Java-Erweiterungen.

GitHub

Mit der erweiterten GitHub-Integration gibt es ein neues Thema Arbeiten mit GitHub, das zeigt, wie Sie GitHub innerhalb von VS Code nutzen können.

Bemerkenswerte Fehlerbehebungen

  • 46886: Breakpoints-Bereich in der Debug-Seitenleiste kann nicht in der Größe geändert werden
  • 85344: Firefox stürzt ab, wenn ich auf einen Link in VSCode klicke.
  • 86425: Integriertes Terminal zu schmal
  • 90714: Einstellung für die Schriftgröße der Debug-Konsole auf das Eingabefeld anwenden
  • 90734: Windows Terminal als externes Terminal wird nicht im Arbeitsbereichsverzeichnis gestartet
  • 93973: [SSH] Auto Reveal in Side Bar funktioniert nicht
  • 94574: Zentrierte Layout: Volle Breite nutzen, wenn der Diff-Editor angezeigt wird
  • 94982: Bash-Debugging startet nicht mit Version 1.44.0
  • 95108: serverReadyAction debugWithChrome funktioniert plötzlich nicht mehr
  • 95319: getWordRangeAtPosition kann den Extension Host einfrieren

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

Beiträge zu vscode-json-languageservice

Beiträge zu vscode-html-languageservice

Beiträge zu language-server-protocol

Beiträge zu debug-adapter-protocol

Beiträge zu vscode-generator-code

Beiträge zu vscode-textmate

Beiträge zu vscode-vsce

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, 予 恆, TingWen Su.
  • 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.
  • Ungarisch Bucsai László.
  • 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, Karol Szapsza.
  • Portugiesisch (Brasilien) Alessandro Trovato, Marcelo Fernandes, Arthur Lima, Luciana de Melo, Luiz Gustavo Nunes.
  • Portugiesisch (Portugal) Pedro Filipe, António Pereira.
  • Russisch (Russland) Andrey Veselov, Vadim Svitkin, Минаков Антон.
  • Spanisch (Spanien, International Sort) Sifredo Da Silva, Ariel Costas Guerrero, David Roa, Abdón Rodríguez P., Luis Manuel, Carlos A. Echeverri V, A. Jesus Flores A., Ricardo Estrada Rdez, Alfonso Jesus Flores.
  • 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, igor oleynik.
  • Vietnamesisch (Vietnam) Hieu Nguyen Trung, LN Quang.

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