aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/Scripting/Tango.Scripting.Editors/ScriptEditor.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Software/Visual_Studio/Scripting/Tango.Scripting.Editors/ScriptEditor.cs')
-rw-r--r--Software/Visual_Studio/Scripting/Tango.Scripting.Editors/ScriptEditor.cs29
1 files changed, 28 insertions, 1 deletions
diff --git a/Software/Visual_Studio/Scripting/Tango.Scripting.Editors/ScriptEditor.cs b/Software/Visual_Studio/Scripting/Tango.Scripting.Editors/ScriptEditor.cs
index 8cf615a7c..0e32af6ed 100644
--- a/Software/Visual_Studio/Scripting/Tango.Scripting.Editors/ScriptEditor.cs
+++ b/Software/Visual_Studio/Scripting/Tango.Scripting.Editors/ScriptEditor.cs
@@ -65,6 +65,7 @@ namespace Tango.Scripting.Editors
private static List<CachedUsing> _cachedUsings;
private static bool _isLoadingCachedAssemblies;
private static bool _isCacheAssembliesLoaded;
+ private static bool _isUsingsLoadingStarted;
private static object _loadUsingsLock = new object();
private static List<SnippetCompletionItem> snippets;
@@ -72,6 +73,8 @@ namespace Tango.Scripting.Editors
public static event EventHandler LoadingSymbolsStarted;
public static event EventHandler LoadingSymbolsCompleted;
private static event EventHandler KnownTypesAvailable;
+ public static event EventHandler UsingsLoadingStarted;
+ public static event EventHandler UsingsLoadingCompleted;
#region Mini Classes
@@ -257,6 +260,12 @@ namespace Tango.Scripting.Editors
}"
});
+
+ snippets.Add(new SnippetCompletionItem()
+ {
+ Name = "cw",
+ Code = "context.WriteLine(\"\");"
+ });
}
/// <summary>
@@ -302,6 +311,13 @@ namespace Tango.Scripting.Editors
errorMarkerService = new TextMarkerService(Document);
TextArea.TextView.BackgroundRenderers.Add(errorMarkerService);
TextArea.TextView.LineTransformers.Add(errorMarkerService);
+
+ Unloaded += ScriptEditor_Unloaded;
+ }
+
+ private void ScriptEditor_Unloaded(object sender, RoutedEventArgs e)
+ {
+ _update_timer.Stop();
}
private void ScriptEditor_KnownTypesAvailable(object sender, EventArgs e)
@@ -1394,6 +1410,12 @@ namespace Tango.Scripting.Editors
{
if (!_cachedUsings.Exists(x => x.Namespace == use))
{
+ if (!_isUsingsLoadingStarted)
+ {
+ _isUsingsLoadingStarted = true;
+ UsingsLoadingStarted?.Invoke(this, new EventArgs());
+ }
+
var useFileName = System.IO.Path.Combine(KNOWN_TYPES_CACHE_FOLDER, use + ".json");
if (File.Exists(useFileName))
@@ -1477,7 +1499,7 @@ namespace Tango.Scripting.Editors
knownType.LoadDocumentation();
}
- if (!BlockedUsingsCache.Exists(x => x == use))
+ if (!BlockedUsingsCache.Exists(x => use.StartsWith(x)))
{
Task.Factory.StartNew(() =>
{
@@ -1488,6 +1510,11 @@ namespace Tango.Scripting.Editors
}
}
+ if (_isUsingsLoadingStarted)
+ {
+ UsingsLoadingCompleted?.Invoke(this, new EventArgs());
+ }
+
LoadingSymbolsCompleted?.Invoke(null, new EventArgs());
}
}