mirror of
https://github.com/godotengine/godot-vscode-plugin.git
synced 2025-12-31 13:48:24 +03:00
fix errors in unused vars checking
This commit is contained in:
@@ -37,7 +37,7 @@ class GDScriptDiagnosticSeverity {
|
||||
this._subscription = vscode.languages.createDiagnosticCollection("gdscript")
|
||||
}
|
||||
|
||||
dispose() {
|
||||
dispose() {
|
||||
this._subscription.dispose()
|
||||
}
|
||||
|
||||
@@ -49,7 +49,6 @@ class GDScriptDiagnosticSeverity {
|
||||
...(this.validateExpression(doc)),
|
||||
...(this.validateUnusedSymbols(doc, script)),
|
||||
];
|
||||
// Update diagnostics
|
||||
this._subscription.set(doc.uri, diagnostics);
|
||||
}
|
||||
}
|
||||
@@ -58,7 +57,7 @@ class GDScriptDiagnosticSeverity {
|
||||
private validateUnusedSymbols(doc: vscode.TextDocument,script) {
|
||||
let diagnostics = [];
|
||||
const text = doc.getText();
|
||||
|
||||
|
||||
const check = (name:string, range: vscode.Range) => {
|
||||
const pattern = `[\\s\\+\\-\\*/%\\^\\(\\[\\{]${name}[^0-9A-Za-z_]\\s*`;
|
||||
var matchs = text.match(new RegExp(pattern, 'g'));
|
||||
@@ -69,7 +68,7 @@ class GDScriptDiagnosticSeverity {
|
||||
for (let key of Object.keys(script.variables))
|
||||
check(key, script.variables[key]);
|
||||
for (let key of Object.keys(script.constants))
|
||||
check(key, script.variables[key]);
|
||||
check(key, script.constants[key]);
|
||||
return diagnostics;
|
||||
}
|
||||
|
||||
|
||||
@@ -42,6 +42,7 @@ class GDScriptSymbolParser {
|
||||
symbols.map((name:string)=>{
|
||||
let line = 0;
|
||||
let curline = 0;
|
||||
if(Object.keys(sm).indexOf(name) != -1) return;
|
||||
lines.map(l=>{
|
||||
const nreg = reg.replace("$X$", name);
|
||||
if(l.match(nreg) != null) {
|
||||
@@ -63,13 +64,13 @@ class GDScriptSymbolParser {
|
||||
return new Range(line, startAt, line, startAt + key.length);
|
||||
};
|
||||
|
||||
let funcsnames = getMatches(text, /func\s+([_A-Za-z]+[_A-Za-z0-9]*)\s*\(.*\)/g, 1);
|
||||
const funcs = findLineRanges(funcsnames, "func\\s+$X$\\s*\\(.*\\)");
|
||||
let funcsnames = getMatches(text, /func\s+([_A-Za-z]+[_A-Za-z0-9]*)\s*\(/g, 1);
|
||||
const funcs = findLineRanges(funcsnames, "func\\s+$X$\\s*\\(");
|
||||
for (let key of Object.keys(funcs))
|
||||
script.functions[key] = determRange(key, funcs);
|
||||
|
||||
let signalnames = getMatches(text, /signal\s+([_A-Za-z]+[_A-Za-z0-9]*)\s*\(.*\)/g, 1);
|
||||
const signals = findLineRanges(signalnames, "signal\\s+$X$\\s*\\(.*\\)");
|
||||
let signalnames = getMatches(text, /signal\s+([_A-Za-z]+[_A-Za-z0-9]*)\s*\(/g, 1);
|
||||
const signals = findLineRanges(signalnames, "signal\\s+$X$\\s*\\(");
|
||||
for (let key of Object.keys(signals))
|
||||
script.signals[key] = determRange(key, signals);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user