April 2019 (Version 1.34)
Downloads: Windows: x64 | Mac: Intel | Linux 64-Bit: deb rpm tarball snap | 32-Bit: deb rpm tarball
Willkommen zur April 2019-Version von Visual Studio Code. Im April waren wir mit der Vorschauversion der Remote Development-Erweiterungen beschäftigt. Diese Erweiterungen ermöglichen es Ihnen, VS Code über SSH auf einem Remote-Computer oder einer VM, unter Windows Subsystem for Linux (WSL) oder in einem Docker-Container zu nutzen. Lesen Sie den Blogbeitrag Remote Development mit Visual Studio Code, um mehr zu erfahren.
Es gab noch mehrere Updates in dieser Version, die Ihnen hoffentlich gefallen werden, sowie viele Community-Beiträge.
Wenn Sie diese Release Notes online lesen möchten, gehen Sie zu Updates auf code.visualstudio.com.
Editor
Stabile CodeLens
VS Code speichert jetzt CodeLens-Positionen optimistisch zwischen und stellt sie sofort nach dem Wechseln von Editoren wieder her. Dies behebt ein Problem, bei dem sich CodeLens-Zeilen beim Wechseln zwischen Editoren leicht verschoben.

Sprachen
Niedrigere Priorität für CSS-Eigenschaftswerte mit Vendor-Präfix
CSS-Eigenschaftswerte, denen ein Bindestrich '-' vorangestellt ist (wie -moz-grid oder -ms-grid), erscheinen nun nach grid in der Autovervollständigung.
Debugging
debug.showSubSessionsInToolBar
Wir haben die Einstellung debug.showSubSessionsInToolBar eingeführt, die steuert, ob die Debugging-Unter-Sitzungen in der Debug-Symbolleiste angezeigt werden. Wenn diese Einstellung auf false gesetzt ist, beendet der Befehl zum Beenden einer Unter-Sitzung auch die übergeordnete Sitzung. Diese Einstellung ist standardmäßig auf false gesetzt.
Aufgaben
Alle Aufgaben beenden
Der Befehl Aufgaben: Aufgabe beenden hat eine neue Option, um alle laufenden Aufgaben zu beenden, falls mehrere Aufgaben ausgeführt werden. Wenn Sie diese Aktion häufig durchführen, können Sie eine Tastenkombination für den Befehl mit dem Argument terminateAll erstellen.
{
"key": "ctrl+k t",
"command": "workbench.action.tasks.terminate",
"args": "terminateAll"
}
Probleme-Panel automatisch anzeigen
Die neue Aufgabeneigenschaft revealProblems ermöglicht es Ihnen, das Probleme-Panel automatisch anzuzeigen. Die möglichen Werte für die Eigenschaft sind always, never und onProblem.
{
"version": "2.0.0",
"tasks": [
{
"type": "npm",
"script": "watch",
"problemMatcher": "$tsc-watch",
"isBackground": true,
"presentation": {
"reveal": "always",
"revealProblems": "onProblem"
}
}
]
}
Beiträge zu Erweiterungen
Vorschau: Remote Development
❗ Hinweis: Die Remote Development-Erweiterungen erfordern Visual Studio Code Insiders.
Visual Studio Code Remote Development ermöglicht es Ihnen, einen Container, einen Remote-Computer oder das Windows Subsystem for Linux (WSL) als vollwertige Entwicklungsumgebung zu nutzen.
Die Erweiterungen im Remote Development Extension Pack werden im Kontext des Remote-Arbeitsbereichs ausgeführt, während sich VS Code wie bei lokaler Ausführung anfühlt.
Vetur
Die Erweiterung Vetur bietet nun semantische Diagnosen, Hover-Informationen, Springen zur Definition und Finden von Referenzen für JavaScript-Ausdrücke innerhalb des Vue-Vorlagen-Interpolationsbereichs.

