提供 VSIP 接口 IVsColorableItem的默认实现。
此 API 不兼容 CLS。
继承层次结构
System.Object
Microsoft.VisualStudio.Package.ColorableItem
命名空间: Microsoft.VisualStudio.Package
程序集: Microsoft.VisualStudio.Package.LanguageService(在 Microsoft.VisualStudio.Package.LanguageService.dll 中)
Microsoft.VisualStudio.Package.LanguageService.10.0(在 Microsoft.VisualStudio.Package.LanguageService.10.0.dll 中)
Microsoft.VisualStudio.Package.LanguageService.11.0(在 Microsoft.VisualStudio.Package.LanguageService.11.0.dll 中)
Microsoft.VisualStudio.Package.LanguageService.9.0(在 Microsoft.VisualStudio.Package.LanguageService.9.0.dll 中)
语法
声明
<ComVisibleAttribute(True)> _
<CLSCompliantAttribute(False)> _
Public Class ColorableItem _
Implements IVsColorableItem, IVsHiColorItem, IVsMergeableUIItem
[ComVisibleAttribute(true)]
[CLSCompliantAttribute(false)]
public class ColorableItem : IVsColorableItem,
IVsHiColorItem, IVsMergeableUIItem
ColorableItem 类型公开以下成员。
构造函数
名称 | 说明 | |
---|---|---|
![]() |
ColorableItem | 初始化 ColorableItem 类并接受所需的所有信息描述一个可着色项。 |
页首
方法
名称 | 说明 | |
---|---|---|
![]() |
Equals | 确定指定的对象是否等于当前对象。 (继承自 Object。) |
![]() |
Finalize | 允许对象在“垃圾回收”回收之前尝试释放资源并执行其他清理操作。 (继承自 Object。) |
![]() |
GetCanonicalName | 获取一个可着色项的规范名称。 |
![]() |
GetColorData | 获取指定深度颜色前台或后台元素。 |
![]() |
GetDefaultColors | 返回此可着色项的前景色和背景色。 |
![]() |
GetDefaultFontFlags | 返回此可着色项的字体属性。 |
![]() |
GetDescription | 返回此可着色项的说明。 |
![]() |
GetDisplayName | 返回此可着色项的名称。 |
![]() |
GetHashCode | 用作特定类型的哈希函数。 (继承自 Object。) |
![]() |
GetMergingPriority | 返回此可着色项存在,当具有相同名称的其他可着色项比较的优先级。 |
![]() |
GetType | 获取当前实例的 Type。 (继承自 Object。) |
![]() |
MemberwiseClone | 创建当前 Object 的浅表副本。 (继承自 Object。) |
![]() |
ToString | 返回表示当前对象的字符串。 (继承自 Object。) |
页首
备注
此类用于定义语言服务使用的自定义颜色用于语法突出显示。在 LanguageService 类的实现中 GetColorableItem 方法返回指定的 IVsColorableItem 对象。
对实现者的说明
此类可用于实现 IVsColorableItem 接口。请构造新的实例要实现的每个自定义颜色的此类,然后返回从 GetColorableItem 方法的适当可着色项。
构造一个数组的理想使自定义颜色。 LanguageService 类的实现的构造函数。如果支持颜色的自定义项,则会初始化在 LanguageService.CreateDocumentProperties 的此数组,在 DocumentProperties 对象在创建后。
对调用者的说明
Colorizer 类通常使用此类在其 ColorizeLine的实现。
示例
这将显示支持两个自定义颜色 LanguageService 实现的示例 (可以更轻松地添加)。注意第一个可着色项不实际引用和用作占位符 (所有染料索引传递给 GetColorableItem 1 开始)。
[C#]
namespace MyLanguagePackage
{
[Guid("B614A40A-80D9-4fac-A6AD-FC2868FFF7CD")]
public class MyLanguageService : LanguageService
{
private ColorableItem[] m_colorableItems;
public MyLanguageService()
: base()
{
m_colorableItems = new ColorableItem[] {
new ColorableItem("Text",
COLORINDEX.CI_SYSPLAINTEXT_FG,
COLORINDEX.CI_SYSPLAINTEXT_BK,
System.Drawing.Color.Empty,
System.Drawing.Color.Empty,
FONTFLAGS.FF_DEFAULT),
new ColorableItem("Keyword",
COLORINDEX.CI_MAROON,
COLORINDEX.CI_SYSPLAINTEXT_BK,
System.Drawing.Color.Empty,
System.Drawing.Color.Empty,
FONTFLAGS.FF_BOLD),
new ColorableItem("Comment",
COLORINDEX.CI_GREEN,
COLORINDEX.CI_SYSPLAINTEXT_BK,
System.Drawing.Color.Empty,
System.Drawing.Color.Empty,
FONTFLAGS.FF_DEFAULT)
};
}
}
}
线程安全
此类型的任何公共 static(在 Visual Basic 中为 Shared) 成员都是线程安全的。但不保证所有实例成员都是线程安全的。