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

August 2019 (Version 1.38)

Update 1.38.1: Das Update behebt diese Probleme.

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


Willkommen zur August 2019-Version von Visual Studio Code. Diese Version enthält eine Reihe von Updates, die Ihnen hoffentlich gefallen werden. Einige der wichtigsten Highlights sind:

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

Groß-/Kleinschreibung in Suchen und Ersetzen beibehalten

In der 1.37-Version haben wir der Such-/Ersetzen-Steuerung des Editors eine Option zum **Beibehalten der Groß-/Kleinschreibung** hinzugefügt. Dieselbe Option ist jetzt als **AB**-Symbol in der globalen Suche und Ersetzung verfügbar.

Es gibt auch einen neuen Modus zum Beibehalten der Groß-/Kleinschreibung für durch Bindestriche getrennte Wörter.

Preserve Case button in search

Aktualisiertes Symbol zum Abbrechen der Suche

Bei langen Suchen haben wir das Symbol zum Abbrechen einer Suche aktualisiert, um die Aktion besser darzustellen.

Cancel search icon

Validierung für String-Array-Einstellungen

Der Einstellungseditor zeigt nun Fehler für Array-von-Strings-Elemente an, wenn der aktuelle Wert die angegebenen Schemawerte minItems, maxItems, item.enum oder item.pattern nicht erfüllt.

String of array error validation

VS Code zeigt nun eine Aufforderung an, bevor ausgehende Links geöffnet werden.

Link protection prompt

Sie können den Link direkt öffnen oder bestimmte Domains vertrauen, um diese Aufforderung zu umgehen. Mit der Schaltfläche oder dem Befehl **Vertrauenswürdige Domains konfigurieren** können Sie den Linkschutz für bestimmte Domains oder alle ausgehenden Links aktivieren/deaktivieren.

Verbesserungen im Explorer

Erstellung von Top-Level-Ressourcen

Wir haben den Prozess der Erstellung von Top-Level-Dateien und -Ordnern im Explorer verbessert. Es gibt nun drei Möglichkeiten, eine Datei oder einen Ordner im Stammverzeichnis des Dateiexplorers zu erstellen:

  • Scrollen über das letzte Element hinaus, um das Kontextmenü auf dem leeren Bereich aufzurufen.
  • Durch Drücken von Escape werden sowohl der Fokus als auch die Auswahl im Explorer gelöscht, wodurch die Aktionen im Titeldereich auf dem Explorer-Stammverzeichnis ausgeführt werden.
  • Verwendung eines Kontextmenüs auf der Scrollleiste.

Datei öffnen und Fokus beibehalten

Es ist nun möglich, eine Datei in der Vorschau aus dem Explorer zu öffnen, während der Fokus im Explorer erhalten bleibt. Der neue Befehl lautet filesExplorer.openFilePreserveFocus und kann standardmäßig über die Leertaste ausgelöst werden.

Explorer-Dateibenennung

Es gibt eine neue Einstellung, explorer.incrementalNaming, die die Benennung von doppelten Dateien steuert und die Werte simple oder smart haben kann.

  • simple - Hängt das Wort "Kopie" am Ende des duplizierten Namens an, gefolgt von einer Zahl. Dies ist das aktuelle Verhalten von VS Code.
  • smart - Fügt eine Zahl am Ende des duplizierten Namens hinzu. Wenn eine Zahl bereits Teil des Namens ist, wird diese Zahl erhöht.

Befehl zum Umschalten der Editorgröße

Ein neuer Befehl **Editorgruppen-Größen umschalten** (workbench.action.toggleEditorWidths) schaltet zwischen der Maximierung der aktiven Editorgruppe und dem Ausgleich der Editorgruppen-Breiten um.

Rasterlayout für das Workbench

Die Layout-Engine der Workbench wurde neu geschrieben, um dasselbe Raster-Widget wie der Editorbereich selbst zu verwenden. Diese Arbeit ist seit einiger Zeit im Gange, und Insiders-Builds hatten dies in den letzten Iterationen standardmäßig aktiviert. Die Einstellung ist workbench.useExperimentalGridLayout und wird nun standardmäßig aktiviert sein.

Umschalten des Editorbereichs / Maximieren des Panels

Die neue Engine bietet mehr Flexibilität für das Workbench-Layout in der Zukunft. Vorerst manifestiert sich dies in der Möglichkeit, den Editorbereich auszublenden. Es gibt einen neuen Befehl mit dem Rasterlayout, **Editorbereich umschalten**, der den Editorbereich ausblendet und dem Panel (z. B. Ausgabe oder Debugging-Konsole) erlaubt, das Layout auszufüllen. Der Befehl **Maximiertes Panel umschalten** hat denselben Effekt. Das bedeutet, dass ein maximiertes Panel nun wirklich maximiert ist, ohne den zuvor verbleibenden winzigen Spalt des Editors.

Unten sehen Sie das maximierte integrierte Terminal:

Maximized panel

Der Editor erscheint automatisch wieder, wenn Sie versuchen, eine Datei von irgendwoher zu öffnen, z. B. aus dem Panel oder der Seitenleiste.

Einzelne macOS Touch Bar-Einträge ausblenden

