Freigeben über


Editor-Erweiterungs-Punkte

Der Editor stellt Erweiterungspunkte, die Sie als Komponenten des Managed Extensibility Framework (MEF) erweitern können. Dies sind die wichtigsten Erweiterungspunkt Kategorien:

  • Inhaltstypen

  • Klassifizierungstypen und Formate Klassifizierungs

  • Schiebeleisten und Rändern

  • Tags

  • Zusatzelemente

  • prozessoren Maus

  • Klassenhandler Tiefstände

  • Optionen

  • IntelliSense

Erweitern von Inhaltstypen

Inhaltstypen sind die Definitionen der Art des Texts im Editor behandelt, z. B. „Text“, „Code“ oder „des CSharps“. Sie definieren einen neuen Inhaltstyp, indem Sie eine Variable des Typs ContentTypeDefinition deklarieren und dem neuen Inhaltstyp einen eindeutigen Namen geben. Um den Inhaltstyp mit dem Editor zu registrieren, exportieren Sie sie zusammen mit den folgenden Attributen:

  • NameAttribute ist der Name des Inhaltstyps.

  • BaseDefinitionAttribute ist der Name des Inhaltstyps, von dem dieser Inhaltstyp abgeleitet ist. Ein Inhaltstyp erbt von der mehrere andere Inhaltstypen.

Da die ContentTypeDefinition-Klasse versiegelt ist, können Sie ihn ohne Typparameter exportieren.

Im folgenden Beispiel wird der Export von Attributen in einer Definition des Inhaltstyps.

[Export]
[Name("test")]
[BaseDefinition("code")]
[BaseDefinition("projection")]
internal static ContentTypeDefinition TestContentTypeDefinition;

Inhaltstypen können auf dem bereits vorhandenere Inhaltstypen oder Null sein. Dies sind die integrierten Datentypen:

  • Beliebige: der grundlegende Inhaltstyp. Das übergeordnete Element aller anderen Inhaltstypen.

  • Text: Der einfache Typ für nicht projektion Inhalt. Erbt von „beliebigen“.

  • Nur-Text: Nicht für Code Text. Erbt von „Text“.

  • Code: Code für alle Arten. Erbt von „Text“.

  • Träge: schließt den Text aus jeder Art von Behandlung aus. Text dieses Inhaltstyps ist nie eine beliebige Erweiterung, die es angewendet wird.

  • Projektion: für den Inhalt der Projektions gepuffert werden. Erbt von „beliebigen“.

  • IntelliSense: für den Inhalt von IntelliSense. Erbt von „Text“.

  • Sighelp: Signatur können. Erbt von „intellisense“.

  • Sighelp-DOC: Signatur in der Dokumentation können. Erbt von „intellisense“.

Dies sind einige Inhaltstypen, die von Visual Studio definiert werden, und einige Sprachen, die in Visual Studio gehostet werden:

  • Basic

  • C/C++

  • ConsoleOutput

  • CSharp

  • CSS

  • Installation

  • FindResults

  • F#

  • HTML

  • JScript

  • XAML

  • XML

Um die Liste der verfügbaren Inhaltstypen zu ermitteln, importieren Sie IContentTypeRegistryService, die die Auflistung von Inhaltstypen für den Editor beibehält. Im folgenden Code wird dieser Dienst als Eigenschaft.

[Import]
internal IContentTypeRegistryService ContentTypeRegistryService { get; set; }

So ordnen Sie eine Dateinamenerweiterung in einen Inhaltstyp. Verwenden FileExtensionToContentTypeDefinition.

Hinweis

In Visual Studio werden Dateinamenerweiterungen registriert, indem ProvideLanguageExtensionAttribute für einen Sprachdienst Paket verwendet.FileExtensionToContentTypeDefinition ordnet einen MEF-Inhaltstyp mit einer Dateinamenerweiterung zu, die auf diese Weise registriert wurde.

Um die Dateinamenerweiterung in die Definition des Inhaltstyps zu exportieren, müssen Sie über die folgenden Attribute enthalten:

Da die FileExtensionToContentTypeDefinition-Klasse versiegelt ist, können Sie ihn ohne Typparameter exportieren.

Im folgenden Beispiel wird der Export von Attributen auf einer Dateinamenerweiterung in einer Definition des Inhaltstyps.

