首页 > 解决方案 > 如何在 Visual Studio 扩展中实现默认的大纲工具提示?

问题描述

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

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

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

在此处输入图像描述

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

在此处输入图像描述

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

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

我认为它可能涉及 withClassificationITooltipService其他东西。

我是新手,谁能给我一些建议?一些演示代码或文档会很有帮助。谢谢。

代码在这里:CSharpOutline2019

标签: c#visual-studio-2019vsix

解决方案


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

如果有人对这个问题感兴趣,我会尝试解释它是如何工作的,给出一个大致的想法。

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

差不多就是这样。我在这里找到了解决方案。

扩展效果很好,工具提示看起来和默认的一样。

在此处输入图像描述

完整代码将很快上传到CSharpOutline2019


推荐阅读