Support markdown link navigation when duplicate slugs exist

Fixes #59711

For a md document:

```md
# a

# a

- [a](#a)
- [next a](#a-1)
```

You can now click on the second link in the editor to navigate to the second `a` header. It is identified by being suffixed with `-1`.
This commit is contained in:
Matt Bierner
2018-10-08 15:51:29 -07:00
parent 0cfe8a1d7e
commit 7d95e3e5f9
2 changed files with 34 additions and 1 deletions

View File

@@ -106,4 +106,25 @@ suite('markdown.TableOfContentsProvider', () => {
assert.strictEqual((await provider.lookup('Заголовок-header-3'))!.line, 4);
assert.strictEqual((await provider.lookup('Заголовок'))!.line, 5);
});
test('Lookup should support suffixes for repeated headers', async () => {
const doc = new InMemoryDocument(testFileName, `# a\n# a\n## a`);
const provider = new TableOfContentsProvider(createNewMarkdownEngine(), doc);
{
const entry = await provider.lookup('a');
assert.ok(entry);
assert.strictEqual(entry!.line, 0);
}
{
const entry = await provider.lookup('a-1');
assert.ok(entry);
assert.strictEqual(entry!.line, 1);
}
{
const entry = await provider.lookup('a-2');
assert.ok(entry);
assert.strictEqual(entry!.line, 2);
}
});
});