[Export]
[FileExtension(".test")]
[ContentType("test")]
internal static FileExtensionToContentTypeDefinition TestFileExtensionDefinition;

IFileExtensionRegistryService verwaltet die Zuordnungen zwischen Dateinamenerweiterungen und Inhaltstypen.

Klassifizierungs-Typen und erweitern Klassifizierungs-Formate

Sie können Klassifizierungstypen verwenden, um die Art des Texts definieren, für die Sie über unterschiedliche Behandlung bereitstellen möchten (z. B. den Farbton „Schlüsselwort“ Text blau und „Text“ Kommentar grün). Definieren Sie einen neuen Klassifizierungstyp, indem Sie eine Variable des Typs ClassificationTypeDefinition deklarieren und ihr einen eindeutigen Namen geben.

Um den Klassifizierungstyp mit dem Editor zu registrieren, exportieren Sie sie zusammen mit den folgenden Attributen:

  • NameAttribute: der Name des Klassifizierungstyps.

  • BaseDefinitionAttribute: der Name des Klassifizierungstyps, von dem dieser Klassifizierungstyp erbt. Alle Klassifizierungstypen erben von „Text“ und ein Klassifizierungstyp erbt von der mehrere andere Klassifizierungstypen.

Da die ClassificationTypeDefinition-Klasse versiegelt ist, können Sie ihn ohne Typparameter exportieren.

Im folgenden Beispiel wird der Export von Attributen in einer Klassifizierungs typdefinition an.

[Export]
[Name("csharp.test")]
[BaseDefinition("test")]
internal static ClassificationTypeDefinition CSharpTestDefinition;

IStandardClassificationService ermöglicht den Zugriff auf den Standardwert klassifizierungen. Integrierte Klassifizierungstypen Diese umfassen:

  • "Text"

  • „in natürlicher Sprache“ ()“ aus dem Text „berechnet

  • „formalen Sprache aus dem Text „berechnet (““)

  • „String“ (berechnet von „Literal“)

  • „Zeichen“ von „Literal berechnet (“)

  • „numerischen Literal berechnet (““) „aus

Ein Satz von verschiedenen Fehlertypen erben von ErrorTypeDefinition. Dazu zählen die folgenden Fehlertypen ein:

  • „Syntaxfehler“

  • „Compilerfehler“

  • „anderer Fehler“

  • „warnend“

Um die Liste der verfügbaren Klassifizierungstypen zu ermitteln, importieren Sie IClassificationTypeRegistryService, die die Auflistung von Klassifizierungstypen für den Editor beibehält. Im folgenden Code wird dieser Dienst als Eigenschaft.

[Import]
internal IClassificationTypeRegistryService ClassificationTypeRegistryService { get; set; }

Klassifizierungsformat Sie können eine Definition für den neuen Klassifizierungstyp definieren. Leiten Sie eine Klasse von ClassificationFormatDefinition und exportieren Sie sie mit dem Typ EditorFormatDefinitionmit den folgenden Attributen:

Im folgenden Beispiel wird der Export von Attributen in einer Definition Klassifizierungsformat an.

[Export(typeof(EditorFormatDefinition))]
[ClassificationType(ClassificationTypeNames = "test")]
[Name("test")]
[DisplayName("Test")]
[UserVisible(true)]
[Order(After = Priority.Default, Before = Priority.High)]
internal sealed class TestFormat : ClassificationFormatDefinition

Um die Liste der verfügbaren Formaten zu ermitteln, importieren Sie IEditorFormatMapService, die die Auflistung von Formaten für den Editor beibehält. Im folgenden Code wird dieser Dienst als Eigenschaft.

[Import]
internal IEditorFormatMapService FormatMapService { get; set; }

Ränder und Schiebeleisten erweitern

Ränder und Schiebeleisten sind die wichtigsten Elemente Ansicht des Editors wird neben der Textansicht selbst. Sie können eine beliebige Anzahl von Rändern zusätzlich zu den standardmäßigen rändern bereitstellen, die für die Textansicht angezeigt werden.

Implementieren Sie eine IWpfTextViewMargin-Schnittstelle, um einen Bereich zu definieren. Sie müssen auch die IWpfTextViewMarginProvider-Schnittstelle implementieren, um den Bereich zu erstellen.