Eine neue Einstellung keyboard.touchbar.ignored kann VS Code-Befehle selektiv aus der macOS Touch Bar entfernen. VS Code fügt standardmäßig die folgenden Befehle hinzu:

  • workbench.action.navigateBack
  • workbench.action.navigateForward
  • workbench.action.debug.start
  • workbench.action.debug.run
  • workbench.action.debug.continue
  • workbench.action.debug.pause
  • workbench.action.debug.stepOver
  • workbench.action.debug.stepInto
  • workbench.action.debug.stepOut
  • workbench.action.debug.restart
  • workbench.action.debug.stop

Neue Kontextschlüssel für Editor-Gruppen

Es gibt zwei neue „when“-Kontexte zum bedingten Binden von Tastenkombinationen:

  • activeEditorGroupIndex - Eine Zahl ab 1, die die Position einer Editorgruppe im Editor-Raster widerspiegelt. Die Gruppe mit dem Index 1 ist die erste in der oberen linken Ecke.
  • activeEditorGroupLast - Ist true für die letzte Editorgruppe im Editor-Raster.

Hinweis: Siehe die Referenz zu „when“-Klausel-Kontexten für eine vollständige Liste.

Barrierefreiheitsverbesserungen

Wir beheben in diesem Meilenstein weiterhin Barrierefreiheitsprobleme. Highlights sind:

  • Die Wortnavigation folgt nun dem, was NVDA und VoiceOver erwarten. Wörter werden bei der Navigation mit der Wortnavigation im Editor ordnungsgemäß angesagt.
  • Das Windows-Lupe-Tool kann nun dem Cursor im Editor folgen.

Screencast-Modus

Es gab mehrere Verbesserungen am Screencast-Modus (Entwickler: Screencast-Modus umschalten):

  • Es gibt nun ein Limit für die Länge des Screencast-Tastenkombinations-Labels.
  • Die vertikale Position des Tastenkombinations-Labels kann über die Einstellung screencastMode.verticalOffset angepasst werden.
  • Das Tastenkombinations-Label kann so konfiguriert werden, dass nur tatsächliche Tastenkombinationen gerendert werden, über die Einstellung screencastMode.onlyKeyboardShortcuts.
  • Der Renderstil der Tastenkombinationen wurde verbessert.

Editor

Cursor-Umgebungszeilen (scrollOff)

Sie können nun die Anzahl der sichtbaren Zeilen um den Cursor herum anpassen, wenn Sie den Cursor zum Anfang oder Ende einer Datei bewegen, indem Sie editor.cursorSurroundingLines einstellen. Im Vim-Editor heißt diese Funktion scrollOff.

Cursor surrounding lines

Mehrzeilige Suche in „Suchen“

Die Suchfunktion des Editors unterstützt nun mehrzeilige Textsuche und -ersetzung. Durch Drücken von Strg+Enter können Sie neue Zeilen in das Eingabefeld einfügen.

Multi-line search in the editor

Kopieren und Rückgängigmachen im Inline-Diff-Editor

Es gibt neue Aktionen zum Kopieren oder Rückgängigmachen von gelöschtem Inhalt bei Verwendung des Inline-Diff-Editors. Wenn Sie mit der Maus über gelöschten Inhalt im Inline-Diff-Editor fahren, können Sie nun:

  • Den gesamten gelöschten Inhalt kopieren
  • Eine bestimmte Zeile kopieren
  • Die Änderung rückgängig machen

Diff actions

Gehe zu Zeile unterstützt negative Zeilennummern

Sie können nun negative Zeilennummern in den **Gehe zu Zeile**-Auswahl eingeben, um vom Ende der Datei aus zu navigieren. Wenn Sie beispielsweise -1 eingeben, wird die letzte Zeile der Datei angezeigt.

Minimap-Dekorationen für globale Suche

Die Minimap (Code-Übersicht) zeigt nun Suchergebnisse für Suchen innerhalb einer Datei und globale Suchen an.

Integriertes Terminal

Verbessertes Fallback-Verhalten bei Verwendung von Variablen in terminal.integrated.cwd

Bei Verwendung von Variablen in der cwd-Einstellung, wie z. B.:

"terminal.integrated.cwd": "${fileDirname}"

Anstatt einen Fehler auszugeben, wenn eine Variable nicht aufgelöst werden kann, protokolliert das Terminal nun einen Fehler in der Konsole und greift auf das Arbeitsbereichsverzeichnis zurück.

Automatisierungs-Shell-Einstellung

Zusätzlich zur Einstellung der Shell für das integrierte Terminal können Sie nun eine Shell für die Automatisierung (z. B. Tasks) angeben. Dies ist besonders nützlich, wenn Sie tmux als Ihre Shell verwenden, da dies nicht bei allen Automatisierungsaufgaben funktioniert.

"terminal.integrated.shell.osx": "/Users/user/bin/tmux_script"
"terminal.integrated.automationShell.osx": "bash",

Sprachen

MDN-Referenz für HTML und CSS

VS Code zeigt nun eine URL an, die auf die entsprechende MDN-Referenz in der Vervollständigung und beim Überfahren mit der Maus von HTML- und CSS-Entitäten verweist.

HTML & CSS MDN Reference

Wir danken dem MDN-Dokumentationsteam für seine Arbeit an der Kuratierung von mdn-data / mdn-browser-compat-data und die einfache Zugänglichkeit von MDN-Ressourcen durch VS Code.

Verbesserte Less-Unterstützung

VS Code unterstützt nun viele neue Less.js-Funktionen, darunter Root-Funktionen, Map-Lookups und anonyme Mixins.

Kennzeichnung der Veralterung für nicht standardmäßige und veraltete CSS-Eigenschaften

