【发布时间】:2020-07-16 16:32:00
【问题描述】:
如何让我的扩展程序首先查找&s_?
一种解决方案是将所有变量重命名为大写前缀S_,但这不是我的方案中的选项。
我正在为 Visual Studio Code(VSC) 开发 extension。变量定义如下:
&i_ Var_Six`
&s_ SampelTwo
&...
VSC 中的实现是通过“直接实现”来完成的:
let provider1 = vscode.languages.registerCompletionItemProvider({ language: 'test' }, {
provideCompletionItems(document: vscode.TextDocument, position: vscode.Position, token: vscode.CancellationToken, context: vscode.CompletionContext) {
vscode.languages.registerCompletionItemProvider
var completions = new Array();
for (let knownElement of TestVar) {
completions.push(new vscode.CompletionItem(knownElement));
}
return completions;
}
});
context.subscriptions.push(provider1);
现在我遇到的问题是,自动完成首先查找大写字母,但也将& 识别为变量的一部分。
我想要的是我可以开始输入“s_”,它会建议所有以“&s_”开头的已知变量。
VSC 实际上建议输入“s_”是“i_Var_Six”。这是因为它查找大写字母“S”(驼峰式)和字符“_”它无法识别字符“&”,因为它被定义为“单词分隔符”。
【问题讨论】:
-
能否请您显示您传递给
vscode.languages.registerCompletionItemProvider函数的参数,如果我理解问题可能与triggerCharacters 有关。
标签: visual-studio-code autocomplete vscode-extensions