Um den Rand für mit dem Editor zu registrieren, müssen Sie dem Anbieter zusammen mit den folgenden Attributen exportieren:

  • NameAttribute: Der Name des Rahmens.

  • OrderAttribute: Die Reihenfolge, in der der Rand angezeigt wird, relativ zu den anderen Kanten.

    Dies sind die integrierten Ränder:

    • „Horizontale Bildlaufleiste Wpf“

    • „Wpf-vertikale Bildlaufleiste“

    • „Wpf-Zeilennummeren-Rand“

    Horizontale Ränder, die ein Attribut für Bestellungen aus After="Wpf Horizontal Scrollbar" haben, werden unter dem integrierten Rand und der horizontalen Rands, die ein Attribut aus Before ="Wpf Horizontal Scrollbar" Bestellungen angezeigt werden, verfügen über dem integrierten Rand angezeigt. Rechte vertikale Kante, die ein Attribut für Bestellungen aus After="Wpf Vertical Scrollbar" haben, werden auf der rechten Seite der Schiebeleiste angezeigt. Linke vertikale Kante, die ein Attribut für Bestellungen aus After="Wpf Line Number Margin" auf der linken Seite des rands Zeilennummern angezeigt werden (sofern er angezeigt wird).

  • MarginContainerAttribute: die Art des Rahmens (links, rechts, oben oder unten).

  • ContentTypeAttribute: Art des Inhalts (z. B. „Text“ oder „Code“) für die vom Rand gültig ist.

Im folgenden Beispiel wird der Export von Attributen für einen Rand Info-Anbieter für einen Rand an, der auf der rechten Seite des rands Zeilennummer angezeigt.

[Export(typeof(IWpfTextViewMarginProvider))]
[Name("TestMargin")]
[Order(Before = "Wpf Line Number Margin")]
[MarginContainer(PredefinedMarginNames.Left)]
[ContentType("text")] 

Erweitern von Tags

Tage sind eine Methode des fehlenden Zuordnung von Daten mit unterschiedlichen Arten von Text. In vielen Fällen sind die zugeordneten Daten als optischer Auswirkungen angezeigt, aber nicht alle Tags verfügen über eine visuelle Darstellung. Sie können eine eigene Art des Tages definieren, indem Sie ITagimplementieren. Sie müssen ITagger, um die Tags für einen angegebenen Satz von Textabschnitte bereitzustellen und ITaggerProvider ebenfalls implementieren, um den Tagger bereitzustellen. Sie müssen den Hersteller der Tagger zusammen mit den folgenden Attributen exportieren:

Im folgenden Beispiel wird der Export Tagger Attribute auf einem Anbieter an.

[Export(typeof(ITaggerProvider))]
[ContentType("text")]
[TagType(typeof(TestTag))]
internal class TestTaggerProvider : ITaggerProvider

Die folgenden Arten des Tags integriert sind:

Um Tags für Puffer und Ansichten zu suchen und zu verwenden, importieren Sie IViewTagAggregatorFactoryService oder IBufferTagAggregatorFactoryService, die Ihnen ITagAggregator des angeforderten Typs geben. Im folgenden Code wird dieser Dienst als Eigenschaft.

[Import]
internal IViewTagAggregatorFactoryService ViewTagAggregatorFactoryService { get; set; }

Tags und MarkerFormatDefinitions

Sie können die MarkerFormatDefinition-Klasse erweitern, um die Darstellung eines Tags zu definieren. Sie müssen die Klasse (als EditorFormatDefinition) mit den folgenden Attributen exportieren:

Im Konstruktor definieren Sie neben dem Anzeigenamen und der Darstellung des Tags. BackgroundColor definiert die Füllfarbe, und ForegroundColor definiert die Rahmenfarbe entspricht. DisplayName ist der lokalisierbaren Namen der Formatdefinition.

Im Folgenden finden Sie ein Beispiel für eine Formatdefinition:

[Export(typeof(EditorFormatDefinition))]
[Name("MarkerFormatDefinition/HighlightWordFormatDefinition")]
[UserVisible(true)]
internal class HighlightWordFormatDefinition : MarkerFormatDefinition
{
    public HighlightWordFormatDefinition()
    {
        this.BackgroundColor = Colors.LightBlue;
        this.ForegroundColor = Colors.DarkBlue;
        this.DisplayName = "Highlight Word"; 
        this.ZOrder = 5;
    }
}

