diff options
| author | Roy Ben Shabat <Roy.mail.net@gmail.com> | 2020-08-25 16:03:24 +0300 |
|---|---|---|
| committer | Roy Ben Shabat <Roy.mail.net@gmail.com> | 2020-08-25 16:03:24 +0300 |
| commit | ddcd370da70d9e2212450368df1499c3a1f1b71c (patch) | |
| tree | 78993f9e75e61934b3d4dc295efd885d1f3b34b0 /Software/Visual_Studio | |
| parent | ab3d239500196133f309b4a17fdd91aef645c356 (diff) | |
| download | Tango-ddcd370da70d9e2212450368df1499c3a1f1b71c.tar.gz Tango-ddcd370da70d9e2212450368df1499c3a1f1b71c.zip | |
Fixed issue with script editor not recognizing string => String alias.
Fixed issue with script FillVariables recursion hangs.
Diffstat (limited to 'Software/Visual_Studio')
| -rw-r--r-- | Software/Visual_Studio/Scripting/Tango.Scripting.Editors/ScriptEditor.cs | 6 | ||||
| -rw-r--r-- | Software/Visual_Studio/Scripting/Tango.Scripting/Parsing/ScriptParser.cs | 18 |
2 files changed, 19 insertions, 5 deletions
diff --git a/Software/Visual_Studio/Scripting/Tango.Scripting.Editors/ScriptEditor.cs b/Software/Visual_Studio/Scripting/Tango.Scripting.Editors/ScriptEditor.cs index 6c248b63d..9ff78912f 100644 --- a/Software/Visual_Studio/Scripting/Tango.Scripting.Editors/ScriptEditor.cs +++ b/Software/Visual_Studio/Scripting/Tango.Scripting.Editors/ScriptEditor.cs @@ -1230,7 +1230,7 @@ namespace Tango.Scripting.Editors else { //Maybe static... - var type = _knownTypes.FirstOrDefault(x => x.Name == variableName); + var type = _knownTypes.FirstOrDefault(x => x.Name == variableName || x.Alias == variableName); return type != null ? new KnownTypeResult(type) { IsStatic = true } : null; } } @@ -1566,6 +1566,10 @@ namespace Tango.Scripting.Editors knownType.Alias = "uint"; } } + else if (type == typeof(String)) + { + knownType.Alias = "string"; + } _knownTypesCache.Add(type, knownType); cachedUsing.KnownTypes.Add(knownType); diff --git a/Software/Visual_Studio/Scripting/Tango.Scripting/Parsing/ScriptParser.cs b/Software/Visual_Studio/Scripting/Tango.Scripting/Parsing/ScriptParser.cs index 2e7086ce0..63d2cca5d 100644 --- a/Software/Visual_Studio/Scripting/Tango.Scripting/Parsing/ScriptParser.cs +++ b/Software/Visual_Studio/Scripting/Tango.Scripting/Parsing/ScriptParser.cs @@ -440,7 +440,7 @@ namespace Tango.Scripting.Parsing var root = (CompilationUnitSyntax)tree.GetRoot(); List<VariableDeclaratorSyntax> variables = new List<VariableDeclaratorSyntax>(); - FillVariables(variables, root.Members[0]); + FillVariables(variables, new List<SyntaxNode>(), root.Members[0]); variables = variables.Distinct().ToList(); foreach (var item in variables) @@ -463,17 +463,27 @@ namespace Tango.Scripting.Parsing return vars; } - private void FillVariables(List<VariableDeclaratorSyntax> variables, SyntaxNode node) + private void FillVariables(List<VariableDeclaratorSyntax> variables, List<SyntaxNode> existingNodes, SyntaxNode node) { - foreach (var item in node.DescendantNodes(x => true)) + var nodes = node.ChildNodes().ToList(); + + nodes.RemoveAll(x => existingNodes.Contains(x)); + + foreach (var item in nodes) { + existingNodes.Add(item); + if (item.GetType() == typeof(VariableDeclaratorSyntax)) { variables.Add(item as VariableDeclaratorSyntax); } + else if (item == node) + { + continue; + } else { - FillVariables(variables, item); + FillVariables(variables, existingNodes, item); } } } |
