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

April 2022 (Version 1.67)

Update 1.67.1: Das Update behebt dieses Sicherheitsproblem.

Update 1.67.2: Das Update behebt diese Probleme.

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


Willkommen zur April 2022-Version von Visual Studio Code. Diese Version enthält viele Updates, 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 die Release Party an: Hören Sie zu, wie das VS Code-Team einige der neuen Funktionen bespricht. Die Aufzeichnung der Veranstaltung finden Sie in unserem YouTube-Kanal.

Highlights kurz: Wenn Sie nur 60 Sekunden Zeit haben, sehen Sie sich das Video mit den VS Code Release Highlights im April an, um schnell zu sehen, was es Neues gibt.

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

Explorer-Dateinistung

Der Explorer unterstützt nun die Verschachtelung verwandter Dateien basierend auf ihren Namen. Es gibt mehrere Einstellungen, um dieses Verhalten zu steuern.

  • explorer.fileNesting.enabled - Steuert, ob die Dateinistung generell aktiviert ist. Dies kann global oder für einen bestimmten Arbeitsbereich festgelegt werden.
  • explorer.fileNesting.expand - Steuert, ob verschachtelte Dateien standardmäßig erweitert werden.
  • explorer.fileNesting.patterns - Steuert, wie Dateien verschachtelt werden. Die Standardkonfiguration bietet intelligente Verschachtelung für TypeScript- und JavaScript-Projekte, aber Sie werden ermutigt, dies an die Struktur Ihres eigenen Projekts anzupassen. Einige Beispiele:

Standardkonfiguration

.js and .min.js files nested under .ts file, tsconfig.test.json nested under tsconfig.json, package-lock.json nested under package.json

Verschachtelung unter index.ts, wenn eine Datei mit dem Verzeichnisnamen übereinstimmt ("index.ts": "${dirname}.ts")

in directory named SomeFolder, SomeFolder.ts is nested under index.ts

Verschachtelung von Dateien, die denselben Namen wie eine andere Datei haben, aber mit einem zusätzlichen Segment ("*": "${basename}.*.${extname}")

file1.test.myext is nested under file1.myext, file2.spec.other is nested under file2.other

Theme: GitHub Light High Contrast

Dateinistung ist seit mehreren Iterationen über eine experimentelle Einstellung verfügbar. Das Verhalten ist jetzt größtenteils unverändert, mit Ausnahme von Dateioperationen. Die experimentelle Einstellung explorer.experimental.fileNesting.operateAsGroup wurde zugunsten der Behandlung von Nestern als Gruppe im eingeklappten Zustand, ansonsten aber als einzelne Entitäten, entfernt. Das bedeutet, wenn Sie einen ganzen verschachtelten Stapel von Dateien kopieren, ausschneiden, ziehen oder löschen möchten, können Sie das Nest einklappen und es als einzelne Entität bearbeiten. Wenn verschachtelte Elemente erweitert werden, verhält sich die Auswahl wie gewohnt.

Einstellungen-Editor-Suchfilter-Schaltfläche

Das Suchfeld des Einstellungen-Editors enthält nun auf der rechten Seite eine Trichter-Schaltfläche. Durch Klicken auf die Schaltfläche wird eine Liste von Filtern angezeigt, die Sie auf die Suchanfrage anwenden können, um die Ergebnisse einzugrenzen.

Thema: Light Pink

Indikator für Sprachefilter im Einstellungen-Editor

Sprachefilter im Einstellungen-Editor ändern nun den Bereichstext, um klarer zu zeigen, auf welche Sprache sich die gefilterten Einstellungen beziehen. Das obige kurze Video zeigt die Anwendung des Markdown-Sprachfilters (@lang:markdown) auf die gefilterten Einstellungen.

Zur Referenz: Wenn ein Sprachfilter angewendet wird, ändert das Ändern des Werts einer Einstellung den Wert dieser Einstellung nur für diese Sprache. Sprachspezifische Einstellungen sind in settings.json nach der Sprachkennung.

  "[markdown]": {
      "editor.wordBasedSuggestions": "off"
  }

Dateien nach Refactoring speichern

Refactorings, wie Umbenennen, modifizieren oft mehrere Dateien und hinterlassen sie mit ungespeicherten Änderungen (dirty). Externe Entwicklungstools erfordern normalerweise, dass diese Dateien gespeichert werden. Um diesen Workflow zu erleichtern, gibt es eine neue Einstellung files.refactoring.autoSave, die standardmäßig auf true gesetzt ist und steuert, ob Dateien, die Teil eines Refactorings waren, automatisch gespeichert werden sollen.

Dirty-Editoren vom Editor-Limit ausschließen

Eine neue Einstellung workbench.editor.limit.excludeDirty steuert, ob die maximale Anzahl geöffneter Editoren "dirty" Editoren vom Zählen für das konfigurierte Limit ausschließt. Die Einstellung ist standardmäßig deaktiviert (false).

Uncommitted Changes zurück zur Timeline

Als wir letzten Monat die Funktion Lokale Historie einführten, entfernten wir den Eintrag **Uncommitted Changes** aus dem Git-Zeitlinienanbieter, da er etwas redundant erschien. Einige Benutzer sehen jedoch einen echten Wert in diesem Zeitlinien-Eintrag, und nun können Sie ihn durch entsprechende Konfiguration der neuen Einstellung git.timeline.showUncommitted zurückbringen.

