Add 3.0 support and allow disable parse scenes

This commit is contained in:
geequlim
2017-08-03 10:04:48 +08:00
parent d97c586327
commit 911f5c8d1c
4 changed files with 30 additions and 13 deletions

View File

@@ -36,12 +36,9 @@ class GDScriptCompletionItemProvider implements CompletionItemProvider {
provideCompletionItems(document : TextDocument, position : Position, token : CancellationToken) : CompletionItem[] | Thenable < CompletionItem[] > | CompletionList | Thenable < CompletionList > {
return new Promise((resolve, reject) => {
let items:CompletionItem[] = config.getWorkspaceCompletionItems();
items = [...items, ...config.bintinSybmolInfoList];
resolve(items);
});
let items:CompletionItem[] = config.getWorkspaceCompletionItems();
items = [...items, ...config.bintinSybmolInfoList];
return items;
}
resolveCompletionItem(item : CompletionItem, token : CancellationToken) : CompletionItem | Thenable < CompletionItem > {

View File

@@ -42,7 +42,14 @@ class ToolManager {
// hover provider
vscode.languages.registerHoverProvider('gdscript', new GDScriptHoverProvider());
// code completion provider
vscode.languages.registerCompletionItemProvider('gdscript', new GDScriptCompletionItemProvider(), '.', '"', "'");
const completionDollar = (
vscode.workspace.getConfiguration("GodotTools").get("parseTextScene", false)
&& (vscode.workspace.getConfiguration("GodotTools").get("godotVersion", 2.1) >= 3.0)
);
if (completionDollar)
vscode.languages.registerCompletionItemProvider('gdscript', new GDScriptCompletionItemProvider(), '.', '"', "'", "$");
else
vscode.languages.registerCompletionItemProvider('gdscript', new GDScriptCompletionItemProvider(), '.', '"', "'");
// signature help provider
vscode.languages.registerSignatureHelpProvider('gdscript', new GDScriptSignatureHelpProvider(), '(', ',');
// Commands
@@ -131,7 +138,9 @@ class ToolManager {
}
private loadWorkspaceSymbols() {
this.loadAllNodesInWorkspace();
if (vscode.workspace.getConfiguration("GodotTools").get("parseTextScene", false)) {
this.loadAllNodesInWorkspace();
}
this.loadAllSymbols().then(symbols=>{
vscode.window.setStatusBarMessage("$(check) Workspace symbols", 5000);
config.setAllSymbols(symbols);