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

Oktober 2020 (Version 1.51)

Update 1.51.1: Das Update behebt diese Probleme.

Downloads: Windows: x64 Arm64 | Mac: Intel | Linux: deb rpm tarball Arm snap


Willkommen zur Oktober 2020-Version von Visual Studio Code. Wie im Oktober-Iterationsplan angekündigt, konzentrierten wir uns auf die Organisation von GitHub Issues und Pull Requests, wie in unserem Leitfaden zur Issue-Organisation dokumentiert.

Wir haben auch mit unseren Partnern bei GitHub an GitHub Codespaces gearbeitet, was sich als aufwändiger erwies als ursprünglich erwartet. Daher werden wir auch im November weiterhin an der Organisation arbeiten.

Während dieses Meilensteins der Organisation haben wir auch mehrere Funktionsanfragen und Community-Pull-Requests bearbeitet. Lesen Sie weiter, um mehr über neue Funktionen und Einstellungen zu erfahren.

Workbench

Prominentere angeheftete Tabs

Angeheftete Tabs zeigen nun immer ihr Pin-Symbol an, auch wenn sie inaktiv sind, um sie leichter identifizieren zu können. Wenn ein Editor sowohl angeheftet ist als auch nicht gespeicherte Änderungen enthält, spiegelt das Symbol beide Zustände wider.

Inactive pinned tabs showing pin icons

Extension-Trees verwenden benutzerdefinierte Hover-Effekte

Anstelle des nativen Tooltips in den Extension-Baumansichten verwenden wir nun einen benutzerdefinierten Hover-Effekt, der plattformübergreifend konsistent ist und besser zum Gesamt-UX passt.

Custom tree hover

Eine Extension installieren, ohne sie zu synchronisieren

Sie können nun eine Extension installieren, ohne sie zu synchronisieren, während die Einstellungs-Synchronisation aktiviert ist.

Install extension without syncing

Theme: GitHub Light

Eine Extension aus dem Explorer installieren

VS Code unterstützt nun die Installation einer Extension-VSIX-Datei aus dem Explorer durch Rechtsklick auf eine VSIX-Datei und Auswahl des Kontextmenüeintrags Extension VSIX installieren.

Input-Blur-Befehl

Ein neuer interner Befehl workbench.action.blur ist nun verfügbar, der den Fokus von jedem fokussierbaren Eingabefeld entfernt. Sie können diesem Befehl eine Tastenkombination in den Tastenkombinationseinstellungen zuweisen.

Integriertes Terminal

Lokales Echo

Änderungen im Terminal erfordern traditionell, dass Informationen an den Terminalprozess gesendet, verarbeitet und an VS Code zurückgegeben werden, um wirksam zu werden. Dies kann bei schlechter oder entfernter Verbindung zu einem SSH-Server oder Codespace langsam sein.

Diese Version fügt dem Terminal einen "lokalen Echo"-Modus hinzu, der versucht, lokal vorgenommene Änderungen und Cursorbewegungen vorherzusagen und sie in der Benutzeroberfläche anzuzeigen, ohne einen Roundtrip zum Server zu benötigen. Standardmäßig werden vorhergesagte Zeichen "gedimmt" angezeigt.

Gif showing typing with 250ms latency where characters entered immediately are dimmed

Es gibt zwei Einstellungen, mit denen Sie dies konfigurieren können

  • terminal.integrated.localEchoLatencyThreshold konfiguriert die Erkennungsschwelle für Verzögerungen in Millisekunden, bei der das lokale Echo aktiviert wird. Dieser Wert kann auf 0 gesetzt werden, um die Funktion immer zu aktivieren, oder auf -1, um sie zu deaktivieren. Standardwert ist 30.
  • terminal.integrated.localEchoStyle konfiguriert den Stil oder die Farbe des lokalen Zeichens, Standard ist dim.

IntelliSense

Größenveränderbare Vorschläge

In diesem Meilenstein haben wir mehrere Verbesserungen an der Vorschlags-UI vorgenommen. Vor allem kann sie nun in der Größe verändert werden. Ziehen Sie an den Seiten oder Ecken, um das Steuerelement zu vergrößern/verkleinern.

Resizable Suggestions control

Theme: GitHub Light, Font: FiraCode

