diff --git a/extensions/markdown-language-features/src/languageFeatures/documentLinks.ts b/extensions/markdown-language-features/src/languageFeatures/documentLinks.ts index c354bad83f0..8c322ce9756 100644 --- a/extensions/markdown-language-features/src/languageFeatures/documentLinks.ts +++ b/extensions/markdown-language-features/src/languageFeatures/documentLinks.ts @@ -219,7 +219,7 @@ const linkPattern = new RegExp( r`\(\s*)` + // <-- close prefix match /**/r`(` + /*****/r`[^\s\(\)\<](?:[^\s\(\)]|\([^\s\(\)]*?\))*|` + // Link without whitespace, or... - /*****/r`<[^<>]*>` + // In angle brackets + /*****/r`<[^<>]+>` + // In angle brackets /**/r`)` + // Title diff --git a/extensions/markdown-language-features/src/test/documentLinkProvider.test.ts b/extensions/markdown-language-features/src/test/documentLinkProvider.test.ts index 1a53e409362..17304f59868 100644 --- a/extensions/markdown-language-features/src/test/documentLinkProvider.test.ts +++ b/extensions/markdown-language-features/src/test/documentLinkProvider.test.ts @@ -461,6 +461,17 @@ suite('Markdown: MdLinkComputer', () => { new vscode.Range(5, 7, 5, 17), ]); }); + + test('Should not include link with empty angle bracket', async () => { + const links = await getLinksForFile(joinLines( + `[](<>)`, + `[link](<>)`, + `[link](<> "text")`, + `[link](<> 'text')`, + `[link](<> (text))`, + )); + assertLinksEqual(links, []); + }); });