fix(markdown): avoid considering link references/sources in code sections (#146826)

This commit is contained in:
Akat
2022-04-08 05:50:37 +08:00
committed by GitHub
parent 108baab0c6
commit b499467f9f
3 changed files with 85 additions and 55 deletions

View File

@@ -103,7 +103,11 @@ export class MdPathCompletionProvider implements vscode.CompletionItemProvider {
switch (context.kind) {
case CompletionContextKind.ReferenceLink: {
return Array.from(this.provideReferenceSuggestions(document, position, context));
const items: vscode.CompletionItem[] = [];
for await (const item of this.provideReferenceSuggestions(document, position, context)) {
items.push(item);
}
return items;
}
case CompletionContextKind.LinkDefinition:
@@ -232,11 +236,11 @@ export class MdPathCompletionProvider implements vscode.CompletionItemProvider {
};
}
private *provideReferenceSuggestions(document: SkinnyTextDocument, position: vscode.Position, context: CompletionContext): Iterable<vscode.CompletionItem> {
private async *provideReferenceSuggestions(document: SkinnyTextDocument, position: vscode.Position, context: CompletionContext): AsyncIterable<vscode.CompletionItem> {
const insertionRange = new vscode.Range(context.linkTextStartPosition, position);
const replacementRange = new vscode.Range(insertionRange.start, position.translate({ characterDelta: context.linkSuffix.length }));
const definitions = this.linkProvider.getLinkDefinitions(document);
const definitions = await this.linkProvider.getLinkDefinitions(document);
for (const def of definitions) {
yield {
kind: vscode.CompletionItemKind.Reference,