ColorableItem 类

提供 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) 成员都是线程安全的。但不保证所有实例成员都是线程安全的。

请参见

参考

Microsoft.VisualStudio.Package 命名空间