Browse Source

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

pull/1/head
Siegfried Pammer 16 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
UnknownMethodResolveResult rr = context.ResolveResult as UnknownMethodResolveResult; UnknownMethodResolveResult rr = context.ResolveResult as UnknownMethodResolveResult;
if (rr.CallingClass == null)
return null;
MenuItem item = new MenuItem() { MenuItem item = new MenuItem() {
Header = string.Format(StringParser.Parse("${res:AddIns.SharpRefactoring.ResolveExtensionMethod}"), rr.CallName), Header = string.Format(StringParser.Parse("${res:AddIns.SharpRefactoring.ResolveExtensionMethod}"), rr.CallName),
Icon = ClassBrowserIconService.GotoArrow.CreateImage() Icon = ClassBrowserIconService.GotoArrow.CreateImage()
@ -58,7 +55,7 @@ namespace SharpRefactoring
subItem.Icon = ClassBrowserIconService.Namespace.CreateImage(); subItem.Icon = ClassBrowserIconService.Namespace.CreateImage();
item.Items.Add(subItem); item.Items.Add(subItem);
subItem.Click += delegate { 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); 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
public readonly ExpressionResult ExpressionResult; public readonly ExpressionResult ExpressionResult;
public readonly ResolveResult ResolveResult; public readonly ResolveResult ResolveResult;
public readonly bool IsDefinition; public readonly bool IsDefinition;
/// <remarks>Can be null.</remarks>
public readonly IProjectContent ProjectContent; 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.Editor = editor;
this.ExpressionResult = expressionResult; this.ExpressionResult = expressionResult;
this.ResolveResult = resolveResult; this.ResolveResult = resolveResult;
this.IsDefinition = isDefinition; this.IsDefinition = isDefinition;
this.ProjectContent = projectContent; this.ProjectContent = projectContent;
this.CompilationUnit = compilationUnit;
} }
} }
@ -116,7 +121,7 @@ namespace ICSharpCode.SharpDevelop.Refactoring
IProjectContent pc = null; IProjectContent pc = null;
if (pi != null) if (pi != null)
pc = pi.CompilationUnit.ProjectContent; 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); item = MakeItem((LocalResolveResult)rr, context);
insertIndex = 0; // Insert local variable menu item at the topmost position. insertIndex = 0; // Insert local variable menu item at the topmost position.
} }

Loading…
Cancel
Save