Zum Ausführen dieser Formatdefinition in einem Tag anzuwenden, verweisen Sie den Namen im name-Attribut der Klasse festgelegt wird (nicht der Anzeigename).

Hinweis

Ein Beispiel für MarkerFormatDefinitionfinden Sie in Exemplarische Vorgehensweise: Text markierender HighlightWordFormatDefinitions-Klasse.

Zusatzelemente erweitern

Zusatzelemente definieren, um visuelle Effekte, die entweder in Text hinzugefügt werden kann, der in einer Textansicht oder die Textansicht selbst angezeigt wird. Sie können ein eigenes Zusatzelement wie jeder Typ UIElementdefinieren.

In der Zusatzelement Klasse müssen Sie AdornmentLayerDefinitiondeklarieren. Um eine Zusatzelementebene zu registrieren, exportieren Sie sie zusammen mit den folgenden Attributen:

Im folgenden Beispiel wird der Export von Attributen in einem Zusatzelement Definition der Ebenen an.

[Export]
[Name("TestEmbeddedAdornment")]
[Order(After = PredefinedAdornmentLayers.Selection, Before = PredefinedAdornmentLayers.Text)]
internal AdornmentLayerDefinition testLayerDefinition;

Sie müssen eine zweite Klasse erstellen, die IWpfTextViewCreationListener implementiert und das TextViewCreated-Ereignis behandelt, indem das Zusatzelement instanziiert. Sie müssen diese Klasse zusammen mit den folgenden Attributen exportieren:

  • ContentTypeAttribute: Art des Inhalts (z. B. „Text“ oder „Code“) für die das Zusatzelement gültig ist.

  • TextViewRoleAttribute: Art der Textansicht, für die das Zusatzelement gültig ist. Die Klasse PredefinedTextViewRoles hat den Satz von vordefinierten Textansichtsrollen. Beispielsweise wird Document hauptsächlich für Textansichten von Dateien verwendet. Interactive wird für Textansichten verwendet, die ein Benutzer bearbeiten bzw. navigieren kann, indem er eine Tastatur und eine Maus verwendet. Beispiele für Interactive Ansichten sind die Ansicht und den Text Editor Ausgabe Fenster.

Im folgenden Beispiel wird der Export von Attributen auf dem Zusatzelement Textanbieter an.

[Export(typeof(IWpfTextViewCreationListener))]
[ContentType("csharp")]
[TextViewRole(PredefinedTextViewRoles.Document)]
internal sealed class TestAdornmentProvider : IWpfTextViewCreationListener

Ein Zusatzelement mit Platzausgleich ist das Platz auf der gleichen Ebene wie der Text enthalten ist. Um diese Art des Zusatzelements zu erstellen, müssen Sie eine Klasse definieren, die von SpaceNegotiatingAdornmentTagTag erbt, der den Ort definiert, das Zusatzelement belegt.

Wie bei allen Zusatzelementen, müssen Sie die Ebenen Zusatzelement Definition exportieren.

[Export]
[Name("TestAdornment")]
[Order(After = DefaultAdornmentLayers.Text)]
internal AdornmentLayerDefinition testAdornmentLayer;

Um das Zusatzelement mit Platzausgleich zu instanziieren, müssen Sie eine Klasse, die ITaggerProviderzusätzlich zur Implementierung der Klasse erstellen IWpfTextViewCreationListener implementiert (z. B. mit anderen Arten Zusatzelemente).

Um den Hersteller der Tagger zu registrieren, müssen Sie sie zusammen mit den folgenden Attributen exportieren:

  • ContentTypeAttribute: Art des Inhalts (z. B. „Text“ oder „Code“) für die das Zusatzelement gültig ist.

  • TextViewRoleAttribute: Art der Textansicht, für die dieses Tag oder Zusatzelement gültig ist. Die Klasse PredefinedTextViewRoles hat den Satz von vordefinierten Textansichtsrollen. Beispielsweise wird Document hauptsächlich für Textansichten von Dateien verwendet. Interactive wird für Textansichten verwendet, die ein Benutzer bearbeiten bzw. navigieren kann, indem er eine Tastatur und eine Maus verwendet. Beispiele für Interactive Ansichten sind die Ansicht und den Text Editor Ausgabe Fenster.

  • TagTypeAttribute: Zusatzelement oder die Art des Tags, die Sie definiert haben. Sie müssen eine Sekunde TagTypeAttribute für SpaceNegotiatingAdornmentTaghinzufügen.