Neuer Editor-Platzhalter bei fehlerhaftem Öffnen

Wenn ein Editor nicht geöffnet werden kann, zeigt VS Code keine Benachrichtigung mehr an und enthüllt den zuvor geöffneten Editor. Stattdessen gibt es einen generischen Platzhalter mit der Fehlermeldung und in einigen Fällen Aktionen zur Fehlerbehebung.

Verbesserungen der Sprachstatusanzeige

Der Sprachestatus-Eintrag zeigt nun Formatierungs-Konflikte an. Diese treten auf, wenn mehrere Formatierer für eine Sprache installiert sind, aber keiner von ihnen als Standard-Formatierer konfiguriert ist. Außerdem ist der Sprachestatus-Eintrag prominenter, wenn er einen schwerwiegenden Status enthält.

Zusätzlich zeigt der Sprachestatus-Eintrag nun Hinweise zum Wechseln von Sprachen an, wenn Ihr Dokument als eine andere Sprache als die aktuell eingestellte vermutet wird. Dies gilt nur für unbenannte Editoren und Notebook-Zellen und kann mit der Einstellung workbench.editor.languageDetectionHints konfiguriert werden. Unten wird dies im Handy Dandy Notebook demonstriert, das die Ausführung von Zellen in verschiedenen Sprachen unterstützt.

Theme: GitHub Light High Contrast

Ungültige oder inkompatible Erweiterungen anzeigen

Die Erweiterungsansicht zeigt nun ungültige oder inkompatible Erweiterungen in der Liste der **installierten** Erweiterungen mit einem Fehlerstatus an. Wenn Ihre VS Code-Version beispielsweise 1.67.0-insider ist und Sie eine Erweiterung installiert haben, die VS Code-Version 1.68.0 erfordert, wird sie mit dem Status "inkompatibel" in der Liste angezeigt.

Incompatible extension details shown in the Extensions view item hover

Vor dem Beenden bestätigen

Eine neue Einstellung window.confirmBeforeClose kann konfiguriert werden, um vor dem Beenden der Anwendung ein Bestätigungsdialogfeld anzuzeigen.

Sie können entweder keyboardOnly wählen, um das Bestätigungsdialogfeld anzuzeigen, wenn eine Tastenkombination verwendet wird, oder always, auch wenn Sie die Maus zum Beenden verwenden.

Hinweis: Die Einstellung ist nicht völlig neu und war bereits für VS Code für das Web verfügbar.

Standardwert für comments.openView

Der alte Standardwert von comments.openView war file, was dazu führte, dass die Kommentare-Ansicht jedes Mal geöffnet wurde, wenn eine Datei mit Kommentaren geöffnet wurde. Um die Kommentare-Ansicht weniger aufdringlich zu machen, ist der neue Standardwert firstFile, der dazu führt, dass die Kommentare-Ansicht nur beim ersten Öffnen einer Datei mit Kommentaren während einer Sitzung geöffnet wird.

Mehrzeilige Kommentare

Im Hintergrund hat VS Code mehrzeilige Kommentare unterstützt, seitdem die Benutzeroberfläche für Kommentare finalisiert wurde, aber mehrzeilige Kommentare wurden nie in der Benutzeroberfläche angezeigt. Sie können jetzt mehrzeilige Kommentare sehen und hinterlassen.

URI im neuen Fenster behandeln

Wenn ein VS Code-URI einen Query-Parameter windowId=_blank enthält, wird er von VS Code in einem neuen Fenster behandelt. Beispiel: vscode://vscode.git/clone?url=https%3A%2F%2Fgithub.com%2FMicrosoft%2Fvscode-vsce.git&windowId=_blank.

Editor

Klammerpaar-Färbung standardmäßig aktiviert

Angesichts des positiven Feedbacks zur neuen Klammerpaar-Färbungsfunktion, die in der 1.60-Version eingeführt wurde, haben wir die Klammerpaar-Färbung standardmäßig aktiviert.

Side by side comparison with bracket pair colorization on and off

Die Klammerpaar-Färbung kann deaktiviert werden, indem "editor.bracketPairColorization.enabled" auf false gesetzt wird.

Die Klammerpaar-Färbung kann auch nur für bestimmte Sprachen deaktiviert werden

"[typescript]": {
  "editor.bracketPairColorization.enabled": false,
},

TextMate-Grammatiken können Tokens als unausgeglichen markieren

Zuvor konnten TextMate-Grammatiken bestimmte Klammern nicht als unausgeglichen markieren, wie z. B. die schließende Klammer im case-Statement von Shell-Skripten.

Old behavior where unbalanced brackets not detected

Um die Klammerpaar-Übereinstimmung und -Färbung robuster zu machen, können TextMate-Grammatikbeiträge nun ausdrücken, dass Klammern in bestimmten Tokens nicht übereinstimmen sollten. Im Abschnitt contributes der package.json einer Erweiterung können bereitgestellte Grammatiken die Eigenschaften balancedBracketScopes (Standard: ["*"]) und unbalancedBracketScopes (Standard: []) verwenden, um Bereiche für die Klammerübereinstimmung einzuschließen oder auszuschließen.

