#visual-studio-code #vscode-extensions
#visual-studio-code #vscode-расширения
Вопрос:
Я нашел два связанных API, go to define и пользовательский редактор, но пока тестирование 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/.
Кроме того, часть запроса ссылки на пользовательскую схему будет экранирована
Форма похожа 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