Juni 2019 (Version 1.36)
Update 1.36.1: Das Update behebt diese Probleme.
Downloads: Windows: x64 | Mac: Intel | Linux: deb rpm tarball snap
Willkommen zur Juni 2019-Version von Visual Studio Code. Es gibt eine Reihe von Updates in dieser Version, die Ihnen hoffentlich gefallen werden. Einige der wichtigsten Highlights sind:
- Statusleistenelemente ausblenden/anzeigen - Zeigen Sie nur Ihre bevorzugten Statusleistenelemente an.
- Einzugsleitsymbole in Explorer-Ansichten - Hebt die Ordnerstruktur Ihres Projekts deutlich hervor.
- Besserer Terminal-Shell-Selektor - Wählen Sie ganz einfach die Standard-Shell für das integrierte Terminal aus.
- Sequenzielle Ausführung von Tasks - Steuern Sie die Reihenfolge der Ausführung von Tasks und Subtasks.
- Zum Cursor springen beim Debuggen - Überspringen Sie die Codeausführung, während Sie zu einer neuen Position springen.
- Zeilenumbruch in der Debug-Konsole deaktivieren - Ermöglicht es Ihnen, Debugging-Ausgaben auf einer einzigen Zeile zu halten.
- JavaScript/TypeScript Nightly Builds Extension - Neue Erweiterung integriert JS/TS Nightly Builds.
- Neuer Installer für Java-Entwickler - Installiert VS Code, das Java Extension Pack und erforderliche Java-Abhängigkeiten.
- Verbesserungen bei Remote Development (Vorschau) - Speichern im lokalen Dateisystem, Drag & Drop von Dateien zu Remotes und mehr.
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 sehen? Sie können die nächtliche Insiders-Build herunterladen und die neuesten Updates ausprobieren, sobald sie verfügbar sind. Und für die neuesten Nachrichten, Updates und Inhalte zu Visual Studio Code folgen Sie uns auf Twitter @code!
Workbench
Statusleistenelemente einzeln ausblenden
Es gibt jetzt ein Kontextmenü für die Statusleiste, um einzelne Einträge auszublenden und anzuzeigen.

Die Konfiguration wird global über alle Arbeitsbereiche hinweg gespeichert.
Hinweis: Die Einstellung workbench.statusBar.feedback.visible wurde zugunsten dieses neuen Ansatzes entfernt. Sie können das Feedback-Smiley über das Statusleisten-Kontextmenü ausblenden.
Einzugsleitsymbole in Explorer-Ansichten
Das Baum-Widget unterstützt jetzt Einzugsleitsymbole. Das bedeutet, dass Einzugsleitsymbole jetzt im Dateiexplorer, in der Suchansicht, in den Debug-Ansichten usw. verfügbar sind.

Wie zuvor können Sie die Einrückungsebene des Baums mit der Einstellung workbench.tree.indent steuern, und jetzt können Sie auch steuern, wie sich Einzugsleitsymbole verhalten, mit der Einstellung workbench.tree.renderIndentGuides.
Die möglichen Werte für workbench.tree.renderIndentGuides sind:
onHover- Einzugsleitsymbole anzeigen, wenn über einen Baum gehovert wird. Das Standardverhalten.always- Einzugsleitsymbole immer in einem Baum anzeigen.none- Keine Einzugsleitsymbole anzeigen.
Ordner per Drag & Drop kopieren
Es ist jetzt möglich, einen Ordner von außerhalb von VS Code in den Dateiexplorer zu ziehen und abzulegen, um ihn zu kopieren. Zuvor wurde beim Ablegen eines Ordners in den VS Code Explorer immer ein Arbeitsbereich geöffnet, der diesen Ordner enthielt. Jetzt ist es möglich, einfach den Ordnerinhalt zu kopieren.

Änderung des Namensinkrementors beim Kopieren und Einfügen von Dateien
Beim Kopieren und Einfügen von duplizierten Dateien und Ordnern im VS Code Explorer inkrementiert VS Code den Namen der eingefügten Datei. Die Art und Weise, wie wir die inkrementelle Benennung vorgenommen haben, führte manchmal zu unerwarteten Ergebnissen.
Um die Benennung zu vereinfachen, inkrementieren wir jetzt den Dateinamen auf folgende Weise:
"hallo.txt" -> "hallo kopie.txt" -> "hallo kopie 2.txt" -> "hallo kopie 3.txt"
Alt-Taste zur Fokussierung der benutzerdefinierten Menüleiste deaktivieren
Viele Benutzer haben darum gebeten, das Verhalten der Fokussierung der benutzerdefinierten Menüleiste beim Drücken der Alt-Taste zu deaktivieren. Um dieses Verhalten zu verhindern, setzen Sie die neue Einstellung window.customMenuBarAltFocus auf false.
Minimap-Suchanpassungen
Bei der Suche innerhalb einer Datei werden die gefundenen Übereinstimmungen jetzt sowohl innerhalb der Datei als auch in der Minimap hervorgehoben.

Aktualisierte Warnfarben
Wir haben list.warningForeground und editorWarning.foreground aktualisiert, um besser zu den übrigen Warnfarben des Editors zu passen. Diese aktualisierte Farbe sehen Sie im Dateiexplorer, in der Peek-Fehleransicht und bei Editor-Gezwitscher.

