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

November 2022 (Version 1.74)

Update 1.74.1: Das Update behebt diese Probleme.

Update 1.74.2: Das Update behebt diese Probleme.

Update 1.74.3: Das Update behebt dieses Sicherheitsproblem hier.

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


Willkommen zur November 2022-Version von Visual Studio Code. Es gibt viele Updates in dieser Version, die Ihnen hoffentlich gefallen werden, einige der wichtigsten Highlights sind

Wenn Sie diese Release Notes online lesen möchten, gehen Sie zu Updates auf code.visualstudio.com.

Insiders: Möchten Sie neue Funktionen so schnell wie möglich ausprobieren? Sie können den nächtlichen Insiders-Build herunterladen und die neuesten Updates ausprobieren, sobald sie verfügbar sind.

Barrierefreiheit

Audiocues für die Ausführung von Notebooks

Es gibt jetzt Audiocues, die anzeigen, wenn Notebook-Zellen die Ausführung beendet haben. Der Cue unterscheidet sich, um anzuzeigen, ob die Zelle erfolgreich oder fehlerhaft ausgeführt wurde.

Audiocues für den Diff-Review-Modus

In einem Diff-Editor wird beim Auslösen von **Nächste Differenz springen** ein spezifischer Audiocue abgespielt, der angibt, ob sich der Cursor in einer eingefügten oder gelöschten Zeile befindet.

Wenn Sie neugierig auf die verfügbaren Audiocues sind, können Sie diese über das Dropdown-Menü **Hilfe: Audiocues auflisten** anhören.

List Audio Cues dropdown

Die Indikatoren, Tooltips und Links im Einstellungen-Editor sind jetzt per Tastatur navigierbar. Das Styling einiger Links wurde ebenfalls angepasst, um eine bessere Konsistenz im Einstellungen-Editor zu gewährleisten.

Indikator-Tooltips im Einstellungen-Editor verhalten sich jetzt deutlich besser in Bezug auf Tabulatoren und die Aufrechterhaltung des Tastaturfokus. Dieses verbesserte Verhalten ist noch experimentell und derzeit nur für Indikator-Tooltips im Einstellungen-Editor aktiviert, nicht für alle Tooltips in VS Code.

Navigating settings and a Modified elsewhere indicator in the Settings editor using the keyboard

Thema: Light Pink (Vorschau auf vscode.dev)

Workbench

Benutzerdefinierte Logik für das automatische Aufdecken im Explorer

Das stark nachgefragte Issue #87956 ("Allow to set explorer.autoReveal per specific folder") wurde durch die Einführung einer neuen Einstellung `explorer.autoRevealExclude` behoben. Diese Einstellung ermöglicht es Ihnen zu konfigurieren, welche Dateien im Explorer automatisch aufgedeckt werden, wenn das automatische Aufdecken aktiviert ist (`explorer.autoReveal`, Standardwert `true`). Die Einstellung `autoRevealExclude` verwendet Glob-Muster zum Ausschließen von Dateien und unterstützt, ähnlich wie `files.exclude`, auch das Abgleichen von Geschwistern über "when"-Klauseln.

Der Standardwert schließt Node- und Bower-Module aus

{
  "explorer.autoRevealExclude": {
    "**/node_modules": true,
    "**/bower_components": true
  }
}

Badges pro Ansichtscontainer ausblenden

Ähnlich wie Sie Ansichtscontainer ausblenden konnten, indem Sie mit der rechten Maustaste auf den Ansichtscontainer geklickt haben, können Sie jetzt das Badge auf dem Container ausblenden (angezeigt in der Aktivitätsleiste, im Bedienfeld und in der sekundären Seitenleiste). Badges zeigen oft eine Zahl, ein Symbol oder eine Fortschrittsanzeige für einen bestimmten Ansichtscontainer an, z. B. die Anzahl der ausstehenden Änderungen für die Quellcodeverwaltungsansicht.

A context menu is triggered on the Source Control view showing a Hide Badge entry. This is then selected and the blue number one badge disappears. Triggering the context menu again shows a Show Badge entry which brings the blue badge number one badge back.

Merge-Editor

Diese Version enthält einige Verbesserungen und Fehlerbehebungen für den Merge-Editor. Zu den Highlights gehören

  • Rückgängig/Wiederholen verfolgt jetzt den behandelten Status von Konflikten.
  • Die Aktionen **Ignorieren** in den Eingabeansichten können verwendet werden, um die Basisversion zu akzeptieren, anstatt die Aktion **Als behandelt markieren** in der Ergebnisansicht zu verwenden.
  • Änderungen, die auf beiden Seiten gleich sind, werden jetzt automatisch aufgelöst.
  • Erweiterungen, die die `git blame`-Funktionalität bereitstellen, funktionieren jetzt in den eingehenden, aktuellen und Basis-Editoren.

