aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.Editors
diff options
context:
space:
mode:
authorRoy Ben Shabat <Roy.mail.net@gmail.com>2019-02-12 09:03:39 +0200
committerRoy Ben Shabat <Roy.mail.net@gmail.com>2019-02-12 09:03:39 +0200
commit9686fca002119f623ec162fce7f2e1eee4a71dc3 (patch)
tree3cc300bc491a4145f6f36f191ad197d31318622b /Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.Editors
parent2843c9ee0d8dc33e1eb21cb8e5dc25ca766e5170 (diff)
downloadTango-9686fca002119f623ec162fce7f2e1eee4a71dc3.tar.gz
Tango-9686fca002119f623ec162fce7f2e1eee4a71dc3.zip
Some work...
Diffstat (limited to 'Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.Editors')
-rw-r--r--Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.Editors/Folding/BraceFoldingStrategy.cs3
-rw-r--r--Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.Editors/ScriptEditor.cs47
-rw-r--r--Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.Editors/Tango.Scripting.Editors.csproj4
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