"grammars": [{
    "language": "shellscript",
    "scopeName": "source.shell",
    "path": "./syntaxes/shell-unix-bash.tmLanguage.json",
    "balancedBracketScopes": [ "*" ],
    "unbalancedBracketScopes": [ "meta.scope.case-pattern.shell" ]
}],

Mit dieser Funktion kann die Grammatik des Shell-Skripts nun anzeigen, dass ) in case-Statements nicht übereinstimmen sollte.

New behavior correctly skipping a bracket that isn't matched

Neuer Algorithmus für Klammerübereinstimmung

Die Klammerübereinstimmung verwendet nun dieselbe Datenstruktur wie die Klammerpaar-Färbung. Dies erhöht sowohl die Genauigkeit als auch die Leistung.

Altes Verhalten der Klammerübereinstimmung (beachten Sie, dass die Farben und die Hervorhebungsdekoration nicht übereinstimmen)

Old behavior with incorrect bracket matching

Neues Verhalten der Klammerübereinstimmung

New behavior with correct bracket matching

Verbesserungen der Klammerführungslinien

Horizontale Klammerführungslinien unterstützen nun korrekt umgebrochene Zeilen. Außerdem erhalten Klammerpaare, die nur eine einzelne Zeile umfassen, ihre eigene horizontale Klammerführungslinie.

Horizontal bracket guides displayed for wrapped lines

Horizontale Klammerführungslinien sind standardmäßig deaktiviert und können mit "editor.guides.bracketPairsHorizontal": true aktiviert werden.

Mit dieser Version akzeptiert "editor.guides.highlightActiveIndentation" nun den Wert "always". Wenn auf always gesetzt, werden Einrückungsführungslinien hervorgehoben, auch wenn bereits ein aktives Klammerpaar vorhanden ist.

Einblendhinweise umschalten

Einblendhinweise sind eine großartige Möglichkeit, zusätzliche Informationen direkt in Ihrem Quellcode anzuzeigen. Manchmal möchten Sie jedoch nur den tatsächlichen Quellcode sehen. Um Einblendhinweise schnell auszublenden, wurde die Einstellung editor.inlayHints.enabled geändert: Zusätzlich zu on und off gibt es auch die Werte onUnlessPressed und offUnlessPressed. Die Werte on/offUnlessPressed blenden Einblendhinweise aus oder ein, während Strg+Alt gedrückt gehalten wird.

Editor › Einblendhinweise: Aktiviert Wert

  • on - Einblendhinweise sind aktiviert.
  • off - Einblendhinweise sind deaktiviert.
  • onUnlessPressed - Einblendhinweise werden mit Strg+Alt angezeigt und ausgeblendet.
  • offUnlessPressed - Einblendhinweise sind mit Strg+Alt ausgeblendet und werden angezeigt.

Verbesserte Inline-Vorschläge

Letzten Monat haben wir die Möglichkeit hinzugefügt, 👻 Geistertext (blasse Einfärbung) für schnelle Vorschläge zu verwenden. Erinnerung: Sie müssen inline für die Einstellung editor.quickSuggestions verwenden. Wir haben in diesem Bereich einige Polierarbeiten durchgeführt, insbesondere werden Triggerzeichen und die "Funktionen mit Argumenten vervollständigen" von TypeScript nun unterstützt.

Um IntelliSense beim Tippen von Triggerzeichen wie . zu deaktivieren, setzen Sie "editor.suggestOnTriggerCharacters": false. Um Funktionsaufruf-Vervollständigungen für TypeScript zu aktivieren, verwenden Sie "typescript.suggest.completeFunctionCalls": true.

Text per Drag & Drop in den Editor ziehen

Sie können nun Text aus anderen Anwendungen per Drag & Drop in einen Texteditor ziehen. Unter macOS können Sie auf diese Weise beispielsweise ein Emoji aus dem Emoji-Panel in einen Texteditor ziehen.

Während des Ziehens zeigt ein gestrichelter Cursor an, wo der Text eingefügt wird.

Terminal

Anzahl der Suchergebnisse

Beim Suchen im Terminal werden die Ergebnisanzahl und der aktuell ausgewählte Trefferindex nun im Suchfeld angezeigt.

Text is searched for in the terminal and the Find control is labeled match 12 of 14 to indicate that match 12 is currently selected

Quellcodeverwaltung

Quellcodeverwaltung Repositories-Ansicht

In diesem Meilenstein haben wir eine neue Einstellung, scm.repositories.sortOrder, eingeführt, um die Standard-Sortierreihenfolge der in der Ansicht Quellcodeverwaltung Repositories angezeigten Repositories zu steuern. Repositories können nach der Reihenfolge ihrer Erkennung, nach Name und nach vollständigem Pfad sortiert werden. Die Sortierreihenfolge kann über das Menü ... Ansichten und weitere Aktionen der Ansicht Quellcodeverwaltung Repositories und das Menü ... > Ansicht & Sortieren > Repositories der Ansicht Quellcodeverwaltung geändert werden.

Das kurze Video unten zeigt, dass die Einstellung SCM > Repositories: Sortierreihenfolge standardmäßig Erkennungszeit, also die Zeit, zu der die Repositories ausgewählt wurden, ist und dass Sie die Sortierreihenfolge auch in den Quellcodeverwaltungsansichten ändern können.