Eine Erweiterung an einem Speicherort installieren

Sie können jetzt eine Erweiterung, die sich auf einem lokalen Laufwerk befindet, mithilfe des Befehls **Entwickler: Erweiterung von Speicherort installieren...** installieren. Der Befehl öffnet den Dialog für den Plattformordner, um den Speicherort der `.vsix`-Datei der Erweiterung auszuwählen.

Editor

Neue Option für Zeilenumbrüche bei CJK-Zeichen

Eine Einstellung namens `editor.wordBreak` kann jetzt verwendet werden, um das Einfügen von Umbruchpunkten nach CJK-Zeichen zu vermeiden. Wenn diese Einstellung auf `keepAll` konfiguriert ist, versuchen die Umbruchalgorithmen, Text nach CJK-Zeichen in derselben Zeile zu belassen. Diese Einstellung hat keine Auswirkungen auf Zeichen aus anderen Skripten.

Neue Schriftarteinstellung für OpenType-Schriftarten

Einige neuere Schriftarten, die OpenType-Schriftartenvariationen unterstützen, unterstützen die Abstimmung bestimmter Achsen, wie z. B. der Schriftgewicht-Achse, um Schriftgewichte zu erzielen, die nicht über die `font-weight` CSS-Eigenschaft konfigurierbar sind. In CSS wird dies mit der `font-variation-settings`-Eigenschaft erreicht. Wenn Sie eine solche Schriftart verwenden, können Sie jetzt `editor.fontVariations` auf `true` setzen, was dazu führt, dass VS Code die "wght"-Anzeigachse zum Einstellen des Schriftgewichts verwendet. Wenn Ihre Schriftart andere Achsen unterstützt, können Sie diese auch direkt konfigurieren, z. B. durch Setzen von `"editor.fontVariations": "'ital' 0.5" `.

Neue Einstellung für die Einrückungsgröße

Es gibt eine neue Einstellung namens `editor.indentSize`, mit der die Einrückungsgröße (die Anzahl der Leerzeichen, aus denen eine Einrückung besteht) von der Tabulatorgröße (die Anzahl der Leerzeichen, die zum Rendern eines Tabulatorzeichens verwendet werden) entkoppelt werden kann. Dies ist nützlich bei der Bearbeitung von Dateien, die gemischte Tabulator- und Leerzeichen-Einrückungen verwenden, und kann nur bei Verwendung der manuellen Einrückungskonfiguration genutzt werden.

Unten finden Sie ein Beispiel für die Konfiguration

"editor.detectIndentation": false,
"editor.insertSpaces": true,
"editor.tabSize": 8,
"editor.indentSize": 2

Befehl zum teilweisen Akzeptieren von Inline-Vervollständigungen

Der Befehl **Nächstes Wort der Inline-Vorschlags akzeptieren** (`editor.action.inlineSuggest.acceptNextWord`) kann verwendet werden, um das nächste Wort/nicht-Wort-Segment des aktuellen Inline-Vorschlags zu akzeptieren. Derzeit können nur Teile der ersten Zeile eines Inline-Vorschlags akzeptiert werden. Der Befehl befindet sich noch in der Entwicklung, und wir untersuchen Tastenkombinationen sowie alternative Aufteilungsregeln für zukünftige Versionen.

Quellcodeverwaltung

Unsichere Git-Repositories verwalten

VS Code verwendet `git.exe` für die Ausführung aller Git-Operationen. Ab Git 2.35.2 werden Benutzer daran gehindert, Git-Operationen in einem Repository auszuführen, das sich in einem Ordner befindet, der einem anderen Benutzer als dem aktuellen gehört, da das Repository als potenziell unsicher eingestuft wird.

Ab dieser Version wird VS Code, wenn Sie versuchen, ein solches potenziell unsicheres Repository zu öffnen, eine Willkommensansicht in der Quellcodeverwaltungsansicht sowie eine Fehlermeldung anzeigen. Sowohl die Willkommensansicht als auch die Benachrichtigung bieten den Befehl **Unsichere Repositories verwalten**, mit dem Sie die Liste der potenziell unsicheren Repositories überprüfen, sie als sicher markieren und öffnen können. Der Befehl **Unsichere Repositories verwalten** ist auch über die Befehlspalette verfügbar. Das Markieren eines Repositorys als sicher fügt den Speicherort des Repositorys zur `safe.directory` Git-Konfiguration hinzu.

Optimistische Benutzeroberflächenaktualisierungen

