作为语言服务的一部分,可以通过实现自定义可着色项重写类型列表 colorizing 的,如关键字和注释,。
可着色项用户设置
通过选择在 工具 菜单的 选项 ,然后选择 字体和颜色 显示 字体和颜色 对话框在 环境下。 如果您选择一个显示,例如 文本编辑器 或 命令窗口, 显示项目 时列表框中显示一个显示的所有可着色项。 可以查看和更改字体、大小、前景色和背景色每个可着色项的。 选择在注册表中。缓存存储并由可着色项名称访问的。
可着色项的显示
由于 IDE 处理用户重写在 字体和颜色 对话框的可着色项,只需要通过名称提供每个自定义可着色项。 此名称是什么出现在 显示项目 列表。 可着色项按字母顺序显示。 分组语言服务的自定义可着色项,可以从语言名称,例如 NewLanguage - 注释 和 NewLanguage - 关键字开始每个名称。
警告
在可着色项名称应包括语言名称就避免了与现有可着色项名称的冲突。在开发过程中,如果更改名称的某个可着色项,必须重新设置首次创建可着色项进行访问的缓存。可以重置其 vsregex 工具的实验缓存。使用命令行 vsregex GetOrig 10.0 Exp,替换为相应的版本和注册表名称扩展用 Visual Studio的版本。vsregex 工具随 Visual Studio SDK。有关 vsregex 的更多信息,请参见主题 “VsRegEx 命令行”在 Visual Studio 的实验实例。
在可着色项列表中的第一项从不引用。 第一项对应于可着色项索引 0,因此, Visual Studio 始终提供默认的文本颜色和属性该项目中。 最简单的方法处理此未引用的项目将提供列表中的占位符可着色项作为第一项。
实现自定义可着色项
确定在该语言,例如关键字、运算符和标识符必须 colorized。
创建这些可着色项的枚举。
关联从分析器或扫描仪返回的标记类型与枚举值。
例如,表示标记类型的值可以是在自定义可着色项枚举相同的值。
在 ColorizeLine 方法的实现。 IVsColorizer 对象,请加载特性列表与自定义可着色项枚举的值与分析器或扫描仪返回的标记类型相对应。
在实现 IVsLanguageInfo 接口的同一个类,请实现 IVsProvideColorableItems 接口及其两个方法、 GetItemCount 和 GetColorableItem。
实现 IVsColorableItem 接口。
如果要支持 24 位或深的颜色值,还实现 IVsHiColorItem 接口。
在语言服务对象,请生成包含 IVsColorableItem 对象的列表,则每个可着色项的分析器或扫描程序可以标识。
通过使用自定义可着色项枚举,为相应的值可以访问列表中的每一项。 使用枚举值作为索引到列表中。 ,因为它始终对应于该默认文本的样式 Visual Studio 句柄,列表中的第一项永远不能访问。 可以通过插入占位符可着色项抵消此列表的开头。
在 GetItemCount 方法的实现中,返回的项数。自定义可着色项的列表。
在 GetColorableItem 方法的实现,则返回从列表中请求的可着色项。
有关的示例演示如何实现 IVsColorableItem 和 IVsHiColorItem 界面,请参见 IVsHiColorItem。