如何在Visual Studio扩展中实现默认的概述工具提示?

时间:2020-09-25 09:37:58

标签: c# visual-studio-2019 vsix

我从here复制了一些代码,以使扩展与Visual Studio 2019兼容,以替换内置的大纲,因为它不会折叠catch和finally块中的花括号。

现在扩展名可以正常工作,如下图所示。

但是只有一件事我不满意。当我将鼠标移到折叠部分时,它仅显示纯文本工具提示,而没有任何颜色或格式。

enter image description here

我想使工具提示看起来像内置的。但是我不知道从哪里开始。

enter image description here

我对此做了一些研究。我可能需要更改此代码中的hoverText

return new TagSpan<IOutliningRegionTag>(span, new OutliningRegionTag(false, false, GetCollapsedText(), hoverText));

我认为它可能涉及ClassificationITooltipService或其他事物。

我是新手,有人可以给我一些建议吗?一些演示代码或文档将有很大帮助。谢谢。

代码在这里:CSharpOutline2019

1 个答案:

答案 0 :(得分:1)

经过一整夜的研究,我终于找到了解决方案并实现了我的目标。

万一有人对这个问题感兴趣,我会尽力说明它是如何工作的,并给出一个总体思路。

  • 导入IProjectionBufferFactoryService以创建悬停TextBuffer
  • 导入ITextEditorFactoryService以创建IWpfTextView来显示悬停内容
  • 在我上面提到的代码中,将参数hoverText替换为IWpfTextView
return new TagSpan<IOutliningRegionTag>(span, new OutliningRegionTag(false, false, GetCollapsedText(), hoverText));

就是这样。我找到了解决方法here

该扩展程序效果很好,工具提示看起来与默认扩展名相同。

enter image description here

完整的代码将很快上传到CSharpOutline2019