Nach der Ausführung einer Git-Operation wird eine Reihe von `git`-Befehlen (z. B. `git status`) ausgeführt, um das Datenmodell zu aktualisieren, bevor die Quellcodeverwaltungsansicht aktualisiert wird. Es gibt Szenarien, in denen die Ausführung dieser Befehle mehrere Sekunden dauern kann (z. B. bei der Arbeit mit großen Monorepos), was zu einer Verzögerung vor der Aktualisierung der Quellcodeverwaltungsansicht führt.

In diesem Meilenstein haben wir Änderungen vorgenommen, sodass die Quellcodeverwaltungsansicht für einige Git-Operationen (Stagen, Unstagen, Änderungen verwerfen und Committen) optimistisch aktualisiert wird, bevor `git status` abgeschlossen ist, was zu einer reaktionsschnelleren Quellcodeverwaltungsansicht führt.

Die neue Funktion ist standardmäßig aktiviert, kann aber mit `git.optimisticUpdate: false` deaktiviert werden.

Optimierung des Commit-Aktionsbuttons

Wenn der Aktionsbutton **Commit** einen sekundären Commit-Befehl ausführt (z. B. **Commit & Sync**), spiegelt die Schaltflächenbeschriftung jetzt korrekt den ausgeführten Befehl wider. Der Button **Commit** zeigt auch eine Animation an, die den Fortschritt anzeigt.

Terminal

Verbesserungen bei Terminal-Quick-Fixes

Terminal-Quick-Fixes werden jetzt in einem Code-Aktions-Steuerelement angezeigt, um die Erfahrung im Editor zu vereinheitlichen.

A Quick Fix is triggered in the terminal and a menu is presented with a play button to the left of the action's label

Aufgabenaktionen im Terminal-Dropdown

Die Befehle **Aufgabe ausführen** und **Aufgaben konfigurieren** werden im Terminal-Dropdown angezeigt, um die Auffindbarkeit und den einfachen Zugriff zu verbessern.

The last section of the terminal dropdown menu contains Run Task and Configure Tasks commands

Remote-Entwicklung

Remote Tunnels ist jetzt als Vorschau-Funktion in VS Code Stable verfügbar. Remote Tunnels ermöglichen Ihnen den sicheren Zugriff auf Ihren Computer mit VS Code von jedem Gerät aus, überall. Um den Remote Tunnel-Zugriff zu aktivieren, können Sie entweder

  • **Remote Tunnel-Zugriff aktivieren** aus dem Konto-Menü oder der Befehlspalette wählen.
  • Führen Sie `code tunnel` auf einem Computer aus, auf dem VS Code installiert und im PATH vorhanden ist.
  • Laden Sie die neue VS Code CLI herunter und führen Sie `./code tunnel` aus.

Sobald der Tunnel-Zugriff aktiviert ist, können Sie von jedem Gerät aus auf den Computer zugreifen, indem Sie vscode.dev verwenden, oder über die Remote - Tunnels-Erweiterung innerhalb von VS Code Desktop.

Weitere Informationen finden Sie in unserem Blogbeitrag zur Ankündigung der Funktion oder in der Dokumentation zu Remote Tunnels.

Theme: Codesong (Vorschau auf vscode.dev)

Hinweis: Wenn Sie die eigenständige `code-server`-CLI verwendet haben, sollten Sie jetzt stattdessen die VS Code-CLI (über die neueste VS Code Desktop oder den oben genannten eigenständigen Download) verwenden.

Debugging

JavaScript-Debugging

Unterstützung für console.profile

Der JavaScript-Debugger unterstützt jetzt console.profile. Wenn Sie unter dem Debugger laufen, wird ein CPU-Profil für den Code zwischen `console.profile()` und `console.profileEnd()` gesammelt.

console.profile();
doSomeExpensiveWork();
console.profileEnd();

Die resultierende `.cpuprofile`-Datei wird in Ihrem Arbeitsbereichordner gespeichert und kann mit dem integrierten Profilbetrachter von VS Code geöffnet und angezeigt werden.

Unterstützung für verschachtelte Sourcemaps

Manchmal, insbesondere in Monorepo-Setups, kann Quellcode einmal kompiliert und dann erneut kompiliert oder gebündelt werden. In vielen Fällen würden Sourcemaps des resultierenden Bundles auf die im ersten Schritt erstellten kompilierten Dateien verweisen.

Der JavaScript-Debugger löst nun Sourcemaps automatisch rekursiv auf, sodass die ursprünglichen Quelldateien ohne zusätzliche Schritte debuggt werden können.

Eigenschaft `killOnServerStop` zu `serverReadyAction` hinzugefügt

Die `serverReadyAction` `launch.json`-Funktion ermöglicht es Benutzern, eine Debug-Sitzung zu starten, die einen Webserver startet, und dann, sobald der Server gestartet ist, automatisch das Debugging eines Browsers zu starten, der zu dieser Server-URL navigiert. Es gibt eine neue Eigenschaft, `killOnServerStop`, die, wenn sie auf `true` gesetzt ist, dazu führt, dass die neue Browser-Debug-Sitzung automatisch gestoppt wird, wenn die Server-Debug-Sitzung stoppt.

