问题描述
我从here复制了一些代码,以使扩展与Visual Studio 2019兼容,以替换内置的大纲,因为它不会折叠catch和finally块中的花括号。
现在扩展名可以正常工作,如下图所示。
但是只有一件事我不满意。当我将鼠标移到折叠部分时,它仅显示纯文本工具提示,而没有任何颜色或格式。
我想使工具提示看起来像内置的。但是我不知道从哪里开始。
我对此做了一些研究。我可能需要更改此代码中的hoverText
。
return new TagSpan<IoUtliningRegionTag>(span,new OutliningRegionTag(false,false,GetCollapsedText(),hoverText));
我认为它可能涉及Classification
,ITooltipService
或其他事物。
我是新手,有人可以给我一些建议吗?一些演示代码或文档将有很大帮助。谢谢。
解决方法
经过一整夜的研究,我终于找到了解决方案并实现了我的目标。
万一有人对这个问题感兴趣,我会尽力说明它是如何工作的,并给出一个总体思路。
- 导入
IProjectionBufferFactoryService
以创建悬停TextBuffer
- 导入
ITextEditorFactoryService
以创建IWpfTextView
来显示悬停内容 - 在我上面提到的代码中,将参数
hoverText
替换为IWpfTextView
return new TagSpan<IOutliningRegionTag>(span,new OutliningRegionTag(false,false,GetCollapsedText(),hoverText));
就是这样。我找到了解决方法here。
该扩展程序效果很好,工具提示看起来与默认扩展名相同。
完整的代码将很快上传到CSharpOutline2019。