From 9686fca002119f623ec162fce7f2e1eee4a71dc3 Mon Sep 17 00:00:00 2001 From: Roy Ben Shabat Date: Tue, 12 Feb 2019 09:03:39 +0200 Subject: Some work... --- .../Folding/BraceFoldingStrategy.cs | 3 ++ .../Tango.Scripting.Editors/ScriptEditor.cs | 47 +++++++++++++++++----- .../Tango.Scripting.Editors.csproj | 4 +- 3 files changed, 41 insertions(+), 13 deletions(-) (limited to 'Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.Editors') diff --git a/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.Editors/Folding/BraceFoldingStrategy.cs b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.Editors/Folding/BraceFoldingStrategy.cs index a20f36046..0b26184ee 100644 --- a/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.Editors/Folding/BraceFoldingStrategy.cs +++ b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.Editors/Folding/BraceFoldingStrategy.cs @@ -37,6 +37,9 @@ namespace Tango.Scripting.Editors.Folding new FoldingDefinition("private","}"), new FoldingDefinition("internal","}"), new FoldingDefinition("if","}"), + new FoldingDefinition("class","}"), + new FoldingDefinition("while","}"), + new FoldingDefinition("static void","}"), new FoldingDefinition("/// ","/// "), }; diff --git a/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.Editors/ScriptEditor.cs b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.Editors/ScriptEditor.cs index a42e743ad..b4a98804c 100644 --- a/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.Editors/ScriptEditor.cs +++ b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.Editors/ScriptEditor.cs @@ -20,16 +20,19 @@ using Tango.Scripting.Editors.CodeCompletion; using Tango.Scripting.Editors.Document; using Tango.Scripting.Editors.Editing; using Tango.Scripting.Editors.Folding; +using Tango.Scripting.Parsing; namespace Tango.Scripting.Editors { public class ScriptEditor : TextEditor { - private DispatcherTimer foldingUpdateTimer; + private DispatcherTimer _update_timer; private FoldingManager foldingManager; private BraceFoldingStrategy foldingStrategy; private CompletionWindow completionWindow; private List _types = new List(); + private ScriptParser _parser; + private List _current_usings; #region Completion @@ -144,20 +147,33 @@ namespace Tango.Scripting.Editors public ScriptEditor() { + _parser = new ScriptParser(); + TextArea.IndentationStrategy = new Indentation.CSharp.CSharpIndentationStrategy(Options); foldingStrategy = new BraceFoldingStrategy(); - foldingUpdateTimer = new DispatcherTimer(); - foldingUpdateTimer.Interval = TimeSpan.FromSeconds(2); - foldingUpdateTimer.Tick += FoldingUpdateTimer_Tick; - foldingUpdateTimer.Start(); + _update_timer = new DispatcherTimer(); + _update_timer.Interval = TimeSpan.FromSeconds(2); + _update_timer.Tick += UpdateTimer_Tick; + _update_timer.Start(); IndentCommand = new RelayCommand(IndentCode); TextArea.TextEntered += TextArea_TextEntered; } - private void FoldingUpdateTimer_Tick(object sender, EventArgs e) + private void UpdateTimer_Tick(object sender, EventArgs e) + { + InvalidateFolding(); + InvalidateUsings(); + } + + private void InvalidateUsings() + { + var usings = _parser.GetUsings(Text); + } + + private void InvalidateFolding() { if (EnableFolding) { @@ -253,18 +269,27 @@ namespace Tango.Scripting.Editors String word = String.Empty; var line = GetCurrentLine(); String lineText = Document.GetText(line); - Regex r = new Regex(@"(\w+\.)"); - var match = r.Matches(lineText.Substring(0, line.EndOffset)); - var g = match.OfType().LastOrDefault(); + int position = CaretOffset; - if (g != null) + for (int i = lineText.Length - 1; i >= 0; i--) { - word = g.Value.Replace(".", ""); + if (lineText[i] == ' ' || lineText[i] == '\t') + { + break; + } + word += lineText[i]; + } + word = new string(word.Reverse().ToArray()); + if (word.Length > 0) + { + word = word.Replace(".", ""); } + + } } diff --git a/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.Editors/Tango.Scripting.Editors.csproj b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.Editors/Tango.Scripting.Editors.csproj index 5dc21efae..4031baf3c 100644 --- a/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.Editors/Tango.Scripting.Editors.csproj +++ b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.Editors/Tango.Scripting.Editors.csproj @@ -95,7 +95,7 @@ 3.5 - D:\Development\Tango\Software\Visual_Studio\Build\Core\Debug\Tango.Core.dll + ..\..\..\Build\Core\Debug\Tango.Core.dll 3.0 @@ -492,7 +492,7 @@ - + \ No newline at end of file -- cgit v1.3.1