Zum Beispiel

{
  "type": "node",
  "request": "launch",
  "name": "Launch Program",
  "program": "${workspaceFolder}/app.js",

  "serverReadyAction": {
    "pattern": "listening on port ([0-9]+)",
    "uriFormat": "https://:%s",
    "action": "debugWithEdge",
    "killOnServerStop": true
  }
}

Im obigen Beispiel wird die automatisch gestartete Edge-Debug-Sitzung ebenfalls gestoppt, wenn die ursprüngliche Debug-Sitzung `Launch Program` gestoppt wird.

Ausnahme-Breakpoints für die fokussierte Debug-Sitzung angezeigt

Die Verwaltung von Ausnahme-Breakpoints bei der Ausführung von zwei verschiedenen Arten von Debug-Sitzungen funktionierte bisher nicht gut. Wenn jetzt eine Debug-Sitzung in der Ansicht **Aufrufliste** fokussiert ist, wird der richtige Satz von Breakpoints für den Debug-Typ dieser Sitzung angezeigt.

Exception breakpoints correctly shown per call stack frame

Kommentare

comments.visible

Die neue Einstellung `comments.visible` kann verwendet werden, um die Kommentarfunktion des Editors (die Kommentar-Leiste und die Kommentar-Peek-Ansicht im Editor) zu deaktivieren. Der Befehl **Kommentare: Editor-Kommentare umschalten** kann immer noch verwendet werden, um die Editor-Kommentare während einer Sitzung ein- und auszuschalten. Das Auswählen eines Kommentars in der Ansicht **Kommentare** schaltet die Kommentarfunktion immer ein.

Kommentare-Ansicht Badge

Die Ansicht **Kommentare** zeigt ein Badge für die Anzahl der ungelösten Kommentare an.

Comments view badge

Aufgaben

Problem-Matcher 'search' Dateispeicherort-Methode

Zuvor mussten Problem-Matcher genau wissen, wo sie nach den problematischen Dateien suchen sollten, über die `fileLocation`-Eigenschaft. Die unterstützten Methoden waren `absolute`, `relative` oder `autoDetect` (zuerst nach relativen Pfaden suchen, dann nach absoluten Pfaden suchen, falls ein Fehler auftritt).

In Arbeitsbereichen, die Skripte in verschachtelten Unterverzeichnissen verwenden, war es jedoch schwierig, Aufgaben einzurichten, da verschiedene Skripte Dateipfade selten auf einheitliche Weise melden (z. B. relativ zum Basisverzeichnis des Arbeitsbereichs).

Um dieses Problem zu lösen, gibt es eine neue Dateispeicherort-Methode namens `search`. Mit dieser Methode wird eine rekursive Dateisystemsuche durchgeführt, um jeden erfassten Pfad zu lokalisieren.

Das folgende Beispiel zeigt, wie die `search`-Dateispeicherort-Methode eingerichtet wird (obwohl alle Parameter optional sind)

"problemMatcher": {
    // ...
    "fileLocation": [
        "search",
        {
            "include": [ // Optional; defaults to ["${workspaceFolder}"]
                "${workspaceFolder}/src",
                "${workspaceFolder}/extensions"
            ],
            "exclude": [ // Optional
                "${workspaceFolder}/extensions/node_modules"
            ]
        }
    ],
    // ...
}

Hinweis: Benutzer sollten vorsichtig sein, **zeitaufwendige Dateisystem-Suchen** (z. B. die Suche in `node_modules`-Verzeichnissen) zu verursachen, und die `exclude`-Eigenschaft entsprechend festlegen.

Sprachen

TypeScript 4.9

VS Code wird jetzt mit TypeScript 4.9 ausgeliefert. Dieses große Update bringt neue TypeScript-Sprachfunktionen wie den `satisfies`-Operator und automatische Accessoren. Auf der Tooling-Seite haben wir Verbesserungen am Datei-Watching vorgenommen und eine Reihe weiterer Korrekturen und Verbesserungen.

Lesen Sie die Ankündigung von TypeScript 4.9 für weitere Informationen zu diesem Update.

Springe zur Definition bei Rückgabe

JavaScript und TypeScript unterstützen jetzt das Ausführen von **Zur Definition springen** auf dem Schlüsselwort `return`, um schnell zum Anfang der Funktion zu springen, aus der zurückgegeben wird. Dies ist hilfreich bei der Arbeit mit langen, komplexen oder stark verschachtelten Funktionen. Sie können den Befehl/die Tastenkombination **Zur Definition springen** dafür verwenden (F12) oder einfach `Cmd/Alt + Klick` auf das `return`-Schlüsselwort.