Wir haben auch editorOverviewRuler.findMatchForeground aktualisiert, damit es sich besser von den aktualisierten Warnfarben im Lineal abhebt.

Online-Diensteinstellungen
VS Code verwendet Online-Dienste für verschiedene Zwecke, wie z. B. das Herunterladen von Produktupdates, das Finden, Installieren und Aktualisieren von Erweiterungen oder die Bereitstellung von natürlicher Sprachsuche im Einstellungseditor. Sie können Funktionen, die diese Dienste nutzen, über Ihre Benutzereinstellungen aktivieren/deaktivieren, die Sie mit dem Tag @tag:usesOnlineServices filtern können. Es gibt jetzt einen Befehl Datei > Einstellungen > Online-Diensteinstellungen, der das Tag im Einstellungseditor anwendet.

Weitere Informationen finden Sie in unserer Telemetriedokumentation.
Integriertes Terminal
Besserer Terminal-Shell-Selektor
Windows hatte schon seit einiger Zeit den Befehl Standard-Shell auswählen, und in der letzten Version wurde er dem Dropdown-Menü des integrierten Terminals hinzugefügt. Dieser Befehl ist jetzt auch unter macOS und Linux verfügbar und zeigt die im System registrierten Shells an, indem die Datei /etc/shells gelesen wird.

Terminals mit sauberen Umgebungen starten
Das integrierte Terminal in VS Code verhielt sich schon immer etwas anders als normale Terminals, insbesondere unter Linux und macOS. Der Grund dafür ist, dass die Umgebung immer von VS Codes Fenster (Instanz) geerbt wurde und VS Code/Electron-bezogene Umgebungsvariablen entfernt wurden, während ein normales Terminal typischerweise über das Dock/Startmenü gestartet wurde und die Systemumgebung verwendete. Dies konnte in bestimmten Szenarien zu Problemen führen, z. B. waren Python-virtuelle Umgebungen aufgrund der Art und Weise, wie sie die $PATH-Variable verwenden, defekt.
Es gibt eine neue Vorschauoption, terminal.integrated.inheritEnv, die, wenn sie auf false gesetzt ist, dazu führt, dass das Terminal nicht die VS Code-Umgebung verwendet.
Stattdessen geschieht je nach Plattform Folgendes:
- Linux: Die Umgebung des übergeordneten Prozesses von VS Codes "Hauptprozess" wird abgerufen und verwendet.
- macOS: Eine Handvoll wichtiger Umgebungsvariablen werden aus der aktuellen Umgebung gezogen und nur aufgenommen. Letztendlich möchten wir, dass macOS sich gleich verhält wie Linux, aber es gibt derzeit Probleme beim Abrufen von Umgebungen.
- Windows: Derzeit beeinflusst diese Einstellung Windows nicht.
Das wichtigste sichtbare Ergebnis der Einstellung inheritEnv auf false ist, dass $SHLVL (Shell-Ebene) jetzt 1 sein sollte und $PATH keine doppelten Pfade enthalten sollte, vorausgesetzt, Ihre Startskripte enthalten diese nicht absichtlich.
Der Standardwert für terminal.integrated.inheritEnv ist true, was das bisherige Verhalten ist, aber wir werden den Wert wahrscheinlich in Zukunft auf false ändern.
Änderung an Strg+\
Zuvor war Strg+\ dem Befehl zum Aufteilen des Terminals unter Linux und Windows zugeordnet, aber dies wurde geändert, um SIGQUIT an die Shell weiterzuleiten, wie es die meisten Benutzer von einem Terminal erwarten würden. Wenn Sie das alte Verhalten wünschen, können Sie diese Tastenkombination zu Ihrer keybindings.json-Datei hinzufügen.
{
"key": "ctrl+\\",
"command": "workbench.action.terminal.split",
"when": "terminalFocus"
}
Aufgaben
Sequenzielle Ausführung von Tasks
Das Attribut dependsOn eines Tasks führt standardmäßig immer noch alle Abhängigkeiten parallel aus, aber jetzt können Sie "dependsOrder": "sequence" angeben und Ihre Task-Abhängigkeiten in der Reihenfolge ausführen lassen, in der sie in dependsOn aufgeführt sind. Alle Hintergrund-/Watch-Tasks, die in dependsOn verwendet werden, müssen einen Problem-Matcher haben, der verfolgt, wann sie "erledigt" sind.
Der folgende Beispiel-Task führt Task Zwei, Task Drei und dann Task Eins aus.
{
"label": "One",
"type": "shell",
"command": "echo Hello ",
"dependsOrder": "sequence",
"dependsOn": ["Two", "Three"]
}
Erkennung von Pfaden für Problem-Matcher
Wenn die Task-Ausgabe nach Problemen durchsucht wird, werden Informationen über den Pfad mit dem Problem-Matcher-Attribut fileLocation bereitgestellt. Zusätzlich zu den vorhandenen Optionen relative und absolute können Sie jetzt autoDetect angeben. Wenn autoDetect verwendet wird, versucht das Task-System automatisch zu ermitteln, ob die Pfade in den Problemen relativ oder absolut sind.
Sprachen
TypeScript 3.5.2
Diese Version enthält TypeScript 3.5.2, ein kleines Update, das einige wichtige Fehler behebt.
Nutzen Sie die Syntax-only-Funktion von JavaScript und TypeScript schneller
Die JavaScript- und TypeScript-Sprachfunktionen von VS Code werden von einem TypeScript-Server angetrieben. Dieser Server stellt komplexe Funktionen wie IntelliSense und Fehlerberichterstattung sowie einfachere Funktionen wie Code-Faltung und Dokumentgliederungen bereit.
Funktionen wie IntelliSense erfordern, dass der TypeScript-Server das gesamte JavaScript- oder TypeScript-Projekt auswertet, bevor er Ergebnisse zurückgeben kann. Dies kann bei größeren Projekten einige Zeit dauern. Während diese Verarbeitung läuft, kann der Server keine anderen Anfragen bearbeiten, einschließlich Anfragen für einfache Funktionen wie Code-Faltung, die nur ein grundlegendes semantisches Verständnis der aktuellen Datei erfordern. Möglicherweise haben Sie dieses Problem bemerkt, wenn Sie jemals eine Verzögerung festgestellt haben, bevor Code-Faltung oder die Dokumentgliederung verfügbar wurden.
Damit Sie schneller mit Ihrem Code arbeiten können, haben wir eine neue experimentelle Option hinzugefügt, bei der VS Code zwei TypeScript-Server verwendet: einen, der nur einfache syntaxbasierte Operationen verarbeitet, und einen vollständigen, der die Projektverarbeitung, IntelliSense, Fehlerberichterstattung und andere erweiterte Sprachfunktionen verarbeitet. Um dieses Verhalten zu aktivieren, setzen Sie "typescript.experimental.useSeparateSyntaxServer": true. Diese Einstellung erfordert die Verwendung von TypeScript 3.4 oder neuer in Ihrem Arbeitsbereich.
Debugging
Zum Cursor springen
Wir haben einen neuen Debug-Befehl Zum Cursor springen hinzugefügt, mit dem Sie die Programmausführung an eine neue Position verschieben können, ohne den dazwischen liegenden Code auszuführen. Wenn Zum Cursor springen von einem Debugger unterstützt wird, erscheint der neue Befehl im Kontextmenü des Editors und in der Befehlspalette während des Debuggens. Derzeit ist dieser Befehl nur über die C#-Erweiterung verfügbar, aber andere Debug-Erweiterungen sollten bald folgen.

