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