Notebooks

Kernel-Auswahl Experiment: zuletzt verwendete Kernel

Es gibt eine neue Notebook-Kernel-Auswahl, die die zuletzt verwendeten Kernel am oberen Rand der Auswahl anzeigt. Dies ist ein Opt-in-Experiment, das durch Setzen der Einstellung `notebook.kernelPicker.type` auf `mru` aktiviert werden kann.

Nicht verwendete Kernel werden in eine sekundäre Auswahl **Anderen Kernel auswählen...** verschoben. Diese Auswahl gruppiert alle Kernel nach ihrer Quelle (z. B. Jupyter Kernel, Python-Umgebung usw.), wenn Sie die neueste Jupyter-Erweiterung installiert haben.

Kernel picker with most recently used kernels

Wir würden uns über Ihr Feedback freuen und Sie können Probleme im VS Code-Repository erstellen.

VS Code für das Web

Quellcodeverwaltung

VS Code für das Web unterstützt jetzt die folgenden Einstellungen beim Bearbeiten von GitHub- und Azure Repos-Repositories

  • "git.branchRandomName.enabled" - Generiert einen zufälligen Branch-Namen beim Erstellen von Branches in VS Code für das Web.
  • "git.branchRandomName.dictionary" - Gibt Wort-Wörterbücher zur Generierung von zufälligen Branch-Namen beim Erstellen von Branches in VS Code für das Web an.
  • "git.closeDiffOnOperation" - Schließt Diff-Editoren nach der Ausführung von Quellcodeverwaltungsoperationen wie Committen, Stagen und Unstagen von Änderungen.

Zusätzlich zeigt VS Code für das Web ein Schloss-Symbol in der Statusleiste und der Branch-Auswahl für geschützte Branches an, was der Erfahrung unter VS Code Desktop entspricht.

Lock icon for protected branches in the Status bar and branch picker

Schließlich können Sie jetzt die Aktionsschaltfläche für die Quellcodeverwaltung in VS Code für das Web verwenden, um Ihre Änderungen direkt in das Repository-Remote zu committen und zu pushen.

Commit & Push using source control action button

Wenn Sie Ihre Änderungen vor dem Committen validieren möchten, können Sie auch die sekundäre Aktion **Weiterarbeiten an...** im Dropdown-Menü der Aktionsschaltfläche verwenden, um Ihre Arbeitsänderungen in eine andere Entwicklungsumgebung zu übernehmen.

Verbesserungen bei "Weiterarbeiten an"

Wenn Sie sich in einem GitHub- oder Azure Repos-Repository befinden, stehen Ihnen jetzt praktische Ein-Schritt-Befehle in der Befehlspalette zur Verfügung, um Ihre Arbeitsänderungen in eine bestimmte Entwicklungsumgebung zu übertragen.

  • Weiterarbeiten in einem neuen Codespace
  • Weiterarbeiten im lokalen Klon
  • Weiterarbeiten im Remote-Repository auf VS Code Desktop

One step commands to continue working in another development environment

Wir haben auch **Edit Sessions** in **Cloud Changes** umbenannt, um zu verdeutlichen, dass es sich um das Speichern von Arbeitsänderungen in der Cloud handelt.

Beiträge zu Erweiterungen

Jupyter

"Nur mein Code" für das Debuggen von Notebook-Zellen

Die Debug-Funktion "Nur mein Code" ermöglicht es Ihnen zu bestimmen, ob der Debugger durch Code aus Python-Bibliotheken schrittweise durchläuft oder nur durch Ihren Quellcode schrittweise durchläuft. Dies ist standardmäßig beim Debuggen einer Notebook-Zelle aktiviert, aber Sie können `debugJustMyCode: false` setzen, um es zu deaktivieren und den Code von Bibliotheken durchschreiten zu lassen. Für die beste Erfahrung aktualisieren Sie debugpy in Ihrer Umgebung auf `>=1.6.3`. Zuvor wurde die Einstellung `debugJustMyCode` nur beim Debuggen im Interaktiven Fenster berücksichtigt, und jetzt ist sie auch für Notebook-Editoren verfügbar.

Unterstützung für das Neustarten von Notebook-Zell-Debug-Sitzungen

Der Befehl **Neustart** in der Debug-Symbolleiste startet die aktuelle Debug-Sitzung neu. Zuvor wurde bei Debug-Sitzungen in Notebooks ein Fehler ausgelöst, aber jetzt wird es unterstützt. Leider kann es im Interaktiven Fenster nicht richtig unterstützt werden.

Diese Funktion ist besonders nützlich in einem Workflow, bei dem Sie debuggen, die Zelle bearbeiten und dann die Debug-Sitzung neu starten, um die Zelle mit Ihren vorgenommenen Änderungen erneut zu debuggen.

