aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio
diff options
context:
space:
mode:
authorRoy Ben Shabat <Roy.mail.net@gmail.com>2020-08-25 16:03:24 +0300
committerRoy Ben Shabat <Roy.mail.net@gmail.com>2020-08-25 16:03:24 +0300
commitddcd370da70d9e2212450368df1499c3a1f1b71c (patch)
tree78993f9e75e61934b3d4dc295efd885d1f3b34b0 /Software/Visual_Studio
parentab3d239500196133f309b4a17fdd91aef645c356 (diff)
downloadTango-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.cs6
-rw-r--r--Software/Visual_Studio/Scripting/Tango.Scripting/Parsing/ScriptParser.cs18
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);
}
}
}