Implements base class and native class of script parsing

This commit is contained in:
Geequlim
2017-09-06 21:30:28 +08:00
parent 927297ad03
commit 2384004ef9
2 changed files with 16 additions and 6 deletions

View File

@@ -48,12 +48,11 @@ class GDScriptCompletionItemProvider implements CompletionItemProvider {
provideCompletionItems(document : TextDocument, position : Position, token : CancellationToken) : CompletionItem[] | Thenable < CompletionItem[] > | CompletionList | Thenable < CompletionList > {
const lastFlag = this.get_previous_flag(document, position);
const builtins = config.getBuiltinCompletions();
const workspaces = config.getWorkspaceCompletionItems([config.normalizePath(document.fileName)]);
let items:CompletionItem[] = [...(builtins.builtinConstants)];
if(!lastFlag || lastFlag.trim().length == 0) {
const workspaces = config.getWorkspaceCompletionItems([config.normalizePath(document.fileName)]);
items = [
...items,
...(workspaces.functions),

View File

@@ -28,8 +28,8 @@ class GDScriptSymbolParser {
variables: {},
signals: {},
classes: {},
base: "Object",
native: "Object",
base: "",
native: "",
signatures: {},
documents: {},
constvalues: {},
@@ -37,6 +37,17 @@ class GDScriptSymbolParser {
}
const text = content;
const lines = text.split(/\r?\n/);
// Base class and native class
for (let line of lines) {
let match;
if (match = line.match(/extends\s+(\w+)/)) {
script.native = match[1];
break;
} else if (match = line.match(/extends\s+('|")(.*)('|")/)) {
script.base = match[2];
}
}
const getMatches = (regex:RegExp, index=1) => {
var matches = [];
@@ -222,4 +233,4 @@ class GDScriptSymbolParser {
}
export default GDScriptSymbolParser;
export default GDScriptSymbolParser;