Remote-Entwicklungserweiterungen

Die Remote Development-Erweiterungen ermöglichen es Ihnen, einen Container, einen Remote-Computer oder das Windows Subsystem for Linux (WSL) als voll funktionsfähige Entwicklungsumgebung zu nutzen. Highlights dieser Version sind

  • Dev Container GPU-Unterstützung
  • Dev Container Cygwin / Git Bash Socket-Weiterleitung
  • Remote - Tunnels-Erweiterung – Verbindung zu einem Remote-Computer ohne SSH-Anforderung.

Informationen zu neuen Erweiterungsfunktionen und Fehlerbehebungen finden Sie in den Remote Development-Versionshinweisen.

GitHub Pull Requests und Issues

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

  • Notebook-Unterstützung für Permalink-Befehle.
  • Der Status von Pull-Request-Checks (wie z. B. Continuous Integration (CI) läuft, Benötigt Überprüfung, CI fehlgeschlagen usw.) wird in der Pull Requests-Baumansicht angezeigt.
  • VS Code-Links für PRs können aus der Pull-Request-Übersicht kopiert werden.
  • Der Befehl **Nächste Differenz im Pull Request springen** navigiert zur nächsten Differenz in einem ausgecheckten PR über Dateien hinweg.

Sehen Sie sich das Changelog für Version 0.56.0 der Erweiterung an, um die anderen Highlights zu sehen.

Vorschau-Funktionen

Profile

Wir haben in den letzten Monaten daran gearbeitet, **Profile** in VS Code zu unterstützen, eine der beliebtesten Anfragen der Community. Diese Funktion ist als Vorschau über die Einstellung `workbench.experimental.settingsProfiles.enabled` verfügbar. Probieren Sie sie aus und geben Sie uns Ihr Feedback, indem Sie Probleme im VS Code-Repository erstellen oder in Issue #116740 kommentieren.

Profile teilen

Sie können jetzt ein Profil teilen, indem Sie es als Gist nach GitHub exportieren. VS Code erstellt ein geheimes Gist mit Ihrem GitHub-Konto und stellt Ihnen einen Link zur Weitergabe an andere zur Verfügung. Wenn Sie diesen Link öffnen, werden Sie von VS Code aufgefordert, das geteilte Profil zu installieren. Beim Exportieren oder Importieren eines Profils zeigt VS Code eine Vorschau an, damit Sie die zu exportierenden oder zu importierenden Daten überprüfen und auswählen können.

Hier ist ein Video, das den Export eines Profils nach GitHub und dann das Kopieren des Links zur Weitergabe an andere zeigt

Exporting a Profile

Dieses Video zeigt den Import eines Profils durch Öffnen des geteilten Links

Importing a Profile

Erweiterungssignierung und -verifizierung

Seit Mitte November werden alle VS Code-Erweiterungen, die im Visual Studio Marketplace hochgeladen werden, vom VS Marketplace signiert – dieser Prozess wird als Repository-Signierung bezeichnet. Bei jeder Installation und Aktualisierung einer Erweiterung überprüft VS Code die Signatur des Erweiterungspakets. Mit der Signierung und Signaturüberprüfung können wir die Integrität und Authentizität von Erweiterungspaketen garantieren.

Die Signaturüberprüfung erfolgt derzeit nur in VS Code Insiders. Wenn Sie Probleme feststellen, können Sie uns dies mitteilen, indem Sie ein Issue im VS Code-Repository erstellen, und Sie können die Signaturüberprüfung deaktivieren, indem Sie `extensions.verifySignature` auf `false` setzen. Wir arbeiten daran, die Signaturüberprüfung in VS Code Stable in den kommenden Monaten zu aktivieren.

Neben der Repository-Signierung beginnen wir auch mit der Erweiterungs-Publisher-Signierung.

Python-Ausführung im Web

Wir haben die Debugging-Unterstützung für die Experimentelle - Python für das Web-Erweiterung hinzugefügt. Der Debugger unterstützt die folgenden Funktionen

  • Setzen von Breakpoints
  • Schrittweise Ein- und Ausführung von Funktionen
  • Debuggen über Module hinweg
  • Auswerten von Variablen in der Debug-Konsole
  • Debuggen des Programms im integrierten Terminal

Der Screenshot unten zeigt das Debugging eines `Hello World`-Programms

Python debugging in VS Code for the Web

Hinweis: Die Verwendung der Erweiterung erfordert weiterhin, dass Sie den folgenden Query-Parameter zur Browser-URL hinzufügen: `?vscode-coi=`.

Erweiterungs-Authoring

Implizite Aktivierungsereignisse für deklarierte Erweiterungsbeiträge

