From a440c6477a12a263969a507c2178981642ffb457 Mon Sep 17 00:00:00 2001 From: Roy Ben Shabat Date: Thu, 23 Apr 2020 12:27:01 +0300 Subject: Stubs module format code. --- .../Visual_Studio/Scripting/Tango.Scripting.Basic/Project.cs | 12 ------------ 1 file changed, 12 deletions(-) (limited to 'Software/Visual_Studio/Scripting/Tango.Scripting.Basic') diff --git a/Software/Visual_Studio/Scripting/Tango.Scripting.Basic/Project.cs b/Software/Visual_Studio/Scripting/Tango.Scripting.Basic/Project.cs index 446e5b529..776c21e53 100644 --- a/Software/Visual_Studio/Scripting/Tango.Scripting.Basic/Project.cs +++ b/Software/Visual_Studio/Scripting/Tango.Scripting.Basic/Project.cs @@ -60,18 +60,6 @@ namespace Tango.Scripting.Basic Scripts.CollectionChanged += (x, e) => { RaisePropertyChanged(nameof(AdditionalScripts)); }; } - public static TProject New(String name) where TProject : Project where TContext : IContext - { - TProject p = Activator.CreateInstance(); - - p.Name = name; - - p.ReferenceAssemblies.Add(ReferenceAssembly.FromType(typeof(String))); - p.ReferenceAssemblies.Add(ReferenceAssembly.FromType(typeof(Enumerable))); - p.ReferenceAssemblies.Add(ReferenceAssembly.FromType(typeof(Form))); - return p; - } - public Task Compile() { return Task.Factory.StartNew(() => -- cgit v1.3.1 From 4c0712fb9ac9ea65b0c66c16639f847307c84f98 Mon Sep 17 00:00:00 2001 From: Roy Ben Shabat Date: Thu, 23 Apr 2020 17:55:12 +0300 Subject: Improvements on test designer. --- .../Tango.FSE.Stubs/Contracts/ITestDesignerView.cs | 1 + .../Dialogs/AddReferenceAssemblyViewVM.cs | 55 +++-- .../FSE/Modules/Tango.FSE.Stubs/TestProject.cs | 22 ++ .../ViewModels/TestDesignerViewVM.cs | 240 ++++++++++++++++++++- .../Tango.FSE.Stubs/Views/TestDesignerView.xaml | 226 ++++++++++++------- .../Tango.FSE.Stubs/Views/TestDesignerView.xaml.cs | 16 +- .../FSE/Tango.FSE.Common/Resources/Converters.xaml | 1 + .../Tango.Scripting.Basic/CompilationError.cs | 1 + .../Scripting/Tango.Scripting.Basic/Project.cs | 3 + .../Scripting/Tango.Scripting.Basic/Script.cs | 27 ++- .../Tango.Scripting.Editors/ScriptEditor.cs | 5 + 11 files changed, 486 insertions(+), 111 deletions(-) (limited to 'Software/Visual_Studio/Scripting/Tango.Scripting.Basic') diff --git a/Software/Visual_Studio/FSE/Modules/Tango.FSE.Stubs/Contracts/ITestDesignerView.cs b/Software/Visual_Studio/FSE/Modules/Tango.FSE.Stubs/Contracts/ITestDesignerView.cs index bba69bac1..ea87a4f19 100644 --- a/Software/Visual_Studio/FSE/Modules/Tango.FSE.Stubs/Contracts/ITestDesignerView.cs +++ b/Software/Visual_Studio/FSE/Modules/Tango.FSE.Stubs/Contracts/ITestDesignerView.cs @@ -10,5 +10,6 @@ namespace Tango.FSE.Stubs.Contracts public interface ITestDesignerView : IFSEView { void FormatCode(); + void HighlightCode(int position, int length); } } diff --git a/Software/Visual_Studio/FSE/Modules/Tango.FSE.Stubs/Dialogs/AddReferenceAssemblyViewVM.cs b/Software/Visual_Studio/FSE/Modules/Tango.FSE.Stubs/Dialogs/AddReferenceAssemblyViewVM.cs index aa32f6a03..cee06ed91 100644 --- a/Software/Visual_Studio/FSE/Modules/Tango.FSE.Stubs/Dialogs/AddReferenceAssemblyViewVM.cs +++ b/Software/Visual_Studio/FSE/Modules/Tango.FSE.Stubs/Dialogs/AddReferenceAssemblyViewVM.cs @@ -17,6 +17,8 @@ namespace Tango.FSE.Stubs.Dialogs { public class AddReferenceAssemblyViewVM : FSEDialogViewVM { + private List _existing; + [TangoInject] private IFSEApplicationManager ApplicationManager { get; set; } @@ -24,42 +26,53 @@ namespace Tango.FSE.Stubs.Dialogs public AddReferenceAssemblyViewVM(List existing) { + _existing = existing; OKText = "DONE"; - TangoIOC.Default.Inject(this); + } - List source = new List(); - - var startPath = ApplicationManager.StartPath; + public override void OnShow() + { + base.OnShow(); - foreach (var file in Directory.GetFiles(startPath, "*.dll")) + Task.Factory.StartNew(() => { - if (Path.GetFileName(file).StartsWith("Tango")) + System.Threading.Thread.Sleep(200); + List source = new List(); + + var startPath = ApplicationManager.StartPath; + + foreach (var file in Directory.GetFiles(startPath, "*.dll")) { - source.Add(ReferenceAssembly.FromFile(Path.GetFileName(file))); + if (Path.GetFileName(file).StartsWith("Tango")) + { + source.Add(ReferenceAssembly.FromFile(Path.GetFileName(file))); + } } - } - String dotNetPath = AssemblyHelper.GetAssemblyTargetFrameworkFolder(Assembly.GetExecutingAssembly()); + String dotNetPath = AssemblyHelper.GetAssemblyTargetFrameworkFolder(Assembly.GetExecutingAssembly()); - foreach (var file in Directory.GetFiles(dotNetPath, "*.dll")) - { - source.Add(ReferenceAssembly.FromFile(Path.GetFileName(file))); - } + foreach (var file in Directory.GetFiles(dotNetPath, "*.dll")) + { + source.Add(ReferenceAssembly.FromFile(Path.GetFileName(file))); + } - source = source.DistinctBy(x => x.Name).ToList(); + source = source.DistinctBy(x => x.Name).ToList(); - List existingReferences = new List(); + List existingReferences = new List(); - foreach (var asm in source) - { - if (existing.Exists(x => x.Name == asm.Name)) + foreach (var asm in source) { - existingReferences.Add(asm); + if (_existing.Exists(x => x.Name == asm.Name)) + { + existingReferences.Add(asm); + } } - } - ReferenceAssemblies = new SelectedObjectCollection(source.ToObservableCollection(), existingReferences.ToObservableCollection()); + ReferenceAssemblies = new SelectedObjectCollection(source.ToObservableCollection(), existingReferences.ToObservableCollection()); + + RaisePropertyChanged(nameof(ReferenceAssemblies)); + }); } } } diff --git a/Software/Visual_Studio/FSE/Modules/Tango.FSE.Stubs/TestProject.cs b/Software/Visual_Studio/FSE/Modules/Tango.FSE.Stubs/TestProject.cs index 1600c9752..0bb4783dd 100644 --- a/Software/Visual_Studio/FSE/Modules/Tango.FSE.Stubs/TestProject.cs +++ b/Software/Visual_Studio/FSE/Modules/Tango.FSE.Stubs/TestProject.cs @@ -1,4 +1,5 @@ using Google.Protobuf; +using Newtonsoft.Json; using System; using System.Collections.Generic; using System.Collections.ObjectModel; @@ -14,8 +15,19 @@ namespace Tango.FSE.Stubs { public class TestProject : Project { + private static JsonSerializerSettings _jsonSettings; + public ObservableCollection Inputs { get; set; } + static TestProject() + { + _jsonSettings = new JsonSerializerSettings() + { + TypeNameHandling = TypeNameHandling.Auto, + PreserveReferencesHandling = PreserveReferencesHandling.All, + }; + } + public TestProject() : base() { Inputs = new ObservableCollection(); @@ -41,5 +53,15 @@ namespace Tango.FSE.Stubs return project; } + + public String ToJson() + { + return JsonConvert.SerializeObject(this, _jsonSettings); + } + + public static TestProject FromJson(String json) + { + return JsonConvert.DeserializeObject(json, _jsonSettings); + } } } diff --git a/Software/Visual_Studio/FSE/Modules/Tango.FSE.Stubs/ViewModels/TestDesignerViewVM.cs b/Software/Visual_Studio/FSE/Modules/Tango.FSE.Stubs/ViewModels/TestDesignerViewVM.cs index e1fc8c539..1550da2ed 100644 --- a/Software/Visual_Studio/FSE/Modules/Tango.FSE.Stubs/ViewModels/TestDesignerViewVM.cs +++ b/Software/Visual_Studio/FSE/Modules/Tango.FSE.Stubs/ViewModels/TestDesignerViewVM.cs @@ -1,7 +1,9 @@ using Google.Protobuf; +using MaterialDesignThemes.Wpf; using System; using System.Collections.Generic; using System.Collections.ObjectModel; +using System.IO; using System.Linq; using System.Reflection; using System.Text; @@ -35,6 +37,10 @@ namespace Tango.FSE.Stubs.ViewModels } private DispatcherTimer _compileTimer; + private String _projectFile; + private String PROJECT_FILE_EXTENSION = ".tproj"; + private String PROJECT_DIALOG_FILTER = $"Test Project Files|*.tproj"; + private bool _isProjectChanged; #region Properties @@ -126,6 +132,14 @@ namespace Tango.FSE.Stubs.ViewModels public RelayCommand AddProjectInputCommand { get; set; } public RelayCommand RemoveProjectInputCommand { get; set; } public RelayCommand FormatCodeCommand { get; set; } + public RelayCommand HighlightErrorCommand { get; set; } + public RelayCommand NewProjectCommand { get; set; } + public RelayCommand SaveProjectCommand { get; set; } + public RelayCommand SaveAsProjectCommand { get; set; } + public RelayCommand OpenProjectCommand { get; set; } + public RelayCommand AddLibraryCommand { get; set; } + public RelayCommand