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 +++ .../Tango.Scripting.Core/IScriptSource.cs | 13 + .../Properties/AssemblyInfo.cs | 36 +++ .../Tango.Scripting.Core.csproj | 48 +++ .../Tango.Scripting.Editors/CachedAssembly.cs | 21 ++ .../Tango.Scripting.Editors/Document/UndoStack.cs | 2 +- .../Highlighting/Resources/CSharp-Mode.xshd | 1 + .../Intellisense/KnownType.cs | 12 +- .../Intellisense/KnownTypeMethod.cs | 2 + .../Tango.Scripting.Editors/ScriptEditor.cs | 348 +++++++++++++++++++-- .../Tango.Scripting.Editors.csproj | 10 +- .../Scripting/Tango.Scripting.Editors/app.config | 8 + .../Tango.Scripting.Editors/packages.config | 1 + .../Scripting/Tango.Scripting.Test/App.config | 6 + .../Scripting/Tango.Scripting.Test/App.xaml | 9 + .../Scripting/Tango.Scripting.Test/App.xaml.cs | 17 + .../Scripting/Tango.Scripting.Test/MainWindow.xaml | 38 +++ .../Tango.Scripting.Test/MainWindow.xaml.cs | 46 +++ .../Scripting/Tango.Scripting.Test/MainWindowVM.cs | 62 ++++ .../Properties/AssemblyInfo.cs | 55 ++++ .../Properties/Resources.Designer.cs | 73 +++++ .../Tango.Scripting.Test/Properties/Resources.resx | 124 ++++++++ .../Properties/Settings.Designer.cs | 30 ++ .../Properties/Settings.settings | 7 + .../Tango.Scripting.Test/Resources/template.csx | 18 ++ .../Tango.Scripting.Test.csproj | 132 ++++++++ .../Scripting/Tango.Scripting.Test/lib.csx | 13 + .../Tango.Scripting/Parsing/ScriptParser.cs | 16 +- 48 files changed, 2134 insertions(+), 33 deletions(-) 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 create mode 100644 Software/Visual_Studio/Scripting/Tango.Scripting.Core/IScriptSource.cs create mode 100644 Software/Visual_Studio/Scripting/Tango.Scripting.Core/Properties/AssemblyInfo.cs create mode 100644 Software/Visual_Studio/Scripting/Tango.Scripting.Core/Tango.Scripting.Core.csproj create mode 100644 Software/Visual_Studio/Scripting/Tango.Scripting.Editors/CachedAssembly.cs create mode 100644 Software/Visual_Studio/Scripting/Tango.Scripting.Test/App.config create mode 100644 Software/Visual_Studio/Scripting/Tango.Scripting.Test/App.xaml create mode 100644 Software/Visual_Studio/Scripting/Tango.Scripting.Test/App.xaml.cs create mode 100644 Software/Visual_Studio/Scripting/Tango.Scripting.Test/MainWindow.xaml create mode 100644 Software/Visual_Studio/Scripting/Tango.Scripting.Test/MainWindow.xaml.cs create mode 100644 Software/Visual_Studio/Scripting/Tango.Scripting.Test/MainWindowVM.cs create mode 100644 Software/Visual_Studio/Scripting/Tango.Scripting.Test/Properties/AssemblyInfo.cs create mode 100644 Software/Visual_Studio/Scripting/Tango.Scripting.Test/Properties/Resources.Designer.cs create mode 100644 Software/Visual_Studio/Scripting/Tango.Scripting.Test/Properties/Resources.resx create mode 100644 Software/Visual_Studio/Scripting/Tango.Scripting.Test/Properties/Settings.Designer.cs create mode 100644 Software/Visual_Studio/Scripting/Tango.Scripting.Test/Properties/Settings.settings create mode 100644 Software/Visual_Studio/Scripting/Tango.Scripting.Test/Resources/template.csx create mode 100644 Software/Visual_Studio/Scripting/Tango.Scripting.Test/Tango.Scripting.Test.csproj create mode 100644 Software/Visual_Studio/Scripting/Tango.Scripting.Test/lib.csx (limited to 'Software/Visual_Studio/Scripting') 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