Der CSS-Sprachserver nutzt die experimentelle Deprecation Tag API und zeigt in der automatischen Vervollständigung eine Kennzeichnung für CSS-Eigenschaften an, die als nonstandard oder obsolete markiert sind.

CSS deprecated properties

TypeScript 3.6

VS Code wird nun mit TypeScript 3.6.2 ausgeliefert. Dieses große Update bringt einige Verbesserungen der TypeScript-Sprache mit sich, darunter strengere Generatoren und Unterstützung für import.meta, sowie einige neue Tooling-Funktionen für JavaScript und TypeScript. Wie immer enthält diese Version auch eine Reihe wichtiger Fehlerbehebungen.

Sie können mehr über die Funktionen von TypeScript 3.6 im TS 3.6 Blogbeitrag lesen.

Schnellkorrektur zum Hinzufügen eines fehlenden awaits

Ist Ihr Code ein wenig zu schnell? Die neue Schnellkorrektur **'await' hinzufügen** hilft Ihnen, await-Werte zu ergänzen, die Sie im asynchronen Code möglicherweise übersehen haben.

Detect missing calls to await in JavaScript using @ts-check and Quick Fix them

Diese Schnellkorrektur ist in TypeScript- und JavaScript-Quellcode verfügbar, für den die Typüberprüfung aktiviert ist.

Semikolon-bewusste Bearbeitung für JavaScript und TypeScript

Wenn Sie einen Import hinzufügen oder eine Umgestaltung in JavaScript- oder TypeScript-Quellcode anwenden, versucht VS Code nun zu erkennen, ob Semikolons aus vorhandenem Code in der Datei eingeschlossen werden sollen.

No semicolons

Details zur Funktionsweise dieser Semikolon-Erkennung finden Sie im Pull-Request, der diese Funktion hinzugefügt hat. Einige Schnellkorrekturen und Umgestaltungen sind noch nicht semikolon-bewusst, aber wir werden daran arbeiten, dies in zukünftigen Updates zu beheben.

JSDoc-Kommentare werden für IntelliSense nicht mehr zusammengeführt

Zuvor kombinierte unsere JavaScript- und TypeScript-IntelliSense mehrere JSDoc-Kommentare, wenn sie vor einer Definition standen. Beachten Sie im folgenden Beispiel, wie die Dokumentation für den User-Typ mit der der Funktion getUser zusammengeführt wird:

Older TS versions merged multiple JSDoc comments

Mit TypeScript 3.6 verwendet unsere IntelliSense nun nur noch den unmittelbar vorangehenden JSDoc-Kommentar für Dokumentations- und Typinformationen.

TS 3.6 only uses the immediately preceding JSDoc comment

Quellcodeverwaltung

Git: Branch-Name in Commit-Eingabe

Der aktuelle Git-Branch-Name wird nun in der Commit-Eingabebox angezeigt, um zu vermeiden, dass auf dem falschen Branch committet wird.

Git branch name in input box

Git: Branch-Liste alphabetisch sortieren

Es gibt eine neue Einstellung git.branchSortOrder, um die Reihenfolge der Branches beim Wechseln zu einem Branch mit dem Befehl **Git: Checkout to...** zu ändern.

Git: Unterstützung für Pull-Abbruch

Wenn Sie die Einstellung git.supportCancellation aktivieren, haben Sie die Möglichkeit, laufende **Git Pull**-Anforderungen abzubrechen, was beim Pulling von langsamen Remotes nützlich ist.

Debugging

Brechen bei Wertänderung (Daten-Breakpoints)

In der Variablenansicht ist es nun möglich, Daten-Breakpoints zu erstellen, die ausgelöst werden, wenn sich der Wert der zugrundeliegenden Variable ändert. Wie andere Breakpoints können Daten-Breakpoints in der Breakpoint-Ansicht deaktiviert/aktiviert und entfernt werden.

Data breakpoints

Bitte beachten Sie, dass Daten-Breakpoints eine spezifische Unterstützung durch eine zugrundeliegende Laufzeitumgebung oder einen Debugger erfordern. Wir erwarten, dass nur wenige Debug-Erweiterungen wie C++ und C# (aber nicht Node.js) sich in Zukunft für diese Funktion entscheiden werden. Für diese Version "simuliert" nur unser Beispiel-Debugger Mock Debug Daten-Breakpoints.

Verbesserungen in der Call Stack-Ansicht

Wir haben einige Verbesserungen an der Call Stack-Ansicht vorgenommen, insbesondere:

  • Wenn eine Debug-Sitzung nur einen Thread hat, wird der Thread immer ausgeblendet und der Call Stack direkt angezeigt.
  • Das Klicken auf Threads und Debug-Sitzungen in der Call Stack-Ansicht erweitert/kollabiert diese nicht mehr. Nur ein expliziter Klick auf das Pfeilsymbol bewirkt die Erweiterung. Der Grund für diese Änderung ist, dass es mühsam war, die fokussierte Sitzung zu ändern, ohne unerwünschte Erweiterungen vorzunehmen. Das gleiche Verhalten ist auch in unserer Outline-Ansicht zu sehen.
  • Zuvor, wenn es eine neue Debug-Sitzung gab, erhielt die Debug-Ansicht den Fokus. Nun erhält die Debug-Ansicht nur dann den Fokus, wenn eine Sitzung tatsächlich unterbrochen wird.
  • Debug-Sitzungselemente zeigen nur dann ein Pfeilsymbol an, wenn es tatsächlich Threads für diese Sitzung gibt.

