Oktober 2019 (Version 1.40)
Update 1.40.1: Das Update behebt diese Issues.
Update 1.40.2: Das Update behebt diese Issues.
Downloads: Windows: x64 | Mac: Intel | Linux: deb rpm tarball snap
Willkommen zur Oktober 2019-Veröffentlichung von Visual Studio Code. Wie im Oktober-Iteraktionsplan angekündigt, konzentrierten wir uns auf die Pflege von GitHub Issues und Pull Requests, wie in unserem Issue-Grooming-Leitfaden dokumentiert. Über alle unsere VS Code-Repositories hinweg haben wir 4622 Issues geschlossen (entweder getriagt oder behoben), was sogar noch mehr ist als während unserer letzten Housekeeping-Iteration im September 2018, bei der wir 3918 Issues schlossen. Während wir Issues schlossen, haben Sie 2195 neue Issues erstellt. Dies führte zu einer Netto-Reduzierung von 2427 Issues. Das Haupt-vscode-Repository hat nun 2162 offene Funktionsanfragen und 725 offene Fehler. Zusätzlich haben wir 287 Pull Requests geschlossen. Als Teil dieser Bemühungen haben wir auch unseren Prozess verfeinert und den Workflow zur Triage von Issues aktualisiert.
Wie im letzten Jahr haben wir den Live-Tracker von Benjamin Lannon verwendet, um unseren Fortschritt zu verfolgen.