Zeilenumbruch in der Debug-Konsole deaktivieren
Eine neue Einstellung, debug.console.wordWrap, steuert, ob der Zeilenumbruch in der Debug-Konsole aktiviert ist. Standardmäßig werden alle Zeilen umgebrochen. Wenn die Einstellung deaktiviert ist, werden die Zeilen in der Debug-Konsole nicht mehr umgebrochen und es erscheint eine horizontale Bildlaufleiste.
Node.js Debug-Konfigurationsattribut useWSL ist veraltet
Mit der WSL-Erweiterung ist die universelle Windows Subsystem für Linux (WSL)-Unterstützung in VS Code eingetroffen. Jetzt können alle Erweiterungen nahtlos in WSL verwendet werden.
Folglich planen wir, die vor zwei Jahren hinzugefügte, nun veraltete WSL-Unterstützung in VS Codes Node.js-Debugger zu entfernen. Als erster Schritt auf diesem Weg kennzeichnen wir das Attribut useWSL der Debug-Konfiguration als veraltet. Ab diesem Meilenstein wird das Attribut mit einer Wellenlinie angezeigt, wenn eine launch.json-Datei im Editor geöffnet wird. Darüber hinaus erscheint eine Benachrichtigung, wenn eine Debug-Sitzung gestartet wird, die useWSL enthält.
Hier sind die Schritte zur Migration eines bestehenden Projekts, das das useWSL-Flag verwendet, zum Debuggen mit der WSL-Erweiterung:
- Stellen Sie sicher, dass Sie die WSL-Erweiterung installiert haben.
- Öffnen Sie den Ordner Ihres Projekts in VS Code.
- Öffnen Sie das Projekt erneut in WSL, indem Sie den Befehl WSL: Ordner in WSL erneut öffnen verwenden.
- Drücken Sie F5.
- Entfernen Sie das
useWSL-Flag aus der Debug-Konfiguration.
Weitere Informationen finden Sie in unserer Dokumentation zum Entwickeln in WSL.
Beiträge zu Erweiterungen
JavaScript und TypeScript Nightly Extension
Die neue JavaScript und TypeScript Nightly Extension verwendet den Nightly Build von TypeScript (typescript@next) für die integrierte TypeScript-Version von VS Code, die IntelliSense für JavaScript und TypeScript bereitstellt. Dies erleichtert das Testen der neuesten TypeScript-Features und das Geben von Feedback dazu!
TSLint 1.2
Wir haben eine neue Version der TSLint-Erweiterung veröffentlicht, die einige wichtige Fehler behebt. Diese Version fügt außerdem eine Warnanzeige in der VS Code-Statusleiste hinzu, wenn eine tslint.json-Datei in einem Arbeitsbereich vorhanden ist, TSLint selbst aber nicht ordnungsgemäß installiert ist.
Installer für Java-Entwickler
Es gibt einen neuen Visual Studio Code Installer für Java, der erstmaligen Entwicklern bei der Einrichtung ihrer Java-Umgebung hilft. Wenn Sie den Java Pack Installer ausführen, erkennt er automatisch, ob der JDK (Java Development Kit), Visual Studio Code und erforderliche Erweiterungen bereits installiert sind. Wenn nicht, kann der Installer die fehlenden Abhängigkeiten für Sie herunterladen und konfigurieren. Sie können den Installer auch verwenden, um die Java-bezogenen Komponenten zu Ihrer bestehenden Visual Studio Code-Installation hinzuzufügen.

