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:
authorMike Krüger <mkrueger@xamarin.com>2011-11-17 02:46:44 +0400
committerMike Krüger <mkrueger@xamarin.com>2011-11-17 19:16:27 +0400
commitd179ed228f0da544cab5bc703db7c6800120a6f5 (patch)
tree1fce96bc8364c21f85ca1f63d33191ef34a5a09a /main/src/core
parentf506d98b70de72ce2115baf5144861d0881442d9 (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')
-rw-r--r--main/src/core/MonoDevelop.Core/MonoDevelop.Projects.Dom.Parser/ProjectDomService.cs28
-rw-r--r--main/src/core/MonoDevelop.Core/MonoDevelop.Projects.Dom.Serialization/ProjectCodeCompletionDatabase.cs17
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)