如何在Visual Studio扩展中添加可点击的链接?

时间:2018-08-09 01:15:44

标签: visual-studio-2015 mef visual-studio-extensions

我正在尝试创建一个Visual Studio(2015)扩展程序,该扩展程序将代码文件中的某些文本转换为可打开Web URL的可单击链接。

我已经实现了IViewTaggerProviderITagger使其返回。我实现了一个扩展了IUrlTag的标签,以返回该标签,以希望该标签可以自动点击。

带标记的文本呈现为链接(蓝色和带下划线的链接),但对悬停或单击没有反应。

我需要怎么做才能使标记的文本可点击?

IViewTaggerProvider实现

[Export(typeof(IViewTaggerProvider))]
[ContentType("any")]
[TagType(typeof(JiraLinkTag))]
internal class JiraLinkTaggerProvider : IViewTaggerProvider
{
    public ITagger<T> CreateTagger<T>(ITextView textView, ITextBuffer buffer) where T : ITag
    {
        //provide highlighting only on the top buffer   
        if (textView.TextBuffer != buffer)
            return null;

        return (ITagger<T>)new JiraLinkTagger(textView, buffer);
    }
}

ITagger 实现很冗长,但它返回的标签如下:

yield return new TagSpan<JiraLinkTag>(span, new JiraLinkTag(requestedSnapshot.GetText(span)));

IUrlTag 实现

internal class JiraLinkTag : IUrlTag
{
    public readonly string IssueKey;

    public JiraLinkTag(string issueKey)
    {
        IssueKey = issueKey;
    }

    public Uri Url
    {
        get { return new Uri(new Uri("https://JIRASERVER/browse/"), IssueKey); }
    }
}

0 个答案:

没有答案