Verbesserungen der Editor-Dekorationen

Im letzten Meilenstein haben wir die Barrierefreiheit von Editor-Dekorationen für hinzugefügte/geänderte Zeilen verbessert, indem wir ein Muster für die Dekorationen geänderter Zeilen übernommen haben. In diesem Meilenstein haben wir eine neue Einstellung, scm.diffDecorationsGutterPattern, hinzugefügt, mit der Benutzer das Muster für die Editor-Dekorationen umschalten können.

Die Einstellung verwendet standardmäßig das Muster für die Dekoration der geänderten Zeile, aber nicht für hinzugefügte.

"scm.diffDecorationsGutterPattern": {
    "added": false,
    "modified": true
}

Leistungsverbesserungen

Benutzer, bei denen die Einstellung git.untrackedChanges auf hidden gesetzt ist, werden bei der Arbeit mit großen Repositories eine bessere Leistung erfahren. Dies wird erreicht, indem der Parameter -uno beim Aufruf von git status übergeben wird.

Erweiterte API für Remote-Quellanbieter

Die Git-Erweiterungs-API ermöglicht es Erweiterungen, die Remote-Quellanbieter registrieren oder anzeigen, reichhaltigere Informationen über Remote-Quellen bereitzustellen.

Remote-Quellanbieter können nun die Beschreibung und das Symbol für einzelne Remote-Quellen festlegen. Zusätzlich können Anbieter optional aktuelle Remote-Quellen angeben. Diese werden auf der obersten Ebene im Picker für einfachen Zugriff angezeigt und nach Zeitstempel sortiert, falls einer angegeben ist.

Die erweiterte API wurde von der integrierten GitHub-Erweiterung sowie den Erweiterungen GitHub Repositories und Azure Repos in github.dev und vscode.dev übernommen.

Klonen von GitHub über SSH

Eine neue Einstellung github.gitProtocol ermöglicht die Änderung des Standardprotokolls beim Klonen eines Repositorys von GitHub. Der Wert ist standardmäßig https, kann aber auf ssh geändert werden.

Debugging

Automatische Erweiterung von Lazy-Variablen

Vor ein paar Monaten haben wir Unterstützung für das Klicken auf eine Schaltfläche hinzugefügt, um "lazy" Variablen in der Variablenansicht des Debuggers zu erweitern. Es gibt eine neue Einstellung, debug.autoExpandLazyVariables, um Lazy-Variablen automatisch ohne Klicken zu erweitern.

Neue Schaltfläche für Lazy-Variablen

Wir haben die Textverknüpfungsschaltfläche zu einer echten Schaltfläche mit dem "Auge"-Codicon aktualisiert. Das "Auge"-Codicon wurde ebenfalls aktualisiert, um augenähnlicher auszusehen.

A button to expand a lazy variable

Umschalttaste + Klick zum Deaktivieren von Haltepunkten

Sie können nun Umschalttaste + Klick auf einen Haltepunkt (oder bedingten Haltepunkt oder Logpoint) klicken, um ihn zu deaktivieren und wieder zu aktivieren.

Sprachen

Sie können nun schnell Markdown-Links erstellen, indem Sie Dateien aus dem VS Code Explorer in einen Markdown-Editor ziehen. Halten Sie die Umschalttaste gedrückt, während Sie die Datei über einen Markdown-Editor ziehen, um sie in den Editor zu ziehen und einen Link dazu zu erstellen.

Wenn die Datei wie ein Bild aussieht, fügt VS Code automatisch ein Markdown-Bild ein. Andernfalls wird ein normaler Markdown-Link hinzugefügt.

Dies funktioniert auch beim Ziehen bestimmter Dateitypen aus anderen Anwendungen, z. B. beim Ziehen und Ablegen von Bildern aus einem Webbrowser.

Sie können dieses Drop-Verhalten deaktivieren, indem Sie "markdown.editor.drop.enabled": false setzen.

Markdown: Alle Referenzen auf Header finden

VS Code unterstützt nun das Ausführen von Alle Referenzen finden in Markdown-Dateien für Header. Dies ermöglicht es Ihnen, alle Stellen zu sehen, an denen ein bestimmter Header im aktuellen Arbeitsbereich verwendet wird, einschließlich Links dazu aus anderen Markdown-Dateien.

