IVsProvideColorableItems-Schnittstelle
Informiert den Code-Editor über benutzerdefinierte färbbaren Elemente, die aus dem Sprachdienst vorgebracht werden.
Namespace: Microsoft.VisualStudio.TextManager.Interop
Assembly: Microsoft.VisualStudio.TextManager.Interop (in Microsoft.VisualStudio.TextManager.Interop.dll)
Syntax
'Declaration
<GuidAttribute("100B9A33-905C-4312-B2A2-452189F19AB9")> _
<InterfaceTypeAttribute()> _
Public Interface IVsProvideColorableItems
[GuidAttribute("100B9A33-905C-4312-B2A2-452189F19AB9")]
[InterfaceTypeAttribute()]
public interface IVsProvideColorableItems
[GuidAttribute(L"100B9A33-905C-4312-B2A2-452189F19AB9")]
[InterfaceTypeAttribute()]
public interface class IVsProvideColorableItems
[<GuidAttribute("100B9A33-905C-4312-B2A2-452189F19AB9")>]
[<InterfaceTypeAttribute()>]
type IVsProvideColorableItems = interface end
public interface IVsProvideColorableItems
Der IVsProvideColorableItems-Typ macht die folgenden Member verfügbar.
Methoden
Name | Beschreibung | |
---|---|---|
![]() |
GetColorableItem | Bestimmt die Elementinformationen für jedes benutzerdefinierte färbbare Element, das aus dem Sprachdienst vorgebracht wird. |
![]() |
GetItemCount | Ermittelt die Anzahl von benutzerdefinierten färbbaren Elementen, die vom Sprachdienst vorgebracht werden. |
Zum Seitenanfang
Hinweise
Mit IVsProvideColorableItemsbringen, implementieren Sie benutzerdefinierte färbbare Elemente in den Kern des Editors vor und informieren den Kern des Editors zur Anzahl der färbbaren bereitgestellten Elemente und ihre Standardfarbe/Fettformatierung Einstellungen sind. Der Kern des Editors verwaltet die aktuelle Farbauswahl des Benutzers für die färbbaren Elemente (z. B. im Dialogfeld Optionen legen Sie im Menü Extras ). Wie die standardmäßige färbbaren Elemente verfügt die Sprache keine direkte Steuerung des Aussehens und Verhaltens seiner färbbaren Elemente über dem Festlegen der Standardwerte.
Diese Schnittstelle wird verwendet, um den Editor zu Sprachelemente zu denen hinaus zu informieren, die von DEFAULTITEMSbereitgestellt werden. Versuchen Sie nicht, vorhandene Sprachelemente neu zu definieren (z. B. Kommentare oder Schlüsselwörter), und verwenden Sie nicht den gleichen Namen wie das vorhandene oder die standardmäßige Sprachelemente.
Hinweise zur Implementierung
Um benutzerdefinierte färbbare Elemente im Sprachdienst zu unterstützen, müssen Sie diese Schnittstelle in der gleichen Klasse implementieren die die IVsLanguageInfo-Schnittstelle implementiert und bieten Unterstützung für den Zugriff auf die Schnittstelle durch die QueryInterface-Methode. Um die Methoden der IVsProvideColorableItems-Schnittstelle zu implementieren, benötigen Sie eine Liste von IVsColorableItems oben um bei Bedarf anzubieten (siehe IVsColorableItem-Schnittstelle als Beispiel für die Verwendung einer Liste der benutzerdefinierten färbbaren Elementen erstellt.)
Hinweise zu Aufrufern
Ein Editor, erhält diese Schnittstelle, indem er die QueryInterface-Methode in der IVsLanguageInfo-Schnittstelle aufruft, die einen Sprachdienst darstellt.
Beispiele
Im Folgenden ein Beispiel dafür, wie diese Schnittstelle auf einen Sprachdienst implementiert würde. Im Beispiel in der IVsColorableItem-Schnittstelle veranschaulicht, wie die MyColorableItem-Klasse implementiert.
using Microsoft.VisualStudio;
using Microsoft.VisualStudio.TextManager.Interop;
namespace MyLanguagePackage
{
class MyLanguageService : IVsLanguageInfo, IVsProvideColorableItems
{
private MyColorableItems colorableItemsList[];
public MyLanguageService()
{
// populate the colorableItemsList here.
}
public int GetItemCount(out int piCount)
{
piCount = 0;
if (this.colorableItemsList != null)
{
if (this.colorableItemsList.Length > 0)
{
// The first color is a placeholder and is
// never counted.
piCount = this.colorableItemsList.Length - 1;
}
}
return VSConstants.S_OK;
}
public int GetColorableItem(int iIndex, out IVsColorableItem ppItem)
{
int retval = VsConstants.E_INVALIDARG;
ppItem = null;
if (this.colorableItemList != null &&
iIndex >= 0 && iIndex < this.colorableItemList.Length)
{
ppItem = this.colorableItemsList[iIndex];
retval = VSConstants.S_OK;
}
return retval;
}
}
}