Neue Shell-Einstellung für das Starten eines Debug-Ziels

Beim Starten eines Debug-Ziels im Integrierten Terminal berücksichtigt VS Code nun die neue Einstellung "Shell für Automatisierung" (terminal.integrated.automationShell...). Diese Einstellung ist nützlich, wenn Sie eine bestimmte Standard-Shell für das Integrierte Terminal verwenden (z. B. tmux), die bei der Automatisierung beim Starten eines Debug-Ziels nicht funktioniert.

"terminal.integrated.shell.osx": "/Users/user/bin/tmux_script"
"terminal.integrated.automationShell.osx": "bash",

Beiträge zu Erweiterungen

Webview-Erweiterungen beim Hinzufügen einer Content Security Policy unterstützen

Wir haben eine Reihe von Erweiterungen identifiziert, die Webviews erstellen, die keine Content Security Policy haben. Obwohl dies kein unmittelbares Problem darstellt, sollten alle Webviews als bewährte Sicherheitspraxis eine Content Security Policy haben. In dieser Iteration haben wir Issues gegen diese Erweiterungen eröffnet, um sie auf diese Empfehlung aufmerksam zu machen.

Wenn Sie daran interessiert sind, einige der von Ihnen täglich genutzten Erweiterungen etwas sicherer zu machen, werfen Sie einen Blick auf VS Code Issue #79340 und reichen Sie PRs ein, um ihnen zu helfen.

GitHub Pull Requests

In diesem Meilenstein haben wir weiter an Verbesserungen der GitHub Pull Requests-Erweiterung gearbeitet, einschließlich Fehlerbehebungen und Funktionen wie **Branch und Remote nach dem Zusammenführen eines Pull-Requests löschen**. Weitere Details finden Sie in unserem August Milestone Plan.

Remote-Entwicklung (Vorschau)

Die Arbeit an den Remote Development-Erweiterungen, die es Ihnen ermöglichen, einen Container, einen Remote-Computer oder das Windows Subsystem für Linux (WSL) als vollwertige Entwicklungsumgebung zu nutzen, wurde fortgesetzt.

Um Ihnen den Einstieg in die Remote Development-Erweiterungen zu erleichtern, gibt es drei einführende Tutorials:

  • Dev Containers - Führen Sie Visual Studio Code in einem Docker-Container aus.
  • Remote über SSH - Stellen Sie mit Visual Studio Code über SSH eine Verbindung zu Remote- und virtuellen Maschinen her.
  • Arbeiten in WSL - Führen Sie Visual Studio Code unter dem Windows Subsystem für Linux aus.

Sie können auch einen aktuellen Blogbeitrag lesen, der Tipps und Tricks für die Linux-Entwicklung mit WSL und Visual Studio Code beschreibt.

Zu den Funktionshighlights in 1.38 gehören:

  • VS Code Stable-Vorschauunterstützung für Alpine Linux Container, Alpine WSL-Distributionen und ARMv7l / AArch32 SSH-Hosts.
  • VS Code Insiders experimentelle Unterstützung für ARMv8l / AArch64 SSH-Hosts.
  • Verbesserungen bei Dev Containers, einschließlich eines neuen Container-Explorers!

Neue Erweiterungsfunktionen und Fehlerbehebungen finden Sie in den Remote Development Release Notes.

Erweiterungs-Authoring

VS Code Icon Repository

Wir haben ein Repository aller VS Code-Icons veröffentlicht, das von Erweiterungsautoren genutzt werden kann. Es gibt dunkle/helle Versionen jedes Icons, und wir haben auch auf unsere Figma-Design-Datei verwiesen.

VS Code icons

Webview.asWebviewUri und Webview.cspSource

Es gibt zwei neue Eigenschaften für Webviews:

  • Webview.asWebviewUri - Konvertiert eine URI für das lokale Dateisystem in eine, die innerhalb von Webviews verwendet werden kann.

    Für Desktop-VS Code werden hierbei file:-URIs in vscode-resource:-URIs konvertiert.

  • Webview.cspSource - Die Content Security Policy-Quelle für Webview-Ressourcen.

    Für Desktop-VS Code ist dies der String vscode-resource:.

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 imagePath = vscode.Uri.file(path.join(extensionPath, 'media'));

panel.html = `<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="Content-Security-Policy" content="default-src 'none'; img-src ${
      panel.webview.cspSource
    } https:;">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Cat Coding</title>
</head>
<body>
    <img src="${panel.webview.asWebviewUri(imagePath)}/cat.gif" width="300" />
</body>
</html>`;

Warnung beim Erstellen eines Webviews ohne Content Security Policy

Bei der Entwicklung einer Erweiterung, die die Webview API verwendet, protokollieren wir nun eine Warnung, wenn Sie ein Webview erstellen, das keine Content Security Policy festlegt.

Debug warning for a webview that lacks a CSP

Alle Webviews (auch sehr einfache) sollten eine Content Security Policy festlegen. Dies hilft, die potenziellen Auswirkungen von Injektionen einzudämmen und ist generell eine gute Maßnahme für die Tiefe der Verteidigung. Wir haben dokumentiert, wie man eine Content Security Policy zu VS Code Webviews hinzufügt, im Webview Extension Guide.

Maschinenspezifische überschreibbare Einstellungen

Sie können nun eine maschinenspezifische Einstellung definieren, die auf Arbeitsbereichs- und Ordner-Ebene mit dem Scope machine-overridable überschrieben werden kann.

