From 9b7875d904456c34c3698d7fc569078f99ed5187 Mon Sep 17 00:00:00 2001 From: Roy Ben Shabat Date: Sun, 19 Apr 2020 23:12:56 +0300 Subject: Scripting refactoring. --- .../Tango.Scripting.Basic/CompilationError.cs | 19 ++ .../Tango.Scripting.Basic/CompilationResult.cs | 21 ++ .../Tango.Scripting.Basic/GlobalObject.cs | 13 ++ .../Scripting/Tango.Scripting.Basic/IContext.cs | 13 ++ .../Scripting/Tango.Scripting.Basic/Project.cs | 211 +++++++++++++++++++++ .../Tango.Scripting.Basic/ProjectManager.cs | 18 ++ .../Tango.Scripting.Basic/ProjectSession.cs | 55 ++++++ .../Tango.Scripting.Basic/ProjectSessionState.cs | 16 ++ .../ProjectSessionStateChangedEventArgs.cs | 17 ++ .../Properties/AssemblyInfo.cs | 55 ++++++ .../Properties/Resources.Designer.cs | 73 +++++++ .../Properties/Resources.resx | 124 ++++++++++++ .../Properties/Settings.Designer.cs | 30 +++ .../Properties/Settings.settings | 7 + .../Tango.Scripting.Basic/ReferenceAssembly.cs | 13 ++ .../Tango.Scripting.Basic/Resources/template.csx | 16 ++ .../Scripting/Tango.Scripting.Basic/Script.cs | 27 +++ .../Tango.Scripting.Basic.csproj | 186 ++++++++++++++++++ .../Tango.Scripting.Basic/Themes/Generic.xaml | 6 + .../Scripting/Tango.Scripting.Basic/app.config | 47 +++++ .../Tango.Scripting.Basic/packages.config | 52 +++++ 21 files changed, 1019 insertions(+) create mode 100644 Software/Visual_Studio/Scripting/Tango.Scripting.Basic/CompilationError.cs create mode 100644 Software/Visual_Studio/Scripting/Tango.Scripting.Basic/CompilationResult.cs create mode 100644 Software/Visual_Studio/Scripting/Tango.Scripting.Basic/GlobalObject.cs create mode 100644 Software/Visual_Studio/Scripting/Tango.Scripting.Basic/IContext.cs create mode 100644 Software/Visual_Studio/Scripting/Tango.Scripting.Basic/Project.cs create mode 100644 Software/Visual_Studio/Scripting/Tango.Scripting.Basic/ProjectManager.cs create mode 100644 Software/Visual_Studio/Scripting/Tango.Scripting.Basic/ProjectSession.cs create mode 100644 Software/Visual_Studio/Scripting/Tango.Scripting.Basic/ProjectSessionState.cs create mode 100644 Software/Visual_Studio/Scripting/Tango.Scripting.Basic/ProjectSessionStateChangedEventArgs.cs create mode 100644 Software/Visual_Studio/Scripting/Tango.Scripting.Basic/Properties/AssemblyInfo.cs create mode 100644 Software/Visual_Studio/Scripting/Tango.Scripting.Basic/Properties/Resources.Designer.cs create mode 100644 Software/Visual_Studio/Scripting/Tango.Scripting.Basic/Properties/Resources.resx create mode 100644 Software/Visual_Studio/Scripting/Tango.Scripting.Basic/Properties/Settings.Designer.cs create mode 100644 Software/Visual_Studio/Scripting/Tango.Scripting.Basic/Properties/Settings.settings create mode 100644 Software/Visual_Studio/Scripting/Tango.Scripting.Basic/ReferenceAssembly.cs create mode 100644 Software/Visual_Studio/Scripting/Tango.Scripting.Basic/Resources/template.csx create mode 100644 Software/Visual_Studio/Scripting/Tango.Scripting.Basic/Script.cs create mode 100644 Software/Visual_Studio/Scripting/Tango.Scripting.Basic/Tango.Scripting.Basic.csproj create mode 100644 Software/Visual_Studio/Scripting/Tango.Scripting.Basic/Themes/Generic.xaml create mode 100644 Software/Visual_Studio/Scripting/Tango.Scripting.Basic/app.config create mode 100644 Software/Visual_Studio/Scripting/Tango.Scripting.Basic/packages.config (limited to 'Software/Visual_Studio/Scripting/Tango.Scripting.Basic') diff --git a/Software/Visual_Studio/Scripting/Tango.Scripting.Basic/CompilationError.cs b/Software/Visual_Studio/Scripting/Tango.Scripting.Basic/CompilationError.cs new file mode 100644 index 000000000..27c710b2f --- /dev/null +++ b/Software/Visual_Studio/Scripting/Tango.Scripting.Basic/CompilationError.cs @@ -0,0 +1,19 @@ +using Microsoft.CodeAnalysis; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Tango.Scripting.Basic +{ + public class CompilationError + { + public String File { get; set; } + public String Message { get; set; } + public DiagnosticSeverity Severity { get; set; } + public int Line { get; set; } + public int Column { get; set; } + public int Length { get; set; } + } +} diff --git a/Software/Visual_Studio/Scripting/Tango.Scripting.Basic/CompilationResult.cs b/Software/Visual_Studio/Scripting/Tango.Scripting.Basic/CompilationResult.cs new file mode 100644 index 000000000..d3676acc0 --- /dev/null +++ b/Software/Visual_Studio/Scripting/Tango.Scripting.Basic/CompilationResult.cs @@ -0,0 +1,21 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Tango.Core.IO; + +namespace Tango.Scripting.Basic +{ + public class CompilationResult + { + public List Errors { get; set; } + public TemporaryFolder TemporaryProjectPath { get; set; } + public Microsoft.CodeAnalysis.Scripting.Script Script { get; set; } + + public CompilationResult() + { + Errors = new List(); + } + } +} diff --git a/Software/Visual_Studio/Scripting/Tango.Scripting.Basic/GlobalObject.cs b/Software/Visual_Studio/Scripting/Tango.Scripting.Basic/GlobalObject.cs new file mode 100644 index 000000000..fc48bb2a2 --- /dev/null +++ b/Software/Visual_Studio/Scripting/Tango.Scripting.Basic/GlobalObject.cs @@ -0,0 +1,13 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Tango.Scripting.Basic +{ + public class GlobalObject + { + public IContext GlobalContext { get; set; } + } +} diff --git a/Software/Visual_Studio/Scripting/Tango.Scripting.Basic/IContext.cs b/Software/Visual_Studio/Scripting/Tango.Scripting.Basic/IContext.cs new file mode 100644 index 000000000..906047c2a --- /dev/null +++ b/Software/Visual_Studio/Scripting/Tango.Scripting.Basic/IContext.cs @@ -0,0 +1,13 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Tango.Scripting.Basic +{ + public interface IContext + { + void WriteLine(String s); + } +} diff --git a/Software/Visual_Studio/Scripting/Tango.Scripting.Basic/Project.cs b/Software/Visual_Studio/Scripting/Tango.Scripting.Basic/Project.cs new file mode 100644 index 000000000..ddf61e124 --- /dev/null +++ b/Software/Visual_Studio/Scripting/Tango.Scripting.Basic/Project.cs @@ -0,0 +1,211 @@ +using Microsoft.CodeAnalysis.CSharp.Scripting; +using Microsoft.CodeAnalysis.Scripting; +using Newtonsoft.Json; +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Linq; +using System.Reflection; +using System.Text; +using System.Text.RegularExpressions; +using System.Threading; +using System.Threading.Tasks; +using System.Windows.Forms; +using Tango.Core; +using Tango.Core.IO; +using Tango.Scripting.Core; +using System.IO; + +namespace Tango.Scripting.Basic +{ + public class Project : ExtendedObject + { + public String Name { get; set; } + + public ApartmentState ApartmentState { get; set; } + + public ObservableCollection ReferenceAssemblies { get; set; } + + [JsonIgnore] + public ObservableCollection ReferenceAssembliesLoaded { get; set; } + + public ObservableCollection