Browse Source

Fixed forum-17250: Refactor->Rename does not work on local variables, method parameters and constructor calls.

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/branches/2.1@2538 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
shortcuts
Daniel Grunwald 18 years ago
parent
commit
e11e1322bc
  1. 6
      src/Main/Base/Project/Src/Services/RefactoringService/LocalVariableRefactoring.cs
  2. 29
      src/Main/Base/Project/Src/Services/RefactoringService/RefactorMenu.cs

6
src/Main/Base/Project/Src/Services/RefactoringService/LocalVariableRefactoring.cs

@ -29,7 +29,11 @@ namespace ICSharpCode.SharpDevelop.Refactoring
{ {
public override void Run() public override void Run()
{ {
LocalResolveResult local = (LocalResolveResult)Owner; Run((LocalResolveResult)Owner);
}
public static void Run(LocalResolveResult local)
{
string newName = MessageService.ShowInputBox("${res:SharpDevelop.Refactoring.Rename}", "${res:SharpDevelop.Refactoring.RenameMemberText}", local.Field.Name); string newName = MessageService.ShowInputBox("${res:SharpDevelop.Refactoring.Rename}", "${res:SharpDevelop.Refactoring.RenameMemberText}", local.Field.Name);
if (!FindReferencesAndRenameHelper.CheckName(newName, local.Field.Name)) return; if (!FindReferencesAndRenameHelper.CheckName(newName, local.Field.Name)) return;

29
src/Main/Base/Project/Src/Services/RefactoringService/RefactorMenu.cs

@ -114,18 +114,13 @@ namespace ICSharpCode.SharpDevelop.Refactoring
ResolveResult rr = ResolveAtCaret(textEditor); ResolveResult rr = ResolveAtCaret(textEditor);
if (rr is MixedResolveResult) rr = (rr as MixedResolveResult).PrimaryResult; if (rr is MixedResolveResult) rr = (rr as MixedResolveResult).PrimaryResult;
if (rr is TypeResolveResult) { if (rr is TypeResolveResult) {
IClass c = (rr as TypeResolveResult).ResolvedClass; Rename((rr as TypeResolveResult).ResolvedClass);
if (c == null) {
ShowUnknownSymbolError();
} else if (c.CompilationUnit.FileName == null) {
ShowNoUserCodeError();
} else {
FindReferencesAndRenameHelper.RenameClass(c);
}
} else if (rr is MemberResolveResult) { } else if (rr is MemberResolveResult) {
Rename((rr as MemberResolveResult).ResolvedMember); Rename((rr as MemberResolveResult).ResolvedMember);
} else if (rr is MethodResolveResult) { } else if (rr is MethodResolveResult) {
Rename((rr as MethodResolveResult).GetMethodIfSingleOverload()); Rename((rr as MethodResolveResult).GetMethodIfSingleOverload());
} else if (rr is LocalResolveResult) {
RenameLocalVariableCommand.Run(rr as LocalResolveResult);
} else { } else {
ShowUnknownSymbolError(); ShowUnknownSymbolError();
} }
@ -147,7 +142,23 @@ namespace ICSharpCode.SharpDevelop.Refactoring
} else if (member.DeclaringType.CompilationUnit.FileName == null) { } else if (member.DeclaringType.CompilationUnit.FileName == null) {
ShowNoUserCodeError(); ShowNoUserCodeError();
} else { } else {
FindReferencesAndRenameHelper.RenameMember(member); IMethod method = member as IMethod;
if (method != null && method.IsConstructor) {
Rename(method.DeclaringType);
} else {
FindReferencesAndRenameHelper.RenameMember(member);
}
}
}
static void Rename(IClass c)
{
if (c == null) {
ShowUnknownSymbolError();
} else if (c.CompilationUnit.FileName == null) {
ShowNoUserCodeError();
} else {
FindReferencesAndRenameHelper.RenameClass(c);
} }
} }
} }

Loading…
Cancel
Save