Mit den installierten Java-Erweiterungen bietet Visual Studio Code umfassende Java-Entwicklungsfunktionen wie intelligente Codevervollständigung, Refactoring, Debugging und Testen sowie Projektmanagement und Application Server-Integration.
Remote-Entwicklung (Vorschau)
Die Arbeit an den Remote Development-Erweiterungen, die es Ihnen ermöglichen, einen Container, eine Remote-Maschine oder das Windows Subsystem für Linux (WSL) als vollwertige Entwicklungsumgebung zu nutzen, wurde fortgesetzt. Neue Erweiterungsfunktionen und Fehlerbehebungen finden Sie in den Release Notes zu Remote Development.
Und um mehr über die Entwicklung von Linux-Anwendungen unter Windows zu erfahren, lesen Sie diesen Blogbeitrag Linux-Entwicklung mit WSL und Visual Studio Code Remote vom Windows Developer Platform Team.
Debugger for Chrome als Remote UI Extension
Wenn Sie an einem Webprojekt in einem Remote-Fenster arbeiten, können Sie die Debugger for Chrome Extension verwenden, um es in einem lokalen Chrome-Fenster zu debuggen. Installieren Sie einfach die Erweiterung, starten Sie Ihren Dev-Server remote, leiten Sie den Port des Servers weiter und starten Sie Ihre Launch-Konfiguration. Details finden Sie in der Erweiterungs-README.
Erweiterungs-Authoring
Aufteilung des vscode-Pakets in @types/vscode und vscode-test
Während des event-stream-Vorfalls im letzten Jahr stellten wir fest, dass das vscode-Paket betroffen war, da seine 223 transitiven Abhängigkeiten event-stream enthielten. Diese Abhängigkeiten verursachen auch von Zeit zu Zeit GitHub-Sicherheitswarnungen für viele VS Code-Erweiterungen. Um die Komplexität der Abhängigkeiten zu bewältigen, haben wir begonnen, das vscode-Paket zu verschlanken.
Das vscode-Paket hatte zwei Zwecke erfüllt:
- Herunterladen von
vscode.d.tsfür die Erweiterungsentwicklung. - Ausführen von Integrationstests durch Herunterladen und Starten einer lokalen Kopie von VS Code.
Jetzt teilen wir vscode in @types/vscode und vscode-test auf, zwei Pakete mit fokussierter Funktionalität.
@types/vscodeenthältvscode.d.tsfür jede Version. Zum Beispiel installiertnpm i @types/vscode@1.34.0die VS Code 1.34 Extension API. Im Gegensatz zuvscode, dasvscode.d.tsüber einpostinstall-Skript herunterlädt, kann dieses Paket vollständig von Paketmanagern gecacht werden.vscode-testbietet eine Reihe von APIs zum Ausführen von Integrationstests mit VS Code. Das altevscode-Paket wird weiterhin funktionieren, aber neue Funktionen werden nur invscode-testaufgenommen. Wir empfehlen Ihnen, aufvscode-testumzusteigen, das eine schlankere Abhängigkeitsgraph und eine flexiblere, explizit dokumentierte API bietet. Weitere Informationen zur Verwendung vonvscode-testfinden Sie im Artikel Erweiterungen testen.
Zusätzlich:
vscode-dtsermöglicht es Ihnen, über die CLI schnell jede Version der VS Code API herunterzuladen.vsceprüft nun die Version von@types/vscodegegenengines.vscode, um zu verhindern, dass Sie eine neue API verwenden, die mit älteren VS Code-Versionen inkompatibel ist.- Die Beispiele
helloworld-test-sample, die Seite Erweiterungen testen und die Seite Continuous Integration wurden aktualisiert, umvscode-testzu verwenden. - Die Seite Erweiterungen testen enthält eine Migrationsanleitung, die Ihnen hilft, von
vscodezu@types/vscodeundvscode-testzu wechseln. - Alle VS Code Beispielerweiterungen verwenden jetzt
@types/vscode. - Der VS Code Extension Generator erstellt Gerüste für Erweiterungen, die die Pakete
@types/vscodeundvscode-testverwenden.
Node.js-Update
Die Electron-Version, auf der VS Code läuft, wurde aktualisiert und bringt damit eine Aktualisierung von Node.js von 10.2.0 auf 10.11.0 mit sich. Alle Erweiterungen laufen nun auf dieser neueren Version von Node.js.
APIs für Remote
Es gibt eine neue Eigenschaft vscode.env.remoteName, die definiert ist, sobald ein Remote-Erweiterungshost läuft. Ihr Wert wird von der Erweiterung definiert, die den Remote-Erweiterungshost startet, und der Wert ist sowohl auf dem lokalen als auch auf dem Remote-Erweiterungshost verfügbar.
Erweiterungen, die wissen müssen, ob sie auf dem Remote- oder lokalen Erweiterungshost laufen, können Extension#extensionKind verwenden, das entweder ExtensionKind.UI oder ExtensionKind.Workspace ist. Der Wert repräsentiert, was in der package.json-Datei der Erweiterung definiert oder vom Benutzer überschrieben wurde. Wenn kein Remote-Erweiterungshost vorhanden ist, ist der Wert immer ExtensionKind.UI.
DocumentLink.tooltip
Die neue Eigenschaft DocumentLink.tooltip ermöglicht es einem DocumentLinkProvider, den Text anzupassen, der angezeigt wird, wenn ein Benutzer mit der Maus über einen Dokumentlink fährt.

