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
- Explorer Auto-Reveal anpassen - Entscheiden Sie, welche Dateien im Explorer in die Ansicht gescrollt werden.
- Badges in Aktivitätsleiste und Bedienfeld ausblenden - Vereinfachen Sie die Editor-Oberfläche, indem Sie Status-Badges umschalten.
- Audiocues für Notebooks und Diff-Ansicht - Geräusche für Zellen-Ausführungsergebnisse, hinzugefügte oder entfernte Zeilen.
- Merge-Editor Rückgängig/Wiederholen - Konfliktaktionen beim Zusammenführen schnell rückgängig machen oder erneut anwenden.
- Unsichere Repositories verwalten - Git-Operationen in Ordnern verhindern, die Ihnen nicht gehören.
- JavaScript console.profile-Erfassung - Erstellen Sie einfach CPU-Profile zur Anzeige in VS Code.
- Sprung zur Definition bei Rückgabe - Springen Sie an den Anfang von JavaScript/TypeScript-Funktionen.
- Remote Tunnels - Stellen Sie eine Verbindung zu jedem Computer her, ohne SSH zu benötigen.
- Jupyter Notebook "Nur mein Code"-Debugging - Vermeiden Sie das Durchschreiten von Python-Bibliotheks-Code.
- Dev Container GPU-Unterstützung - Fordern Sie eine GPU an, wenn Sie einen Dev Container erstellen.
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.