In diesem Meilenstein haben wir die Anforderung entfernt, Aktivierungsereignisse explizit aufzulisten, wenn Ihre Erweiterung bestimmte Erweiterungsbeiträge in ihrer `package.json` deklariert.

Zuvor musste eine Erweiterung, die angab, einen Befehl `mycommand` in ihrer `package.json`-Datei beizutragen, auch das entsprechende `onCommand:mycommand`-Aktivierungsereignis im `activationEvents`-Feld von `package.json` auflisten, damit der Befehl erfolgreich ausgeführt werden konnte. Dies war mühsam und fehleranfällig und konnte zu großen `package.json`-Dateien führen.

VS Code wird jetzt automatisch Aktivierungsereignisse für die folgenden Erweiterungsbeitragspunkte auffüllen

Beitragspunkt Abgeleitetes Aktivierungsereignis
Befehle onCommand
authentication onAuthenticationRequest
Sprachen onLanguage
customEditors onCustomEditor
views onView

Erweiterungsautoren können diese abgeleiteten Aktivierungsereignisse jetzt sicher aus ihren Erweiterungen entfernen. Wenn Sie dies tun, aktualisieren Sie Ihre VS Code-Engine-Anforderung, um sicherzustellen, dass Ihre Erweiterung nicht als kompatibel mit früheren Versionen von VS Code behandelt wird.

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

Log-Ausgabekanal

In diesem Meilenstein haben wir die LogOutputChannel API finalisiert. Sie können diese API jetzt verwenden, um einen Log-Ausgabekanal zu erstellen, der zum Protokollieren von Nachrichten aus Ihrer Erweiterung verwendet wird.

Wir haben auch die Eigenschaft logLevel und das Ereignis onDidChangeLogLevel im `env`-Namespace finalisiert, um den aktuellen Log-Level der Anwendung anzuzeigen und ein Ereignis auszulösen, wenn sich der Log-Level für die Anwendung ändert.

Konsistenter Ursprung für alle Webviews

Nach unserer Arbeit in der letzten Iteration vom letzten Monat versuchen alle Webviews in VS Code nun, benutzerdefinierte Ursprünge beizubehalten. Mit 1.74 erstreckt sich dies auch auf die von benutzerdefinierten Editoren verwendeten Webviews.

Dies verbessert die Leistung, da Webview-Inhalte in mehr Fällen zwischengespeichert werden können. Weitere Details und Hinweise für Erweiterungsautoren finden Sie in den Versionshinweisen der vorherigen Version.

Unterstützung für Video-Tags in Erweiterungs-READMEs

Erweiterungen können jetzt `<video>`-Tags in ihren READMEs verwenden. Videos werden sowohl im VS Code Marketplace als auch auf den Seiten der Erweiterungsansicht in VS Code unterstützt. Im Vergleich zu `.gif`s sind Videodateien von höherer Qualität und oft auch kleiner. Sie können sogar Audio enthalten!

Beachten Sie, dass nur bestimmte Video- und Audioformate in VS Code selbst unterstützt werden. Derzeit müssen Sie auch einen vollständigen Pfad für `src` und `poster` des `<video>`-Tags anstelle eines relativen Pfads verwenden.

Zusätzliche Aktionen für Kommentar-Threads

Der neue Menüstandort `comments/commentThread/additionalActions` ermöglicht es Erweiterungen, immer sichtbare Schaltflächen zu Kommentar-Threads beizutragen.

Visible button in a comment

Umbenennung von vsce in @vscode/vsce

Das Tool vsce, der Erweiterungsmanager von VS Code, wurde in @vscode/vsce umbenannt. Dies ist eine Breaking Change für alle, die das Tool als Bibliothek verwenden. Das CLI-Tool heißt weiterhin `vsce` und kann über `npm install -g @vscode/vsce` installiert werden.

Debug Adapter Protocol

Mehrere Klarstellungen und eine neue Eigenschaft wurden zum Debug Adapter Protocol hinzugefügt.

  • Die Anforderung `DataBreakpointInfo` hat eine neue optionale Eigenschaft `frameId`. Clients können dieses Flag verwenden, um anzugeben, welcher Stack-Frame eine `name`-Variable enthält.
  • Das Verhalten am Dateiende wird jetzt für die `readMemory`-Anforderung spezifiziert.

Technik

Namensverschleierung von Eigenschaften und Methoden

Unsere Produkt-Build verschleiert jetzt Namen von Eigenschaften und Methoden. Dies hat die Größe unserer Hauptpakete um ca. 13 % (-1,5 MB) reduziert und die Ladezeiten des Codes um ca. 5 % verringert.

Verbesserungen der Bundle-Größe der GitHub & Microsoft Authentication-Erweiterungen

