我想为Visual Studio代码开发一个扩展。我已经为typescript注册了一个CompletionItemProvider,当我试图用引号写作时,自动完成是不起作用的。例如,我有这样的代码:
function buildProvider(language : vscode.DocumentSelector, label : string, text : string | vscode.CompletionItemLabel){
return vscode.languages.registerCompletionItemProvider('typescript', {
provideCompletionItems(document: vscode.TextDocument, position: vscode.Position, token: vscode.CancellationToken, context: vscode.CompletionContext) {
const simpleCompletion = new vscode.CompletionItem('', vscode.CompletionItemKind.Text);
simpleCompletion.label = label;
simpleCompletion.insertText = text.toString();
return [
simpleCompletion,
];
}
});
}
如果我用打字稿写自动完成工作:
自动完成工程
如果我用引号写,如果不使用Ctrl+Space,它就不起作用。
自动完成不起作用
我可以做些什么来启用引号中的自动补全?
这种行为在字符串中不起作用,可能是设置的结果:
CCD_ 1。
试着这样设置:
"editor.quickSuggestions": {
"other": true,
"comments": false,
"strings": true // this is the key setting, default is false3
}
这将为您或任何具有相同"strings": true
设置的人修复它。
你可以在`package.json中的扩展中更改用户的默认设置,注意他们可能不喜欢你更改他们的设置!!:
> #### Configuration Defaults Overrides
>
>
> You can now override defaults of other registered configurations
> through `configurationDefaults` contribution point in `package.json`.
> For example, the following snippet overrides the default behavior of
> `files.autoSave` setting to auto save files on focus change.
```jsonc
"contributes": {
"configurationDefaults": { // applies to all languages
"files.autoSave": "onFocusChange"
}
}
注意:应用程序或计算机作用域的配置不能被覆盖。
- 来源https://github.com/microsoft/vscode-docs/blob/vnext/release-notes/v1_63.md#configuration-默认替代