【问题标题】:VS Code MarkdownString Won't Display LinksVS Code MarkdownString 不会显示链接
【发布时间】:2017-04-30 18:24:15
【问题描述】:

我最近一直在为 Visual Studio Code 开发一个自定义扩展,并试图在将鼠标悬停在特定短语上时向用户显示一个链接,但它没有工作。悬停出现,但链接不是“可操作的”。

我的扩展正在注册一个 HoverProvider 并返回一个新的 Hover 对象,该对象包含一个带有链接的字符串,如下所示:

return new vscode.Hover({language: 'markdown', value: '[test-link](https://www.google.com)'});

我尝试在“markdown”和“HTML”之间切换语言,但无论哪种情况,尽管链接格式正确,但始终无法操作。我怀疑这是因为作为参数输入到 Hover 构造函数的值是 MarkdownString,它具有以下注释:

请注意,markdown 字符串将被清理 - 这意味着 html 将 逃跑了。

我可以发誓我已经在 VS Code 的其他地方看到过这个功能,比如在 package.json 文件中,当鼠标悬停在依赖项名称上时,会显示到存储库的链接,但我似乎找不到工作例子。

以下是悬停的示例:

有没有办法让这个功能发挥作用?

【问题讨论】:

    标签: javascript visual-studio-code vscode-extensions


    【解决方案1】:

    这对我有用:

        let disposable1 = vscode.languages.registerHoverProvider('javascript', {
            provideHover(document, position, token) {
                const word = document.getText(document.getWordRangeAtPosition(position));
                const searchOptions = {
                    query: word
                };
    
                const contents = new vscode.MarkdownString(`[test-link](https://www.google.com)`);
    
                contents.isTrusted = true;
                return new vscode.Hover(contents);
            }
        });
    

    注意new Hover() 有这个签名:

    new Hover(contents: MarkdownString | MarkedString | Array<MarkdownString | MarkedString>, range?: Range): Hover
    

    Hover api reference

    你试图给它一个对象(使用language 键)。


    使用 vscode v1.61 这也可以在提供程序中工作:

    
    const contents = new vscode.MarkdownString(`[test-link](https://www.google.com)`);
    
    contents.appendMarkdown("<a href='https://www.google.com'>test-link2</a>");
    contents.supportHtml = true;
    
    contents.isTrusted = true;
    return new vscode.Hover(contents);
    

    有关新支持的 html 标记的更多信息,请参阅https://stackoverflow.com/a/67954180/836330

    【讨论】:

      猜你喜欢
      • 2022-01-18
      • 2023-02-14
      • 1970-01-01
      • 1970-01-01
      • 2020-09-26
      • 1970-01-01
      • 1970-01-01
      • 2021-10-22
      • 1970-01-01
      相关资源
      最近更新 更多