Visual Studio包:是否可以在文本行标记上显示工具提示?

时间:2013-09-28 01:06:13

标签: c# visual-studio visual-studio-2012 visual-studio-sdk visual-studio-package

在JSLint.NET中实现“波浪形”文本行标记非常简单,如下所示:

squiggles

但是,尽管使用GetTipText方法实现IVsTextMarkerClient,但从不显示工具提示。当鼠标悬停在标记上时,甚至不会调用GetTipText方法。

如果我切换到字形类型(例如MARKERTYPE.MARKER_SHORTCUT),工具提示在边缘显示正常:

glyph

是否有一些技巧可以让工具提示显示在内联文本标记的主体上?

实现源代码可在SetMarker方法中找到:

  

https://jslintnet.codeplex.com/SourceControl/changeset/view/f27a513c14bbfbf787ddb66485ae6c4404dc8352#source/JSLintNet.VS2012/JSLintErrorTask.cs

2 个答案:

答案 0 :(得分:1)

事实证明,当使用旧的IVsTextMarkerClient和IVsTextLines实现时,答案(“是否可能?”)是没有的。

可以通过实现更新的ITag / ITagger / ITaggerProvider接口来实现。我目前的原型看起来像这样:

squiggle with tips

此处提供的源代码:

  

https://jslintnet.codeplex.com/SourceControl/changeset/view/077d348a1fdf819ce13ceb984bae8000ce76a63d#source/JSLintNet.VS2012/Errors/JSLintTagger.cs

希望它可以帮助别人!

答案 1 :(得分:0)

这适用于我,虽然它不是特定于文本行标记...你必须在后台实现它:

public class MyAuthoringScope : AuthoringScope
{
  ...
  public override string GetDataTipText(int line, int col, out TextSpan span)
  {
        string info;
        TokenInfo tokenInfo = this._source.GetTokenInfo(line, col);
         ...
        return info;
  }
}