Im folgenden Beispiel wird der Export von Attributen auf dem Tagger Info-Anbieter für ein Zusatzelement mit Platzausgleich tag an.

[Export(typeof(ITaggerProvider))]
[ContentType("text")]
[TextViewRole(PredefinedTextViewRoles.Document)]
[TagType(typeof(SpaceNegotiatingAdornmentTag))]
[TagType(typeof(TestSpaceNegotiatingTag))]
internal sealed class TestTaggerProvider : ITaggerProvider

Erweitern Maus-Prozessoren

Sie können eine Sonderbehandlung für die Mauseingabe hinzufügen. Erstellen Sie eine Klasse, die von MouseProcessorBase erbt, und überschreiben Sie die Mausereignisse für die Eingabe, die Sie behandeln möchten. Sie müssen auch IMouseProcessorProvider-Klasse direkt implementieren und sie zusammen mit ContentTypeAttribute exportieren, die die Art des Inhalts angibt (z. B. „Text“ oder „Code“) für die der Maushandler gültig ist.

Im folgenden Beispiel wird der Export von Attributen auf einem Prozessor Maus Anbieter an.

[Export(typeof(IMouseProcessorProvider))]
[Name("test mouse processor")]
[ContentType("text")]
[TextViewRole(PredefinedTextViewRoles.Interactive)] 
internal sealed class TestMouseProcessorProvider : IMouseProcessorProvider

Erweitern Ablagen-Handler

Sie können das Verhalten der Liste handlern für bestimmte Arten von Text anpassen, indem Sie eine Klasse erstellen, die IDropHandler und eine zweite Klasse implementiert, die IDropHandlerProvider implementiert, um die Liste Ereignishandler zu erstellen. Sie müssen den Liste Klassenhandler mit den folgenden Attributen exportieren:

  • DropFormatAttribute: Das Textformat, für das dieser Liste Klassenhandler gültig ist. Die folgenden Formate sind in der Reihenfolge der Priorität absteigender behandelt:

    1. Ein beliebiges benutzerdefiniertes Format

    2. FileDrop

    3. EnhancedMetafile

    4. WaveAudio

    5. Riff

    6. Dif

    7. Locale

    8. Palette

    9. PenData

    10. Serialisierbar

    11. SymbolicLink

    12. XAML

    13. XamlPackage

    14. Tiff

    15. Bitmap

    16. Dib

    17. MetafilePicture

    18. CSV

    19. System.String

    20. HTML-Format

    21. UnicodeText

    22. OEMText

    23. Text

  • NameAttribute: Der Name des Liste handlers.

  • OrderAttribute: Die Reihenfolge der Liste handlers vor oder nach dem standardmäßigen Liste Ereignishandler. Der standardmäßige Liste Klassenhandler für Visual Studio wird „DefaultFileDropHandler“.

Im folgenden Beispiel wird der Export von Attributen auf einem Klassenhandler Liste Anbieter an.

[Export(typeof(IDropHandlerProvider))]
[DropFormat("Text")] 
[Name("TestDropHandler")]
[Order(Before="DefaultFileDropHandler")] 
internal class TestDropHandlerProvider : IDropHandlerProvider

Erweitern von Editoroptionen

Sie können Optionen festlegen, nur in einem bestimmten Bereich beispielsweise in einer Textansicht gültig ist. Der Editor stellt diesen Satz vordefinierter Optionen: Editoroptionen, Ansichtsoptionen und Ansichtsoptionen Windows Presentation Foundation (WPF). Diese Optionen können in DefaultOptions, in DefaultTextViewOptionsund DefaultWpfViewOptionsgefunden werden.

Um eine neue Option hinzuzufügen, leiten Sie eine Klasse von einer dieser Klassen für Optionen:

Im folgenden Beispiel wird gezeigt, wie eine Optionsdefinition exportiert, die einen booleschen Wert verfügt.

[Export(typeof(EditorOptionDefinition))]
internal sealed class TestOption : EditorOptionDefinition<bool>

Erweitern von IntelliSense