VS Code enthält Anweisungen, wie der Link aktiviert wird (cmd + Klick im obigen Beispiel) zusammen mit dem tooltip-Text.
Port-Weiterleitung und Port-Mapping unterstützen jetzt '127.0.0.1' zusätzlich zu 'localhost'
Die API vscode.env.openExternal öffnet eine URI mit der Standard-Anwendung. Wenn openExternal von einer Remote-Erweiterung für eine lokale URI aufgerufen wird, z. B. https://:8080, öffnet VS Code automatisch einen Tunnel, der einen Port auf dem lokalen Computer mit dem geöffneten Port auf dem Remote-Computer verbindet. Diese automatische Tunnelung war zuvor nur für 'localhost'-URIs aktiviert, aber jetzt ist sie auch für '127.0.0.1' aktiviert.
Darüber hinaus verarbeitet die Webview-Port-Mapping-API jetzt '127.0.0.1' zusätzlich zu 'localhost'-URIs.
Weitere Eigenschaften als readonly oder ReadonlyArray markiert
Weitere Eigenschaften in der VS Code API sind jetzt in vscode.d.ts als readonly markiert, um ihre Absicht für Erweiterungen besser auszudrücken.
Bemerkenswerte Änderungen sind:
- Alle Felder in Ereignis-Schnittstellen sind jetzt readonly. Ereignisobjekte sollten niemals mutiert werden, da dasselbe Objekt an mehrere Listener übergeben werden kann.
- Die Methoden von
DiagnosticCollectionakzeptieren jetzt readonly Arrays. Diese Änderung wurde vorgenommen, da Sie eineDiagnosticCollectionnur über ihre Methoden aktualisieren können, nicht durch Mutieren eines Arrays, das zuvor an sie übergeben wurde. Extensions.allist jetzt ein readonly Array, da es nicht mutiert werden kann.TextEditor.insertSnippetakzeptiert jetzt readonly Arrays, da es seine Parameter nicht mutiert.
Diese neuen readonly-Modifikatoren können zu Kompilierungsfehlern für Erweiterungscode führen, der explizit die nicht-readonly-Typen als Typen angegeben hat, die die VS Code API zuvor verwendet hat.
vscode.window.onDidChangeTextEditorSelection(e => {
// Error: `e.selections` is now a readonly array but
// our `updateForSelections` function takes a mutable array
updateForSelections(e.selections);
});
function updateForSelections(selections: vscode.Selection[]) {
...
}
Um dies zu beheben, propagieren Sie den readonly-Modifikator auch durch den Quellcode Ihrer Erweiterung.
vscode.window.onDidChangeTextEditorSelection(e => {
updateForSelections(e.selections);
});
function updateForSelections(selections: readonly vscode.Selection[]) {
...
}
TerminalOptions.hideFromUser
Die Option runInBackground des Terminals hideFromUser ist jetzt in der stabilen API enthalten. Verwenden Sie diese Option, um ein Terminal vollständig vor dem Benutzer zu verbergen, bis Terminal.show() aufgerufen wird.
const term = window.createTerminal({ hideFromUser: true });
term.sendText('do something');
In Kombination mit den APIs sendText und onDidWriteData ist es möglich, dass eine Erweiterung mit einem interaktiven Terminal interagiert, um beispielsweise eine Verbindung herzustellen, und Terminal.show() nur dann aufruft, wenn etwas schief geht.
Kommentar-Reaktionen
Die Comments API unterstützt jetzt die Anzeige und Verwaltung von Benutzerreaktionen auf Kommentare. Wenn Comment.reactions vorhanden ist, werden Reaktionen unter dem Kommentartext gerendert.
Wenn eine Erweiterung einen Reaktionshandler mit CommentController.reactionHandler registriert, können Benutzer auf vorhandene Reaktionen reagieren oder den Reaktions-Picker verwenden, um eine neue Reaktion zu erstellen.

