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

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.

Burn down chart of VS Code issues

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.

Active Activity Bar indicator

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

Active Activity Bar indicator custom background

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.

Animated image showing the use of the new window border colors

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.

Filtered Outline view

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

splitSizing with distribute value

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

splitSizing with split value

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.json zur Konfiguration von Laufzeitargumenten. Möglicherweise sehen Sie dort bereits einige Standardargumente.
  • Fügen Sie "disable-hardware-acceleration": true hinzu.
  • 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.

Animated image showing the ability to resize the minimap

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.

Animated image showing the use of the new Show Definition Preview Hover command

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.

Image showing highlighted enclosing brackets

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.

Image showing font feature settings in the editor

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
Animation showing cursor movement before

Nachher
Animation showing cursor movement after

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.

Animation for button that shows when comparing two files that contain only whitespace diffs but the diff editor is configured to ignore trim whitespace

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.

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).

Command navigation jumps to nearest command after scrolling

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.

Slow task provider warning

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.

Problem matcher prompt dropdown

Quellcodeverwaltung

Datei bei aktiver Editoränderung hervorheben

Die Quellcodeverwaltungsansicht hebt nun automatisch die aktive Editor-Datei in ihrer Baum-/Listenansicht hervor.

SCM view highlighting the active file

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 untracked files

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 merge commit message

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 Reveal in Explorer

Git: Klonfortschritt

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

Git clone progress

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.

breakpoints in overview ruler

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.

prelaunch task for compound debug configurations

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.

CSS media query symbols

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.arrayForeground
  • symbolIcon.booleanForeground
  • symbolIcon.classForeground
  • symbolIcon.colorForeground
  • symbolIcon.constructorForeground
  • symbolIcon.constantForeground
  • symbolIcon.enumeratorForeground
  • symbolIcon.enumeratorMemberForeground
  • symbolIcon.eventForeground
  • symbolIcon.fieldForeground
  • symbolIcon.fileForeground
  • symbolIcon.folderForeground
  • symbolIcon.functionForeground
  • symbolIcon.interfaceForeground
  • symbolIcon.keyForeground
  • symbolIcon.keywordForeground
  • symbolIcon.methodForeground
  • symbolIcon.moduleForeground
  • symbolIcon.namespaceForeground
  • symbolIcon.nullForeground
  • symbolIcon.numberForeground
  • symbolIcon.objectForeground
  • symbolIcon.operatorForeground
  • symbolIcon.packageForeground
  • symbolIcon.propertyForeground
  • symbolIcon.referenceForeground
  • symbolIcon.snippetForeground
  • symbolIcon.stringForeground
  • symbolIcon.structForeground
  • symbolIcon.textForeground
  • symbolIcon.typeParameterForeground
  • symbolIcon.unitForeground
  • symbolIcon.variableForeground

Symbol icon colors

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.

Problem icon colors

Sie können die Symbolfarben für das Probleme-Panel und die Benachrichtigungen auch explizit festlegen.

  • problemsErrorIcon.foreground
  • problemsWarningIcon.foreground
  • problemsInfoIcon.foreground
  • notificationsErrorIcon.foreground
  • notificationsInfoIcon.foreground
  • notificationsWarningIcon.foreground

Glühbirne

Die Glühbirnen-Symbole sind ebenfalls themenbezogen.

  • editorLightBulb.foreground
  • editorLightBulbAutoFix.foreground

Lightbulb icon colors

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.json Ihrer 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.

tasks with detail

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.

VS Code running in a browser

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

Beiträge zu language-server-protocol

Beiträge zu vscode-eslint

Beiträge zu vscode-json-languageservice

Beiträge zu vscode-css-languageservice

Beiträge zu node-jsonc-parser

Beiträge zu debug-adapter-protocol

Beiträge zu vscode-vsce

Beiträge zu inno-updater

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.
© . This site is unofficial and not affiliated with Microsoft.