diff options
author | Mikayla Hutchinson <m.j.hutchinson@gmail.com> | 2017-03-28 00:22:20 +0300 |
---|---|---|
committer | Mikayla Hutchinson <m.j.hutchinson@gmail.com> | 2017-03-28 00:22:20 +0300 |
commit | 53246f4bbf9e320e22f20558d390fb215cf2e56b (patch) | |
tree | c85fe3418d5a4eb0aeb1f378f207b73a7f8d3f27 /main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.TypeSystem | |
parent | 8b9a5a3bc3d0e26dc5bc458428be3c10713850d3 (diff) |
[Ide] Unbreak MetadataReferenceCache
And add notes about what it's doing wrong and how to fix it
Diffstat (limited to 'main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.TypeSystem')
-rw-r--r-- | main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.TypeSystem/MetadataReferenceCache.cs | 5 | ||||
-rw-r--r-- | main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.TypeSystem/MonoDevelopWorkspace.cs | 4 |
2 files changed, 7 insertions, 2 deletions
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.TypeSystem/MetadataReferenceCache.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.TypeSystem/MetadataReferenceCache.cs index c2919e190e..887ea5e1cd 100644 --- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.TypeSystem/MetadataReferenceCache.cs +++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.TypeSystem/MetadataReferenceCache.cs @@ -33,7 +33,8 @@ using System.Threading; using System.Reflection; namespace MonoDevelop.Ide.TypeSystem -{ +{
+ //FIXME: this mechanism is not correct, we should be implementing IMetadataService instead
static class MetadataReferenceCache { static Dictionary<string, MetadataReferenceCacheItem> cache = new Dictionary<string, MetadataReferenceCacheItem> (); @@ -94,7 +95,7 @@ namespace MonoDevelop.Ide.TypeSystem static MetadataReferenceCache () { - timer = new Timer ((o) => CheckForChanges (), null, 5000, 5000); + timer = new Timer ((o) => Runtime.RunInMainThread ((Action)CheckForChanges), null, 5000, 5000); } //TODO: Call this method when focus returns to MD or even better use FileSystemWatcher diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.TypeSystem/MonoDevelopWorkspace.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.TypeSystem/MonoDevelopWorkspace.cs index 7078175623..83244f8cc5 100644 --- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.TypeSystem/MonoDevelopWorkspace.cs +++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.TypeSystem/MonoDevelopWorkspace.cs @@ -1143,6 +1143,10 @@ namespace MonoDevelop.Ide.TypeSystem case ApplyChangesKind.AddDocument:
case ApplyChangesKind.RemoveDocument:
case ApplyChangesKind.ChangeDocument:
+ //HACK: we don't actually support adding and removing metadata references from project
+ //however, our MetadataReferenceCache currently depends on (incorrectly) using TryApplyChanges
+ case ApplyChangesKind.AddMetadataReference:
+ case ApplyChangesKind.RemoveMetadataReference:
return true;
default:
return false;
|