Die Größe der Vorschlagsliste wird gespeichert und zwischen den Sitzungen wiederhergestellt. Die Größe des Detailbereichs wird nur pro Sitzung gespeichert, da diese Größe tendenziell variabler ist. Außerdem ist die Einstellung editor.suggest.maxVisibleSuggestions veraltet.

Statusleiste für Vorschläge

Das Vorschlagsfeld kann nun auch eine eigene Statusleiste am unteren Fensterrand anzeigen. Aktivieren Sie diese mit der Einstellung editor.suggest.showStatusBar. Sie vereinfacht das Umschalten von Details und zeigt an, ob eine Vervollständigung das Einfügen, Ersetzen oder beides unterstützt.

Suggestions Status Bar

Theme: GitHub Light, Font: FiraCode

Im obigen Beispiel führt die Auswahl von "Einfügen" zu Math.floorceil und die Auswahl von "Ersetzen" zu Math.floor.

Die neue Einstellung editor.suggest.insertMode ermöglicht es Ihnen, Ihre Präferenz für Einfügen oder Ersetzen zu konfigurieren. Wenn ein Vorschlag beides unterstützt, wird Ihre Präferenz zum Standard.

Cursor verschieben, um Vorschläge auszuwählen

Zu guter Letzt können Sie den Cursor nun verschieben, während Vorschläge angezeigt werden. Sie können beispielsweise Vorschläge am Ende eines Wortes auslösen, nach links wechseln, um mehr Vorschläge anzuzeigen, und dann Ersetzen verwenden, um das Wort zu überschreiben.

Moving cursor while suggestions are showing

Theme: GitHub Light

Emmet

Benutzerdefinierte Snippets in Emmet sind zurück. Außerdem werden Snippets beim Speichern der Snippet-Datei oder beim Aktualisieren der Einstellung emmet.extensionsPath automatisch aktualisiert.

Emmet custom snippets working again

Quellcodeverwaltung

Eingabefeld für die Quellcodeverwaltung speichert Commit-Nachrichtenverlauf

Dies behebt eine Funktionsanfrage zur Navigation im Commit-Verlauf der SCM. Drücken Sie (Windows, Linux Up) und (Windows, Linux Down), um die vorherigen bzw. nächsten Commits anzuzeigen. Um direkt zur ersten und letzten Position des Eingabefelds zu springen, drücken Sie Alt in Kombination mit der entsprechenden Pfeiltaste.

After typing a message in the SCM input box, then staging and committing changes, pressing the up arrow reveals the message that was just committed

Git: Tag-Befehle im Untermenü

Tag-bezogene Git-Befehle wurden dem Git-Menü ... hinzugefügt.

Git tags submenu

Git: Rebase-Befehl

Ein neuer Befehl Git: Branch neu aufsetzen... wurde hinzugefügt, mit dem Sie einen Branch über die Benutzeroberfläche neu aufsetzen können.

Git: Rekursiver Klon-Befehl

Mit dem Befehl Git: Klonen (Rekursiv) können Sie nun Git-Repositories, einschließlich ihrer verschachtelten Git-Submodule, rekursiv klonen.

Timeline: Emoji-Kurzcode-Rendering

Wir rendern jetzt Emoji-Kurzcodes wie :smile: in der Timeline-Ansicht.

Timeline view with emoji

Sprachen

Markdown Smart Select

Erweitern und verkleinern Sie die Auswahl in Markdown-Dokumenten mit den folgenden neuen Befehlen

  • Erweitern: ⌃⇧⌘→ (Windows, Linux Shift+Alt+Right)
  • Verkleinern: ⌃⇧⌘← (Windows, Linux Shift+Alt+Left)

Die Auswahl gilt für Folgendes und folgt einem traditionellen hierarchischen Muster

  • Überschriften
  • Listen
  • Blockzitate
  • Eingeklammerte Codeblöcke
  • Html-Codeblöcke
  • Absätze

Smart select within a Markdown document expands from a block element, to the block element containing it, to the rest of the content under a header, to the header itself

Formatierungsoption für leere Klammern für JavaScript und TypeScript

Die neue Formatierungsoption javascript.format.insertSpaceAfterOpeningAndBeforeClosingEmptyBraces und typescript.format.insertSpaceAfterOpeningAndBeforeClosingEmptyBraces steuert, ob Leerzeichen zwischen leeren Klammern eingefügt werden. Der Standardwert für diese Einstellungen ist true. Zum Beispiel für JavaScript

