3

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

曲线

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

如果我切换到字形类型(例如 MARKERTYPE.MARKER_SHORTCUT),工具提示会在页边空白处显示得很好:

字形

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

SetMarker 方法中提供了实现源代码:

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

4

2 回答 2

1

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

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

带提示的波浪线

此处提供源代码:

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

希望它可以帮助别人!

于 2013-10-03T10:09:14.933 回答
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;
  }
}
于 2013-09-30T07:11:02.677 回答