Vorgeschlagene Erweiterungs-APIs
Jeder Meilenstein bringt neue vorgeschlagene APIs mit sich, die Erweiterungsautoren ausprobieren können. Wie immer sind wir an Ihrem Feedback interessiert. So gehen Sie vor, um eine vorgeschlagene API auszuprobieren
- 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 Ihr Projekt.
Beachten Sie, dass Sie keine Erweiterung veröffentlichen können, die eine vorgeschlagene API verwendet. Wir werden wahrscheinlich wichtige Änderungen in der nächsten Version vornehmen und wollen niemals bestehende Erweiterungen brechen.
vscode.workspace.fs
Es gibt eine vorgeschlagene API, die es Erweiterungen ermöglicht, mit Dateisystemanbietern zu interagieren. Die API ermöglicht es Erweiterungen, Dateien und Ordner von beliebigen Dateisystemen zu erstellen, zu lesen, zu schreiben und zu löschen. Beispielsweise kann eine Sprachunterstützungserweiterung jetzt Quelldateien laden, die von einem FTP-Server oder einer anderen Remote-Quelle bereitgestellt werden.
Die API ist über eine neue Eigenschaft des Workspace-Objekts zugänglich: vscode.workspace.fs. Probieren Sie es aus und hinterlassen Sie gerne Feedback zu Issue #48034.
Aktualisierte API für Code-Insets
Wir haben den Vorschlag für Code-Insets überarbeitet und vereinfacht. Anstatt das Provider-Muster zu verwenden, ist es jetzt eher wie die Text-Dekorations-API.
export function createWebviewTextEditorInset(
editor: TextEditor,
line: number,
height: number,
options?: WebviewOptions
): WebviewEditorInset;
Angesichts eines Editors, einer Zeile und einer Höhe können Sie Insets erstellen. Insets verwenden dann das Webview, das bereits aus dem WebviewPanel bekannt ist. Wie bei Dekorationen werden Insets entsorgt, sobald ihr enthaltender Editor geschlossen wird.
Webview.resourceRoot
Die vorgeschlagene Konstante resourceRoot für Webviews gibt die Wurzel frei, von der lokale Ressourcen in Webviews geladen werden.
const panel = vscode.window.createWebviewPanel(
CatCodingPanel.viewType,
'Cat Coding',
vscode.ViewColumn.One,
{
// Restrict the webview to only loading local content from our extension's `media` directory.
localResourceRoots: [vscode.Uri.file(path.join(extensionPath, 'media'))]
}
);
const resourceRoot = await panel.resourceRoot;
panel.html = `<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="Content-Security-Policy" content="default-src 'none'; img-src ${resourceRoot} https:;">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Cat Coding</title>
</head>
<body>
<img src="${resourceRoot}/${path.join(extensionPath, 'media')}/cat.gif" width="300" />
</body>
</html>`;
Wenn VS Code auf dem Desktop ausgeführt wird, ist resourceRoot vscode-resource:. Der Wert kann jedoch anders sein, wenn VS Code in anderen Umgebungen, wie z. B. einem Browser, ausgeführt wird.
API zum Abrufen der Standard-Shell
Da die Einstellungen terminal.integrated.shell.<platform> jetzt standardmäßig auf null gesetzt sind, können Erweiterungen diese Einstellung nicht mehr verwenden, um die Standard-Shell zu erkennen. Es gibt jetzt eine vorgeschlagene API vscode.env.shell, die die Standard-Shell für das Terminal zurückgibt.
const shell = vscode.env.shell;
if (shell.search(/(powershell|pwsh)/i) !== -1) {
// Do something special that PowerShell needs
}
Language Server Protocol
Eine neue Version der Tools für den Language Server Index Format für TypeScript wurde implementiert. Die neuen Versionen haben ein verbessertes Format für einfacheres Importieren großer Dumps in Datenbanken, ohne spezifisch für die Datenbank zu sein. Anweisungen zur Ausführung dieser Tools finden Sie im Repository lsif-node.
Technik
Electron 4.0 Update und Electron 6.0 Exploration
In diesem Meilenstein haben wir die Untersuchung des Bundling von Electron 4 in VS Code abgeschlossen, was die erste Version mit dieser Electron-Version in der stabilen Version ist. Dies ist eine wichtige Electron-Version und enthält Chrome 69 und Node.js 10.11.0 (ein großer Sprung gegenüber unserer aktuellen Version mit Chrome 66 und Node.js 10.2.0).
Leider mussten wir die einfache Vollbildunterstützung für macOS ("window.nativeFullScreen": false) für eine Version aufgrund von Issue #75054 deaktivieren. Wir erwarten, dass wir Anfang nächsten Monats eine Korrektur in unserem Insiders-Build bereitstellen.
Wir haben begonnen, die Aktualisierung auf Electron 6 zu untersuchen, die wir hoffentlich bald in Insiders veröffentlichen werden.
Bessere Code-Ladegeschwindigkeit
Electron 4 gab uns Zugriff auf neue Skript-Caching-APIs. Mit den neuen Caching-APIs kann zwischengespeicherte Daten erstellt werden, ohne den allerersten Start zu beeinträchtigen, und sie können wiederholt erstellt werden, um lazy geladene Funktionen abzudecken. Das und Verbesserungen in unserem Loader führten zu einer ca. 15% schnelleren Code-Ladegeschwindigkeit.
Linux 32-Bit-Unterstützung endet
VS Code verwendet das Electron-Framework, um auf mehreren Plattformen zu laufen. Mit dieser Version wechseln wir zu Electron Version 4.x, was bedeutet, dass VS Code nicht mehr unter Linux 32-Bit läuft. Bitte aktualisieren Sie auf eine 64-Bit-Version von VS Code. Alle Ihre Einstellungen und Erweiterungen funktionieren wie bisher, ohne dass Sie etwas migrieren müssen. Weitere Informationen finden Sie im zugehörigen Blogbeitrag von Electron.
Exploration von iframe-basierten Webviews
In dieser Iteration haben wir die Verwendung von normalen iframes anstelle der <webview>-Tags von Electron zur Implementierung von VS Code Webviews untersucht. Diese Arbeit wird hauptsächlich durchgeführt, um VS Code im Browser ausführen zu können, aber <webview> ist auch recht komplex und hat uns in der Vergangenheit Probleme bereitet. Wir hoffen, dass wir unsere Verwendung von <webview> irgendwann durch normale iframes ersetzen können.
Wir haben bedeutende Fortschritte bei iframe-basierten Webviews gemacht und können nun viele Webviews von Erweiterungen im Browser erfolgreich ausführen, aber es gibt noch viel zu tun. Wir werden diese Erkundung im Juli fortsetzen.
Bemerkenswerte Fehlerbehebungen
- 41356: Hotkey zum nächsten/vorherigen Fehler springen sollte den Fokus von NVDA nicht außerhalb des Editors verschieben
- 45515: Uri#parse kann Pfadkomponenten beschädigen
- 54084: Debug-TouchBar-Schaltflächenposition nicht beim Schritt ändern
- 70248: Der cls-Befehl löscht das Terminal nicht (Windows 10 1903, ConPTY)
- 74710: Bildvorschau sollte nur für die Größe des Bildes einen "transparenten" karierten Hintergrund zeichnen
- 75359: Variablenfenster wird nach Wertänderung über Debug-Konsole nicht aktualisiert
- 41085: Git: Dateiereignisse funktionieren nicht, wenn .git außerhalb des geöffneten Ordners liegt
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 vscode
- Abby (@abbychau): Option hinzufügen, um nach der Initialisierung oder dem Klonen von Git in einem neuen Fenster zu öffnen PR #69763
- Andrius (@andrius-pra): Synchronisieren von Sprachen, die von TypeScript-Plugins bereitgestellt werden PR #75371
- Aurélien Pupier (@apupier): Lizenzfeld zu package.jsons hinzufügen #68423 PR #68771
- Jakub Čábera (@Ash258): shellscript: Faltmarkierungen hinzufügen PR #75828
- Lee Houghton (@asztal): Umgang mit mehreren Benutzern mit /tmp/vscode-typescript PR #75547
- Babak K. Shandiz (@babakks):
cachedScrollTopzum SCM-Panel hinzugefügt PR #74723 - Patrick Burke (@burknator): Macht Status-Zoom-Schaltfläche zu einem IStatusbarEntry #74454 PR #75618
- Chase Adams (@chaseadamsio): Unterstützung für das Theming von Quick Input / Quick Open PR #74041
- Christian Oliff (@coliff): Empfehlung für Benutzer, die EditorConfig-Erweiterung zu installieren PR #75391
- Hung-Wei Hung (@hwhung0111): Korrektur einiger Tippfehler in Kommentaren PR #75565
- Jean Pierre (@jeanp413)
- Löschen der nicht verwendeten Einstellung breadcrumbs.filterOnType. PR #75971
- Explorer-Ansichts-Teil immer fokussieren, wenn eine neue Datei/ein neuer Ordner erstellt wird PR #75040
- Aufruf von revealLastElement innerhalb von runAtThisOrScheduleAtNextAnimationFrame im REPL PR #75043
- Vereinfachung von incrementFileName PR #75398
- Jonas Kemper (@jk21): Paket.json-Informationen PR #72763
- @malingyan2017: Korrektur der Ansicht "Zuletzt verwendet" in der Docking-Ansicht, die keine kürzlichen Dateien/Ordner anzeigt #74788 PR #75108
- Denis Stepanov (@meduzik): Leere Argumente in Startbefehlen werden nun richtig maskiert PR #25098
- Micah Smith (@Olovan): Korrektur für Issue #35245 PR #75357
- @orange4glace
- Jesse Mazzella (@ozyx): Entfernen des abschließenden '/' aus der Repository-URL für baseFolderName PR #75822
- Alasdair McLeay (@penx): Node-Modul-Auflösung für CSS-Import PR #70693
- Raul Piraces Alastuey (@piraces): Unterdrücken von MsgBox, wenn der Assistent im stillen Modus ausgeführt wird PR #76215
- Remco Haszing (@remcohaszing)
- Evgeny Zakharov (@risenforces): Option window.disableMenuBarAltBehavior hinzufügen PR #73258
- Samuel Bronson (@SamB): Tippfehler-Korrektur: timemout -> timeout PR #75162
- TBK (@TBK): Unterstützung für APKBUILD hinzufügen PR #75706
- Tomáš Chaloupka (@tchaloupka): Korrektur der LANG-Umgebungsvariable für Tschechisch PR #75519
- Tony Xia (@tony-xia)
- Waldir Pimenta (@waldyrious): Korrektur der Schreibweise der Beispielabkürzung (z. B.) PR #74785
Beiträge zu unserer Fehlerverfolgung
- John Murray (@gjsjohnmurray)
- Alexander (@usernamehw)
- Eric Amodio (@eamodio)
- Jean Pierre (@jeanp413)
- Danny Tuppeny (@DanTup)
Bitte besuchen Sie unsere Community Issue Tracking-Seite, wenn Sie uns bei der Verwaltung eingehender Probleme helfen möchten.
Beiträge zu vscode-css-languageservice
- Dmitry Parzhitsky (@parzh): Korrektur der Pseudo-Element-Spezifität PR #154
Beiträge zu vscode-html-languageservice
- Liam Newman (@bitwiseman): Aktualisierung von js-beautify auf 1.10.0 PR #61
- Javey (@Javey): Ermöglicht Komprimierung durch uglify-js PR #64
Beiträge zu language-server-protocol
- Danny Tuppeny (@DanTup): Tippfehler-Korrektur "must not sent" -> "must not send" PR #747
Beiträge zu debug-adapter-protocol
- Joel Day (@joelday): Implementierung von Papyrus hinzufügen PR #59
Beiträge zu vscode-azurecli
- Matthew Burleigh (@mburleigh): Ergebnisse in neuem Editor öffnen PR #55
- Matthew Burleigh (@mburleigh): Statusleisten-Element zur Anzeige des Fortschritts hinzufügen PR #56
Beiträge zu vscode-vsce
- @atsutton: Protokollierungsstufe auf "info" geändert. PR #369
- James George (@jamesgeorge007)
- Jonathan Nagy (@nagytech): Commit-Nachricht festlegen erlauben PR #365
Beiträge zu vscode-recipes
- Mladen Mihajlović (@mika76): Vue - README mit Informationen aus Issues aktualisiert PR #213
- Ephraim Khantsis (@doom777): ng-test Startkonfiguration aktualisieren PR #212
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: Ismar Bašanović, Ernad Husremovic.
- Bulgarisch: Иван Иванов, Gheorghi Penkov.
- Tschechisch: Tadeáš Cvrček, Michal Franc, Jan Kos, Radim Hampl.
- Dänisch: René Pape, Lars Vange Jørgensen, Martin Liversage, Lasse Stilvang, Anders Lund, Allan Kimmer Jensen, Anton Ariens.
- Niederländisch: Leroy Witteveen, Luc Sieben, Maxim Janssens, Damien van Gageldonk, Tom Meulemans.
- Englisch (Vereinigtes Königreich): Martin Littlecott, Alexander Ogilvie, Fabio Zuin, Mohit Nain, Sulkhan Ninidze, alshyab wa3ed, Tejas kale.
- Finnisch: Lasse Leppänen, Petri Niinimäki, Sebastian de Mel.
- Französisch: Antoine Griffard, Thierry DEMAN-BARCELÒ.
- Deutsch: Julian Pritzi, Patrick Burke, Ettore Atalan, Meghana Garise.
- Griechisch: Θοδωρής Τσιρπάνης, Charalampos Fanoulis, Vassilis Vouvonikos.
- Hebräisch: חיים לבוב, Eyal Ellenbogen.
- Hindi: Sanyam Jain, Kishan K.
- Ungarisch: Boldi Kemény.
- Chinesisch (Vereinfacht): 斌 项, paul cheung, 张锐, Yizhi Gu, Yiting Zhu, Justin Liu, Shi Liu, Pluwen, Joel Yang, Jieting Xu, Chen Yang, 涛 罗, 立飞 李, 雨齐 刘, cuibty wong, 建 周, XIANG ZUO.
- Chinesisch (Traditionell): LikKee 沥祺 Richie, Winnie Lin, Jeremy.
- Indonesisch: Jakka Prihatna, Arif Fahmi, Septian Adi, Heston Sinuraya, Hendra Widjaja, Don Nisnoni, Eriawan Kusumawardhono, Bervianto Leo Pratama, Laurensius Dede Suhardiman, Rifani, rsyad, Christian Elbrianno.
- Italienisch: andrea falco, Aldo Donetti.
- Japanisch: Michihito Kumamoto, Yoshihisa Ozaki, Aya Tokura, TENMYO Masakazu, 太郎 西岡.
- Koreanisch: Hongju, 우현 조, Hoyeon Han, Hong Kwon.
- Lettisch: Kaspars Bergs, Andris Vilde.
- Litauisch: Andrius Svylas, Tautvydas Derzinskas, Karolis Kundrotas, Martynas J..
- Norwegisch: Dag H. Baardsen, Ole Kristian Losvik.
- Polnisch: Rafał Całka, Marcin Weksznejder, Jakub Żmidziński, Rafał Wolak, Szymon Seliga, Grzegorz Miros.
- Portugiesisch (Brasilien): Alessandro Trovato, Thiago Dupin Ugeda, Weslei A. de T. Marinho, Rafael Lima Teixeira, Gerardo Magela Machado da Silva, Marcos Albuquerque, Loiane Groner, Alessandro Fragnani, Judson Santiago, Andrei Bosco, Fábio Corrêa, Roberto Fonseca, Fabio Lux, Emmanuel Gomes Brandão, Guilherme Pais, Rodrigo Vieira, André Gama.
- Portugiesisch (Portugal): Nuno Carapito, Pedro Daniel, José Rodrigues, Diogo Barros.
- Rumänisch: Stefan Gabos.
- Russisch: Дмитрий Кирьянов, Анатолий Калужин.
- Spanisch: David Fernández Aldana, Ricardo Rubio, Thierry DEMAN, José María Aguilar.
- Schwedisch: Johan Spånberg, Notetur Nomen.
- Tamil: Merbin J Anselm, Jeyanthinath Muthuram, Boopesh Kumar, Nithun Harikrishnan, Vignesh Rajendran.
- Türkisch: Meryem Aytek, Fıratcan Sucu, Ahmetcan Aksu, Mehmet Yönügül, Ömer Sert, Anıl MISIRLIOĞLU, Misir Jafarov, Bruh Moment.
- Ukrainisch: Arthur Murauskas, Alexander Varchenko, Вадим Шашков, Евгений Коростылёв.
- Vietnamesisch: Van-Tien Hoang, Vuong Bui, Chủ Tất.