Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/monodevelop.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarius Ungureanu <therzok@gmail.com>2018-03-29 15:56:00 +0300
committerMarius Ungureanu <teromario@yahoo.com>2018-04-11 22:00:08 +0300
commitdb3978a23137b7161daec6641da25c098f1e9fc0 (patch)
treea671a9421d55865e9dcbb7abd5b00280f57e5d89 /main/src/core
parent6d9d8f23c4fe87c5a7d67fa08a4d5d642e8ae012 (diff)
[Ide] Avoid loading display bindings every time a document is opened
Diffstat (limited to 'main/src/core')
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui/DisplayBindingService.cs23
1 files changed, 21 insertions, 2 deletions
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui/DisplayBindingService.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui/DisplayBindingService.cs
index a3a32e15df..3dab14d1b4 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui/DisplayBindingService.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui/DisplayBindingService.cs
@@ -39,12 +39,31 @@ namespace MonoDevelop.Ide.Gui
{
public static class DisplayBindingService
{
+ const string extensionPath = "/MonoDevelop/Ide/DisplayBindings";
+
+ static DisplayBindingService ()
+ {
+ AddinManager.ExtensionChanged += OnExtensionChanged;
+ UpdateExtensionObjects ();
+ }
+
+ static void OnExtensionChanged (object sender, ExtensionEventArgs args)
+ {
+ if (args.PathChanged (extensionPath))
+ UpdateExtensionObjects ();
+ }
+
+ static void UpdateExtensionObjects ()
+ {
+ registeredObjects = AddinManager.GetExtensionObjects (extensionPath);
+ }
+
+ static object [] registeredObjects;
private static List<IDisplayBinding> runtimeBindings = new List<IDisplayBinding>();
public static IEnumerable<T> GetBindings<T> ()
{
- return runtimeBindings.OfType<T>().Concat(AddinManager.GetExtensionObjects ("/MonoDevelop/Ide/DisplayBindings")
- .OfType<T> ());
+ return runtimeBindings.OfType<T> ().Concat (registeredObjects.OfType<T> ());
}
public static void RegisterRuntimeDisplayBinding(IDisplayBinding binding)