"configuration": {
  "title": "My Extension Settings",
  "properties": {
   "myextension.libPath": {
      "type": [
        "string",
        "null"
      ],
      "markdownDescription": "Specify the path to the library.",
      "default": null,
      "scope": "machine-overridable"
    }
  }
}

Mehrfachauswahl in benutzerdefinierten Baumansichten

Über createTreeView bereitgestellte Bäume können nun die Option canSelectMany zu den TreeViewOptions<T> hinzufügen. Dies ermöglicht Mehrfachauswahl in der bereitgestellten Baumansicht und bewirkt, dass Befehle, die auf Baum-Elemente angewendet werden, alle ausgewählten Baum-Elemente als Array im zweiten Befehlsargument erhalten.

markdown.api.render

Der neue Befehl markdown.api.render der integrierten Markdown-Erweiterung von VS Code nimmt einen string von Markdown oder ein vscode.TextDocument entgegen und gibt das gerenderte Markdown als HTML zurück.

import * as vscode from 'vscode';

export function activate(context: vscode.ExtensionContext) {
  vscode.commands.executeCommand('markdown.api.render', '# Hello Markdown').then(result => {
    console.log(`rendered markdown: ${result}`);
  });
}

Protokolle

rendered markdown: <h1 id="hello-markdown" data-line="0" class="code-line">Hello Markdown</h1>

Benutzerdefinierte Daten als Stable markiert

Das als experimentelle Funktion in der Januar 2019 1.31-Version eingeführte Format für benutzerdefinierte Daten ist nun als Stable markiert.

  • html.experimental.customData - Diese Einstellung ist veraltet und wird durch html.customData ersetzt.
  • css.experimental.customData - Diese Einstellung ist veraltet und wird durch css.customData ersetzt.
  • contributes.html.experimental.customData - Dieser Contribution Point ist veraltet und wird durch contributes.html.customData ersetzt.
  • contributes.css.experimental.customData - Dieser Contribution Point ist veraltet und wird durch contributes.css.customData ersetzt.

Sie können mehr darüber erfahren, wie Sie das Format für benutzerdefinierte Daten zur Verbesserung der HTML-/CSS-Sprachunterstützung von VS Code nutzen können, in der Dokumentation und den Beispielen unter microsoft/vscode-custom-data.

Veraltete workspace.rootPath

Als wir die Unterstützung für Multi-Root-Workspaces hinzugefügt haben, haben wir die API workspace.rootPath zugunsten von workspace.workspaceFolders und workspace.getWorkspaceFolder als veraltet eingestuft. Wir haben festgestellt, dass viele Erweiterungen diese API immer noch verwenden, obwohl sie in Multi-Root-Workspaces nicht korrekt funktioniert. Wenn Sie eine Erweiterung besitzen, die diese API verwendet, aktualisieren Sie sie bitte, da wir diese API in Zukunft möglicherweise entfernen möchten. Weitere Details zur Umstellung von rootPath finden Sie auf der Wiki-Seite Adopting-Multi-Root-Workspace-APIs.

Debug Adapter Protocol

Verbesserungen bei Vervollständigungsvorschlägen

Ein Debug-Adapter kann nun die neue Funktion completionTriggerCharacters verwenden, um die Zeichen anzukündigen, die eine Frontend-Benutzeroberfläche zum Auslösen der Vervollständigungsvorschlag-UI in einer REPL oder Debug-Konsole verwenden soll. Wenn keine angegeben ist, sollte die Frontend-Benutzeroberfläche das Zeichen '.' zum Auslösen der Vorschlag-UI verwenden.

Darüber hinaus haben wir ein optionales Attribut sortText zum Typ CompletionItem hinzugefügt. Mit diesem Attribut kann ein Debug-Adapter steuern, wie die Frontend-Benutzeroberfläche die vom Adapter zurückgegebenen Vervollständigungsvorschläge sortiert. Wenn das Attribut fehlt, kann das Frontend die Elemente anhand des label-Attributs sortieren.

Typfehler im JSON-Schema von DAP behoben

Im Debug Adapter Protocol JSON-Schema haben wir die Verwendung des Typspezifizierers number durch integer ersetzt, wo ein Float-Typ keinen Sinn ergibt, z. B. bei IDs.

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

Veralterungs-Tags für Symbole und Vervollständigungen

Die API für Vervollständigungen und Dokumenten-/Arbeitsbereichssymbole unterstützt nun das Markieren von Elementen als veraltet. Vervollständigungen und Symbole haben eine neue, optionale Eigenschaft tags, die eine Menge von CompletionItemTags oder SymbolTags ist. Heute wird nur die Veralterung unterstützt, aber es sind Pläne vorhanden, weitere Tags hinzuzufügen, z. B. Tags für Zugriffsmodifikatoren und andere Modifikatoren.

Das folgende Snippet zeigt einen minimalen Vervollständigungs-Item-Provider, der ein als veraltet markiertes Element rendert.

vscode.languages.registerCompletionItemProvider('plaintext', {
  provideCompletionItems() {
    const item = new vscode.CompletionItem('deprecated_completion');
    item.tags = [vscode.CompletionItemTag.Deprecated];
    return [item];
  }
});

Beim Anzeigen von veralteten Vervollständigungen oder Symbolen wird ein durchgestrichener Text über den Namen gerendert, Elemente werden leicht gedimmt und Hervorhebungen werden nicht angezeigt.