class Foo {
    doFoo() { }
}

Einstellung "javascript.format.insertSpaceAfterOpeningAndBeforeClosingEmptyBraces": false und Formatierung des Codes ergibt

class Foo {
    doFoo() {} // Notice that the space has been removed
}

Browserunterstützung

Download-Ordner (Edge, Chrome)

Unter Nutzung der neuen File System Access API kann VS Code im Browser nun eine Download-Aktion für Ordner aus dem Dateiexplorer anbieten, um alle Dateien und Ordner auf die Festplatte herunterzuladen.

Download folder

Hinweis: Dies erfordert eine aktuelle Version von Microsoft Edge oder Google Chrome.

Benachrichtigung zum Öffnen des Workspaces

Wenn Sie einen Ordner öffnen, der .code-workspace-Dateien auf oberster Ebene enthält, sehen Sie nun eine Benachrichtigung, die Sie auffordert, diese zu öffnen. Dies war bei VS Code für Desktop schon immer der Fall und funktioniert nun auch im Browser.

Open workspace notification

Versehentliches Schließen verhindern

Eine neue Einstellung window.confirmBeforeClose wurde hinzugefügt, um ein Bestätigungsdialogfeld anzuzeigen, bevor das Workbench geschlossen oder verlassen wird.

Mögliche Werte sind:

  • keyboardOnly Die Bestätigung wird nur angezeigt, wenn Sie eine Tastenkombination zum Schließen verwenden (z. B. ⌘W (Windows, Linux Alt+F4)). (Standard)
  • always: Der Bestätigungsdialog wird immer angezeigt, auch wenn Sie die Schließung per Mausgeste oder durch Klicken auf das Schließfeld auslösen.
  • never: Die Bestätigung wird nie angezeigt.

Close confirmation dialog

Hinweis: Diese Einstellung deckt möglicherweise nicht alle Fälle ab. Browser können sich immer noch entscheiden, einen Tab oder ein Fenster ohne Bestätigung zu schließen.

Beiträge zu Erweiterungen

GitHub Pull Requests und Issues

Die Arbeit an der GitHub Pull Requests and Issues-Erweiterung wird fortgesetzt, die es Ihnen ermöglicht, Pull Requests und Issues zu bearbeiten, zu erstellen und zu verwalten.

Um alle neuen Funktionen und Updates zu erfahren, können Sie das vollständige Changelog für die Version 0.21.0 der Extension einsehen.

Remote-Entwicklung

Die Arbeit an den Remote Development-Erweiterungen wird fortgesetzt. Diese ermöglichen es Ihnen, einen Container, eine Remote-Maschine oder das Windows Subsystem for Linux (WSL) als voll ausgestattete Entwicklungsumgebung zu nutzen.

Funktions-Highlights in 1.51 sind

  • Möglichkeit, Terminal-Sitzungen zu persistent machen/wiederherzustellen.
  • Verbesserte Port-Weiterleitungs-Erfahrung.

Informationen zu neuen Extension-Funktionen und behobenen Fehlern finden Sie in den Release Notes für Remote Development.

Vorschau-Funktionen

Vorschau-Features sind noch nicht zur Veröffentlichung bereit, aber funktionsfähig genug, um sie zu nutzen. Wir freuen uns über Ihr frühes Feedback, während sie sich in der Entwicklung befinden.

Einstellungs-Synchronisation

Die Einstellungs-Synchronisation synchronisiert nun den globalen Status von Extensions. Extensions müssen ihren Status für die Synchronisation über die neu eingeführte setKeysForSync API bereitstellen.

Proxy-Anmeldeinformationen speichern

Wir überarbeiten den Anmeldedialog, der angezeigt wird, wenn eine Netzwerkverbindung eine Authentifizierung mit einem Proxy erfordert. Eine neue Einstellung, window.enableExperimentalProxyLoginDialog: true, aktiviert dieses neue Erlebnis, das wir in einer zukünftigen Version zur Standardeinstellung machen wollen.

Proxy Login

Theme: GitHub Light

