具有扩展的大纲显示两个选项可以在支持 折叠到定义 指令外的语言支持。 可以添加 edit 控件轮廓区域和添加客户端控件轮廓区域。
添加 edit 控件大纲区域
使用此方法创建轮廓区域然后允许编辑器处理该区域是否,将展开折叠,等等。 提供大纲两个选项支持,此选项是最不可靠。 使用 AddOutlineRegions,对于此选项,您在文本一个指定大小的一个新的大纲区域。 此区域创建后,其行为是由编辑器控件的。 使用以下过程实现 edit 控件轮廓区域。
实现一个编辑器控件大纲区域
调用 SVsTextManager的 QueryService
这将返回指向 IVsHiddenTextManager。
调用 GetHiddenTextSession,通过在给定文本缓冲区的指针。 这将返回指向缓冲区的 IVsHiddenTextSession 对象。
调用 IVsHiddenTextSession 的 QueryInterface 指针于 IVsOutliningSession。
调用 AddOutlineRegions 一次添加一个或多个新的大纲区域。
此方法允许您指定文本范围概述,是否移除现有的大纲区域或保留,默认情况下,它的大纲区域是否展开或折叠。
添加客户端控件大纲区域
使用此方法实现客户端控件 (或智能) 大纲显示类似 Visual C# 和 Visual Basic 语言服务使用的。 管理自己概述的语言服务将监视文本缓冲区内容才能销毁旧大纲区域,则会变为无效时和创建新的大纲区域根据需要。
实现一个客户端控件大纲区域
调用 SVsTextManager的 QueryService 。 这将返回指向 IVsHiddenTextManager。
调用 GetHiddenTextSession,通过在给定文本缓冲区的指针。 这将确定一个隐藏文本会话是否用于缓冲区已经存在。
如果文本会话已存在,则无需创建一,因此,对现有 IVsHiddenTextSession 对象的指针返回。 使用此指针枚举和创建轮廓区域。 否则,调用 CreateHiddenTextSession 创建缓冲区的隐藏文本会话。 为 IVsHiddenTextSession 对象的指针返回。
备注
当您调用 CreateHiddenTextSession时,可以指定一个隐藏的文本客户端 (即 IVsHiddenTextClient 对象)。,在一个隐藏文本或大纲区域由用户时,展开或折叠该客户端将通知您。
调用 AddHiddenRegions 结构) 参数:指定 hrtCollapsible 的值。 NewHiddenRegion 结构的 iType 成员指示您创建轮廓区域,而不是隐藏的区域。 指定该区域是客户端控件或编辑控件在 NewHiddenRegion 结构的 dwBehavior 成员。 这次智能概述的实现可以包含编辑和客户端控件轮廓区域的组合。 指定显示的横幅文本,当折叠大纲区域,如 “…”,在 NewHiddenRegion 结构中 pszBanner 成员。 一个隐藏区域的编辑的默认横幅文本为 “…”。