Browse Source

Fixed SD2-470: When there is a using statement for the current namespace, classes are shown twice in Ctrl+Space

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@535 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
shortcuts
Daniel Grunwald 20 years ago
parent
commit
2ea9e7bfd5
  1. 19
      src/Main/Base/Project/Src/Dom/NRefactoryResolver/NRefactoryResolver.cs

19
src/Main/Base/Project/Src/Dom/NRefactoryResolver/NRefactoryResolver.cs

@ -959,15 +959,26 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver @@ -959,15 +959,26 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver
void AddImportedNamespaceContents(ArrayList result)
{
if (callingClass != null) {
result.AddRange(callingClass.GetAccessibleTypes(callingClass));
result.AddRange(projectContent.GetNamespaceContents(callingClass.Namespace));
}
projectContent.AddNamespaceContents(result, "", languageProperties, true);
foreach (IUsing u in cu.Usings) {
AddUsing(result, u);
}
AddUsing(result, projectContent.DefaultImports);
if (callingClass != null) {
IClass currentClass = callingClass;
do {
foreach (IClass innerClass in currentClass.GetAccessibleTypes(currentClass)) {
if (!result.Contains(innerClass))
result.Add(innerClass);
}
foreach (object member in projectContent.GetNamespaceContents(currentClass.Namespace)) {
if (!result.Contains(member))
result.Add(member);
}
currentClass = currentClass.DeclaringType;
} while (currentClass != null);
}
}
void AddUsing(ArrayList result, IUsing u)

Loading…
Cancel
Save