Der Dialog wird innerhalb des VS Code-Fensters angezeigt und bietet eine Möglichkeit, die Anmeldeinformationen zu speichern, sodass Sie diese nicht jedes Mal bei jedem Start von VS Code angeben müssen. Anmeldeinformationen werden im standardmäßigen Anmeldeinformationsspeicher des Betriebssystems gespeichert (Keychain unter macOS, Windows Credential Manager unter Windows und Gnome Keyring unter Linux).

Wir zeigen diesen Dialog immer noch nur einmal pro Sitzung an, könnten diese Entscheidung aber in Zukunft überdenken. Sie werden den Dialog erneut sehen, falls die von Ihnen ausgewählten Anmeldeinformationen, die gespeichert werden sollen, ungültig sind. Wenn Sie diese erneut angeben, können Sie sie ändern.

Bitte aktivieren Sie diese Option und lassen Sie uns über unseren Issue Tracker wissen, wenn etwas nicht wie erwartet funktioniert.

TypeScript 4.1 Beta-Unterstützung

VS Code unterstützt die TypeScript 4.1 Beta und Nightly Builds. Das 4.1-Update bringt einige neue Sprachfeatures für TypeScript, wie z.B. Unterstützung für rekursive bedingte Typen, sowie Verbesserungen am Tooling. Ein Schwerpunkt lag auf der ersten Unterstützung für @see-Tags in JSDoc-Kommentaren.

Um die TypeScript 4.1 Nightly Builds zu nutzen, installieren Sie einfach die TypeScript Nightly Extension. Bitte geben Sie uns Feedback und lassen Sie uns wissen, wenn Sie auf Fehler mit TypeScript 4.1 stoßen.

Erweiterungs-Authoring

Aktualisierte Extension-Samples

Wir haben einige unserer Extension-Samples aktualisiert, um VS Code-Standardstile aufzunehmen, die mit unseren Farbthema-Token verknüpft sind. Das bedeutet, dass gängige Elemente (Text, Schaltflächen, Eingaben) themenbezogen angepasst werden können und den Standardstilen im Produkt entsprechen. Nachfolgend sind die Extensions aufgeführt, die dies enthalten:

Webview style samples

Codicon-Farben in Bäumen

Mit der Finalisierung der ThemeIcon Color API können Extension-Autoren Thema-Farben auf Codicons in benutzerdefinierten Baumansichten anwenden.

Tree view with icon colors

Globalen Zustand synchronisieren

Extensions können nun ihren globalen Zustand synchronisieren, indem sie die Schlüssel, deren Werte synchronisiert werden sollen, wenn die Einstellungs-Synchronisation aktiviert ist, über die neu eingeführte setKeysForSync API im globalState Memento bereitstellen.

/**
 * Set the keys whose values should be synchronized across devices when synchronizing user-data
 * like configuration, extensions, and mementos.
 *
 * Note that this function defines the whole set of keys whose values are synchronized:
 *  - calling it with an empty array stops synchronization for this memento
 *  - calling it with a non-empty array replaces all keys whose values are synchronized
 *
 * For any given set of keys this function needs to be called only once but there is no harm in
 * repeatedly calling it.
 *
 * @param keys The set of keys whose values are synced.
 */
setKeysForSync(keys: string[]): void;

Sichtbarkeit der Schaltfläche zum Antworten auf Kommentar-Threads

Kommentar-Extensions können nun die Sichtbarkeit der Antwortschaltfläche in einem Kommentar-Thread mit einer neuen Eigenschaft, CommentThread#canReply, steuern. Wenn diese auf false gesetzt ist, sehen Benutzer die Antwortschaltfläche oder das Kommentarfeld im Kommentar-Thread nicht.

Vorgeschlagene Erweiterungs-APIs

Jeder Meilenstein bringt neue vorgeschlagene APIs mit sich und Erweiterungsautoren können sie ausprobieren. Wie immer wünschen wir uns Ihr Feedback. Hier erfahren Sie, wie Sie eine vorgeschlagene API ausprobieren können

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

Sie können keine Erweiterung veröffentlichen, die eine vorgeschlagene API verwendet. Es kann zu Breaking Changes in der nächsten Version kommen und wir möchten niemals bestehende Erweiterungen beeinträchtigen.

Änderungsereignis für Folding-Range-Provider

Folding-Range-Provider können dem Editor signalisieren, dass Folding-Ranges aktualisiert werden müssen, indem sie das Ereignis onDidChangeFoldingRanges verwenden.

