aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/Scripting/Tango.Scripting.Basic
diff options
context:
space:
mode:
authorShlomo Hecht <shlomo@twine-s.com>2020-04-26 13:06:17 +0300
committerShlomo Hecht <shlomo@twine-s.com>2020-04-26 13:06:17 +0300
commit257919304a46076138cd31d688323f80f3081f7f (patch)
treecf00acb22513a7b111228485a1a85e41079f15e1 /Software/Visual_Studio/Scripting/Tango.Scripting.Basic
parentebd7e4dee4f13c30a1d73a681c23d45e1045e6e5 (diff)
parenta4fe52cb35c01fa02b7b69ae0e5efd7194c06e43 (diff)
downloadTango-257919304a46076138cd31d688323f80f3081f7f.tar.gz
Tango-257919304a46076138cd31d688323f80f3081f7f.zip
Merge branch 'master' of https://twinetfs.visualstudio.com/Tango/_git/Tango
Diffstat (limited to 'Software/Visual_Studio/Scripting/Tango.Scripting.Basic')
-rw-r--r--Software/Visual_Studio/Scripting/Tango.Scripting.Basic/CompilationError.cs1
-rw-r--r--Software/Visual_Studio/Scripting/Tango.Scripting.Basic/Project.cs15
-rw-r--r--Software/Visual_Studio/Scripting/Tango.Scripting.Basic/Script.cs35
3 files changed, 37 insertions, 14 deletions
diff --git a/Software/Visual_Studio/Scripting/Tango.Scripting.Basic/CompilationError.cs b/Software/Visual_Studio/Scripting/Tango.Scripting.Basic/CompilationError.cs
index 27c710b2f..eda72fa6e 100644
--- a/Software/Visual_Studio/Scripting/Tango.Scripting.Basic/CompilationError.cs
+++ b/Software/Visual_Studio/Scripting/Tango.Scripting.Basic/CompilationError.cs
@@ -12,6 +12,7 @@ namespace Tango.Scripting.Basic
public String File { get; set; }
public String Message { get; set; }
public DiagnosticSeverity Severity { get; set; }
+ public int Position { 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/Project.cs b/Software/Visual_Studio/Scripting/Tango.Scripting.Basic/Project.cs
index 446e5b529..7abcbb42d 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<TProject, TContext>(String name) where TProject : Project<TContext> where TContext : IContext
- {
- TProject p = Activator.CreateInstance<TProject>();
-
- 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<CompilationResult> Compile()
{
return Task.Factory.StartNew<CompilationResult>(() =>
@@ -85,6 +73,7 @@ namespace Tango.Scripting.Basic
foreach (var script in Scripts)
{
script.LoadCount = 0;
+ script.LoadCharCount = 0;
String code = script.Code;
String codeFile = Path.Combine(tempFolder, script.Name);
@@ -94,6 +83,7 @@ namespace Tango.Scripting.Basic
{
loadingString = $"#load \"{file}\"\n";
script.LoadCount++;
+ script.LoadCharCount += loadingString.Length;
}
code = loadingString + code;
@@ -144,6 +134,7 @@ namespace Tango.Scripting.Basic
Script errorScript = Scripts.Single(x => x.Name == cError.File);
cError.Message = error.GetMessage();
cError.Severity = error.Severity;
+ cError.Position = error.Location.SourceSpan.Start - (errorScript != null ? errorScript.LoadCharCount : 0);
var line = error.Location.GetMappedLineSpan();
cError.Line = line.StartLinePosition.Line + 1 - (errorScript != null ? errorScript.LoadCount : 0);
cError.Column = line.StartLinePosition.Character + 1;
diff --git a/Software/Visual_Studio/Scripting/Tango.Scripting.Basic/Script.cs b/Software/Visual_Studio/Scripting/Tango.Scripting.Basic/Script.cs
index 753026149..c465292cb 100644
--- a/Software/Visual_Studio/Scripting/Tango.Scripting.Basic/Script.cs
+++ b/Software/Visual_Studio/Scripting/Tango.Scripting.Basic/Script.cs
@@ -12,10 +12,39 @@ namespace Tango.Scripting.Basic
{
public class Script : ExtendedObject, IScriptSource
{
- public String Name { get; set; }
- public String Code { get; set; }
+ private String _name;
+ public String Name
+ {
+ get { return _name; }
+ set { _name = value; RaisePropertyChangedAuto(); }
+ }
+
public bool IsEntryPoint { get; set; }
+ private String _code;
+ public String Code
+ {
+ get { return _code; }
+ set
+ {
+ if (_code != null && _code != value)
+ {
+ IsChanged = true;
+ }
+
+ _code = value;
+ RaisePropertyChangedAuto();
+ }
+ }
+
+ private bool _isChanged;
+ [JsonIgnore]
+ public bool IsChanged
+ {
+ get { return _isChanged; }
+ set { _isChanged = value; RaisePropertyChangedAuto(); }
+ }
+
private bool _isSelected;
[JsonIgnore]
public bool IsSelected
@@ -26,6 +55,8 @@ namespace Tango.Scripting.Basic
[JsonIgnore]
public int LoadCount { get; internal set; }
+ [JsonIgnore]
+ public int LoadCharCount { get; set; }
public static Script New(String file)
{