Browse Source

added ICompilationUnit to RefactoringMenuContext to avoid using rr.CallingClass.CompilationUnit

pull/1/head
Siegfried Pammer 15 years ago
parent
commit
7242359a5a
  1. 5
      src/AddIns/Misc/SharpRefactoring/Project/Src/MenuItemFactories/ResolveExtensionMethod.cs
  2. 9
      src/Main/Base/Project/Src/Services/RefactoringService/RefactoringMenuBuilder.cs

5
src/AddIns/Misc/SharpRefactoring/Project/Src/MenuItemFactories/ResolveExtensionMethod.cs

@ -33,9 +33,6 @@ namespace SharpRefactoring @@ -33,9 +33,6 @@ namespace SharpRefactoring
UnknownMethodResolveResult rr = context.ResolveResult as UnknownMethodResolveResult;
if (rr.CallingClass == null)
return null;
MenuItem item = new MenuItem() {
Header = string.Format(StringParser.Parse("${res:AddIns.SharpRefactoring.ResolveExtensionMethod}"), rr.CallName),
Icon = ClassBrowserIconService.GotoArrow.CreateImage()
@ -58,7 +55,7 @@ namespace SharpRefactoring @@ -58,7 +55,7 @@ namespace SharpRefactoring
subItem.Icon = ClassBrowserIconService.Namespace.CreateImage();
item.Items.Add(subItem);
subItem.Click += delegate {
NamespaceRefactoringService.AddUsingDeclaration(rr.CallingClass.CompilationUnit, context.Editor.Document, newNamespace, true);
NamespaceRefactoringService.AddUsingDeclaration(context.CompilationUnit, context.Editor.Document, newNamespace, true);
ParserService.BeginParse(context.Editor.FileName, context.Editor.Document);
};
}

9
src/Main/Base/Project/Src/Services/RefactoringService/RefactoringMenuBuilder.cs

@ -38,15 +38,20 @@ namespace ICSharpCode.SharpDevelop.Refactoring @@ -38,15 +38,20 @@ namespace ICSharpCode.SharpDevelop.Refactoring
public readonly ExpressionResult ExpressionResult;
public readonly ResolveResult ResolveResult;
public readonly bool IsDefinition;
/// <remarks>Can be null.</remarks>
public readonly IProjectContent ProjectContent;
public readonly ICompilationUnit CompilationUnit;
public RefactoringMenuContext(ITextEditor editor, ExpressionResult expressionResult, ResolveResult resolveResult, bool isDefinition, IProjectContent projectContent)
public RefactoringMenuContext(ITextEditor editor, ExpressionResult expressionResult,
ResolveResult resolveResult, bool isDefinition,
IProjectContent projectContent, ICompilationUnit compilationUnit)
{
this.Editor = editor;
this.ExpressionResult = expressionResult;
this.ResolveResult = resolveResult;
this.IsDefinition = isDefinition;
this.ProjectContent = projectContent;
this.CompilationUnit = compilationUnit;
}
}
@ -116,7 +121,7 @@ namespace ICSharpCode.SharpDevelop.Refactoring @@ -116,7 +121,7 @@ namespace ICSharpCode.SharpDevelop.Refactoring
IProjectContent pc = null;
if (pi != null)
pc = pi.CompilationUnit.ProjectContent;
RefactoringMenuContext context = new RefactoringMenuContext(textEditor, expressionResult, rr, isDefinition, pc);
RefactoringMenuContext context = new RefactoringMenuContext(textEditor, expressionResult, rr, isDefinition, pc, pi.CompilationUnit);
item = MakeItem((LocalResolveResult)rr, context);
insertIndex = 0; // Insert local variable menu item at the topmost position.
}

Loading…
Cancel
Save