Логика перехода по пользовательской ссылке vscode не может открыть ссылку

#visual-studio-code #vscode-extensions

#visual-studio-code #vscode-расширения

Вопрос:

введите описание изображения здесь

Я нашел два связанных API, go to define и пользовательский редактор, но пока тестирование 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/.
  

Кроме того, часть запроса ссылки на пользовательскую схему будет экранирована

Форма похожа vscode://rxliuli.joplin-vscode-plugin/open?id=03c8b00ed350410baf41c33daddf3005 => vscode://rxliuli.joplin-vscode-plugin/open?id=03c8b00ed350410baf41c33daddf3005

Он также сообщит об ошибке

 Unable to open'open': Unable to resolve text model content for resource vscode://rxliuli.joplin-vscode-plugin/open?id=03c8b00ed350410baf41c33daddf3005.
  

Конкретный код ошибки находится по адресу: https://github.com/rxliuli/joplin-vscode-plugin/blob/12854b05da7901a8655f69c90b65f56b67acc73f/src/extension.ts#L147

введите описание изображения здесь

ссылка на ссылку:https://github.com/Microsoft/vscode/issues/8466