Deprecated items in smart completions

Pseudoterminal.onDidClose akzeptiert nun eine Zahl

Das vorgeschlagene Pseudoterminal.onDidClose wurde von einem Event<void> zu einem Event<void | number> geändert, wodurch Erweiterungsautoren angeben können, dass das Terminal oder die CustomExecution2-Aufgabe fehlgeschlagen ist.

Veraltete vorgeschlagene Terminal-APIs entfernt

Die veralteten APIs TerminalOptions.runInBackground und createTerminalRenderer wurden entfernt. Wenn Sie diese migrieren müssen, sollten Sie stattdessen TerminalOptions.hideFromUser (stabil) und ExtensionTerminalOptions (vorgeschlagen) verwenden.

Neue Befehle

Wir stellen nun Befehle zur Navigation durch Suchergebnisse in der Suchleiste aus dem Editor, dem integrierten Terminal, der Erweiterungsdetailansicht und Webviews bereit.

Taste Befehl Befehls-ID
Eingabe Nächstes Suchergebnis im Editor editor.action.nextMatchFindAction
⇧Enter (Windows, Linux Umschalt+Eingabe) Vorheriges Suchergebnis im Editor editor.action.previousMatchFindAction
⇧Enter (Windows, Linux Umschalt+Eingabe) Nächstes Suchergebnis im integrierten Terminal workbench.action.terminal.findNext
Eingabe Vorheriges Suchergebnis im integrierten Terminal workbench.action.terminal.findPrevious
Eingabe Nächstes Suchergebnis in der Erweiterungsdetailansicht editor.action.extensioneditor.findNext
⇧Enter (Windows, Linux Umschalt+Eingabe) Vorheriges Suchergebnis in der Erweiterungsdetailansicht editor.action.extensioneditor.findPrevious
Eingabe Nächstes Suchergebnis in der Webview editor.action.webvieweditor.findNext
⇧Enter (Windows, Linux Umschalt+Eingabe) Vorheriges Suchergebnis in der Webview editor.action.webvieweditor.findPrevious

Bemerkenswerte Fehlerbehebungen

  • 26012: Automatische Einfügung von Klammern interagiert nicht gut mit Vervollständigungen, führt zu doppelten Zeichen
  • 47292: Von Tasks erstellte Diagnosen sind für Erweiterungen nicht zugänglich
  • 73884: Linux: Das Öffnen von Dateien aus einer FTP-Verbindung zeigt leere Inhalte an
  • 75054: macOS einfache Vollbildfunktion funktioniert wieder
  • 77293: Berücksichtigen Sie den CancelationToken in provideDebugConfigurations und resolveDebugConfigurations, um das Debugging abzubrechen
  • 77735: workspace.applyEdit verwirft den TextEdit, wenn später eine Datei umbenannt wird
  • 77747: Dateiname mit $(xx) wird in der Ordneransicht falsch angezeigt
  • 77990: Das Starten mit einer TS/JS-Datei ist erheblich langsamer als das Öffnen anderer Dateien
  • 77996: Datei > Speichern unter verschiebt den Cursor an den Anfang der Datei
  • 78147: Konfigurieren der Task-Aktion sollte die neu hinzugefügte Aufgabe anzeigen und den Cursor dort positionieren
  • 78179: Aufruf von 'tasks.fetchTask()' mit einem Typfilter ruft alle Tasks ab
  • 79478: Hervorheben benutzerdefinierter HTML-Tags in Markdown-Dateien
  • 79704: Unterstützung für @example <caption> in JSDoc
  • 79763: Editoren: Können alle Editoren schließen, auch wenn sie schmutzig sind
  • 79798: Editoren: Gruppe wird nicht aktiviert, wenn workbench.editor.revealIfOpen: true
  • 78046: SCM: Unterstützung für das Staging ausgewählter Änderungen auch für *neue* Dateien, dank Darrien Singleton (@OneThatWalks) von PR #78562
  • 79625: Code-Vervollständigung für die "preLaunchTask"-Struktur bereitstellen

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

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-css-languageservice

Beiträge zu vscode-html-languageservice

Beiträge zu vscode-eslint

  • @salvofid: https://github.com/microsoft/vscode-eslint/issues/682 korrigieren PR #698

Beiträge zu language-server-protocol

Beiträge zu debug-adapter-protocol

Beiträge zu vscode-loader

