Visual Studio SDK 环境编辑,包括核心编辑器中,使用语言服务标识特定语法项,并显示具有给定的指定的颜色文档视图。
着色要求
实现语言服务的 colorizer 的所有编辑器必须:
使用实现 IVsTextBuffer 的对象管理该文本 colorized 的和实现 IVsTextView 的对象提供文本的文档视图。
获取一个接口特定语言服务通过查询使用的语言服务标识的 GUID 的 VSPackage 的服务提供程序。
调用实现 IVsTextBuffer对象的 SetLanguageServiceID 方法。 此方法关联语言服务和 VSPackage 使用管理文本将 colorized 的 IVsTextBuffer 实现。
核心语言服务的 Colorizer 的编辑用法
在使用 colorizer 的语言服务由核心编辑器的实例时,获取分析和呈现的语言服务的 colorizer 的文本会自动发生不需要在部分的任何进一步的干预。
透明 IDE:
调用 colorizer,因为需要分析和分析文本,当在 IVsTextBuffer的实现中添加或更改。
确保文档视图中提供的显示由提供 IVsTextView 实现是更新和重新绘制使用 colorizer 返回的信息。
语言服务的 Colorizer 的非内核的编辑用法
非内核的编辑实例也可以使用语言服务的语法着色服务,但是,它们必须显式检索,并且应用服务的 colorizer 和重新绘制这些文档视图。
为此要求非内核的版本:
获取实现 T:Microsoft.VisualStudio.TextManager.Interop.IVsColorizer 和 IVsColorizer2) 的语言服务的 colorizer 对象 (。 VSPackage 通过调用语言服务的接口的 GetColorizer 方法执行此操作。
调用 ColorizeLine 方法请求文本特定范围 colorized。
ColorizeLine 方法返回值,则在 colorized 的文本范围的每个字母的。 它还标识文本范围作为可着色项的特定类型,如注释、关键字或数据类型。
使用 ColorizeLine 返回的着色信息重新绘制并显示其文本。
备注
除了使用语言服务的 colorizer 外, VSPackage 可以选择使用常规 Visual Studio SDK 环境文本着色机制。有关此结构的更多信息,请参见 字体。