aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.Editors
diff options
context:
space:
mode:
authorRoy Ben-Shabat <Roy@Twine-s.com>2019-03-11 15:41:05 +0200
committerRoy Ben-Shabat <Roy@Twine-s.com>2019-03-11 15:41:05 +0200
commitb0bbc0bec1aaed2230b8a4aa1c08e379fed4629a (patch)
treece6350fdd098e42ce9bab88e1ba86b3fe544ec18 /Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.Editors
parent4568cd0ed72a7e4c38d54a3820652e761e3510bc (diff)
downloadTango-b0bbc0bec1aaed2230b8a4aa1c08e379fed4629a.tar.gz
Tango-b0bbc0bec1aaed2230b8a4aa1c08e379fed4629a.zip
WOrking on script engine.
Diffstat (limited to 'Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.Editors')
-rw-r--r--Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.Editors/Images/class.pngbin212 -> 417 bytes
-rw-r--r--Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.Editors/Images/field.pngbin395 -> 216 bytes
-rw-r--r--Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.Editors/Images/interface.pngbin222 -> 381 bytes
-rw-r--r--Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.Editors/Images/namespace.pngbin250 -> 241 bytes
-rw-r--r--Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.Editors/Images/property.pngbin363 -> 428 bytes
-rw-r--r--Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.Editors/ScriptEditor.cs79
-rw-r--r--Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.Editors/Tango.Scripting.Editors.csproj14
7 files changed, 73 insertions, 20 deletions
diff --git a/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.Editors/Images/class.png b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.Editors/Images/class.png
index 91b35a829..3e40469f5 100644
--- a/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.Editors/Images/class.png
+++ b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.Editors/Images/class.png
Binary files differ
diff --git a/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.Editors/Images/field.png b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.Editors/Images/field.png
index 37de414e9..763eadffb 100644
--- a/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.Editors/Images/field.png
+++ b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.Editors/Images/field.png
Binary files differ
diff --git a/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.Editors/Images/interface.png b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.Editors/Images/interface.png
index 3b07597dd..fb00f0cc7 100644
--- a/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.Editors/Images/interface.png
+++ b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.Editors/Images/interface.png
Binary files differ
diff --git a/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.Editors/Images/namespace.png b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.Editors/Images/namespace.png
index 7f2b6b5ef..6520448ce 100644
--- a/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.Editors/Images/namespace.png
+++ b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.Editors/Images/namespace.png
Binary files differ
diff --git a/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.Editors/Images/property.png b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.Editors/Images/property.png
index 4abd1a4a4..d2f90f569 100644
--- a/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.Editors/Images/property.png
+++ b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.Editors/Images/property.png
Binary files differ
diff --git a/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.Editors/ScriptEditor.cs b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.Editors/ScriptEditor.cs
index 64fb0f194..bcc05bde5 100644
--- a/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.Editors/ScriptEditor.cs
+++ b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.Editors/ScriptEditor.cs
@@ -50,7 +50,7 @@ namespace Tango.Scripting.Editors
private ScriptParser _parser;
private List<String> _current_usings;
private List<KnownType> _knownTypes;
- private List<INamedTypeSymbol> _declaredTypes;
+ private List<ScriptType> _declaredTypes;
#region Mini Classes
@@ -136,7 +136,7 @@ namespace Tango.Scripting.Editors
/// </summary>
public ScriptEditor()
{
- _declaredTypes = new List<INamedTypeSymbol>();
+ _declaredTypes = new List<ScriptType>();
_current_usings = new List<string>();
@@ -511,11 +511,11 @@ namespace Tango.Scripting.Editors
foreach (var type in _declaredTypes)
{
- if (type.TypeKind == TypeKind.Interface || type.TypeKind == TypeKind.Enum)
+ if (type.Kind == TypeKind.Interface || type.Kind == TypeKind.Enum)
{
interfaceTypes.Add(String.Format("<Word>{0}</Word>", type.Name));
}
- else if (type.TypeKind == TypeKind.Class)
+ else if (type.Kind == TypeKind.Class)
{
referenceTypes.Add(String.Format("<Word>{0}</Word>", type.Name));
}
@@ -752,6 +752,15 @@ namespace Tango.Scripting.Editors
ShowCompletionWindow(data, GetCurrentWord());
}
+ else
+ {
+ var declaredType = GetCurrentDeclaredType();
+
+ if (declaredType != null)
+ {
+
+ }
+ }
}
else if (e.Text == "(" || e.Text == ",")
{
@@ -837,43 +846,43 @@ namespace Tango.Scripting.Editors
foreach (var type in _declaredTypes.Where(x => x.Name.StartsWith(word)))
{
- if (type.TypeKind == TypeKind.Struct)
+ if (type.Kind == TypeKind.Struct)
{
data.Add(new StructCompletionItem()
{
Name = type.Name,
Description = "Declared inside the current script...",
- Namespace = type.ContainingNamespace?.Name,
+ Namespace = type.ContainingNamespace,
Priority = 1,
});
}
- else if (type.TypeKind == TypeKind.Enum)
+ else if (type.Kind == TypeKind.Enum)
{
data.Add(new EnumCompletionItem()
{
Name = type.Name,
Description = "Declared inside the current script...",
- Namespace = type.ContainingNamespace?.Name,
+ Namespace = type.ContainingNamespace,
Priority = 1,
});
}
- else if (type.TypeKind == TypeKind.Interface)
+ else if (type.Kind == TypeKind.Interface)
{
data.Add(new InterfaceCompletionItem()
{
Name = type.Name,
Description = "Declared inside the current script...",
- Namespace = type.ContainingNamespace?.Name,
+ Namespace = type.ContainingNamespace,
Priority = 1,
});
}
- else if (type.TypeKind == TypeKind.Class)
+ else if (type.Kind == TypeKind.Class)
{
data.Add(new ClassCompletionItem()
{
Name = type.Name,
Description = "Declared inside the current script...",
- Namespace = type.ContainingNamespace?.Name,
+ Namespace = type.ContainingNamespace,
Priority = 1,
});
}
@@ -944,7 +953,7 @@ namespace Tango.Scripting.Editors
Priority = 2,
});
}
- else if (symbol.Kind == SymbolKind.Field)
+ else if (symbol.Kind == SymbolKind.Field || symbol.Kind == SymbolKind.Local)
{
data.Add(new FieldCompletionItem()
{
@@ -1110,6 +1119,50 @@ namespace Tango.Scripting.Editors
return null;
}
+ private ScriptType GetCurrentDeclaredType()
+ {
+ var expression = GetPreviousWords().LastOrDefault();
+
+ if (expression != null)
+ {
+ var tree = expression.Split('.').Select(x => x.Remove(@"\n|\t|\r|\(.*\)|\[.*\]|\s")).ToList();
+ var variableName = tree.FirstOrDefault();
+
+ if (variableName != null)
+ {
+ tree.RemoveAt(0);
+ var variables = _parser.GetContextSymbols(Document.Text, CaretOffset);
+ var variable = variables.FirstOrDefault(x => x.Name == variableName);
+
+ if (variable != null)
+ {
+ var declaredType = _declaredTypes.FirstOrDefault(x => x.Name == Regex.Replace(variable.Type, "<.+>", "<T>"));
+
+ if (declaredType != null)
+ {
+ while (tree.Count > 1)
+ {
+ var memberName = tree.First();
+ tree.RemoveAt(0);
+ var member = declaredType.Symbols.FirstOrDefault(x => x.Name == memberName);
+
+ if (member == null)
+ {
+ return null;
+ }
+
+ declaredType = _declaredTypes.FirstOrDefault(x => x.ContainingNamespace + "." + x.Name == member.ContainingNamespace + "." + member.Type);
+ }
+
+ return declaredType;
+ }
+ }
+ }
+ }
+
+ return null;
+ }
+
#endregion
#region Popup
diff --git a/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.Editors/Tango.Scripting.Editors.csproj b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.Editors/Tango.Scripting.Editors.csproj
index e5960a664..8b213a870 100644
--- a/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.Editors/Tango.Scripting.Editors.csproj
+++ b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.Editors/Tango.Scripting.Editors.csproj
@@ -597,32 +597,32 @@
<Analyzer Include="..\packages\Microsoft.CodeAnalysis.Analyzers.1.1.0\analyzers\dotnet\cs\Microsoft.CodeAnalysis.CSharp.Analyzers.dll" />
</ItemGroup>
<ItemGroup>
- <Resource Include="Images\enum.png" />
+ <Resource Include="Images\method.png" />
</ItemGroup>
<ItemGroup>
<Resource Include="Images\class.png" />
</ItemGroup>
<ItemGroup>
- <Resource Include="Images\interface.png" />
+ <Resource Include="Images\enum.png" />
</ItemGroup>
<ItemGroup>
- <Resource Include="Images\struct.png" />
+ <Resource Include="Images\field.png" />
</ItemGroup>
<ItemGroup>
- <Resource Include="Images\namespace.png" />
+ <Resource Include="Images\interface.png" />
</ItemGroup>
<ItemGroup>
- <Resource Include="Images\method.png" />
+ <Resource Include="Images\namespace.png" />
</ItemGroup>
<ItemGroup>
<Resource Include="Images\property.png" />
</ItemGroup>
<ItemGroup>
- <Resource Include="Images\field.png" />
+ <Resource Include="Images\struct.png" />
</ItemGroup>
<ProjectExtensions>
<VisualStudio>
- <UserProperties BuildVersion_StartDate="2000/1/1" BuildVersion_BuildVersioningStyle="None.None.Increment.TimeStamp" BuildVersion_UpdateAssemblyVersion="True" BuildVersion_AssemblyInfoFilename="Properties\AssemblyInfo.cs" BuildVersion_UseGlobalSettings="True" />
+ <UserProperties BuildVersion_UseGlobalSettings="True" BuildVersion_AssemblyInfoFilename="Properties\AssemblyInfo.cs" BuildVersion_UpdateAssemblyVersion="True" BuildVersion_BuildVersioningStyle="None.None.Increment.TimeStamp" BuildVersion_StartDate="2000/1/1" />
</VisualStudio>
</ProjectExtensions>
</Project> \ No newline at end of file