diff options
| author | Roy Ben Shabat <Roy.mail.net@gmail.com> | 2020-08-06 04:34:38 +0300 |
|---|---|---|
| committer | Roy Ben Shabat <Roy.mail.net@gmail.com> | 2020-08-06 04:34:38 +0300 |
| commit | 255a47cf96e83e8d11befa9180dc4458f6767188 (patch) | |
| tree | 5b4229edce3c2c0bc56202e8711ce3a5949cb32f /Software/Visual_Studio/Scripting | |
| parent | 03bc9bd370929884f98ee9488146646d44911efd (diff) | |
| download | Tango-255a47cf96e83e8d11befa9180dc4458f6767188.tar.gz Tango-255a47cf96e83e8d11befa9180dc4458f6767188.zip | |
Implemented interactive runtime error handling on procedures.
Diffstat (limited to 'Software/Visual_Studio/Scripting')
| -rw-r--r-- | Software/Visual_Studio/Scripting/Tango.Scripting.Basic/Project.cs | 3 | ||||
| -rw-r--r-- | Software/Visual_Studio/Scripting/Tango.Scripting.Editors/ScriptEditor.cs | 35 |
2 files changed, 37 insertions, 1 deletions
diff --git a/Software/Visual_Studio/Scripting/Tango.Scripting.Basic/Project.cs b/Software/Visual_Studio/Scripting/Tango.Scripting.Basic/Project.cs index 8ca64ca18..2a1a7b7fc 100644 --- a/Software/Visual_Studio/Scripting/Tango.Scripting.Basic/Project.cs +++ b/Software/Visual_Studio/Scripting/Tango.Scripting.Basic/Project.cs @@ -121,9 +121,10 @@ namespace Tango.Scripting.Basic } } - var scriptOptions = ScriptOptions.Default.WithReferences(LoadReferenceAssemblies()); + var scriptOptions = ScriptOptions.Default.WithReferences(LoadReferenceAssemblies()).WithEmitDebugInformation(true); var s = CSharpScript.Create<object>(mainScriptCode, scriptOptions, typeof(GlobalObject<T>)); + result.Script = s; var compileResults = s.Compile(); diff --git a/Software/Visual_Studio/Scripting/Tango.Scripting.Editors/ScriptEditor.cs b/Software/Visual_Studio/Scripting/Tango.Scripting.Editors/ScriptEditor.cs index 0802cf456..c650ad425 100644 --- a/Software/Visual_Studio/Scripting/Tango.Scripting.Editors/ScriptEditor.cs +++ b/Software/Visual_Studio/Scripting/Tango.Scripting.Editors/ScriptEditor.cs @@ -191,6 +191,14 @@ namespace Tango.Scripting.Editors public static readonly DependencyProperty ColorizeBrushProperty = DependencyProperty.Register("ColorizeBrush", typeof(Brush), typeof(ScriptEditor), new PropertyMetadata(new SolidColorBrush(Colors.YellowGreen) { Opacity = 0.5 })); + public Brush ErrorLineBrush + { + get { return (Brush)GetValue(ErrorLineBrushProperty); } + set { SetValue(ErrorLineBrushProperty, value); } + } + public static readonly DependencyProperty ErrorLineBrushProperty = + DependencyProperty.Register("ErrorLineBrush", typeof(Brush), typeof(ScriptEditor), new PropertyMetadata(new SolidColorBrush(Colors.Red) { Opacity = 0.5 })); + #endregion #region Constructors @@ -2486,6 +2494,33 @@ namespace Tango.Scripting.Editors errorMarkerService.RemoveAll(m => true); } + public void HighlightErrorLine(int lineNumber) + { + Document.BeginUpdate(); + + var line = Document.GetLineByNumber(lineNumber); + OffsetColorizer errorLineColrizer = new OffsetColorizer(line, line.Offset, line.EndOffset, ErrorLineBrush); + TextArea.TextView.LineTransformers.Add(errorLineColrizer); + + Document.EndUpdate(); + } + + public Point? GetLineVisualPosition(int lineNumber) + { + double top = TextArea.TextView.GetVisualTopByDocumentLine(lineNumber); + var visualLine = TextArea.TextView.GetVisualLine(lineNumber); + + if (visualLine != null) + { + var textLine = visualLine.GetTextLine(0); + var x = visualLine.GetTextLineVisualXPosition(textLine, visualLine.VisualLengthWithEndOfLineMarker); + var left = visualLine.VisualLengthWithEndOfLineMarker; + return new Point(x, top); + } + + return null; + } + #endregion } } |
