Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
789 views
in Technique[技术] by (71.8m points)

vscode 自定义链接跳转的逻辑无法打开链接

image.png

我找到两个相关的 API,分别是 go to define 和 custom editor,但目前测试 go to define 对于 markdown 的链接(已知类型)似乎无效,可能 go to define 不支持拦截链接而支持代码层面的跳转?

代码如下

  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...


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)
等待大神解答

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...