Während dieses Housekeeping-Meilensteins haben wir auch mehrere Funktionsanfragen und Community-Pull-Requests (#_thank-you) bearbeitet. Lesen Sie weiter, um mehr über neue Funktionen und Einstellungen zu erfahren.
Workbench
Aktivitätsleisten-Indikator
Wir haben einen neuen Indikator für das aktive Element in der Aktivitätsleiste eingeführt, um es besser hervorzuheben und die Lesbarkeit zu verbessern. Wir haben auch die Farben des inaktiven Vordergrunds abgestimmt, um einen stärkeren Kontrast zum aktiven Element zu erzielen.

Sie können den aktiven Indikator über den neuen Farb-Token activityBar.activeBorder steuern. Wir haben auch eine optionale Hintergrundfarbe für das aktive Element eingeführt, activityBar.activeBackground, und wenn diese konfiguriert ist, kann sie so aussehen

Themable Fensterrahmen
Wir haben zwei neue Themenfarben eingeführt, window.activeBorder und window.inactiveBorder, um einen Rahmen um das VS Code-Fenster zu legen. window.activeBorder gilt für das aktive (fokussierte) Fenster, während window.inactiveBorder für inaktive (nicht fokussierte) Fenster gilt. Diese neuen Farben erben von keiner anderen Farbe, daher müssen sie entweder vom Thema oder von der Einstellung workbench.colorCustomizations bereitgestellt werden. Wenn nur eine Farbe angegeben ist, wird ein Rahmen mit dieser Farbe sowohl für aktive als auch für inaktive Fenster angewendet.

Listen- und Baum-Tastatur-Scrolling
Sie können jetzt ⌘↑ (Windows, Linux Ctrl+Up) und ⌘↓ (Windows, Linux Ctrl+Down) drücken, um Listen und Bäume mit der Tastatur zu durchscrollen.
Weniger Benachrichtigungen im Zen-Modus
Im Zen-Modus lenken Benachrichtigungs-Popups Sie nicht mehr ab, es sei denn, sie informieren über Fehler. Sie können dieses Verhalten mit der neuen Einstellung zenMode.silentNotifications steuern. Sie können jederzeit über die Statusleiste auf alle Benachrichtigungen zugreifen, indem Sie auf das Benachrichtigungssymbol in der unteren rechten Ecke klicken.
Typfilter für Gliederung und Breadcrumbs
Es gibt neue Einstellungen, um zu konfigurieren, welche Symbole in der Gliederungsansicht und der Breadcrumb-Navigation angezeigt werden. Die Einstellungen heißen outline.show{symbol type} und breadcrumbs.show{symbol type}. Zum Beispiel outline.showVariables, outline.showFunctions usw.

Der obige Screenshot zeigt die Gliederungsansicht, die so konfiguriert ist, dass lokale Variablen nicht angezeigt werden, und Sie sehen, dass die Variable hidden nicht angezeigt wird.
Beachten Sie, dass es der Sprach-Erweiterung obliegt, den Symboltyp zuzuweisen. Sie können mit der Maus über das Symbol-Label in der Gliederungsansicht fahren, um zu sehen, welcher Symboltyp verwendet wird (in Klammern angezeigt).
Größenverhalten beim Aufteilen von Editoren steuern
Eine neue Einstellung workbench.editor.splitSizing steuert das Layout von Editoren beim Aufteilen. Standardmäßig wird die Größe gleichmäßig auf alle Editoren verteilt, wie unten gezeigt

Ändern Sie diese Einstellung auf split, damit der aktuelle Editor halbiert wird und die Größe anderer Editoren nicht beeinträchtigt wird.

GPU-Beschleunigung deaktivieren
Wir haben Fehlerberichte von Benutzern erhalten, die sich auf die Art und Weise zu beziehen scheinen, wie die GPU verwendet wird, um die Benutzeroberfläche von VS Code zu rendern. Diese Benutzer haben eine viel bessere Erfahrung, wenn sie VS Code mit dem zusätzlichen Befehlszeilenargument --disable-gpu ausführen. Die Ausführung mit diesem Argument deaktiviert die GPU-Hardwarebeschleunigung und greift auf eine Software-Rendering zurück.
Um Ihnen das Leben zu erleichtern, können Sie dieses Flag als Einstellung hinzufügen, damit es nicht jedes Mal über die Befehlszeile übergeben werden muss.
Um dieses Flag hinzuzufügen
- Öffnen Sie die Befehlspalette (⇧⌘P (Windows, Linux Ctrl+Shift+P)).
- Führen Sie den Befehl Preferences: Configure Runtime Arguments aus.
- Dieser Befehl öffnet eine Datei
argv.jsonzur Konfiguration von Laufzeitargumenten. Möglicherweise sehen Sie dort bereits einige Standardargumente. - Fügen Sie
"disable-hardware-acceleration": truehinzu. - Starten Sie VS Code neu.
Hinweis: Verwenden Sie diese Einstellung nicht, es sei denn, Sie haben Probleme!
Editor
files.eol pro Sprache
Die Einstellung files.eol kann jetzt pro Sprache gesetzt werden. Sie können beispielsweise definieren, dass alle Dateien mit dem Sprach-Identifikator 'mylanguage' \n als Standard-Zeilenende für alle neuen Dateien verwenden.
"[mylanguage]": {
"files.eol": "\n"
}
Die Zeilenende-Sequenz wird für neue Dateien verwendet. Für vorhandene Dateien wird die aktuelle Zeilenende-Sequenz immer beibehalten. Um die Zeilenende-Sequenz für eine vorhandene Datei zu ändern, verwenden Sie den Befehl Zeilenende-Sequenz ändern.
Mit einer files.eol-Spracheinstellung ist die Standard-Zeilenende-Sequenz für 'shellscript' nun als \n definiert.
Minimap-Skalierung und verbesserte Schriftartendarstellung
Eine neue Einstellung editor.minimap.scale konfiguriert die Größe der Minimap auf einen von mehreren konstanten Werten, was besonders für hochauflösende oder extrem breite Displays nützlich ist. Außerdem ist die Darstellung der Schriftarten der Minimap jetzt glatter und klarer.

Definition-Vorschau-Hover über die Tastatur
Es gibt einen neuen Befehl Definition-Vorschau-Hover anzeigen für eine bessere Zugänglichkeit des Definition-Vorschau-Hover-Widgets, das durch Hovern über ein Symbol mit der Maus und Drücken einer Modifikatortaste (abhängig von Plattform und Konfiguration) ausgelöst werden kann. Zuvor wurde nur der Befehl Hover anzeigen bereitgestellt, der dem Hovern des Mauszeigers über ein Symbol entspricht. Jetzt, mit Definition-Vorschau-Hover anzeigen, können die detaillierten Hover-Informationen über die Tastatur angezeigt werden.

Verbesserungen beim Klammerabgleich
Zuvor hat VS Code passende Klammern nur hervorgehoben, wenn der Cursor neben einem Klammerzeichen stand. Jetzt hebt VS Code immer umschließende Klammern hervor, falls vorhanden.

Wir haben auch unsere Aktionen Gehe zu Klammer und Bis Klammer auswählen angepasst, um umschließende Klammern zu verwenden.
Auswahl duplizieren
Wir haben eine neue Aktion namens Auswahl duplizieren hinzugefügt. Wenn diese ausgeführt wird, wird die aktuelle Auswahl dupliziert und das Ergebnis ausgewählt. Wenn keine Auswahl vorhanden ist, wird die aktuelle Zeile dupliziert, alles ohne Schreiben in die System-Zwischenablage.
Schriftart-Feature-Einstellungen
Es gibt jetzt eine feinere Steuerung über die Schriftart-Features. Wenn Sie "editor.fontLigatures": true konfigurieren, schaltet VS Code liga und calt ein. Aber einige Schriftarten haben mehr Einstellungen, wie z. B. stilistische Sätze, die von Fira Code verwendet werden.
Wir erlauben jetzt, diese Schriftart-Features explizit zu steuern, zum Beispiel
"editor.fontFamily": "Fira Code",
"editor.fontLigatures": true,
"[javascript]": {
"editor.fontLigatures": "'ss02', 'ss19'",
},
Die obigen Einstellungen konfigurieren den Editor so, dass die Schriftartfamilie Fira Code verwendet wird, Schriftart-Ligaturen für alle Sprachen eingeschaltet werden und in JavaScript-Dateien die Schriftart-Feature-Einstellungen 'Horizontal Bar' ('ss02') und 'Dotted zero' ('ss19') aktiviert werden. Dies bewirkt, dass die >=-Ligatur mit einem horizontalen Balken und die 0 mit einem Punkt darin in JavaScript gerendert werden.

Bessere Handhabung von Unicode-Kombinationszeichen
Wir haben Verbesserungen bei der Handhabung von Unicode-Kombinationszeichen vorgenommen und behandeln solche Sequenzen als atomare Zeichen (bei Cursorbewegung, Bearbeitungsvorgängen oder Block-Cursor-Darstellung). Dies lässt sich am besten anhand des Block-Cursor-Stils und einer Vorher/Nachher-Animation demonstrieren.
Vorher

Nachher

In einer verwandten Änderung zeigt die Statusleiste nun die Unicode-Punktzahl im Abschnitt Col an.
Cursor Redo
Der Befehl Rückgängig wurde in Cursor Rückgängig umbenannt. Diese Aktion ist nützlich, zum Beispiel wenn Sie ⌘D (Windows, Linux Ctrl+D) verwenden, um die nächste Übereinstimmung auszuwählen und dabei einmal zu weit gehen, da sie nur die letzte Zustandsänderung des Cursors rückgängig macht. Zusätzlich haben wir nun Cursor Redo hinzugefügt, das die zuvor rückgängig gemachte Zustandsänderung des Cursors wiederherstellt.
Verbesserungen am Diff-Editor
Die integrierte Diff-Berechnung hatte zuvor ein fest codiertes Timeout von 5 Sekunden, danach gab sie auf und gab ein nicht-minimales Diff zurück. Sie können dieses Timeout jetzt mit "diffEditor.maxComputationTime" konfigurieren, und wenn Sie das Timeout auf 0 setzen, wird immer ein minimales Diff berechnet, egal wie lange es dauert. Zusätzlich zeigt der Diff-Editor jetzt eine Fortschrittsanzeige an, wenn die Berechnung länger als eine Sekunde dauert.
Eine Quelle der Verwirrung bei der Verwendung des Diff-Editors war der Vergleich von Dateien mit nur führenden oder nachgestellten Leerzeichen, wenn der Diff-Editor so konfiguriert war, dass Leerzeichen ignoriert wurden. Dies würde dazu führen, dass die Quellcodeverwaltung die Dateien als geändert anzeigt, während der Diff-Editor keine Unterschiede anzeigt. VS Code zeigt nun eine Schaltfläche Leerzeichenunterschiede anzeigen an, wenn dieser Fall erkannt wird, um Ihnen zu helfen, Unterschiede bei Leerzeichen schnell anzuzeigen. Dies kann über den Befehl Unterschiede bei nachgestellten Leerzeichen anzeigen/ignorieren am oberen Rand des Diff-Editors umgeschaltet werden.

Integriertes Terminal
Chords werden jetzt standardmäßig unterstützt
Die neue Einstellung terminal.integrated.allowChords (Standard true) ermöglicht es Tastenkombinationen, die Teil einer Chord-Tastenkombination sind, das Terminal zu überspringen und stattdessen von VS Code verarbeitet zu werden (wodurch die Zulassungsliste terminal.integrated.commandsToSkipShell umgangen wird).
Beachten Sie, dass die gleichen Einschränkungen für Tastenkombinationen im Terminal weiterhin gelten; die Chord-Tastenkombination mit der höchsten Priorität wird bei dieser Auswertung berücksichtigt.
Zum Beispiel, wenn eine Erweiterung die Tastenkombination Ctrl+M A beiträgt und Sie Folgendes in Ihrer keybindings.json-Datei definiert haben
[
{ "key": "ctrl+m a", "command": "workbench.action.terminal.toggleTerminal" },
{ "key": "ctrl+m a", "command": "workbench.action.focusLastEditorGroup" }
]
Ctrl+M A führt dazu, dass der Befehl workbench.action.focusLastEditorGroup ausgeführt wird, da dies die letzte Tastenkombination ist und Benutzer-Tastenkombinationen eine höhere Priorität haben als von Erweiterungen beigesteuerte Tastenkombinationen.
Schnelles Scrollen
Das Terminal unterstützt jetzt die Taste Alt mit dem Mausrad, um schneller zu scrollen, basierend auf dem Multiplikator, der in der Einstellung editor.fastScrollSensitivity definiert ist.
Neue "Einfügen"-Option für Rechtsklickverhalten
Eine neue Option wurde zur Einstellung rightClickBehavior hinzugefügt, um immer im Terminal bei einem Rechtsklick einzufügen.
"terminal.integrated.rightClickBehavior": "paste"
Doppelklick zum Auswählen eines Wortes verwendet mehr Trennzeichen
Die Zeichen ,, : und ; werden nun als Worttrenner gezählt, wenn Sie im Terminal auf ein Wort/mehrere Wörter doppelklicken, um es/sie auszuwählen.
Symlink-CDWs werden nicht mehr aufgelöst
Wenn das anfängliche Arbeitsverzeichnis eines Terminals auf einen Symlink gesetzt ist, wird der Symlink nun im Terminal beibehalten.
Befehlsnavigation funktioniert jetzt ab der Scroll-Position
Die Befehlsnavigation ermöglicht die Navigation zwischen oder die Auswahl zwischen Befehlen, die im Terminal ausgeführt wurden. Dies berücksichtigt nun die Scroll-Position des Terminals, sodass Sie scrollen, den vorherigen Befehl finden können und das Terminal von der Ansicht des Terminals nach oben scrollt (zuvor scrollte es von unten).

Die Befehlsnavigation ist standardmäßig nur unter macOS mit Cmd+Up/Down und die Befehlsauswahl mit Cmd+Shift+Up/Down belegt.
Hier sind einige Beispiel-Tastenkombinationen, wenn Sie diese Funktion unter Windows oder Linux nutzen möchten.
{
// Terminal command tracking on Windows and Linux
{ "key": "ctrl+up", "command": "workbench.action.terminal.scrollToPreviousCommand", "when": "terminalFocus" },
{ "key": "ctrl+down", "command": "workbench.action.terminal.scrollToNextCommand", "when": "terminalFocus" },
{ "key": "ctrl+shift+up", "command": "workbench.action.terminal.selectToPreviousCommand", "when": "terminalFocus" },
{ "key": "ctrl+shift+down", "command": "workbench.action.terminal.selectToNextCommand", "when": "terminalFocus" },
}
Aufgaben
Task-Quick-Pick-Listen
Der Befehl Aufgabe konfigurieren überspringt nun immer die Quick-Pick-Liste der Aufgaben, wenn Sie nur eine Aufgabe definiert haben. Um dieses Verhalten auf Aufgabe ausführen und andere Aufgaben-Quick-Picks auszudehnen, können Sie die Einstellung task.quickOpen.skip auf true setzen.
Die neue Einstellung task.quickOpen.history steuert, wie viele Aufgaben in der Aufgaben-Quick-Pick als kürzlich verwendet angezeigt werden. Setzen Sie task.quickOpen.history auf 0, um den Bereich der kürzlich verwendeten Aufgaben in der Aufgaben-Quick-Pick zu deaktivieren.
Aufgaben mit einer detail-Eigenschaft zeigen diese nun in einigen Aufgabenlisten an. Sie können Details in der Aufgaben-Quick-Pick deaktivieren, indem Sie task.quickOpen.detail auf false setzen.
Option zum Ausführen von NPM-Skripten für einen Ordner
Wenn die Einstellung npm.enableRunFromFolder aktiviert ist, zeigt das Kontextmenü des Datei-Explorers den Befehl NPM-Skript im Ordner ausführen... an, wenn ein Ordner ausgewählt ist. Der Befehl zeigt eine Quick-Pick-Liste der NPM-Skripte in diesem Ordner an und Sie können das Skript auswählen, das als Aufgabe ausgeführt werden soll.
Warnung bei langsamen Task-Providern
Wenn ein Task-Provider langsam läuft, zeigen wir nun eine Warnung mit Vorschlägen an, wie Sie die Verlangsamung vermeiden können. Die Warnung kann für einzelne Aufgabentypen deaktiviert oder für alle Aufgaben deaktiviert werden, indem task.slowProviderWarning auf false gesetzt wird.

Task-Autodetektion deaktivieren
Wenn alle Aufgaben, die Sie benötigen, in einer tasks.json-Datei definiert sind, möchten Sie möglicherweise alle Task-Provider von Erweiterungen deaktivieren, um die Leistung beim Ausführen von Aufgaben zu verbessern. Es ist gute Praxis, dass einzelne Erweiterungen eine Einstellung zur Deaktivierung ihrer Task-Provider bereitstellen, aber Sie können jetzt alle Task-Provider deaktivieren, indem Sie task.autoDetect auf off setzen.
Problem-Matcher-Aufforderung
In der Vergangenheit musste jede Aufgabe ohne Problem-Matcher einen leeren Problem-Matcher in tasks.json setzen, um die Problem-Matcher-Aufforderung zu überspringen. Jetzt können Sie task.problemMatchers.neverPrompt verwenden, um die Problem-Matcher-Aufforderung für alle Aufgaben oder für bestimmte Aufgabentypen zu deaktivieren. Es gibt auch eine neue Option in der Problem-Matcher-Aufforderung, um die Aufforderung zu deaktivieren.

Quellcodeverwaltung
Datei bei aktiver Editoränderung hervorheben
Die Quellcodeverwaltungsansicht hebt nun automatisch die aktive Editor-Datei in ihrer Baum-/Listenansicht hervor.

Git: Verbesserte Verwaltung von nicht verfolgten Dateien
Sie können nicht verfolgte Dateien jetzt separat verwalten, indem Sie die Einstellung Git: Nicht verfolgte Änderungen verwenden. Wählen Sie die Option separate, wenn Sie nicht verfolgte Dateien in einer separaten Gruppe in der Quellcodeverwaltungsansicht sehen möchten. Wählen Sie hidden, wenn Sie sie nie sehen möchten. Die Standard-Commit-Aktion passt sich dieser Einstellung an und bezieht nicht verfolgte Änderungen nur dann in einen Commit ein, wenn der Einstellungswert mixed verwendet wird.

Git: Automatischer Commit-Nachricht bei Merge-Commits
Immer wenn VS Code erkennt, dass Sie sich mitten in einem Git-Merge-Commit befinden, wird das Commit-Eingabefeld automatisch mit der Standard-Commit-Nachricht von Git gefüllt.

Git: Im Explorer anzeigen
Es gibt jetzt eine Kontextmenüaktion Im Explorer anzeigen, um Dateien in der Dateiexplorer-Ansicht anzuzeigen, die sich in einem Git-Repository in der Quellcodeverwaltungsansicht befinden.

Git: Klonfortschritt
Der Klonvorgang unterstützt jetzt die Anzeige des Fortschritts in der Benachrichtigung in der unteren rechten Ecke.

Debugging
Breakpoints können im Übersichtslineal angezeigt werden
Um Ihnen die Arbeit mit Breakpoints in großen Dateien zu erleichtern, können Sie Breakpoints jetzt im Übersichtslineal des Editors anzeigen, indem Sie die neue Einstellung debug.showBreakpointsInOverviewRuler aktivieren.

PreLaunch Tasks für Compound-Debug-Konfigurationen
Heute kann jede Debug-Konfiguration über das Attribut preLaunchTask eine Aufgabe angeben, die vor dem Start der Debug-Sitzung ausgeführt werden soll. Dies funktioniert gut beim Debuggen eines einzelnen Programms, wird aber bei Compound-Konfigurationen, bei denen mehrere Programme beteiligt sind, umständlich.
In diesem Meilenstein haben wir die Unterstützung für einen preLaunchTask pro Compound-Debug-Konfiguration hinzugefügt. Mit dieser Ergänzung kann eine einzige Aufgabe alle Debug-Ziele erstellen, bevor die einzelnen Debug-Sitzungen gestartet werden. Im Falle eines Build-Fehlers wird keine Sitzung gestartet.

Sprachen
CSS-Media-Query-Symbole
In CSS/SCSS/Less-Dateien werden Media-Query-Symbole jetzt in der Gliederungsansicht, dem Breadcrumb-Pfad und der Liste Symbole in Datei suchen angezeigt.

typescript.tsserver.maxTsServerMemory
Wenn Sie mit einem großen TypeScript-Projekt arbeiten, das Tausende von Dateien enthält, können Sie mit der neuen Einstellung typescript.tsserver.maxTsServerMemory die maximale Speichernutzung für den TypeScript-Server erhöhen, der IntelliSense antreibt.
Erweiterungs-Authoring
vscode.env.uiKind
Eine neue API vscode.env.uiKind wurde hinzugefügt, damit eine Erweiterung wissen kann, in welcher Art von Benutzeroberfläche sie läuft. Um VS Code in einem Browser auszuführen, sind die möglichen Werte UIKind.Web und UIKind.Desktop.
Call Hierarchy Provider API
Wir haben die Call Hierarchy Provider API finalisiert: CallHierarchyProvider. Sie unterstützt die Funktion Call Hierarchy anzeigen, die Aufrufer von und Aufrufe von Funktionen, Methoden usw. findet.
Task CustomExecution
Die API des Task-Typs CustomExecution wurde finalisiert. Wenn eine Shell- oder Prozessaufgabe nicht für Ihre Aufgabe geeignet ist, können Sie eine CustomExecution-Aufgabe verwenden, um einen Callback in Ihrer Erweiterung auszuführen. Erfahren Sie mehr im Task Provider-Erweiterungsleitfaden.
Debug API: "consoleMode"-Option für "startDebugging"-Anfrage
Im letzten Meilenstein haben wir eine neue vorgeschlagene API zur Steuerung eingeführt, ob eine Hierarchie von Debug-Sitzungen eine einzelne Debug-Konsole teilt oder einzelne Konsolen verwendet. Diese API ist nun offiziell, sodass Sie sie in Erweiterungen verwenden können, die im Marketplace veröffentlicht werden.
Symbol-Farbtokens
Wir freuen uns, endlich neue Farbtokens für unsere Symbole einzuführen. Wir fügen diese langsam für bestimmte Bereiche hinzu, hier ist der erste Stapel.
Symbole
Diese Symbole erscheinen in der Gliederungsansicht, der Breadcrumb-Navigation und dem Vorschlags-Widget.
symbolIcon.arrayForegroundsymbolIcon.booleanForegroundsymbolIcon.classForegroundsymbolIcon.colorForegroundsymbolIcon.constructorForegroundsymbolIcon.constantForegroundsymbolIcon.enumeratorForegroundsymbolIcon.enumeratorMemberForegroundsymbolIcon.eventForegroundsymbolIcon.fieldForegroundsymbolIcon.fileForegroundsymbolIcon.folderForegroundsymbolIcon.functionForegroundsymbolIcon.interfaceForegroundsymbolIcon.keyForegroundsymbolIcon.keywordForegroundsymbolIcon.methodForegroundsymbolIcon.moduleForegroundsymbolIcon.namespaceForegroundsymbolIcon.nullForegroundsymbolIcon.numberForegroundsymbolIcon.objectForegroundsymbolIcon.operatorForegroundsymbolIcon.packageForegroundsymbolIcon.propertyForegroundsymbolIcon.referenceForegroundsymbolIcon.snippetForegroundsymbolIcon.stringForegroundsymbolIcon.structForegroundsymbolIcon.textForegroundsymbolIcon.typeParameterForegroundsymbolIcon.unitForegroundsymbolIcon.variableForeground
![]()
Probleme und Benachrichtigungen
Wir haben die Standardfarben für die Probleme- und Benachrichtigungs-Symbole so eingestellt, dass sie von den Editor-Vordergrundfarben geerbt werden. Wenn Sie also diese Farben ändern, werden sie auch auf die anderen Bereiche übertragen.
![]()
Sie können die Symbolfarben für das Probleme-Panel und die Benachrichtigungen auch explizit festlegen.
problemsErrorIcon.foregroundproblemsWarningIcon.foregroundproblemsInfoIcon.foregroundnotificationsErrorIcon.foregroundnotificationsInfoIcon.foregroundnotificationsWarningIcon.foreground
Glühbirne
Die Glühbirnen-Symbole sind ebenfalls themenbezogen.
editorLightBulb.foregroundeditorLightBulbAutoFix.foreground
![]()
vscode.env.asExternalUri
Die API vscode.env.asExternalUri ermöglicht es einer Erweiterung, eine externe URI – wie eine http: oder https: URI – von dort, wo die Erweiterung läuft, zu einer URI für dieselbe Ressource auf dem Client-Computer aufzulösen. Dies ist eine Ergänzung zur API vscode.env.openExternal, außer dass anstatt die aufgelöste URI mit einem externen Programm zu öffnen, das Ergebnis an die Erweiterungen zurückgegeben wird.
import * as vscode from 'vscode';
import * as http from 'http';
const PORT = 3000;
export function activate(context: vscode.ExtensionContext) {
startLocalServer(PORT);
context.subscriptions.push(
vscode.commands.registerCommand('example.command', async () => {
const resolved = vscode.env.asExternalUri(
vscode.Uri.parse(`https://:${PORT}`)
);
vscode.window.showInformationMessage(
`Resolved to: ${resolved} on client and copied to clipboard`
);
vscode.env.clipboard.writeText(resolved.toString());
})
);
}
function startLocalServer(port: number) {
const server = http.createServer((req, res) => {
res.end('Hello world!');
});
server.on('clientError', (err, socket) => {
socket.end('HTTP/1.1 400 Bad Request\r\n\r\n');
});
server.listen(port);
vscode.window.showInformationMessage(`Started local server on port: ${port}`);
}
Für http: und https: URIs ist asExternalUri ein No-Op, wenn die Erweiterung auf dem Client-Computer läuft. Wenn die Erweiterung jedoch remote läuft, richtet vscode.env.asExternalUri automatisch einen Port-Forwarding-Tunnel von der lokalen Maschine zu target auf dem Remote-System ein und gibt eine lokale URI zum Tunnel zurück.
Wenn asExternalUri mit einer vscode.env.uriScheme URI aufgerufen wird, gibt es eine URI zurück, die – wenn sie in einem Browser geöffnet wird (z.B. über openExternal) – den registrierten URI-Handler auslöst.
Entfernung von experimentellen Custom Data-Einstellungen und Contribution Points
[html/css].experimental.customData-Einstellungen und contributes.[html/css].experimental.customData Contribution Points wurden in 1.38 als veraltet markiert und nun entfernt. Sie können stattdessen die stabilen Custom Data-Einstellungen und Contribution Points verwenden. Um mehr über das Custom Data-Format zu erfahren, siehe das Repository microsoft/vscode-custom-data.
extensionKind kann ein Array sein
In package.json konnte die Eigenschaft extensionKind den Wert "ui" oder "workspace" haben, um anzugeben, wo eine Erweiterung im Remote-Fall ausgeführt werden soll. Mit dieser Veröffentlichung kann extensionKind jetzt ein Array sein. Zum Beispiel würde ["ui", "workspace"] angeben, dass eine Erweiterung sowohl auf der "ui"- als auch auf der "workspace"-Seite laufen kann, mit einer Präferenz für die Ausführung auf der "ui"-Seite, wenn sie dort installiert ist.
Vorgeschlagene Erweiterungs-APIs
Jeder Meilenstein bringt neue vorgeschlagene APIs mit sich, und Erweiterungsautoren können sie ausprobieren. Wie immer freuen wir uns über Ihr Feedback. So probieren Sie eine vorgeschlagene API aus:
- Sie müssen Insiders verwenden, da sich vorgeschlagene APIs häufig ändern.
- Sie müssen diese Zeile in der Datei
package.jsonIhrer Erweiterung haben:"enableProposedApi": true. - Kopieren Sie die neueste Version der Datei vscode.proposed.d.ts in den Quellcode-Speicherort Ihres Projekts.
Beachten Sie, dass Sie keine Erweiterung veröffentlichen können, die eine vorgeschlagene API verwendet. Möglicherweise gibt es in der nächsten Version Breaking Changes, und wir möchten niemals bestehende Erweiterungen brechen.
Unterstützung für IntelliSense-Ersetzungsmodus
Wir arbeiten an einer Funktion, die es Benutzern ermöglicht zu entscheiden, ob Vorschläge vorhandenen Text ersetzen oder nur eingefügt werden sollen. Beispielsweise kann das Akzeptieren von console innerhalb von con|st zu console (Ersetzen) oder consolest (Einfügen) führen. Beide Modi haben ihre Vorteile und hängen letztendlich vom aktuellen Kontext und den Benutzerpräferenzen ab. Damit diese Funktion am besten funktioniert, benötigen wir Erweiterungen, die uns sagen, was zu tun ist. Daher schlagen wir vor, einen neuen Typ zur Eigenschaft CompletionItem#range hinzuzufügen, die wie folgt geändert wird.
interface CompletionItem {
range?: Range | { insert: Range; replace: Range };
}
Der Bereich ist weiterhin optional oder ein einfacher Bereich, er kann aber auch aus zwei Bereichen bestehen: einer zum Einfügen und einer zum Ersetzen. Weitere Details finden Sie in Issue #10266.
Aufgaben-Detail
Es gibt eine neue Eigenschaft für Task, die Task-Provider verwenden können, um der Aufgabe ein detail hinzuzufügen, wenn sie in der Benutzeroberfläche angezeigt wird. Sie können die Detail-Eigenschaft auch in tasks.json verwenden. Die integrierte npm-Erweiterung verwendet das Aufgabendetail, um anzuzeigen, welches npm-Skript ausgeführt wird.

Unterstützung für die Übergabe von WebviewPanelOptions an benutzerdefinierte Editoren
Wir haben unsere Arbeit am Vorschlag für die Custom Editor API in dieser Iteration fortgesetzt. Jetzt nimmt die vorgeschlagene Funktion registerWebviewEditorProvider eine Reihe von options entgegen, die es Ihnen ermöglichen, retainContextWhenHidden und andere Funktionen in Custom Editor Webviews zu aktivieren.
export function registerWebviewEditorProvider(
viewType: string,
provider: WebviewEditorProvider,
options?: WebviewPanelOptions
): Disposable;
Technik
Testen von VS Code im Browser
Es gibt jetzt eine minimale Einrichtung, mit der VS Code in einem Browser ausgeführt werden kann, die für Entwicklung und Tests verfügbar ist. Instanzen im Browser fehlen noch einige Funktionen und befinden sich in der aktiven Entwicklung.
Führen Sie in Ihrem lokalen Fork des vscode-Repositorys yarn web auf der Befehlszeile aus und rufen Sie https://:8080/ auf. Weitere Details zum Klonen und Erstellen des vscode-Repositorys finden Sie in den Setup-Anweisungen.

Hinweis: Verwenden Sie diese Einrichtung nicht für ernsthafte Entwicklung. Die Absicht ist, der Community zu ermöglichen, Änderungen an VS Code beizutragen, um die allgemeine Erfahrung im Browser zu verbessern.
VS Code mit TypeScript 3.7 erstellen
VS Code wird jetzt mit TypeScript 3.7 erstellt. Dies ist ein spannendes Update, da es uns ermöglicht, Optional Chaining (?.) in unserer Codebasis zu verwenden (und viele andere Verbesserungen mit sich bringt).
Sie können TypeScript 3.7-Funktionen in VS Code noch heute nutzen, indem Sie die Erweiterung JavaScript and TypeScript Nightly installieren.
Electron 6.0 Update
In diesem Meilenstein haben wir die Untersuchung des Bundlings von Electron 6 in VS Code abgeschlossen, was bedeutet, dass diese Electron-Version zum ersten Mal stabil ausgeliefert wird. Dies ist eine Hauptversion von Electron und bringt Chromium 76.0.3809.146 und Node.js 12.4.0 mit sich (ein großer Fortschritt gegenüber unserer aktuellen Version mit Chromium 69 und Node.js 10.11.0).
Wir haben begonnen, die Aktualisierung auf Electron 7 zu untersuchen, die wir hoffentlich bald in die Insider-Versionen aufnehmen werden.
Bemerkenswerte Fehlerbehebungen
- 78634: Terminalinhalt verschwindet beim Ändern der Größe (powershell/conpty)
- 25854: Markdown-Vorschau kann nicht in eine neue Editor-Gruppe gezogen werden.
- 81824: Webview-Editor wird nicht im Befehl "Zuletzt geöffnete Editoren aus Verlauf" angezeigt.
Vielen Dank
Nicht zuletzt ein großes Dankeschön! an die folgenden Personen, die dazu beigetragen haben, VS Code noch besser zu machen
Beiträge zu unserer Fehlerverfolgung
Bitte besuchen Sie unsere Community Issue Tracking-Seite, wenn Sie uns bei der Verwaltung eingehender Probleme helfen möchten.
Beiträge zu vscode
- Adam Burgess (@adamburgess): Option zum Einfügen per Rechtsklick für das Terminal hinzugefügt PR #81448
- André Casal (@andrecasal): Beschreibung von git.confirmEmptyCommits verdeutlicht PR #83257
- Anirudh Rayabharam (@anirudhrb)
- Anthony Dresser (@anthonydresser): SQL-Sprachsyntax aktualisiert PR #77601
- Brian Malehorn (@bmalehorn): Suche: Nicht verwendete Konfigurationseinstellungen entfernt PR #82019
- Callum Mellor-Reed (@callummr): Fokus auf das richtige SCM-Repo beim Wiederherstellen von Editoren PR #79566
- Dave Alongi (@dalongi): Hilfemenüpunkt "Hilfe > Problem melden" ausblenden, wenn der Problemreporter in product.json deaktiviert ist PR #83561
- Dhairya Nadapara (@dhairyanadapara): Optionen für geteilte Bereiche zu Einstellungen hinzugefügt PR #82888
- DiamondYuan (@DiamondYuan): Unterstützung für VS Code-Update aus der Befehlspalette PR #77515
- Drew Cross (@drew212): Git stash drop für Issue 76195 hinzugefügt PR #76342
- Edward Thomson (@ethomson)
- Alexandr Fadeev (@fadeevab): Makefile-Testfall für aktualisiertes Schema, um Folgendes zu unterstützen: var:=$(val:.c=.o) PR #83121
- Andrew Wong (@featherbear): Überprüfung von vorhandenen Befehlszeilenargumenten geändert PR #83311
- Freddy Robinson (@frobinsonj)
- @gawicks: Beim Auflösen eines Merge-Konflikts erlauben, die Standardnachricht zu akzeptieren PR #66522
- John Murray (@gjsjohnmurray): Bindestrich in formatierungsbezogenen Meldungen entfernen PR #83538
- @HonkingGoose: HTTPS für den Link zum Emmet-Spickzettel verwenden. PR #82754
- Hung-Wei Hung (@hunghw): Behebt #79428 - Hinzufügen von "$WORKSPACE_FOLDER" für Snippets PR #79764
- Andrew Liu (@hypercubestart): Behebt 30419 und 80649 - Ermöglicht das Festlegen der Anzahl der zuletzt verwendeten Aufgaben PR #82757
- Andrii Dieiev (@IllusionMH): Fallback auf PCRE2, wenn "Ganzes Wort übereinstimmen" mit regulärem Ausdruck verwendet wird PR #82072
- @Jakobeha: Konfigurationsoption zum Trennen oder Ausblenden von nicht nachverfolgten Dateien (behebt #35480) PR #80083
- Jean Pierre (@jeanp413)
- Jakob Fahr (@jfhr): Behebt #82199 - Zahlen sind im Markdown-Vorschau im hellen Thema schwer zu lesen PR #82450
- Liming Jin (@jinliming2): fix: Fehler beim Ausfüllen der HTTP-Proxy-Adresse im IPv6-Format PR #77260
- Jon Bockhorst (@jmbockhorst)
- Ändert die Position des Terminal-Link-Hover-Widgets, um sie konsistent zu machen PR #83175
- Bestätigt "Letzten Commit rückgängig machen", wenn es sich um einen Merge-Commit handelt PR #71525
- Neue Remote-Option beim Veröffentlichen eines Branches hinzufügen PR #71434
- Zeigt den Git-Clone-Fortschrittsbalken und den Prozentsatz der abgeschlossenen Arbeit an PR #71341
- Jonas Platte (@jplatte): linux/bin/code.sh: Verwendet "command -v" anstelle von "which" PR #82097
- JavaScript Joe (@jsjoeio): fix: TypeScript aus ExtensionSuggestions entfernen PR #82125
- Jesús Alonso Abad (@Kencho): Perl5-Unterstützung zum Falten von POD-Blöcken PR #71448
- Nikolay Kondratyev (@kondratyev-nv)
- Kryštof Řeháček (@Krystofee): Hinzugefügte Snippet-Variablen RANDOM, RANDOM_HEX PR #82529
- Kumar Harsh (@kumarharsh): fix(workbench): Einstellung zum Deaktivieren kürzlich verwendeter Aufgaben hinzufügen PR #61994
- Lio李欧 (@lionello): StartFindWithSelectionAction sollte das Such-Widget nicht fokussieren PR #63176
- @MartinBrathen: Behoben: Bildvorschau sollte beim ersten Klick nicht zoomen, wenn sie nicht fokussiert ist PR #82074
- Per Persson (@md2perpe): Fehlende Präposition hinzugefügt PR #82613
- Niklas Mollenhauer (@nikeee): Ausführbare Bits von nicht ausführbaren Dateien entfernen PR #82103
- @NotWearingPants
- Nate Rauh (@NRauh): Feature/pin close others PR #82545
- Oxirt (@oxirt): Ermöglicht dem Befehl
Git: fetch, die Passwortabfrage anzuzeigen PR #72615 - @simaosilva: Unterstützung für editorHoverWidget.foreground PR #65170
- Prabhanjan S Koushik (@skprabhanjan)
- saif (@sksaifuddin): Behebt #78014 - Fähigkeit hinzugefügt, |, < und > zusätzlich zu & und ^ zu escapen PR #82704
- @smilegodly: Schaltfläche "Löschen" zur Suchleiste des Einstellungen-Editors hinzugefügt PR #82904
- Sohail Rajdev (@sohailrajdev97): Unterstützung für Befehlszeilenargumente im Grunt Task Runner hinzugefügt PR #82819
- Konstantin Solomatov (@solomatov)
- Charles Milette (@sylveon): Schnellauswahl überspringen, wenn nur eine Aufgabe zur Auswahl steht PR #47853
- U-ways (@U-ways): Bildvorschau korrigiert, um die richtige Canvas-Größe anzuzeigen PR #82027
- Alexander (@usernamehw)
- Jeremy Shore (@w9jds)
- Ԝеѕ (@wesinator): .har-Erweiterung zur JSON-Sprache hinzufügen PR #77300
- Xhulio Hasani (@xuhas): deleteTag hinzugefügt PR #74345
- Yusuke Yamada (@yamachu): Problem behoben, dass viele Zeichen in der Vorschlagliste überschrieben wurden PR #82349
- Keyon You (@youngyou): Drücken der
Leertasteauf einer deaktivierten Schaltfläche sollte kein Klickereignis auslösen. PR #81975 - Helen3141 (@helen3141): Ermöglicht das Ausführen einzelner npm-Skripte im übergeordneten Ordner PR #79960
Beiträge zu language-server-protocol
- Adedayo Adetoye (aka Dayo) (@adedayo): Dupliziertes foldingRangeProvider-Feld in ServerCapabilities entfernt PR 848
Beiträge zu vscode-eslint
- Christian Batchelor (@CSBatchelor): Tippfehler in README.md PR #777
Beiträge zu vscode-json-languageservice
- Ben Hutton (@Relequestual): Fehlermeldung für Entwurf 2019-09 aktualisiert PR #45
Beiträge zu vscode-css-languageservice
- Sergey Zolotarev (@sryze): URI.parse()-Aufruf in try...catch einschließen PR #180
Beiträge zu node-jsonc-parser
- KoyamaSohei (@KoyamaSohei): Tippfehler in README behoben PR #25
- Jakub Rożek (@P0lip): Die parse-Funktion sollte Eigenschaften mit leerem String als Schlüssel einschließen PR #24
Beiträge zu debug-adapter-protocol
- Peter Thomas (@ptrthomas): Karate als DAP-Implementierung hinzugefügt PR #78
Beiträge zu vscode-vsce
- Ritwick Dey (@ritwickdey): [Hinzugefügt] Relative Quellen in
-Tags in README.md werden nicht in absolute URLs umgeschrieben PR #208
- Theo Tzaferis (@tzfrs): Fehlermeldung beim Verpacken einer Erweiterung mit einem unveränderten README.md verbessert PR #392
Beiträge zu inno-updater
- Adam Coyne (@bhank): Steuerungsbreite erhöhen, um Textabschneidungen zu vermeiden PR #13
Beiträge zu localization
Es gibt über 800 Cloud + AI Localization Community-Mitglieder, die die Microsoft Localization Community Platform (MLCP) nutzen, mit über etwa 100 aktiven Mitwirkenden zu Visual Studio Code. Wir freuen uns über Ihre Beiträge, sei es durch neue Übersetzungen, das Abstimmen über Übersetzungen oder das Vorschlagen von Prozessverbesserungen.
Hier ist eine Momentaufnahme der Mitwirkenden. Details zum Projekt, einschließlich der Liste der Mitwirkenden, finden Sie auf der Projektseite unter https://aka.ms/vscodeloc.
- Bosnisch (Latein, Bosnien und Herzegowina): Adnan Rizvan.
- Tschechisch: Michal Franc, Jan Hruby.
- Dänisch: Lasse Stilvang, Frederik bruun.
- Niederländisch: Laurens Kwanten, Lemuel Gomez, Niels ter Haar.
- Englisch (Vereinigtes Königreich): Graham Smith, Martin Littlecott, Alexander McLean.
- Französisch: Antoine Griffard, Rodolphe NOEL, Bruno Lewin, Maxime Bouveron, DJ Dakta.
- Deutsch: Simon Haag, Adrian Bähr, Julian Tomsik.
- Hebräisch: Ariel Bachar.
- Hindi: Kishan K, Rohit Raj.
- Chinesisch (vereinfacht): Yizhi Gu, paul cheung, 斌 项, 顺 谭, 一斤瓜子, Charles Lee, Peng Zeng, Charles Dong, 楠 姜, yungkei fan, ztluo, David Huang, 普鲁文, Zhen-Qi Liu, zhichen zhao, Phil Wang.
- Chinesisch (traditionell): Jimmy Hu, 船長, E L, Winnie Lin.
- Indonesisch: Jakka Prihatna, Eriawan Kusumawardhono, Nicko Satria Utama, Christian Elbrianno, Septian Adi.
- Italienisch: Alessandro Alpi, Luigi Bruno.
- Japanisch: Yuta Ojima, Michihito Kumamoto, Aya Tokura, TENMYO Masakazu, Takayuki Fuwa, Koichi Makino.
- Koreanisch: Hongju, Sungjin Jeong.
- Polnisch: Andrzej Poblocki, Kacper Łakomski.
- Portugiesisch (Brasilien): Marcelo Fernandes, Marcondes Alexandre, Roberto Fonseca, Alessandro Fragnani, Arthur Renato, Jota Freitas Jr, Caio Felippe Curitiba Marcellos.
- Portugiesisch (Portugal): Pedro Filipe.
- Rumänisch: Andrei Tudor, Bogdan Mateescu, Stefan Gabos.
- Russisch: Kazakov Lex, Vadim Svitkin, TJS.
- Spanisch: Aleks M, José María Aguilar, Jerónimo Milea, Ricardo Estrada Rdez, Abdón Rodríguez P..
- Schwedisch: Sven Axelsson, Patric Högman.
- Tamil: Pradeep Krishnan.
- Türkisch: Ahmetcan Aksu, Cansu Gürler, Mehmet Yönügül, Umut Can Alparslan.
- Ukrainisch: Arthur Murauskas, Oleh Hatsenko, Oleksandr Krasnokutskyi, Did Kokos.
- Vietnamesisch: huy dk, Việt Anh Nguyễn, Ha Xuan Anh Nguyen, Quoc Han Dinh.