diff options
author | Mike Krüger <mkrueger@xamarin.com> | 2011-11-17 02:46:44 +0400 |
---|---|---|
committer | Mike Krüger <mkrueger@xamarin.com> | 2011-11-17 19:16:27 +0400 |
commit | d179ed228f0da544cab5bc703db7c6800120a6f5 (patch) | |
tree | 1fce96bc8364c21f85ca1f63d33191ef34a5a09a /main/src/core | |
parent | f506d98b70de72ce2115baf5144861d0881442d9 (diff) |
Fixed 'Bug 2058 - Adding a project reference in MonoTouch fails to
create code completion for added project reference'.
Diffstat (limited to 'main/src/core')
2 files changed, 15 insertions, 30 deletions
diff --git a/main/src/core/MonoDevelop.Core/MonoDevelop.Projects.Dom.Parser/ProjectDomService.cs b/main/src/core/MonoDevelop.Core/MonoDevelop.Projects.Dom.Parser/ProjectDomService.cs index e92bf7171c..378dcbfbb0 100644 --- a/main/src/core/MonoDevelop.Core/MonoDevelop.Projects.Dom.Parser/ProjectDomService.cs +++ b/main/src/core/MonoDevelop.Core/MonoDevelop.Projects.Dom.Parser/ProjectDomService.cs @@ -416,11 +416,7 @@ namespace MonoDevelop.Projects.Dom.Parser string uri = "Project:" + project.FileName; if (UnrefDom (uri)) { - project.Modified -= HandleModified; - if (project is DotNetProject) { - ((DotNetProject)project).ReferenceAddedToProject -= OnProjectReferenceAdded; - ((DotNetProject)project).ReferenceRemovedFromProject -= OnProjectReferenceRemoved; - } + project.Modified -= HandleModified; } } @@ -444,10 +440,6 @@ namespace MonoDevelop.Projects.Dom.Parser ProjectDom db = ParserDatabase.LoadProjectDom (project); RegisterDom (db, uri); project.Modified += HandleModified; - if (project is DotNetProject) { - ((DotNetProject)project).ReferenceAddedToProject += OnProjectReferenceAdded; - ((DotNetProject)project).ReferenceRemovedFromProject += OnProjectReferenceRemoved; - } } catch (Exception ex) { LoggingService.LogError ("Parser database for project '" + project.Name + " could not be loaded", ex); } @@ -469,7 +461,7 @@ namespace MonoDevelop.Projects.Dom.Parser databases.Remove (pair.Key); string uri = "Project:" + project.FileName; pair.Value.Uri = uri; - databases[uri] = pair.Value; + databases [uri] = pair.Value; return; } } @@ -642,22 +634,6 @@ namespace MonoDevelop.Projects.Dom.Parser Unload ((Project) args.SolutionItem); } - static void OnProjectReferenceAdded (object sender, ProjectReferenceEventArgs args) - { - ProjectDom db = GetProjectDom (args.Project); - if (db != null) { - db.OnProjectReferenceAdded (args.ProjectReference); - } - } - - static void OnProjectReferenceRemoved (object sender, ProjectReferenceEventArgs args) - { - ProjectDom db = GetProjectDom (args.Project); - if (db != null) { - db.OnProjectReferenceRemoved (args.ProjectReference); - } - } - internal static int PendingJobCount { get { lock (parseQueueLock) { diff --git a/main/src/core/MonoDevelop.Core/MonoDevelop.Projects.Dom.Serialization/ProjectCodeCompletionDatabase.cs b/main/src/core/MonoDevelop.Core/MonoDevelop.Projects.Dom.Serialization/ProjectCodeCompletionDatabase.cs index 3d6f8c400a..c7cb9eb539 100644 --- a/main/src/core/MonoDevelop.Core/MonoDevelop.Projects.Dom.Serialization/ProjectCodeCompletionDatabase.cs +++ b/main/src/core/MonoDevelop.Core/MonoDevelop.Projects.Dom.Serialization/ProjectCodeCompletionDatabase.cs @@ -130,10 +130,19 @@ namespace MonoDevelop.Projects.Dom.Serialization void OnProjectModified (object s, SolutionItemModifiedEventArgs args) { - if (!args.Any (x => x is SolutionItemModifiedEventInfo && ((SolutionItemModifiedEventInfo)x).Hint == "TargetFramework")) - return; - if (UpdateFromProject ()) - SourceProjectDom.UpdateReferences (); + foreach (var a in args.OfType<SolutionItemModifiedEventInfo> ()) { + if (a.Hint == "TargetFramework") { + if (UpdateFromProject ()) { + SourceProjectDom.UpdateReferences (); + return; + } + } + if (a.Hint == "References") { + UpdateFromProject (); + SourceProjectDom.UpdateReferences (); + return; + } + } } internal static string GetReferenceUri (DotNetProject netProject, string file) |