vscode 自定义链接跳转的逻辑无法打开链接
我找到两个相关的 API,分别是 go to define 和 custom editor,但目前测试 go to define 对于 markdown 的链接(已知类型)似乎无效,可能 go to define 不支持拦截链接而支持代码层面的跳转?
- https://code.visualstudio.com/docs/editor/editingevolved#_go-to-definition
- https://code.visualstudio.com/api/extension-guides/custom-editors
代码如下
vscode.languages.registerDefinitionProvider(
{
scheme: 'file',
language: 'markdown',
pattern: 'edit-*.md',
},
new JoplinMarkdownProvider(),
)
export class JoplinMarkdownProvider implements DefinitionProvider {
provideDefinition(
document: TextDocument,
position: Position,
token: CancellationToken,
): ProviderResult<Definition | DefinitionLink[]> {
console.log('provideDefinition: ', document, position, token)
return undefined
}
}
更新,registerDefinitionProvider
可以拦截点击,但返回的 Uri 却无法打开
例如 https://github.com/ 在打开时会出现错误
Unable to open '': Unable to resolve resource https://github.com/.
另外 custom schema link 的 query 部分会被转义
形如 vscode://rxliuli.joplin-vscode-plugin/open?id=03c8b00ed350410baf41c33daddf3005
=> vscode://rxliuli.joplin-vscode-plugin/open?id%3D03c8b00ed350410baf41c33daddf3005
同时也会报错
Unable to open 'open': Unable to resolve text model content for resource vscode://rxliuli.joplin-vscode-plugin/open?id%3D03c8b00ed350410baf41c33daddf3005.
具体错误代码在:https://github.com/rxliuli/jo...
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论