Informationen zu VisualStudio.Extensibility (Vorschau)

VisualStudio.Extensibility ist ein neues Framework für die Entwicklung von Visual Studio-Erweiterungen, die sich hauptsächlich auf Erweiterungen konzentrieren, die aus der IDE ausgeführt werden, um die Leistung und Zuverlässigkeit zu verbessern. Es verfügt über eine moderne, asynchrone API, die optimiert und sorgfältig entwickelt wurde, um die Produktivität der Entwickler zu maximieren. VisualStudio.Extensibility befindet sich in der aktiven Entwicklung und ist als Vorschau verfügbar.

Mit der aktuellen Vorschau können Sie eine Vielzahl von Erweiterungen für Visual Studio entwickeln, darunter das Erstellen von Befehlen, das Arbeiten mit Code oder Text im Editor, das Anzeigen von Eingabeaufforderungen oder Dialogen für den Benutzer, das Erstellen von Debugger-Visualizern und mehr!

VisualStudio.Extensibility zielt darauf ab, viele der Probleme zu beheben, die Entwickler beim Verwenden und Schreiben von Erweiterungen in Visual Studio haben. Das Schreiben von Erweiterungen mit VisualStudio.Extensibility bietet die folgenden Vorteile:

  • Erhöhte Zuverlässigkeit: Visual Studio reagiert weiterhin und stürzt nicht ab, wenn eine Erweiterung abstürzt oder hängen bleibt.
  • Reduzierte API-Komplexität: VisualStudio.Extensibility verfügt über eine vereinfachte Architektur, konsistente APIs und eine klare Dokumentation.
  • Hot-Loading-Funktionalität: Visual Studio muss bei der Installation von Erweiterungen nicht neu gestartet werden.

Schließlich können Sie das VisualStudio.Extensibility SDK verwenden, um jede Erweiterung zu schreiben, die Sie mit dem VS SDK schreiben können. Bis dahin kann es jedoch vorkommen, dass die in Ihrer Erweiterung benötigte Funktionalität in VisualStudio.Extensibility noch nicht verfügbar ist. In diesem Fall können Sie das VisualStudio.Extensibility SDK zusammen mit dem prozessintern ausgeführten VS SDK verwenden, um etwaige Funktionslücken zu schließen. Weitere Informationen finden Sie unter Prozessinterne Erweiterungen.

Die neuesten Informationen zu VisualStudio.Extensibility finden Sie im VSExtensibility GitHub-Repository unter Ankündigungen.

Artikel Beschreibung
Installieren von VisualStudio.Extensibility Laden Sie die neueste Vorschau von VisualStudio.Extensibility herunter, und installieren Sie sie.
Erste Schritte Beginnen Sie mit Schnellstarts für Anfänger und Einführungs-Tutorials, wenn Sie noch nie zuvor eine Erweiterung entwickelt haben.
Konzepte Erstellen Sie Ihr mentales Modell der Funktionsweise des SDK und der Erweiterungen.
Übersichten Weitere Informationen finden Sie in den Übersichten zu den einzelnen Hauptfunktionen.
Beispiele Entdecken Sie Beispielcode, der die wichtigsten Funktionen demonstriert.
API-Referenz Stöbern Sie in der VisualStudio.Extensibility-API-Dokumentation.
Experimentelle APIs und grundlegende Änderungen Erfahren Sie mehr über unseren Ansatz zu stabilen vs. experimentellen APIs und über Änderungen gegenüber der Vorgängerversion.
Bekannte Probleme Informieren Sie sich über bekannte Probleme mit dem VisualStudio.Extensibility-SDK.
Weiterführende Themen Erfahren Sie mehr über die Implementierungsdetails des VisualStudio.Extensibility SDK.

Installieren von VisualStudio.Extensibility

Die aktuelle Vorschau von VisualStudio.Extensibility funktioniert mit Visual Studio 2022, Version 17.9 Preview 1 oder höher, mit der zu installierenden Visual Studio extension development-Workload.

Erste Schritte

Die folgenden Artikel helfen Ihnen bei der Orientierung und dem Einstieg.

