Browse Source

changed usage of RefactoringMenuContext

pull/1/head
Siegfried Pammer 16 years ago
parent
commit
7dc9284d39
  1. 21
      src/Main/Base/Project/Src/Services/RefactoringService/RefactoringMenuBuilder.cs

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

@ -89,13 +89,8 @@ namespace ICSharpCode.SharpDevelop.Refactoring
void AddTopLevelItems(List<object> resultItems, ITextEditor textEditor, ExpressionResult expressionResult, List<string> definitions, bool addAsSubmenu) void AddTopLevelItems(List<object> resultItems, ITextEditor textEditor, ExpressionResult expressionResult, List<string> definitions, bool addAsSubmenu)
{ {
// Insert items at this position to get the outermost expression first, followed by the inner expressions (if any). // Insert items at this position to get the outermost expression first, followed by the inner expressions (if any).
int insertIndex = resultItems.Count; int insertIndex = resultItems.Count;
ResolveResult rr = ResolveExpressionAtCaret(textEditor, expressionResult); ResolveResult rr = ResolveExpressionAtCaret(textEditor, expressionResult);
RefactoringMenuContext context = new RefactoringMenuContext {
Editor = textEditor,
ResolveResult = rr,
ExpressionResult = expressionResult
};
MenuItem item = null; MenuItem item = null;
if (rr is MethodGroupResolveResult) { if (rr is MethodGroupResolveResult) {
@ -116,8 +111,12 @@ namespace ICSharpCode.SharpDevelop.Refactoring
} else if (rr is TypeResolveResult) { } else if (rr is TypeResolveResult) {
item = MakeItem(definitions, ((TypeResolveResult)rr).ResolvedClass); item = MakeItem(definitions, ((TypeResolveResult)rr).ResolvedClass);
} else if (rr is LocalResolveResult) { } else if (rr is LocalResolveResult) {
int caretLine = textEditor.Caret.Line; bool isDefinition = textEditor.Caret.Line == ((LocalResolveResult)rr).VariableDefinitionRegion.BeginLine;
context.IsDefinition = caretLine == ((LocalResolveResult)rr).VariableDefinitionRegion.BeginLine; ParseInformation pi = ParserService.GetParseInformation(textEditor.FileName);
IProjectContent pc = null;
if (pi != null)
pc = pi.CompilationUnit.ProjectContent;
RefactoringMenuContext context = new RefactoringMenuContext(textEditor, expressionResult, rr, isDefinition, pc);
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.
} }
@ -183,9 +182,9 @@ namespace ICSharpCode.SharpDevelop.Refactoring
{ {
Debug.Assert(local == context.ResolveResult); Debug.Assert(local == context.ResolveResult);
MenuItem item = MakeItemWithGoToDefinition(local.VariableName, MenuItem item = MakeItemWithGoToDefinition(local.VariableName,
local.IsParameter ? ClassBrowserIconService.Parameter : ClassBrowserIconService.LocalVariable, local.IsParameter ? ClassBrowserIconService.Parameter : ClassBrowserIconService.LocalVariable,
local.CallingClass.CompilationUnit, local.CallingClass.CompilationUnit,
context.IsDefinition ? DomRegion.Empty : local.VariableDefinitionRegion); context.IsDefinition ? DomRegion.Empty : local.VariableDefinitionRegion);
string treePath = "/SharpDevelop/ViewContent/DefaultTextEditor/Refactoring/"; string treePath = "/SharpDevelop/ViewContent/DefaultTextEditor/Refactoring/";
treePath += local.IsParameter ? "Parameter" : "LocalVariable"; treePath += local.IsParameter ? "Parameter" : "LocalVariable";
if (context.IsDefinition) treePath += "Definition"; if (context.IsDefinition) treePath += "Definition";

Loading…
Cancel
Save