IntelliSense ist ein allgemeiner Ausdruck für eine Gruppe von Funktionen, die Informationen zu strukturierten Texts angeben, und die Anweisungsvervollständigung. Diese Funktionen umfassen Anweisungsvervollständigung, Signaturhilfe, QuickInfos und Smarttags. Benutzer können Anweisungsvervollständigungs geben ein Schlüsselwort oder einen Membernamen ordnungsgemäß ein. Signatur können zeigt die Signatur oder die Signaturen für die Methode an, die der Benutzer gerade eingetreten ist. Die QuickInfo zeigt eine vollständige Signatur für einen Typ oder einen Membernamen an, wenn der Mauszeiger darauf gezeigt wird. Smarttags stellen zusätzliche Aktionen für bestimmte Bezeichner in bestimmten Kontexten bereit, z. B. umbenannt werden alle Vorkommen einer Variablen, nachdem ein Vorkommen umbenannt wurde.

Der Entwurf einer IntelliSense-Feature ist gleich viele der in allen Fällen:

  • Ein IntelliSense-Broker ist für den gesamten Prozess verantwortlich.

  • Eine IntelliSense-Sitzung stellt die Sequenz von Ereignissen zwischen dem Starten der Darstellung und Einweisung oder Abbruch der Auswahl dar. Die Sitzung wird in der Regel von einer Benutzergeste gestartet.

  • Ein IntelliSense-Controller ist dafür verantwortlich, Entscheiden, wenn die Sitzung gestartet und beendet werden soll. Er entscheidet sich, auch wenn die Informationen übermittelt werden sollen, und wenn die Sitzung abgebrochen werden soll.

  • Eine IntelliSense-Quelle stellt den Inhalt und entscheidet die beste Übereinstimmung.

  • Eine IntelliSense-Darstellung ist zum Anzeigen des Inhalts verantwortlich.

In den meisten Fällen empfiehlt es sich, dass Sie mindestens eine Quelle und Controller bereitstellen. Sie können auch eine Darstellung bereitstellen, wenn Sie die Anzeige anpassen möchten.

Eine IntelliSense-Quelle implementieren

Um eine Quelle anzupassen, müssen Sie eine (oder mehr) der nächsten Quellschnittstellen implementieren:

Darüber hinaus müssen Sie einen Anbieter derselben Art implementieren:

Sie müssen den Anbieter zusammen mit den folgenden Attributen exportieren:

  • NameAttribute: der Name der Quelle.

  • ContentTypeAttribute: Art des Inhalts (z. B. „text“ oder „Code“) auf die die Quelle bezieht.

  • OrderAttribute: Die Reihenfolge, in der die Quelle angezeigt werden soll (im Verhältnis zu anderen Quellen).

  • Im folgenden Beispiel wird der Export von Attributen auf einem Abschluss quellanbieter an.

Export(typeof(ICompletionSourceProvider))]
[Name(" Test Statement Completion Provider")]
[Order(Before = "default")]
[ContentType("text")]
internal class TestCompletionSourceProvider : ICompletionSourceProvider

Weitere Informationen über das Implementieren von IntelliSense-Quellen finden Sie in den folgenden exemplarischen Vorgehensweisen:

Exemplarische Vorgehensweise: QuickInfo-QuickInfo anzeigen

Exemplarische Vorgehensweise: Unterzeichnungs-Hilfe anzeigen

Exemplarische Vorgehensweise: Anweisungsvervollständigung anzeigen

Implementieren eines IntelliSense-Controller

Um einen Controller anzupassen, müssen Sie die IIntellisenseController-Schnittstelle implementieren. Darüber hinaus müssen Sie einen Controller-Anbieter zusammen mit den folgenden Attributen implementieren:

  • NameAttribute: der Name des Controllers.

  • ContentTypeAttribute: Art des Inhalts (z. B. „Text“ oder „Code“) für die der Controller gilt.

  • OrderAttribute: Die Reihenfolge, in der der Controller angezeigt werden soll (im Verhältnis zu anderen Controller).

Im folgenden Beispiel wird der Export von Attributen auf einem Abschluss controller-Anbieter an.

Export(typeof(IIntellisenseControllerProvider))]
[Name(" Test Controller Provider")]
[Order(Before = "default")]
[ContentType("text")]
internal class TestIntellisenseControllerProvider : IIntellisenseControllerProvider

Weitere Informationen zur Verwendung von IntelliSense-Controllern finden Sie in den folgenden exemplarischen Vorgehensweisen:

Exemplarische Vorgehensweise: QuickInfo-QuickInfo anzeigen