Weitere Details und Feedback finden Sie unter Issue #108929.

Passwort-APIs

Als Teil der kontinuierlichen Arbeit an Authentifizierungsanbietern haben wir eine API zur Speicherung und Abfrage sensibler Informationen eingeführt. Intern fungiert dies als Wrapper für die keytar-Bibliothek, die VS Code zum Speichern von Geheimnissen verwendet.

/**
 * Retrieve a password that was stored with key. Returns undefined if there
 * is no password matching that key.
 * @param key The key the password was stored under.
 */
export function getPassword(key: string): Thenable<string | undefined>;

/**
 * Store a password under a given key.
 * @param key The key to store the password under
 * @param value The password
 */
export function setPassword(key: string, value: string): Thenable<void>;

/**
 * Remove a password from storage.
 * @param key The key the password was stored under.
 */
export function deletePassword(key: string): Thenable<void>;

/**
 * Fires when a password is set or deleted.
 */
export const onDidChangePassword: Event<void>;

Technik

VS Code Trusted Types-konform machen

Wir haben die Bemühungen fortgesetzt, VS Code "Trusted Types"-konform zu machen. Ziel ist es, DOM-basierte Cross-Site-Scripting-Schwachstellen zu verhindern. Mehr über Trusted Types erfahren Sie auf der web.dev Trusted Types-Seite und folgen Sie unserem Fortschritt in Issue #103699.

Dokumentation

Erste Schritte

Wir konzentrieren uns darauf, den Einstieg in den Editor zu erleichtern. Wir haben eine neue "Learn to Code"-Landingpage auf unserer Website mit Coding-Packs und neuen Inhalten für Anfänger erstellt. Wir haben auch neue, studentenfreundliche Videos und Ressourcen auf der Website unter code.visualstudio.com/learn erstellt.

Learn to code

Neue Befehle

Taste Befehl Befehls-ID
Fokus auf die linke Editorgruppe (nicht umbrechen) workbench.action.focusLeftGroupWithoutWrap
Fokus auf die rechte Editorgruppe (nicht umbrechen) workbench.action.focusRightGroupWithoutWrap
Fokus auf die obere Editorgruppe (nicht umbrechen) workbench.action.focusAboveGroupWithoutWrap
Fokus auf die untere Editorgruppe (nicht umbrechen) workbench.action.focusBelowGroupWithoutWrap
Fokus auf die Aktivitätsleiste workbench.action.focusActivityBar

Bemerkenswerte Fehlerbehebungen

  • 43819: Windows: beim Löschen eines Ordners mit in Gebrauch befindlichen Dateien wird keine Fehlermeldung angezeigt
  • 71315: Sollte den Zeilenfokus nach dem Löschen einer Datei beibehalten
  • 96522: Benutzereingabevariablen funktionieren nicht für die Startkonfiguration im Multi-Root-Workspace
  • 100255: Beim Verschieben einer Datei sollte das Modell direkt mit dem vorherigen Inhalt geladen werden
  • 108578: Extensions mit onDebugDynamicConfigurations werden in v1.50 beim Start eifrig aktiviert
  • 109088: Send vscode.workspace.onWillCreateFiles/onDidCreateFiles events for folders
  • 109226: Debug-Hover bewegt sich beim Erweitern/Einklappen

Vielen Dank

Last but certainly not least, ein großes Danke an die folgenden Personen, die diesen Monat zu VS Code beigetragen haben

Beiträge zu unserer Fehlerverfolgung

Beiträge zu vscode

Beiträge zu vscode-json-languageservice

Beiträge zu vscode-html-languageservice

Beiträge zu vscode-css-languageservice

  • @ShPelles: [scss] Korrektes Identifizieren eines Elements mit ID (div#id) PR #222

Beiträge zu vscode-eslint

Beiträge zu language-server-protocol

Beiträge zu vscode-emmet-helper

Beiträge zu lsif-node

Beiträge zu debug-adapter-protocol

Beiträge zu vscode-vsce

Beiträge zu vscode-js-debug

  • hp8wvvvgnj6asjm7: Debugger funktioniert nicht, wenn Node.js auf einem nicht unterstützten Betriebssystem ausgeführt wird PR #791

© . This site is unofficial and not affiliated with Microsoft.