문제

Implementing "squiggle" text line markers in JSLint.NET was quite straight forward as can be seen here:

squiggles

However, despite implementing IVsTextMarkerClient with the GetTipText method, tooltips are never shown. The GetTipText method is never even invoked when the mouse hovers over the marker.

If I switch to a glyph type (for example MARKERTYPE.MARKER_SHORTCUT), tooltips show just fine in the margin:

glyph

Is there some trick to getting tooltips to show on the body of an inline text marker?

Implementation source code is available here in the SetMarker method:

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

도움이 되었습니까?

해결책

It turns out that the answer (to "is it possible?") is no when using the old IVsTextMarkerClient and IVsTextLines implementations.

It can be achieved by implementing the newer ITag / ITagger / ITaggerProvider interfaces instead. My current prototype looks like this:

squiggle with tips

Source code available here:

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

Hope it helps someone else!

다른 팁

This works for me, although it is not specific for a text line marker... you'd have to implement that in the background:

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;
  }
}
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top