Um zu verstehen, wie Sie mit VisualStudio.Extensibility arbeiten, empfehlen wir ein gründliches Verständnis der asynchronen Programmierung mit asynchroner Programmierung und „await“ sowie der Abhängigkeitsinjektion. Außerdem basiert die Benutzeroberfläche in VisualStudio.Extensibility auf Windows Presentation Foundation (WPF), sodass Sie sich die WPF-Dokumentation ansehen sollten.

Konzepte

Wenn Sie mit dem Visual Studio-SDK vertraut sind, lesen Sie Einführung in VisualStudio.Extensibility für Benutzende des VSSDK.

Um sich eine Vorstellung davon zu machen, wie Visual Studio-Erweiterungen funktionieren, lesen Sie Teile einer neuen Visual Studio-Erweiterung.

Um herauszufinden, was im SDK enthalten ist, lesen Sie Funktionsbereiche des SDKs.

Wann und wo sollte Ihre Erweiterung in der IDE angezeigt werden? Visual Studio-Erweiterungen werden in der IDE angezeigt, wenn bestimmte Bedingungen erfüllt sind. Wie und wann Ihre Erweiterung in der IDE angezeigt wird, können Sie unter Regelbasierte Aktivierungseinschränkungen nachlesen.

Visual Studio-Erweiterungen stellen Visual Studio ihre Funktionen über Beiträge zur Verfügung. Weitere Informationen finden Sie unter Beiträge.

Erfahren Sie mehr über das Remote UI-Modell, das in der VisualStudio.Extensibility verwendet wird.

Übersichten

Lesen Sie eine Übersicht über die Bereiche des SDK, die Sie für Ihre Projekte zur Entwicklung von Erweiterungen benötigen könnten.

  • Erstellen Sie Befehle, und stellen Sie sie den Benutzenden in der IDE zur Verfügung (siehe Befehle).
  • Arbeiten Sie mit dem Inhalt von Dateien und Dokumenten (siehe Editor-Erweiterungen).
  • Arbeiten Sie mit der In-Memory-Darstellung dieser Dokumente selbst (siehe Dokumente).
  • Verwenden Sie das Ausgabefenster in einer Erweiterung (siehe Ausgabefenster).
  • Arbeiten Sie mit Tool-Fenstern und andockbaren Fenstern innerhalb der Visual Studio-IDE (siehe das Fenster Tool).
  • Verwenden Sie Prompts mit anpassbaren Schaltflächen, um mit den Benutzenden zu interagieren (siehe Prompts für Benutzende).
  • Verwenden Sie Dialoge mit angepasster Benutzeroberfläche, um mit den Benutzenden zu interagieren (siehe Dialoge).
  • Erstellen Sie angepasste Datenvisualisierungen beim Debuggen (siehe Debugger-Visualizer).
  • Fragen Sie Informationen über Projekte und Lösungen ab, oder ändern Sie sie (siehe Projektabfrage).
  • Arbeiten Sie mit Sprachservern/LSPs für zusätzlichen Sprach-Support (siehe Sprachserveranbieter)

Beispiele und Tutorials

Eine Visual Studio-Lösung, die alle Beispiele enthält, finden Sie unter Samples.sln.