Beiträge zu vscode-recipes

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: Hristiqn Hristov, Иван Иванов, Любомир Василев, Gheorghi Penkov.
  • Tschechisch: Tadeáš Cvrček, Daniel Padrta, David Jareš, Jan Hajek, Jakub Stibůrek, Michal Franc, Jan Kos, Radim Hampl, Jiří Hofman, Samuel Tulach, Jan Brudný.
  • Dänisch: René Pape, Lasse Stilvang, Allan Kimmer Jensen, Lars Vange Jørgensen, Alexander Matzen, Martin Liversage, Johan Fagerberg, Thomas Larsen, Anders Lund, Anton Ariens.
  • Niederländisch: Leroy Witteveen, Laurens Kwanten, Pieterjan De Clippel, Maxim Janssens, Luc Sieben, Hans Zoons, Jos Verlinde, Eric Algera, Damien van Gageldonk, Maxim Van Damme, Sven Klaasen, Tom Meulemans, Sujith Quintelier.
  • Englisch (Vereinigtes Königreich): Martin Littlecott, Alexander Ogilvie, Tobias Collier, William Wood, Cloud Sky, Fabio Zuin, Mohit Nain, sonali Dixit, Dan Jacobs, Giorgi Jambazishvili, Sulkhan Ninidze, alshyab wa3ed, YASHU MITTAL, Tejas kale, Mohammad Idrees, Chris Dias.
  • Finnisch: Petri Niinimäki, Kiti Suupohja, Lasse Leppänen, Sebastian de Mel, Riku Riikonen, Valtteri Vatanen.
  • Französisch: Griffard, Thierry DEMAN-BARCELÒ, Corwin D'Ambre, Mohamed Sahbi, Rodolphe NOEL, Maxime Coquerel, Steven Dugois, Cédric M., Michael VAUDIN, Bastien Boussouf, Alicia lic, francois-joseph du fou, franto, DJ Dakta.
  • Deutsch: Julian Pritzi, Joscha Mathis, Jan Widmer, Jakob von der Haar, Frank Lindecke, Dejan Dinic, Florian Erbs, Patrick Burke, Mario Koschischek, Florian Berger, Christof Opresnik, Hans Meiser, Carsten Kneip, Ettore Atalan, Thorsten Hans, Meghana Garise, Sebastian Seidl.
  • Griechisch: Δημήτρης Παπαϊωάννου, Sotiris Koukios-Panopoulos, Jim Spentzos, Θοδωρής Τσιρπάνης, Stratos Kourtzanidis, Charalampos Fanoulis, John D, Stavros Papadakis, Vassilis Vouvonikos.
  • Hebräisch: חיים לבוב, Shalom Craimer, Matan Amos, Eyal Ellenbogen, Snir Broshi, Kyle Orin.
  • Hindi: Satish Yadav, Amit Gusain, Sanyam Jain, Abhirav Kushwaha, Ashok Kumar Rathore, nirav adatiya, Rajeev Desai, shaswat rungta, Kumar Vaibhav, Pramit Das, Jagjeet Singh, Pratishek PII, Kiren Paul, Chethana S, Piyush Sonagara, KRISHNA TANDON, Kishan K, Dhanvi Kapila.
  • Ungarisch: Levente Borbély, Péter Nagy, Alex Kiss, Levente Hallai Seiler, Dániel Tar, Richard Borcsik, Boldi Kemény.
  • Chinesisch Vereinfacht: Tingting Yi, 斌 项, paul cheung, 建东 薛, Yiting Zhu, feiyun0112 feiyun0112, Justin Liu, Yizhi Gu, Joel Yang, 刘瑞恒 刘瑞恒, Edi Wang, Junzhe Liu, Dave Young, 张锐, Fan Su, 昊宇 周, Pluwen, Tony Xia, Yu Zhang, XIANG ZUO, 少民 谈, 彦佐 刘, Zhiqiang Li, 志乐 龚, 福永 叶, G.Y. Z, Hao Hu, meng shao, Horie Yuan, Xiangrui Kong, 王文杰, Liam Kennedy, 赵畅畅, Charles Lee, 松阳 樊, anson zhang, Young Bige, Shi Liu, Wang Debang, Jarvis Jiang, Lin ai, Jessica Zhang, Licheng Ren, , 驰 雷, sun qing, xiong Fu, Lynne Dong, zhao yu, 吉姆 舒, 红东 黄, 剑秋 陶, 游 尤, Hanlin Yang, bh wu, Bravo Yeung, Michael Zhang, Hanyu ZHANG, Y F, WangCG duoduobear, 越 郑, ziqiang sun, 正元 刘, Jiang LI, 擎 钟, peng wei, 涛 徐, 逍遥 许, 瑜 周, WL, 伟 全, rsy iridescent, Simon Chan, 海龙 黄, 仁松 陈, Jieting Xu, panda small, 翼 张, Chen Yang, Wang Weixuan, Ludi Fang, 舜杰 杨, 建 周, cuibty wong, 立飞 李, 雨齐 刘, 涛 罗, 九鼎 谭, LI ZHAO.
  • Chinesisch Traditionell: 謝政廷, Yi-Jyun Pan, Winnie Lin, LikKee 沥祺 Richie, Martin Lau, salagadoola _, 牧村 蔡, Jeremy, 小克, 煾 雪.
  • Indonesisch: Jakka Prihatna, Septian Adi, Arif Fahmi, Laurensius Dede Suhardiman, Bakhtiar Amaludin, Heston Sinuraya, Riwut Libinuko, Hendra Widjaja, Rachmat Wahidi, Franky So, Bervianto Leo Pratama, Eriawan Kusumawardhono, Rifani Arsyad, Afnizar Nur Ghifari, Pradipta Hendri, Christian Elbrianno, Azhe Kun.
  • Italienisch: Alessandro Alpi, Bruni Luca, Luigi Bruno, Andrea Dottor, Riccardo Cappello, Moreno Bruschi, Aldo Donetti, andrea falco, Emanuele Meazzo, Michael Longo, Marco Dal Pino.
  • Japanisch: EbXpJ6bp -, nh, Kyohei Uchida, Takayuki Fuwa, Yoshihisa Ozaki, Hasefumi, TENMYO Masakazu, Michihito Kumamoto, Koichi Makino, Aya Tokura, Seiji Momoto, Yosuke Sano, Makoto Sakaguchi, Kyohei Moriyama, 裕子 知念, Rie Moriguchi, Fujio Kojima, 美穂 山本, taniokae, 太郎 西岡, Kazuya Ujihara, Hiroomi Kurosawa, Yasuaki Matsuda.
  • Koreanisch: Hongju, 우현 조, Jong Heun Shin, 형섭 이, Kyunghee Ko, Youngjae Kim, siin lee, Jae Yong Kum, Hoyeon Han, Kevin Lee, SeungJin Jeong, Hong Kwon.
  • Lettisch: Kaspars Bergs, Andris Vilde.
  • Litauisch: Andrius Svylas, Augustas Grikšas, Tautvydas Derzinskas, Karolis Kundrotas, Martynas J..
  • Norwegisch: Andreas Rødland, Cookius Monsterius, Dag H. Baardsen, Ole Kristian Losvik, Stephan Eriksen, Agnethe Seim Olsen.
  • Polnisch: Warchlak, Wojciech Maj, Marcin Weksznejder, Rafał Całka, Tomasz Świstak, Tomasz Wiśniewski, Marek Biedrzycki, Szymon Seliga, Michal Szulc, Jakub Żmidziński, Bartek PL, Igor 05, Rafał Wolak, Tomasz Chojnacki, Piotr Grędowski, Czech Kaczmarek, Artur Pelczar, Marcin Floryan, Paweł Modrzejewski, Jakub Jedryszek, Michał Stojke, Artur Zdanowski.
  • Portugiesisch (Brasilien): Marcondes Alexandre, Alessandro Trovato, Marcelo Fernandes, Roberto Fonseca, Albert Tanure, Judson Santiago, Junior Galvão - MVP, Ray Carneiro, Lucas Miranda, Rodrigo Crespi, Thiago Dupin Ugeda, Renan Miguel, Weslei A. de T. Marinho, Rafael Lima Teixeira, Eduardo Moura, Gerardo Magela Machado da Silva, Bruno Talanski, Bruno Sonnino, Loiane Groner, Marcos Albuquerque, Jucinei Pereira dos Santos, Emmanuel Gomes Brandão, Fábio Corrêa, Flávio Albuquerque Camilo, Pablo Garcia, Alessandro Fragnani, Andrei Bosco, Daniel Luna, José Rafael de Santana, Douglas Ivatiuk Martim, Giuliano Reginatto, Marcos Dias, Alan William, Lucas Nunes, Gabriel Schade, Lucas Santos, arthurdenner ., Mauricio Lima, Igor Felix, Gabriel Barbosa, Fabio Lux, Guilherme Pais, Victor Cavalcante, Letticia Nicoli, Becky Marques, Fernando Val, Milton Camara, Saymon Damásio, Felipe Scuissiatto, Rodrigo Vieira, Djonathas Cardoso, André Gama, Gustavo Bezerra, Cynthia Zanoni, Marcelo Guerra, Jhonathan Soares, Rafael Laranja, Swellington Soares.
  • Portugiesisch (Portugal): Ana Rebelo, Nuno Carapito, Pedro Daniel, Pedro Teixeira, João Carvalho, Diogo Barros, José Rodrigues, Sandro Pereira, Vitor Barbosa, Tiago Antunes, Daniel Correia.
  • Rumänisch: Mihai Marinescu, Stefan Gabos, Dragos Marinescu, Alexandru Staicu.
  • Russisch: Andrey Veselov, Дмитрий Кирьянов, netf0rger, michael v, Иван Лещенко, nata kazakova, Анатолий Калужин, Валерий Батурин, Эдуард Тихонов.
  • Serbisch: Milos Zivkovic, Radovan Skendzic.
  • Spanisch: Andy Gonzalez, Ricardo Estrada Rdez, Carlos Mendible, Alvaro Enrique Ruano, Engel Aguilar, José María Aguilar, David Fernández Aldana, Ricardo Rubio, Thierry DEMAN, Gabriel Perez, julian3xl, Adolfo Jayme, Ing. Sergio Uziel Tovar Lemus, Mario Mendieta, Jorge Serrano Pérez.
  • Schwedisch: Johan Spånberg, Notetur Nomen.
  • Tamil: Kondasamy Jayaraman, Merbin J Anselm, Jeyanthinath Muthuram, Mani M, Boopesh Kumar, Vignesh Rajendran, Jaganathan B, Nithun Harikrishnan, Purusothaman Ramanujam, கருணாகரன் சமயன், Krishna Pravin, Jeffin R P, Sakthi Raj, Vetri ., Ranjith kumar.
  • Türkisch: mehmetcan Gün, Meryem Aytek, Fıratcan Sucu, Anıl Mısırlıoğlu, Mehmet Yönügül, Ahmetcan Aksu, Ömer Sert, Sinan Açar, Misir Jafarov, Umut Can Alparslan, Yakup Ad, Hüseyin Fahri Uzun, Murat Pala, S. Ferit Arslan, Mesut Pişkin, Okan Çetin, Bruh Moment, Muhammed Emin TİFTİKÇİ, Burak Göksel.
  • Ukrainisch: Dmytro Kutianskyi, Yaroslav, Max Harasym, Arthur Murauskas, Sviatoslav Ivaskiv, George Molchanyuk, Did Kokos, Alexander Varchenko, Вадим Шашков, Евгений Коростылёв.
  • Vietnamesisch: Khôi Phạm, Van-Tien Hoang, Việt Anh Nguyễn, Belikhun, Spepirus Shouru, Vuong Bui, Chủ Tất, Poon Nguyễn.
© . This site is unofficial and not affiliated with Microsoft.