Sie können mehr über diese Funktion in der Vetur-Dokumentation lesen.
Weitere Verbesserungen sind reduzierter Speicherverbrauch und Vervollständigung von Importpfaden. Mehr darüber erfahren Sie im Vetur Changelog.
Erweiterungs-Authoring
Multi-Erweiterungs-Debugging
In diesem Meilenstein haben wir die Unterstützung für das Debuggen mehrerer Erweiterungen gleichzeitig hinzugefügt. Dies ist nützlich, wenn Sie eine Reihe eng gekoppelter oder voneinander abhängiger Erweiterungen entwickeln.
Zuvor wurde diese Funktion nur über die Befehlszeilenschnittstelle von VS Code aufgerufen, jetzt kann das Argument --extensionDevelopmentPath mehrmals angegeben werden. Typischerweise wird --extensionDevelopmentPath in der Startkonfiguration einer Erweiterung verwendet. Wenn Sie mehr als eine Erweiterung entwickeln, empfehlen wir, die einzelnen Erweiterungsprojekte in einem Multi-Ordner-Arbeitsbereich zu kombinieren und eine neue Startkonfiguration zu erstellen (gespeichert in der .code-workspace-Datei des Arbeitsbereichs), die mehrere --extensionDevelopmentPath-Argumente für die einzelnen Erweiterungen verwendet.
Hier ist ein Beispiel einer .code-workspace-Datei für einen Arbeitsbereich mit zwei Erweiterungen, hello1 und hello2, und einer einzigen Startkonfiguration für beide Erweiterungen
{
"folders": [{ "path": "hello1" }, { "path": "hello2" }],
"launch": {
"configurations": [
{
"type": "extensionHost",
"request": "launch",
"name": "Launch Two Extensions",
"args": [
"--extensionDevelopmentPath=${workspaceFolder:hello1}",
"--extensionDevelopmentPath=${workspaceFolder:hello2}"
],
"outFiles": [
"${workspaceFolder:hello1}/out/**/*.js",
"${workspaceFolder:hello2}/out/**/*.js"
]
}
]
}
}
Bitte beachten Sie, dass es in dieser Version nicht möglich ist, eine preLaunchTask zu erstellen, die beide Erweiterungen durch Kombination der preLaunchTasks der einzelnen Erweiterungsprojekte erstellt.
Befehlslinks in Benachrichtigungen
Es war immer möglich, Links über die Syntax [Linktext](http://link) in Benachrichtigungsnachrichten einzufügen, dies funktionierte jedoch nur für Links, die in einem Browser geöffnet wurden. Jetzt können Sie auch einen Befehl über einen Link mit der Syntax [Linktext](command:<Befehls-ID>) aufrufen. Der Befehl mit der angegebenen ID wird ausgelöst, wenn der Benutzer auf den Link klickt.
Links in Benachrichtigungen erlauben Titel
Sie können Links in Benachrichtigungen nun einen Titel hinzufügen, der angezeigt wird, wenn der Benutzer mit der Maus über den Link fährt. Die Syntax lautet [Linktext](link "<Titel>").
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.workspaceFile
Es gibt eine neue Arbeitsbereichseigenschaft, die den Speicherort der Arbeitsbereichsdatei zurückgibt. Zum Beispiel: file:///Users/name/Development/myProject.code-workspace oder untitled:1555503116870 für einen Arbeitsbereich, der unbenannt ist und noch nicht gespeichert wurde.
Abhängig vom geöffneten Arbeitsbereich ist der Wert
undefined, wenn kein Arbeitsbereich oder nur ein einzelner Ordner geöffnet ist.- Der Pfad der Arbeitsbereichsdatei als
Uri.
Wenn der Arbeitsbereich unbenannt ist, verwendet die zurückgegebene URI das untitled:-Schema.
Eine Anwendung des Speicherorts der Arbeitsbereichsdatei ist der Aufruf des Befehls vscode.openFolder, um den Arbeitsbereich nach dem Schließen erneut zu öffnen.
vscode.commands.executeCommand('vscode.openFolder', uriOfWorkspace);
Hinweis: Es wird nicht empfohlen, den Speicherort workspace.workspaceFile zu verwenden, um Konfigurationsdaten direkt in die Datei zu schreiben. Sie können workspace.getConfiguration().update() verwenden, was sowohl beim Öffnen eines einzelnen Ordners als auch bei einem unbenannten oder gespeicherten Arbeitsbereich funktioniert.
Maschinenspezifische Einstellungen
Wenn Sie Einstellungen haben, die es Benutzern ermöglichen, einen ausführbaren Pfad anzupassen, und diese Pfade auf die Maschine beschränkt sein müssen, auf der sie ausgeführt werden, können Sie solche Einstellungen nun als machine-Bereich klassifizieren. Erweiterungsautoren setzen die Eigenschaft scope, wenn sie zum Erweiterungspunkt configuration beitragen. Maschinenspezifische Einstellungen können nur für Benutzereinstellungen konfiguriert werden.
"configuration": {
"title": "Git",
"properties": {
"git.path": {
"type": [
"string",
"null"
],
"markdownDescription": "Path and filename of the git executable.",
"default": null,
"scope": "machine"
}
}
}
Technik
Neu geschriebener Dateisystemanbieter für lokale Dateien
Erweiterungen konnten ihre eigenen Dateisystemimplementierungen für benutzerdefinierte Ressourcen bereitstellen (hier mehr lesen). Die eigene Implementierung von VS Code für lokale Dateien wurde jedoch nicht mit denselben Erweiterungs-APIs implementiert. Dies führte zu subtilen Unterschieden beim Umgang mit lokalen Dateiressourcen im Vergleich zu Ressourcen von Erweiterungen. In den letzten beiden Meilensteinen haben wir unseren lokalen Dateisystemanbieter neu geschrieben, um die Erweiterungs-APIs für Konsistenz zu nutzen.
Neue Dokumentation
Python Azure Functions
Es gibt ein neues Tutorial Python nach Azure Functions bereitstellen, das beschreibt, wie Python-Serverless-Azure-Funktionen erstellt und bereitgestellt werden.
Sonstiges
Language Server Protocol
Das Language Server Protocol hat die Unterstützung für die folgenden neuen Features vorgeschlagen
- Auswahlbereiche: Zur Berechnung von Auswahlbereichen für ein Array von Positionen. Vom Client an den Server gesendet.
- Aufrufhierarchie: Zur Berechnung einer Aufrufhierarchie für ein bestimmtes Symbol. Vom Client an den Server gesendet.
- Fortschritt: Zur Initiierung der Fortschrittsberichterstattung vom Server. Vom Server an den Client gesendet.
Die neuen Features sind in den nächsten Versionen der npm-Module vscode-languageclient und vscode-languageserver verfügbar.
Bemerkenswerte Fehlerbehebungen
- 48259: Explorer respektiert Papierkorbfunktion von FileSystemProvider
- 68276: UI "Paused On Breakpoint" in der Call Stack-Ansicht für lange Threadnamen nicht sichtbar
- 69603: Terminalfenster stürzt unter Mac OS ab
- 72110: Debug-Konsole rendert unnötigerweise neue Zeilen
- 71737: Scrollen im Debug-Fenster verhält sich seltsam
- 71588: Fehler beim Anzeigen von Dateien im Explorer
- 70492: Schaltfläche "Problem melden" bei "Laufende Erweiterungen" verursacht Dutzende von doppelten Problemen
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 Issue-Verfolgung. Bitte sehen Sie sich unsere Community Issue Tracking-Seite an, wenn Sie uns bei der Verwaltung eingehender Probleme helfen möchten.
- John Murray (@gjsjohnmurray)
- Prabhanjan S Koushik (@skprabhanjan)
- Alexander (@usernamehw)
- Muhammed Emin TİFTİKÇİ (@jaqra)
- Carl Morris (@msftrncs)
Beiträge zu vscode
- @alpalla: Korrigiert #27041 PR #72015
- @BaluErtl: Falsche Formulierung der Standardmeldung im Outline-Drawer PR #73214
- @cmchumak: Verbesserte Meldung beim Ausführen einer Aufgabe ohne Arbeitsbereich PR #71476
- Connor Shea (@connorshea): Zeigt extensionId als Beschreibung im Formatter-Dropdown an PR #71910
- Alexandr Fadeev (@fadeevab): Makefile-Testfall zur Fehlerbehebung bei der Farbgebung von "@,-,+" im Rezept PR #72265
- Nikita Shilnikov (@flash-gordon): Tippfehler in Lokalisierungsschlüssel korrigiert PR #72718
- Hung-Wei Hung (@hwhung0111): Tippfehler in code-cli.bat korrigiert PR #73091
- Ian Sanders (@iansan5653): Unterstützung für 8- und 24-Bit-ANSI-Escape-Farbcodes in der Debug-Konsole hinzugefügt PR #70935
- Muhammed Emin TİFTİKÇİ (@jaqra): Befehl für die Umwandlung in Titelform hinzugefügt: "Transform to Title Case". PR #70990
- Jimi (Dimitris) Charalampidis (@JimiC): [Themes] Explorer-Pfeil-Benachrichtigung beim Neuladen korrigiert PR #71855
- Jon Bockhorst (@jmbockhorst)
- Johannes Wikman (@jwikman): FindInFiles wurde in einen Befehl umgewandelt und akzeptiert Argumente PR #71626
- Jiaxun Wei (@LeuisKen): Korrigiert #72187 PR #72194
- Luís Ferreira (@ljmf00): theme-monokai: Tab-Einrückung korrigiert PR #72269
- paul cheung (@paul-cheung): Tippfehler korrigiert PR #72334
- Evan Bovie (@phaseOne):
vscode:URI-Präfix zu knownSchemes in links.ts hinzugefügt PR #71416 - Raman (@ramank775): Korrektur für "Comment box issue #71703" PR #71880
- Samuel Bronson (@SamB): json-language-features/CONTRIBUTING.md Korrekturen PR #73273
- @sebastianwitthus: 44146 Probleme-Panel automatisch anzeigen PR #71387
- Simon Siefke (@SimonSiefke): Tippfehler korrigiert PR #71564
- Prabhanjan S Koushik (@skprabhanjan): fix-71570 Fehler beim Wiederherstellen einer Markdown-Vorschau für eine gelöschte Datei PR #71762
- Tony Xia (@tony-xia)
- Ein paar Tippfehler korrigiert PR #71928
- Funktionsnamen aktualisiert PR #71926
- Variablennamen aktualisiert PR #72136
- Strikte Gleichheit in darkenColor() verwendet PR #72211
- Tippfehler korrigiert: langauge zu language PR #72552
- makeRandomHexString() aktualisiert, um doppelte Zeichen zu entfernen PR #72553
- Kommentar aktualisiert PR #72134
- Alexander (@usernamehw): CLI-Flag hinzugefügt, um sanftes Scrollen in Webviews zu deaktivieren PR #65422
- Vitaliy Mazurenko (@vitaliymaz)
- Waleed Ashraf (@WaleedAshraf): nachgestellte Leerzeichen in LINE_COLON_PATTERN ignorieren PR #71985
- William Whittle (@whittlec): 'qsh' als gültige erste Zeile für Shellscripts hinzugefügt PR #73231
- Keyi Xie (@xiekeyi98): Rechtschreibfehler in build/ korrigiert PR #71977
- XTY (@xtydev): Rückschritt im WSL-Startskript behoben PR #72779
Beiträge zu vscode-css-languageservice
- Tony Xia (@tony-xia): Kleinen Tippfehler korrigiert PR #151
Beiträge zu vscode-html-languageservice
- Liam Newman (@bitwiseman): js-beautify auf 1.9.1 aktualisiert PR #58
- Christian Oliff (@coliff): Attribut-Tippfehler korrigiert PR #60
Beiträge zu node-jsonc-parser
- Tony Xia (@tony-xia): JavaScipt -> JavaScript PR #18
Beiträge zu language-server-protocol
- Danny Tuppeny (@DanTup): Optionalen Grund hinzugefügt, warum der Client einen Bearbeitungsvorgang nicht anwenden konnte PR #637
- Ben Mewburn (@bmewburn): Korrigierte ID im Beispiel für textDocument/definition von lsif PR #725
Beiträge zu vscode-languageserver-node
- Igor Matuszewski (@Xanewok): Vorgeschlagene Erweiterung window/progress hinzugefügt PR #261
- Aleksey Kladov (@matklad): selectionRange API angepasst PR #474
- Ben Mewburn (@bmewburn): onImplementation und onTypeDefinition können DefinitionLink[] zurückgeben PR #479
- Remy Suen (@rcjsuen): Kleinen Tippfehler korrigiert PR #482
Beiträge zu vscode-eslint
- Mike Martin (@mcmar): Dokumentation von
changeProcessCWDklargestellt PR #657 - Ilias Tsangaris (@ilias-t): PR #661
- Charles Stover (@CharlesStover): Autovervollständigung für eslint.codeAction.disableRuleComment sollte separateLine anstelle von newLine einfügen PR #674
Beiträge zu vscode-lsif-extension
- Chris Wendt (@chrismwendt): Dateisystemsuche für Top-Level-Dateien korrigiert PR #9
Beiträge zu vscode-textmate
Beiträge zu vscode-recipes
- AJ Alves (@zerokol): Einen spezifischen Fall in einer rspec-Datei debuggen PR #207
Beiträge zu vscode-vsce
- Jimi (Dimitris) Charalampidis (@JimiC): Build-Aufgabe korrigiert PR #347
Beiträge zu localization
Es gibt über 800 Cloud + AI Lokalisierungs-Community-Mitglieder, die die Microsoft Localization Community Platform (MLCP) nutzen, davon über etwa 100 aktive Mitwirkende an Visual Studio Code.
Wir freuen uns über Ihre Beiträge, sei es durch die Bereitstellung neuer Übersetzungen, die Abstimmung über Übersetzungen oder die Vorschläge zur Prozessverbesserung.
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ć.
- Tschechisch: Daniel Padrta, David Jareš, Jan Hajek, Jiří Hofman.
- Dänisch: Allan Kimmer Jensen, Thomas Larsen.
- Niederländisch: Maxim Van Damme, Sven Klaasen.
- Englisch (Vereinigtes Königreich): Martin Littlecott, Tobias Collier, William Wood, Giorgi Jambazishvili.
- Französisch: Antoine Griffard, Thierry DEMAN-BARCELÒ, Mohamed Sahbi, Steven Dugois, Michael VAUDIN.
- Deutsch: Christof Opresnik.
- Hindi: Abhirav Kushwaha, Pramit Das.
- Chinesisch (vereinfacht): paul cheung, 斌 项, Fan Su, Justin Liu, Horie Yuan, 王文杰, 赵畅畅, anson zhang, Wang Debang, Pluwen, Yiting Zhu, Joel Yang, Michael Zhang, 擎 钟, 涛 徐, 少民 谈, 伟 全, panda small, Array Zhang, LI ZHAO.
- Chinesisch (traditionell): 謝政廷, 煾 雪.
- Ungarisch: Levente Hallai Seiler.
- Indonesisch: Laurensius Dede Suhardiman.
- Italienisch: Alessandro Alpi, Luigi Bruno, Emanuele Meazzo, Marco Dal Pino.
- Japanisch: EbXpJ6bp -, nh, Kyohei Uchida, Yoshihisa Ozaki, Seiji Momoto, Hasefumi, 迪人 熊本, Koichi Makino, Kyohei Moriyama, 美穂 山本, Aya Tokura.
- Koreanisch: 형섭 이, Youngjae Kim, siin lee, Keunyop Lee.
- Lettisch: Kaspars Bergs.
- Litauisch: Augustas Grikšas.
- Polnisch: Wojciech Maj, Marek Biedrzycki, Igor 05, Marcin Weksznejder, Szymon Seliga, Paweł Modrzejewski, Michał Stojke, Artur Zdanowski.
- Portugiesisch (Brasilien): Alessandro Trovato, Judson Santiago, Roberto Fonseca, Marcelo Fernandes, Lucas Miranda, Ray Carneiro, Loiane Groner, Daniel Luna, Lucas Santos, Saymon Damásio.
- Portugiesisch (Portugal): Ana Rebelo, Pedro Teixeira, João Carvalho, Tiago Antunes.
- Rumänisch: Alexandru Staicu.
- Russisch: Andrey Veselov, Дмитрий Кирьянов, nata kazakova, Валерий Батурин.
- Spanisch: Andy Gonzalez, Carlos Mendible, José María Aguilar, Alvaro Enrique Ruano.
- Tamil: Boopesh Kumar, Karunakaran Samayan, Merbin J Anselm.
- Türkisch: mehmetcan gun, Sinan Açar, S. Ferit Arslan.
- Ukrainisch: Sviatoslav Ivaskiv, George Molchanyuk.
- Vietnamesisch: Khôi Phạm, Spepirus Shouru, Việt Anh Nguyễn.