Tastaturnavigierbare Indikatoren, Tooltips und Links im Einstellungen-Editor
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.

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.

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.

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.

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.

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.

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.

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.

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.

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

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

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

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

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.

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.

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
- 166171 Entfernen der Standard-Scrollleiste im Tipp-Modal für Erweiterungen.
- microsoft/vscode-jupyter#11745 Variablenanzeige verursacht Verlangsamung und Instabilität
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
- @Albert-cord: feat: Hinzufügen von wordBreak editorOption und Verwendung in der Funktion lineBreakComputer PR #156242
- @andschwa (Andy Jordan): Unterstützung für Shell-Integration in Windows PowerShell PR #167023
- @babakks (Babak K. Shandiz)
- 🐛 Behebung von wiederholten CWD-Einträgen beim Erstellen eines neuen Terminals in einem Multi-Root-Arbeitsbereich PR #153204
- 🎁 Hinzufügen von `killOnServerStop` zur Debug-Konfiguration PR #163779
- 🎁 Hinzufügen von `search` zu Dateispeicherort-Methoden in Aufgaben PR #165156
- 💄 Dateipfad in URIs/Link-Hover-Einträgen im Debug-Modus einschließen PR #165709
- 🔨 "Breadcrumb fokussieren" zur Befehlspalette hinzufügen PR #166461
- @CGNonofr (Loïc Mangeonjean): Eigenständige Konfiguration: Ressource und Sprache verwenden PR #146522
- @chengluyu (Luyu Cheng): Unterstützung für variable Schriftarten (#_153291) PR #153968
- @cmarincia (Catalin Marincia): Option für Zeichenkettenliste zu editor.fontFamily hinzufügen PR #164289
- @d0ggie (Pekka Seppänen): Klammerübereinstimmung CSS-Syntax wiederherstellen (#_166109) PR #166141
- @dmartzol (Daniel Martinez Olivas)
- CSS-Regeln von links.ts nach links.css verschieben PR #166258
- CSS-Regeln verschieben PR #166532
- @ecstrema (Rémi Marche): Editor-Statusänderung, nach Übereinstimmung abbrechen PR #166283
- @felixlheureux (Felix L'Heureux): Wert auf leeren String zurücksetzen, wenn undefiniert oder null PR #165721
- @g1eny0ung (Yue Yang): fix: Textüberlagerung im Ersetzungsfeld PR #162036
- @GauravB159 (Gaurav Bhagchandani)
- CSS-Variablen für Editor-Scrollleiste verwenden PR #165464
- Neuregistrierung von Theme-Teilnehmern Refactoring PR #165576
- @gjsjohnmurray (John Murray): Text von IW-Befehlspaletten-Einträgen korrigieren (#_164860) PR #164863
- @guttyon: Eingabemethoden-Abfang vorübergehend deaktivieren. PR #159699
- @HiDeoo: JSDoc-Links für QuickPickItem in vscode.d.ts korrigieren PR #164474
- @hughlilly (Hugh Lilly)
- Beschreibung der Markdown-Sprachvorschau-Einstellungen PR #165109
- Fügt Beschreibung für
files.excludebezüglichexplorer.excludeGitIgnorehinzu PR #165111
- @jasonwilliams (Jason Williams): Korrigiert #154064, bei dem die falschen Task-Gruppen ausgeführt wurden PR #164983
- @JayBazuzi (Jay Bazuzi): Fehlermeldung beim Starten einer zweiten Admin-Instanz ändern PR #166146
- @Jaykul (Joel Bennett): Korrigiert das PowerShell-Integrationsskript #165022 PR #165023
- @jeanp413 (Jean Pierre)
- Korrigiert den Befehl
Terminal: Focus Terminal Tabs view, der nicht funktionierte PR #164408 - Korrigiert, dass der Task-Wiederverbindungsstatus für die Standard-Build-Aufgabe nicht funktioniert PR #165110
- Korrigiert, dass das Such-Widget des Terminals keine Ergebnisanzahl anzeigt PR #166902
- Korrigiert den Befehl
- @jkei0: CSS-Regeln von selections.ts nach selections.css verschieben PR #166407
- @jzyrobert (Robert Jin): Einstellung explorer.autorevealExclude hinzufügen PR #136905
- @laurentlb (Laurent Le Brun)
- Kommentaransicht: Abzeichen mit der Anzahl ungelöster Kommentare hinzufügen PR #164743
- Telemetrie: Ausführungszeit von Befehlen protokollieren PR #165599
- @LoopThrough-i-j (Debayan Ganguly): Fix: Neuer MD-Datei scrollt nach oben. PR #164999
- @MarkZuber (Mark Zuber): bootstrap-node.js aktualisieren, um Array.isArray zu prüfen PR #165289
- @marrej (Marcus Revaj): Zusätzliche Aktionen zu CommentThread hinzufügen PR #162750
- @Mingpan: Pfeile in der Side-by-Side-Diff-Ansicht korrigieren PR #165423
- @miyaokamarina (Marina Miyaoka): Unicode-Neue Zeilen in der Markdown-Vorschau nicht vorverarbeiten PR #166026
- @MonadChains (MonadChains)
- Audio-Hinweise bei abgeschlossener Zellenausführung implementieren PR #165442
- Benutzerdefinierte zsh_history wird ignoriert PR #166813
- @mustard-mh (Huiwen): Falscher Task-Status korrigiert #163393 PR #163952
- @n-gist (n-gist): Feature zur Snippet-Überschreibung korrigieren PR #165871
- @najmiehsa
- CSS-Variablen anstelle von registerThemingParticipant verwenden - Minimap-Ansichtsteile PR #165465
- CSS-Variablen anstelle von registerThemingParticipant verwenden - Lineal-Ansichtsteile PR #165466
- @nisargjhaveri (Nisarg Jhaveri): Ermöglicht die gleichzeitige Anzeige verschiedener Ausnahmedebugger-Haltepunkte PR #158355
- @Okeanos (Nikolas Grottendieck): Git Bash Integration unter Windows verbessern (#_151105) PR #165428
- @pafernandez-oesia: Korrigiert #165480 PR #165486
- @pingren (Ping): KaTeX-Gleichungsnummerierung in der Notebook-Vorschau korrigieren PR #156276
- @prashantvc (Prashant Cholachagudda): sessionId mit machineId für die Telemetrie der Erweiterungssuche ändern PR #166355
- @QaidVoid: Reduzieren von registerThemingParticipant PR #165575
- @r3m0t (Tomer Chachamu)
- Kontrollkästchen für die autoLockGroups-Einstellungen UI korrigiert (Fixes #164367) PR #164369
- Aktualisierungen für TestItem.error und TestItem.sortText korrigiert (Fixes #166190) PR #166191
- @ramoncorominas (Ramón Corominas): messages.es.isl aktualisieren, um eine Hotkey-Eingabeaufforderung hinzuzufügen PR #166010
- @rwe (Robert Estelle)
- shellIntegrationAddon.ts: Nachrichten nur für VSCodeOScPt dekodieren, nicht für iTerm2 PR #165579
- shellIntegration.fish: Werte in "E" (ausgeführter Befehl) und "P" (Eigenschaft KV) Codes escapen PR #165631
- shellIntegration-bash.sh: Werte in "E" (ausgeführter Befehl) und "P" (Eigenschaft KV) Codes escapen PR #165632
- shellIntegration-rc.zsh: Werte in "E" (ausgeführter Befehl) und "P" (Eigenschaft KV) Codes escapen PR #165633
- shellIntegration.ps1: Werte in "E" (ausgeführter Befehl) und "P" (Eigenschaft KV) Codes escapen PR #165634
- shellIntegrationAddon: Implementierung von
deserializeMessage()korrigieren + Tests hinzufügen PR #165635
- @sandersn (Nathan Shively-Sanders): webServer von TypeScript nach VS Code kopieren PR #165771
- @SethFalco (Seth Falco): feat: Einstellung für Multi-Cursor-Limit hinzufügen PR #149703
- @SphinxKnight (SphinxKnight): Nit: Groß-/Kleinschreibung von Tip-Blöcken korrigieren PR #165223
- @ssigwart (Stephen Sigwart): Korrigiert unerwünschte zusätzliche Leerzeichen beim Einfügen von Code mit JSDoc PR #136579
- @Timmmm (Tim): Option für feste Tabs korrigieren PR #157543
- @weartist (Han)
- CSS-Regeln für #165169 verschieben PR #165595
- #165169 CSS-Regeln von hover.ts nach hover.css verschieben PR #166095
- CSS-Regeln von inPlaceReplace.ts nach inPlaceReplace.css verschieben PR #166098
- Adapter CSS-Variablen PR #166279
- CSS-Variablen für diffEditor verschieben PR #166467
- @yiliang114 (易良): Nur String aus dem Feld
browserinremote/web/package.jsonverwenden PR #165163 - @zeroimpl (Daniel Fiori): Tabulatorgröße und Einrückungsgröße trennen PR #155450
- @zhuowei: webview: Strg+W und Strg+N im Webview für PWA ignorieren PR #164981
Beiträge zu vscode-css-languageservice
- @babakks (Babak K. Shandiz): ✋ Fehlende Standardeigenschaften in Kontexten mit herstellerspezifischen Pseudo-Elementen ignorieren PR #303
- @johnsoncodehk (Johnson Chu)
Beiträge zu vscode-eslint
- @aleclarson (Alec Larson): Option zur Verhinderung der Unterstreichung mehrerer Zeilen einführen PR #1528
- @MariaSolOs (Maria José Solano): Prüfen auf -- beim Deaktivieren von Regeln PR #1506
- @uhyo (uhyo): Experimentelle Unterstützung für Flat Config hinzufügen PR #1522
Beiträge zu vscode-js-debug
- @xai (Olaf Lessenich): fix: plattformabhängige Groß-/Kleinschreibung im Launcher verwenden PR #1449
Beiträge zu vscode-json-languageservice
Beiträge zu vscode-pull-request-github
- @joshuaobrien (Joshua O'Brien): Typen in TimelineEvent einschränken, damit sie als getaggte Union behandelt werden können PR #4160
Beiträge zu debug-adapter-protocol
- @sztomi (Tamás Szelei): sdks.md aktualisieren - dap-rs einschließen PR #349
- @WardenGnaw (Andrew Wang): EvaluateArguments-Kontextvariablen ans Ende der Aufzählungen verschieben PR #346
Beiträge zu devcontainers/cli
- @amurzeau (Alexis Murzeau): Cygwin / Git Bash Sockets-Weiterleitung unter Windows behandeln PR #82
- @natescherer (Nate Scherer): --output-Option zu devcontainer build hinzufügen PR #166
- @stuartleeks (Stuart Leeks): --additional-features-Option hinzufügen PR #171
- @chris-major-improbable (Chris Major): GPU-Anforderung und automatische Erkennung von NVIDIA-Erweiterungen PR #173
- @davidwallacejackson (David Jackson): Feature-Berechtigungen normalisieren PR #233