Die Bundle-Größen dieser beiden Erweiterungen waren größer als gewünscht, angesichts dessen, was sie boten und wie kritisch sie für den Start in vielen Fällen (wie z. B. vscode.dev) waren. In diesem Meilenstein haben wir uns darauf konzentriert, die Größe dieser Erweiterungen zu reduzieren, und hier sind die Ergebnisse

  • GitHub-Authentifizierung: 93 KB -> 64,9 KB
  • Microsoft-Authentifizierung: 97 KB -> 57,7 KB

Dies wurde erreicht durch

  • Keine Abhängigkeit mehr von (und Bündelung von) Node-Modulen, die Funktionalität bereitstellten, die in Node.js und im Web leicht verfügbar ist (z. B. Entfernen von `uuid` zugunsten von Crypto.randomUUID()).
  • Verwendung von `node-fetch` nur in Node.js, anstatt für Node.js und das Web.
  • Übernahme der neuesten Version von `@vscode/extension-telemetry`, deren Größe erheblich abgenommen hat.

Bei diesem Prozess ging keine Funktionalität verloren, und diese Erweiterungen werden aufgrund ihrer reduzierten Größe jetzt schneller abgerufen und geladen.

Electron Sandbox Reise

Sie können sich über unsere Fortschritte bei der Aktivierung der Sandbox von Electron im aktuellen Blogbeitrag "Migrating VS Code to Process Sandboxing" informieren. Dieser detaillierte Artikel stellt den technologischen Zeitplan dar und beschreibt die inkrementellen Änderungen, die zur Unterstützung der VS Code-Sandboxing vorgenommen wurden.

Wenn Sie den VS Code-Sandbox-Modus ausprobieren möchten, können Sie `window.experimental.useSandbox": true` in den Einstellungen festlegen. Hoffentlich sollten Sie keine funktionalen Unterschiede feststellen, aber wenn Sie Probleme finden, melden Sie uns diese bitte.

Window Controls Overlay auf Windows wieder standardmäßig aktiviert

Das Window Controls Overlay (WCO) wurde wieder standardmäßig aktiviert. Es wurde zuvor im August aktiviert, dann aber wieder deaktiviert, da es für Benutzer, die Rechts-nach-Links-Systemsprachen verwenden, auf der falschen Seite gerendert wurde und die Menüpunkte **Datei** und **Bearbeiten** verdeckte.

Das Hauptproblem war, dass VS Code die Anwendungssprache nicht an Electron übergab, sodass Electron die Systemsprache verwendete, um zu bestimmen, wo das WCO platziert werden sollte. VS Code verließ sich jedoch auf die `app.getLocale()`-API von Electron, um die Systemsprache abzurufen und zu bestimmen, welches Sprachpaket empfohlen werden sollte. Die Übergabe der Anwendungssprache an Electron führte dazu, dass `app.getLocale()` dieselbe Sprache zurückgab und nicht die Systemsprache.

Um das Problem zu beheben, haben wir eine neue `app.getPreferredSystemLanguages()`-API zu Electron hinzugefügt, sodass wir auch nach der Übergabe der Sprache an Electron immer noch die Systemsprache für den VS Code-Sprachpaket-Empfehler abrufen können, während das WCO auf der rechten Seite bleibt.

VS Code with the custom title bar along with Paint's title bar. The screenshot is taken on Windows 11 with the system language in Arabic, showing that the WCO is on the right for VS Code, which is in English, while it is on the left for Paint, which is in Arabic.

Integrierte Erweiterungen verwenden jetzt die neue l10n-API anstelle von vscode-nls

Letzten Monat haben wir die neue Lokalisierungs-API (l10n) stabilisiert. Diesen Monat haben wir diese API in jeder Erweiterung im Microsoft/vscode-Repository übernommen. Wir müssen noch die Sprachserver dazu bringen, `@vscode/l10n` anstelle von `vscode-nls` zu verwenden, sowie einige andere Erweiterungen, die dem Team gehören (JS Debug, Python, Jupyter Notebooks usw.), aber wir bewegen uns in die richtige Richtung zu einer einheitlichen Lokalisierungsstrategie für alle unsere Erweiterungen.

Bemerkenswerte Fehlerbehebungen

Vielen Dank

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

Fehlerverfolgung

Beiträge zu unserer Fehlerverfolgung

Pull-Anfragen

Beiträge zu vscode

Beiträge zu vscode-css-languageservice

Beiträge zu vscode-eslint

Beiträge zu vscode-js-debug

Beiträge zu vscode-json-languageservice

  • @tamayika: Fix: Vollständigkeitsvorschläge für geerbte JS-Eigenschaften PR #155

Beiträge zu vscode-pull-request-github

Beiträge zu debug-adapter-protocol

Beiträge zu devcontainers/cli

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