添加 completionitemprovider 并保留建议
add completionitemprovider and keep suggestions
我为我的扩展程序创建了一个 completionitemprovider,但现在没有显示基于文档中单词的建议。我必须提供文档中的每个单词吗?
export class ScriptViewProvider implements vscode.CompletionItemProvider
...
extension.context.subscriptions.push(vscode.languages.registerCompletionItemProvider(
["language"],
this));
...
async provideCompletionItems(document : vscode.TextDocument, position : vscode.Position) : Promise<vscode.CompletionItem[]> {
let completions : vscode.CompletionItem[] = [];
let completion = new vscode.CompletionItem("bla", vscode.CompletionItemKind.Field);
completions.push(completion);
return completions;
}
当我输入“b”时出现“bla”,但文档中的 none 个其他词出现。
请参阅 this comment 一个开放的 VS Code 问题。
当您的 CompletionProvider 使用比其他提供程序更重要的 DocumentSelector 注册并且 returns 至少有一个完成项时,其他提供程序将被跳过。
基于单词的建议提供程序 不太重要,因此它不提供任何建议。
根据扩展的性质,您可以在注册 CompletionProvider 时尝试定义一个不太具体的 DocumentSelector。
如果这不可能,我认为除了自己提供所有完成项(包括基于单词的建议)之外别无选择。
我为我的扩展程序创建了一个 completionitemprovider,但现在没有显示基于文档中单词的建议。我必须提供文档中的每个单词吗?
export class ScriptViewProvider implements vscode.CompletionItemProvider
...
extension.context.subscriptions.push(vscode.languages.registerCompletionItemProvider(
["language"],
this));
...
async provideCompletionItems(document : vscode.TextDocument, position : vscode.Position) : Promise<vscode.CompletionItem[]> {
let completions : vscode.CompletionItem[] = [];
let completion = new vscode.CompletionItem("bla", vscode.CompletionItemKind.Field);
completions.push(completion);
return completions;
}
当我输入“b”时出现“bla”,但文档中的 none 个其他词出现。
请参阅 this comment 一个开放的 VS Code 问题。
当您的 CompletionProvider 使用比其他提供程序更重要的 DocumentSelector 注册并且 returns 至少有一个完成项时,其他提供程序将被跳过。 基于单词的建议提供程序 不太重要,因此它不提供任何建议。
根据扩展的性质,您可以在注册 CompletionProvider 时尝试定义一个不太具体的 DocumentSelector。 如果这不可能,我认为除了自己提供所有完成项(包括基于单词的建议)之外别无选择。