Browse Source

Fixed code-completion bug (NullReferenceException) introduced in rev. 1661

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@1666 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
shortcuts
Daniel Grunwald 19 years ago
parent
commit
f22e89b7d1
  1. 4
      src/Main/Base/Project/Src/Services/ParserService/DomHostCallback.cs
  2. 8
      src/Main/Base/Test/NRefactoryResolverTests.cs
  3. 2
      src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/ClassFinder.cs
  4. 7
      src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/HostCallback.cs
  5. 2
      src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/ProjectContent/DefaultProjectContent.cs
  6. 13
      src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/ProjectContent/ProjectContentRegistry.cs

4
src/Main/Base/Project/Src/Services/ParserService/DomHostCallback.cs

@ -23,6 +23,10 @@ namespace ICSharpCode.SharpDevelop @@ -23,6 +23,10 @@ namespace ICSharpCode.SharpDevelop
HostCallback.RenameMember = Refactoring.FindReferencesAndRenameHelper.RenameMember;
HostCallback.ShowMessage = MessageService.ShowMessage;
HostCallback.GetCurrentProjectContent = delegate {
return ParserService.CurrentProjectContent;
};
HostCallback.ShowError = delegate(string message, Exception ex) {
MessageService.ShowError(ex, message);
};

8
src/Main/Base/Test/NRefactoryResolverTests.cs

@ -29,7 +29,9 @@ namespace ICSharpCode.SharpDevelop.Tests @@ -29,7 +29,9 @@ namespace ICSharpCode.SharpDevelop.Tests
DefaultProjectContent pc = new DefaultProjectContent();
pc.ReferencedContents.Add(ProjectContentRegistry.Mscorlib);
pc.ReferencedContents.Add(ProjectContentRegistry.GetProjectContentForReference("System.Windows.Forms", "System.Windows.Forms"));
ProjectContentRegistry.CurrentProjectContent = pc;
HostCallback.GetCurrentProjectContent = delegate {
return pc;
};
lastPC = pc;
NRefactoryASTConvertVisitor visitor = new NRefactoryASTConvertVisitor(pc);
visitor.VisitCompilationUnit(p.CompilationUnit, null);
@ -50,7 +52,9 @@ namespace ICSharpCode.SharpDevelop.Tests @@ -50,7 +52,9 @@ namespace ICSharpCode.SharpDevelop.Tests
p.ParseMethodBodies = false;
p.Parse();
DefaultProjectContent pc = new DefaultProjectContent();
ProjectContentRegistry.CurrentProjectContent = pc;
HostCallback.GetCurrentProjectContent = delegate {
return pc;
};
pc.ReferencedContents.Add(ProjectContentRegistry.Mscorlib);
pc.ReferencedContents.Add(ProjectContentRegistry.GetProjectContentForReference("System.Windows.Forms", "System.Windows.Forms"));
pc.Language = LanguageProperties.VBNet;

2
src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/ClassFinder.cs

@ -78,7 +78,7 @@ namespace ICSharpCode.SharpDevelop.Dom @@ -78,7 +78,7 @@ namespace ICSharpCode.SharpDevelop.Dom
callingClass = cu.GetInnermostClass(caretLine, caretColumn);
projectContent = cu.ProjectContent;
} else {
projectContent = ProjectContentRegistry.CurrentProjectContent;
projectContent = HostCallback.GetCurrentProjectContent();
}
if (projectContent == null)
throw new ArgumentException("projectContent not found!");

7
src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/HostCallback.cs

@ -33,6 +33,13 @@ namespace ICSharpCode.SharpDevelop.Dom @@ -33,6 +33,13 @@ namespace ICSharpCode.SharpDevelop.Dom
throw new NotImplementedException("GetParseInformation was not implemented by the host.");
};
/// <summary>
/// Get the current project content.
/// </summary>
public static Func<IProjectContent> GetCurrentProjectContent = delegate {
throw new NotImplementedException("GetCurrentProjectContent was not implemented by the host.");
};
/// <summary>
/// Rename the member (first argument) to the new name (second argument).
/// Returns true on success, false on failure.

2
src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/ProjectContent/DefaultProjectContent.cs

@ -921,7 +921,7 @@ namespace ICSharpCode.SharpDevelop.Dom @@ -921,7 +921,7 @@ namespace ICSharpCode.SharpDevelop.Dom
public override SystemTypes SystemTypes {
get {
return ProjectContentRegistry.CurrentProjectContent.SystemTypes;
return HostCallback.GetCurrentProjectContent().SystemTypes;
}
}
}

13
src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/ProjectContent/ProjectContentRegistry.cs

@ -30,19 +30,6 @@ namespace ICSharpCode.SharpDevelop.Dom @@ -30,19 +30,6 @@ namespace ICSharpCode.SharpDevelop.Dom
}
}
static IProjectContent currentProjectContent;
public static IProjectContent CurrentProjectContent {
get {
return currentProjectContent;
}
set {
if (value == null)
throw new ArgumentNullException("value");
currentProjectContent = value;
}
}
public static IProjectContent Mscorlib {
get {
if (mscorlibContent != null) return mscorlibContent;

Loading…
Cancel
Save