Skip to content

Commit 3bc4063

Browse files
committed
feat: implemented provideLinks
1 parent f50e1c9 commit 3bc4063

File tree

2 files changed

+20
-0
lines changed

2 files changed

+20
-0
lines changed

src/monaco/code2monaco.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -403,3 +403,11 @@ export function asCodeAction(item: vscode.CodeAction): monaco.languages.CodeActi
403403
disabled: item.disabled?.reason,
404404
};
405405
}
406+
407+
export function asLink(item: vscode.DocumentLink): monaco.languages.ILink {
408+
return {
409+
range: asRange(item.range),
410+
url: item.target,
411+
tooltip: item.tooltip,
412+
};
413+
}

src/monaco/ls.ts

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -443,6 +443,18 @@ export async function setupLs(modelsMap: Ref<Map<string, monaco.editor.ITextMode
443443
return [];
444444
},
445445
}),
446+
monaco.languages.registerLinkProvider(lang, {
447+
provideLinks: async (model) => {
448+
const codeResult = await ls.findDocumentLinks(
449+
model.uri.toString(),
450+
);
451+
if (codeResult) {
452+
return {
453+
links: codeResult.map(code2monaco.asLink),
454+
};
455+
}
456+
},
457+
}),
446458
monaco.languages.registerCompletionItemProvider(lang, {
447459
// https://github.com/johnsoncodehk/volar/blob/2f786182250d27e99cc3714fbfc7d209616e2289/packages/vue-language-server/src/registers/registerlanguageFeatures.ts#L57
448460
triggerCharacters: '!@#$%^&*()_+-=`~{}|[]\:";\'<>?,./ '.split(''),

0 commit comments

Comments
 (0)