diff options
| author | Roy Ben Shabat <Roy.mail.net@gmail.com> | 2019-02-12 09:03:39 +0200 |
|---|---|---|
| committer | Roy Ben Shabat <Roy.mail.net@gmail.com> | 2019-02-12 09:03:39 +0200 |
| commit | 9686fca002119f623ec162fce7f2e1eee4a71dc3 (patch) | |
| tree | 3cc300bc491a4145f6f36f191ad197d31318622b /Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.Editors | |
| parent | 2843c9ee0d8dc33e1eb21cb8e5dc25ca766e5170 (diff) | |
| download | Tango-9686fca002119f623ec162fce7f2e1eee4a71dc3.tar.gz Tango-9686fca002119f623ec162fce7f2e1eee4a71dc3.zip | |
Some work...
Diffstat (limited to 'Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.Editors')
3 files changed, 41 insertions, 13 deletions
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("/// <summary>","/// </summary>"), }; 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<Type> _types = new List<Type>(); + private ScriptParser _parser; + private List<String> _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<Match>().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 @@ <RequiredTargetFramework>3.5</RequiredTargetFramework> </Reference> <Reference Include="Tango.Core"> - <HintPath>D:\Development\Tango\Software\Visual_Studio\Build\Core\Debug\Tango.Core.dll</HintPath> + <HintPath>..\..\..\Build\Core\Debug\Tango.Core.dll</HintPath> </Reference> <Reference Include="UIAutomationProvider"> <RequiredTargetFramework>3.0</RequiredTargetFramework> @@ -492,7 +492,7 @@ </ItemGroup> <ProjectExtensions> <VisualStudio> - <UserProperties BuildVersion_StartDate="2000/1/1" BuildVersion_BuildVersioningStyle="None.None.Increment.TimeStamp" BuildVersion_UpdateAssemblyVersion="True" BuildVersion_AssemblyInfoFilename="Properties\AssemblyInfo.cs" BuildVersion_UseGlobalSettings="True" /> + <UserProperties BuildVersion_UseGlobalSettings="True" BuildVersion_AssemblyInfoFilename="Properties\AssemblyInfo.cs" BuildVersion_UpdateAssemblyVersion="True" BuildVersion_BuildVersioningStyle="None.None.Increment.TimeStamp" BuildVersion_StartDate="2000/1/1" /> </VisualStudio> </ProjectExtensions> </Project>
\ No newline at end of file |