Beispiel Beschreibung
Einfacher Handler für Befehle Demonstriert die Grundlagen der Arbeit mit Befehlen. Siehe auch das Tutorial Erstellen Ihrer ersten Visual Studio-Erweiterung.
GUID-Erweiterung einfügen Zeigt, wie Sie Text oder Code in den Code-Editor einfügen, wie Sie einen Befehl mit einer bestimmten Aktivierungsbedingung konfigurieren und wie Sie eine Ressourcendatei zur Lokalisierung verwenden. Siehe auch das Tutorial Erstellen einer einfachen Erweiterung.
Übergeordnete Befehle Zeigt, wie Sie einen Befehl erstellen, der verschiedenen Aspekten der IDE übergeordnet werden kann.
Dokumentenauswahl Zeigt, wie Sie eine Erweiterung für den Editor erstellen, die nur auf Dateien anwendbar ist, die einem Dateipfadmuster entsprechen.
Ausgabefenster Zeigt die grundlegendste Verwendung der Output-Window-API.
Toolfenster Zeigt, wie Sie ein Tool-Fenster erstellen und es mit Inhalt füllen können.
Prompt für Benutzende Zeigt, wie Sie einen Prompt für Benutzende anzeigen können.
Dialogfeld Zeigt, wie Sie den Benutzenden ein Dialogfeld mit angepasster Benutzeroberfläche anzeigen können.
Wortanzahl Zeigt, wie Sie eine Erweiterung für den Editor erstellen, die die Wortanzahl in einem Dokument anzeigt.
Markdown-Linter Zeigt, wie mehrere Komponenten innerhalb einer Erweiterung zusammenwirken können und wie verschiedene Bereiche von Visual Studio erweitert werden können.
Projekt-Abfrage Zeigt verschiedene Arten von Abfragen des Projektsystems, die Sie vornehmen können.
Kommentar-Entferner Zeigt, wie Sie Visual Studio-SDK-Dienste per .NET Dependency Injection nutzen und VisualStudio.Extensibility-APIs für Befehle, Prompts und Fortschrittsberichte verwenden.
RegexMatchDebugVisualizer Zeigt, wie Sie mit Remote UI einen Debugger-Visualizer zur Visualisierung von regulären Ausdrücken erstellen, der in einem modalen Dialogfenster gestartet wird.
MemoryStreamDebugVisualizer Zeigt, wie Sie einen Debugger-Visualizer zur Visualisierung von MemoryStream-Objekten erstellen, der in einem nicht-modalen Tool-Fenster gestartet wird.
RustLanguageServiceProvider Zeigt, wie man eine Erweiterung für einen Rust-Sprachserver-Provider erstellt, der Intellisense und Tooltips hinzufügt, wenn eine Rust-Datei geöffnet wird.

Experimentelle APIs und grundlegende Änderungen

Ab Version 17.9 markieren wir den Großteil unserer APIs als stabil. Das heißt, wir planen keine grundlegenden Änderungen an diesen APIs vorzunehmen. Eventuell notwendige Änderungen, z. B. als Reaktion auf das Feedback von Benutzenden zur Benutzerfreundlichkeit, werden wir auf unserer Seite Grundlegenden Änderungen formell und mit ausreichendem Vorlauf bekannt geben.

Ein paar unserer APIs erfüllen diese Stabilitätsanforderungen noch nicht, und zwar aus einem von mehreren Gründen:

  • Der Funktionsbereich ist neu, und in zukünftigen Versionen werden zusätzliche Funktionen und Änderungen erwartet.
  • Die API ist neu, und wir möchten das Feedback der Benutzenden in die Entwicklung einbeziehen, bevor wir sie als stabil einstufen.
  • Wir haben Rückmeldungen erhalten, dass eine bestimmte API schwer zu benutzen ist, und planen daher, sie in zukünftigen Versionen zu aktualisieren.

Für diese APIs haben wir sie explizit mit dem [Experimental]-Attribut gekennzeichnet, um Erweiterungsautoren dabei zu helfen, ihre Erweiterungen sicher im SDK zu erstellen.

Weitere Informationen, einschließlich der Verwendung experimenteller APIs, finden Sie auf unserer Seite Experimentelle APIs.

Bekannte Probleme

Wir freuen uns über Ihr Feedback und Ihre Fehlerberichte in unserem Issues-Tracker, und wir arbeiten daran, alle im SDK gefundenen Probleme zu beheben.

Bitte besuchen Sie unsere Known Issues-Seite für Informationen über aktuelle bekannte Probleme.

Weiterführende Themen

Artikel Beschreibung
Erweiterte Remote-Benutzeroberfläche Ausführliche Informationen über das Remote-UI-Modell
Prozessinterne Erweiterungen Eine exemplarische Vorgehensweise für verschiedene Optionen zur prozessinternen Verwendung von VisualStudio.Extensibility-SDKs

API-Dokumentation

Feedback senden

Wir sind aktiv auf der Suche nach Feedback und Rückmeldungen. Die Vorschau-Phase ist ein guter Zeitpunkt, um die Community zu bitten, uns zu helfen, Probleme und Chancen zu identifizieren. Sie können uns Feedback geben und Fehler in unserem Issues-Tracker melden.