在 JSLint.NET 中实现“squiggle”文本行标记非常简单,如下所示:
但是,尽管使用 GetTipText 方法实现了 IVsTextMarkerClient,但从未显示工具提示。当鼠标悬停在标记上时,甚至永远不会调用 GetTipText 方法。
如果我切换到字形类型(例如 MARKERTYPE.MARKER_SHORTCUT),工具提示会在页边空白处显示得很好:
是否有一些技巧可以让工具提示显示在内联文本标记的主体上?
SetMarker 方法中提供了实现源代码:
在 JSLint.NET 中实现“squiggle”文本行标记非常简单,如下所示:
但是,尽管使用 GetTipText 方法实现了 IVsTextMarkerClient,但从未显示工具提示。当鼠标悬停在标记上时,甚至永远不会调用 GetTipText 方法。
如果我切换到字形类型(例如 MARKERTYPE.MARKER_SHORTCUT),工具提示会在页边空白处显示得很好:
是否有一些技巧可以让工具提示显示在内联文本标记的主体上?
SetMarker 方法中提供了实现源代码:
事实证明,当使用旧的 IVsTextMarkerClient 和 IVsTextLines 实现时,答案(“可能吗?”)是否定的。
它可以通过实现更新的 ITag / ITagger / ITaggerProvider 接口来实现。我目前的原型是这样的:
此处提供源代码:
希望它可以帮助别人!
这对我有用,虽然它不是特定于文本行标记......你必须在后台实现它:
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;
}
}