C#的LSP悬停文本降价链接不起作用

问题描述

我正在使用LSP开发VSCode扩展(在C#/ Omnisharp中实现)。我已经在LSP中实现了我的语言悬停提供程序,并且运行正常。但是,我想向鼠标悬停添加一个可点击的[vscode]命令链接。我已经在扩展Typescript代码(例如[Label](命令:some-command))中使用markdown之前完成了此操作,但是它不适用于LSP C#代码。从那里,它仅将纯文本显示为Label,而不显示为可单击的URI链接。如果Uri是常规https链接,则可以使用,但如果是vscode Uri,则不能使用。有人知道从LSP C#代码的markdown中启用vscode命令链接的神奇之处吗?

解决方法

您需要设置降价内容 isTrusted 标志才能使链接生效。对于语言扩展服务器,您需要编辑客户端打字稿文件中的 LanguageClientOptions

let clientOptions: LanguageClientOptions = {
    markdown: {
        isTrusted: true,},}

let client = new LanguageClient('myClient','My Client',serverOptions,clientOptions);

在此 issue

中对其 GitHub 进行了描述