Um zu beginnen, platzieren Sie Ihren Cursor entweder auf dem Header selbst oder auf dem Fragmentteil eines Links zum Header (z. B. #some-header in [link text](#_some-header) oder [link text](/path/to/file#some-header)) und führen Sie Alle Referenzen finden aus.

Finding all references to a Markdown header

Dies zeigt alle Referenzen in der Referenzansicht an. Wenn Sie eine andere Ansicht bevorzugen, können Sie auch die Befehle Referenzen anzeigen oder Zu Referenzen wechseln verwenden.

VS Code unterstützt auch das Finden aller Referenzen auf Referenzlinks innerhalb der aktuellen Datei. Dies wird unterstützt für

  • Auf ref in [some text][ref].
  • Auf ref im Kurzlink [ref].
  • Auf ref in der Linkdefinition [ref]: http://example.com.

Finding all places a Markdown link reference is used

Markdown: Alle Referenzen auf Dateien finden

Sie können nun auch alle Referenzen auf eine bestimmte Markdown-Datei im aktuellen Arbeitsbereich finden. Auch hier sind Links zwischen Dateien enthalten.

Dies kann auf verschiedene Arten ausgelöst werden:

  • Um Referenzen auf die aktuelle Markdown-Datei zu finden, verwenden Sie den Befehl Markdown: Datei-Referenzen finden.
  • Um Referenzen auf eine Markdown-Datei im Explorer zu finden, klicken Sie mit der rechten Maustaste darauf und führen Sie den Befehl Datei-Referenzen finden aus.
  • Führen Sie Alle Referenzen finden auf dem Dateiteil eines Links zu einer Markdown-Datei aus, z. B. [text](/link/to/file.md).

Dies listet alle Stellen auf, an denen eine bestimmte Datei referenziert wird, einschließlich Referenzen auf Header innerhalb dieser Datei.

Markdown: Alle Referenzen auf URLs finden

Schließlich unterstützen wir auch das Finden aller Stellen, an denen eine bestimmte URL im aktuellen Arbeitsbereich verwendet wird.

Finding all places where a URL is used in Markdown files

Markdown: Header umbenennen

Haben Sie jemals einen Header in einer Markdown-Datei geändert und dann festgestellt, dass Sie versehentlich alle Links dazu kaputt gemacht haben? Hier kann unsere neue Umbenennungsunterstützung für Markdown helfen.

Um zu beginnen, platzieren Sie Ihren Cursor auf einem Header und drücken Sie dann F2, um mit dem Umbenennen zu beginnen. Geben Sie den neuen Text für den Header ein und drücken Sie dann Enter, um zu bestätigen. Dies aktualisiert sowohl den aktuellen Header als auch alle bekannten Links dazu im aktuellen Arbeitsbereich.

Sie können das Umbenennen auf dem Header selbst oder auf der Header-Komponente eines Links zum Header auslösen. Zum Beispiel some-header in [link text](#_some-header) oder [link text](/path/to/file#some-header).

Sie können auch Referenzlinks in Markdown umbenennen. Dies aktualisiert alle Referenzlinks in der aktuellen Markdown-Datei.

Renaming a Markdown link reference using F2

Markdown: Dateien umbenennen

Abrundend mit unserer neuen Markdown-Umbenennungsunterstützung können Sie nun F2 auf Dateipfade in Markdown-Links anwenden, um sowohl die Datei auf der Festplatte umzubenennen als auch alle Markdown-Referenzen dazu zu aktualisieren.

Renaming a file by pressing F2 on the file path in a link

Das Umbenennen von Dateien wird derzeit nur mit F2 auf einen Link zur Datei im Texteditor unterstützt. In zukünftigen Iterationen planen wir auch, Links zu aktualisieren, wenn ein Umbenennen im Explorer ausgelöst wird.

JSON

Die neue Einstellung json.validate.enable ermöglicht es Ihnen, die JSON-Validierung zu deaktivieren.

VS Code für das Web

Remote-Repository-Auswahl öffnen

VS Code für das Web respektiert nun die Einstellung window.openFoldersInNewWindow, wenn Sie die Auswahl Remote Repository öffnen verwenden. Dies gleicht das Verhalten der Auswahl mit anderen VS Code-Versionen an und ersetzt die Schaltfläche "In neuem Fenster öffnen" im Quick Pick.

Beiträge zu Erweiterungen

Java

Inline-Hinweise

Der Java-Sprachdienst im Extension Pack for Java unterstützt nun Einblendhinweise zur Anzeige von Parameternamen für Methodensignaturen.

Es gibt drei Modi für Java-Parameternamen-Einblendhinweise:

  • literals - Aktiviert Parameternamen-Hinweise nur für literale Argumente (Standard).
  • all - Aktiviert Parameternamen-Hinweise für literale und nicht-literale Argumente.
  • none - Deaktiviert Parameternamen-Hinweise.

Lazy-Variablenauflösung

Die Debugger for Java-Erweiterung unterstützt nun 'lazy' Variablen. Diese Funktion ermöglicht es Ihnen, Operationen für eine aufwendige Variable aufzuschieben, bis Sie die Debugger-Benutzeroberfläche explizit erweitern, um ihren Wert anzuzeigen.

Jupyter

Jupyter PowerToys Erweiterung

Wir freuen uns, die Jupyter PowerToys-Erweiterung anzukündigen, die experimentelle Funktionalität für die Arbeit mit Jupyter-Notebooks bietet. In ihrer ersten Veröffentlichung haben wir folgende Funktionen als Prototyp entwickelt:

  • Kernelverwaltungspanel
  • Kontextbezogene Hilfe
  • Ausführungsgruppierung

Wir würden uns freuen, wenn Sie diese ausprobieren und uns Ihre Meinung mitteilen, damit wir sie eines Tages zu einer unterstützten Funktion weiterentwickeln können!

Weitere Informationen finden Sie im README im vscode-jupyter-powertoys-Repository.

Web-Erweiterung

Die Jupyter-Erweiterung kann nun als Web-Erweiterung für die Verwendung mit vscode.dev installiert werden. Die Funktionalität ist derzeit begrenzt, mit Unterstützung nur für Notebooks (.ipynb-Dateien), die auf Jupyter-Servern ausgeführt werden, die kein HTTPS erfordern.

Wenn Sie mit der Funktionalität experimentieren möchten, starten Sie Jupyter von Ihrem lokalen Computer mit

jupyter --no-browser --NotebookApp.allow_origin_pat=https://.*\.vscode-cdn\.net

Und verbinden Sie sich damit über den Befehl Jupyter: Jupyter-Server für Verbindungen angeben.

In zukünftigen Versionen werden wir weitere Funktionen für die Ausführung im Browser aktivieren, darunter:

  • "HTTPS"-basierte Server
  • IntelliSense
  • Datenansicht
  • Variablenansicht
  • Interaktives Fenster
  • IPyWidgets
  • Plot-Ansicht
  • Exportieren

Jupyter Kernel-Behandlung

Eine Reihe von Updates wurden an der Jupyter-Kernel-Behandlung vorgenommen.

  • Um deutlicher zu machen, wann ein Kernel abgestürzt ist, zeigt die Erweiterung diese Informationen nun in der Zellenausgabe an.
  • Es gibt nun Fehlerbehebungsanleitungen in der Zellenausgabe, wenn bestimmte bekannte Fehler während der Ausführung erkannt werden.
  • Das Beheben von Kernel-Ausführungsproblemen kann ein schwieriger und zeitaufwendiger Prozess sein. Wir haben einen Fehlerbehebungsbereich auf unserer Wiki zusammengestellt, der Ihnen hoffentlich helfen kann, schneller eine Lösung zu finden. Unser GitHub Discussions Forum kann ebenfalls eine großartige Ressource für Hilfe sein.

Python

Kein Neuladen beim Wechseln von Sprachservern

Die Python-Erweiterung unterstützt nun die Aktualisierung des Werts der Einstellung python.languageServer und das automatische Neustarten des Sprachservers, ohne VS Code neu laden zu müssen.

Black Formatter Erweiterung

Es gibt nun eine Black Formatter-Erweiterung, die Formatierungsunterstützung für Python mit dem black-Formatierer bietet. Eine Vorabversion der Erweiterung ist installierbar.

Importorganisation mit isort

Neue isort-Erweiterung, die Importorganisation unter Verwendung der isort-Bibliothek bietet. Eine Vorabversion der Erweiterung ist verfügbar.

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.

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

GitHub Pull Requests und Issues

Die Arbeit an der GitHub Pull Requests and Issues-Erweiterung, die es Ihnen ermöglicht, Pull-Anfragen und Issues zu bearbeiten, zu erstellen und zu verwalten, wird fortgesetzt. Highlights dieser Version sind:

  • Mehrzeilige Kommentare
  • Commit-Änderungen in einem Baum anzeigen

Schauen Sie sich das Changelog für die Version 0.42.0 der Erweiterung an, um weitere Highlights zu sehen.

Vorschau-Features

Einstellungen-Profil

In diesem Meilenstein haben wir Einstellungen-Profil eingeführt, eine Sammlung Ihrer Einstellungen, Erweiterungen und UI-Anpassungen. Wenn Sie VS Code angepasst haben, können Sie nun Ihre Anpassungen in eine Einstellungen-Profil-Datei (mysetup.code-profile) exportieren und auf Ihrem Computer speichern und mit anderen teilen.

Das folgende kurze Video zeigt den Export eines Einstellungen-Profils aus VS Code.

Sie können auch eine Einstellungen-Profil-Datei importieren, um Ihre Anpassungen wiederherzustellen.

Unten wird der Import einer Einstellungen-Profil-Datei in VS Code gezeigt.

Sie können Ihre Einstellungen-Profil-Datei in der Cloud hosten, z. B. als öffentlichen GitHub Gist speichern, und die URL mit anderen teilen. Man kann die Einstellungen-Profil-Datei importieren, indem man die URL angibt.

Hinweis: Derzeit sind nur die folgenden UI-Anpassungen im Einstellungen-Profil enthalten. In Zukunft werden weitere hinzugefügt.

  • Sichtbarkeit von Statusleisten-Elementen
  • Sichtbarkeit und Reihenfolge von Elementen in der Aktivitätsleiste, unteren und Seitenleiste
  • Sichtbarkeit, Position und Reihenfolge von Ansichten

TypeScript 4.7 Unterstützung

Dieses Update enthält Unterstützung für die kommende TypeScript 4.7-Version. Lesen Sie den TypeScript 4.7 Iterationsplan für weitere Details zu dem, woran das TypeScript-Team gerade arbeitet. Einige Highlights:

  • Springen Sie direkt zu einer JavaScript-Implementierung einer Bibliotheksfunktion mit dem neuen Befehl Zu Quelldefinition springen. Sie können mehr über diese Funktion erfahren und Feedback in TypeScript Issue #49003 teilen.
  • Snippets zum Vervollständigen von Methoden als Objektmember.
  • Gruppenbewusstes Organisieren von Imports.

Um die TypeScript 4.7 Nightly Builds zu nutzen, installieren Sie die TypeScript Nightly-Erweiterung.

Erweiterungs-Authoring

Tab-API

Wir haben die schreibgeschützte Seite der Tabs-API (auch das Schließen eines Tabs wird unterstützt) finalisiert und damit eines unserer meistgewünschten Probleme microsoft/vscode#15178 abgeschlossen. Dies gibt Informationen über die Anzahl der Gruppen, welche Tabs geöffnet sind, welche Tabs aktiv sind, welche Art von Editoren ein Tab darstellt und vieles mehr preis! Weitere Informationen finden Sie in der Datei vscode.d.ts mit dem Einstiegspunkt in die API window.tabGroups.

Notebook-Änderungs- und Speicherereignisse

Wir haben zwei notebookbezogene Ereignisse finalisiert:

  • vscode.workspace.onDidSaveNotebookDocument - Ein Ereignis, das ausgelöst wird, wenn ein Notebook gespeichert wurde.
  • vscode.workspace.onDidChangeNotebookDocument - Ein Ereignis, das ausgelöst wird, wenn ein Notebook geändert wurde. Dies umfasst strukturelle Änderungen wie das Hinzufügen oder Entfernen von Zellen sowie Zelländerungen wie das Ändern von Ausgaben oder Metadaten.

Unterstützung für nicht-rekursive Workspace-Dateibeobachter

In früheren Meilensteinen haben wir angekündigt, dass die API createFileSystemWatcher verwendet werden kann, um beliebige Ordner auf der Festplatte zu überwachen, solange sich der Ordner nicht innerhalb des geöffneten Workspaces befindet. Wir haben diese Einschränkung nun gelockert und erlauben nicht-rekursive Dateibeobachter überall, auch innerhalb des geöffneten Workspaces. Nicht-rekursive Beobachter haben den Vorteil, dass konfigurierte Einstellungen für Ausschlüsse (files.watcherExclude) nicht angewendet werden, sodass Sie sicher sein können, dass der Dateibeobachter nur für die von Ihnen abonnierten Pfade ausgelöst wird.

Wir arbeiten an der vollständigen Unterstützung für rekursive Beobachter mit benutzerdefinierten Ausschlussregeln für Erweiterungen. Bleiben Sie also dran!

UX-Richtlinien

Die UX-Richtlinien für Erweiterungsautoren wurden neu gestaltet und verfügen nun über ein eigenes Inhaltsverzeichnis, in dem Sie Best Practices für die Verwendung der verschiedenen VS Code-Benutzeroberflächenelemente finden. Spezifische Themen behandeln die empfohlenen "Tun und Nicht-Tun" bei der Erstellung von Benutzeroberflächen für Ihre Erweiterungen, damit diese nahtlos in VS Code integriert werden.

Command Palette UX Guidelines on code.visualstudio.com

Ausführen von Erweiterungstests

Zuvor beendete VS Code den Erweiterungshost-Prozess, sobald die Testausführung abgeschlossen war. Nun durchläuft VS Code beim Ausführen von Erweiterungstests zuerst den regulären deactivate-Fluss und beendet sich erst danach. Dies ermöglicht es Erweiterungen, die Prozesse starten, sich nach der Ausführung besser aufzuräumen.

Dateien in benutzerdefinierte Bäume ziehen

Aufbauend auf der kürzlich finalisierten Tree Drag & Drop API haben wir nun grundlegende Unterstützung für das Ablegen von Dateien aus dem Betriebssystem in Erweiterungsbaumansichten unter Verwendung des MIME-Typs text/uri-list.

Debugger-Erweiterungsentwicklung

Benutzeroberfläche für supportSuspendDebuggee und supportTerminateDebuggee

Die disconnect-Anforderung hat zwei zusätzliche Optionen, die es einem Client ermöglichen, zu steuern, was mit einem Debuggee beim Trennen geschieht:

  • suspendDebuggee gibt an, ob der Debuggee nach dem Trennen angehalten bleiben soll.
  • terminateDebuggee gibt an, ob der Debuggee beim Trennen des Debuggers beendet werden soll.

Ein Debug-Adapter kann die Fähigkeiten supportSuspendDebuggee und supportTerminateDebuggee verwenden, um zu signalisieren, dass er diese Optionen unterstützt. Wenn unterstützt, erscheint neben der Stopp-Schaltfläche in der Debug-Symbolleiste ein Dropdown-Menü mit zusätzlichen Trennbefehlen.

Zum Beispiel wird in einer Debug-Sitzung vom Typ "launch" für einen Debug-Adapter, der beide Fähigkeiten unterstützt, die Standard-Symbolleistenschaltfläche die normale **Stopp**-Schaltfläche sein, aber das Dropdown-Menü enthält **Trennen** (terminateDebuggee: false) und **Trennen und Anhalten** (terminateDebuggee: false, suspendDebuggee: true).

A dropdown with extra disconnection commands

Language Server Protocol

Die Unterstützung für Notebooks und das Abrufen von Diagnosen wurde aus dem vorgeschlagenen Zustand in den produktionsreifen Zustand überführt, um die 3.17-Version ausliefern zu können. Neue Versionen der entsprechenden Client- und Serverbibliotheken wurden auf npm veröffentlicht.

Vorgeschlagene APIs

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

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

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

Per Drag & Drop in den Editor ziehen

Die vorgeschlagene Text Editor Drop API ermöglicht es Erweiterungen, Drops in Texteditoren zu handhaben. Diese Drop-Ereignisse können aus VS Code stammen – z. B. das Ziehen einer Datei aus dem VS Code Explorer in einen Texteditor – oder durch das Ablegen einer Datei aus Ihrem Betriebssystem in VS Code generiert werden.

In dieser Iteration haben wir diese API auf ein anbieterbasiertes Modell umgestellt. Wir haben auch ein neues Erweiterungsbeispiel erstellt, das die Verwendung dieser API demonstriert.

Abzeichen auf Ansichten

Der neue Vorschlag zur Hinzufügung von Badges zu Views kann nun ausprobiert werden. Ähnlich wie Badges auf von VS Code Core bereitgestellten Views funktionieren, können Erweiterungen diese API-Vorschlag nutzen, um numerische Badges zu Views hinzuzufügen.

Technik

Playwright für Electron-Smoke-Tests

Wir verwenden Playwright bereits seit langem für unsere webbasierten Smoke-Tests. Unsere Electron-basierten Smoke-Tests stützten sich jedoch immer noch auf unsere eigene benutzerdefinierte Lösung. Mit der Electron-Unterstützung in Playwright konnten wir den Großteil unseres Web-Smoke-Test-Codes wiederverwenden und auch für unsere Electron-Smoke-Tests verwenden. Wir freuen uns, nun den Trace Viewer zur nachträglichen Diagnose fehlschlagender Smoke-Tests nutzen zu können.

Neue Lokalisierungspipeline für Erweiterungen

VS Code unterstützt eine Reihe von Anzeigesprachen, die Sie durch die Installation eines Sprachpakets aktivieren können. Diese eignen sich hervorragend zur Lokalisierung von VS Code selbst und integrierten Erweiterungen. In dieser Iteration haben wir mit der Standardisierung der Lokalisierung von nicht integrierten Erweiterungen begonnen, für die das Team zuständig ist. Die Ergebnisse dieser Bemühungen sehen Sie in den Erweiterungen GitHub Repositories und Azure Repos, da ihre gemeinsame Abhängigkeitserweiterung, Remote Repositories, die erste Erweiterung ist, die dies unterstützt.

In der nächsten Iteration werden wir diese Standardisierungsbemühungen fortsetzen und weitere Erweiterungen einbinden. Die Python-Erweiterung ist derzeit in Arbeit, und GitHub Repositories und Azure Repos werden schnell folgen. Wir wollen einen Punkt erreichen, an dem jede vom Team verwaltete Erweiterung lokalisiert ist und jede zukünftige Erweiterung problemlos integriert werden kann, damit Benutzer, die keine englischen Muttersprachler sind, eine großartige Erfahrung in VS Code haben.

Dokumentation

Rust in VS Code

Es gibt ein neues Thema Rust in Visual Studio Code, das die Unterstützung für die Rust-Programmiersprache in VS Code mit der rust-analyzer-Erweiterung beschreibt. Die rust-analyzer-Erweiterung bietet umfangreiche Sprachfunktionen wie Code-Vervollständigungen, Linting, Refactorings, Debugging und mehr.

rust-analyzer extension for Visual Studio Code details pane

Bemerkenswerte Fehlerbehebungen

  • 114844 Ermöglichen, das Wiederherstellen von Editoren aus der vorherigen Sitzung im Crash-Dialog zu überspringen
  • 127936 Ermöglichen, files.encoding als sprachspezifische Einstellung für Dateien beim Start festzulegen
  • 138461 Emmet-Autovervollständigung innerhalb eines Paares von [ ] in einer React-Datei ist falsch
  • 139392 Bestätigung des Löschens kürzlicher Projekte
  • 139950 Wenn ein Breakpoint erreicht wird, sollte der Caret (Cursor) zu dieser Zeile springen
  • 145265 Terminal unter Windows verwendet cmd /C, dies beschädigt übergebene Argumente
  • 146406 Powerline-Symbole im Terminal haben falsche Farben
  • 146977 Ordnerunterstützung in Info.plist unter macOS deklarieren
  • 147104 Kann sich nicht bei GitHub anmelden

Vielen Dank

Last but not least, ein großes Danke an die Mitwirkenden von VS Code.

Web-Erweiterungen

Erweiterungsautoren für die Ermöglichung von Erweiterungen, die Code als Web-Erweiterungen ausführen (die folgende Liste ist zwischen dem 28. März 2022 und dem 1. Mai 2022)

Fehlerverfolgung

Beiträge zu unserer Fehlerverfolgung

Pull-Anfragen

Beiträge zu vscode

Beiträge zu vscode-css-languageservice

Beiträge zu vscode-generator-code

Beiträge zu vscode-js-debug

  • @timvahlbrock
    • feat: wendet pathMapping beim Laden von Sourcemaps an PR #1241
    • feat: macht das Timeout für die Hover-Auswertung konfigurierbar PR #1243

Beiträge zu vscode-pull-request-github

Beiträge zu debug-adapter-protocol

Beiträge zu language-server-protocol

  • @KamasamaK
    • Fügt workspace.inlineValue zu den Fähigkeiten hinzu PR #1440
    • Fügt einige fehlende verlinkbare Typen hinzu PR #1441
    • Verwendet FoldingRangeKind für kind PR #1450

Beiträge zu monaco-editor

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