From e11e1322bc26030a587cc41d8efaf2b29b30c366 Mon Sep 17 00:00:00 2001 From: Daniel Grunwald Date: Tue, 5 Jun 2007 11:45:24 +0000 Subject: [PATCH] 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 --- .../LocalVariableRefactoring.cs | 6 +++- .../RefactoringService/RefactorMenu.cs | 29 +++++++++++++------ 2 files changed, 25 insertions(+), 10 deletions(-) diff --git a/src/Main/Base/Project/Src/Services/RefactoringService/LocalVariableRefactoring.cs b/src/Main/Base/Project/Src/Services/RefactoringService/LocalVariableRefactoring.cs index 8dfeb823d8..de826c869d 100644 --- a/src/Main/Base/Project/Src/Services/RefactoringService/LocalVariableRefactoring.cs +++ b/src/Main/Base/Project/Src/Services/RefactoringService/LocalVariableRefactoring.cs @@ -29,7 +29,11 @@ namespace ICSharpCode.SharpDevelop.Refactoring { 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); if (!FindReferencesAndRenameHelper.CheckName(newName, local.Field.Name)) return; diff --git a/src/Main/Base/Project/Src/Services/RefactoringService/RefactorMenu.cs b/src/Main/Base/Project/Src/Services/RefactoringService/RefactorMenu.cs index 334e657336..b9c165f003 100644 --- a/src/Main/Base/Project/Src/Services/RefactoringService/RefactorMenu.cs +++ b/src/Main/Base/Project/Src/Services/RefactoringService/RefactorMenu.cs @@ -114,18 +114,13 @@ namespace ICSharpCode.SharpDevelop.Refactoring ResolveResult rr = ResolveAtCaret(textEditor); if (rr is MixedResolveResult) rr = (rr as MixedResolveResult).PrimaryResult; if (rr is TypeResolveResult) { - IClass c = (rr as TypeResolveResult).ResolvedClass; - if (c == null) { - ShowUnknownSymbolError(); - } else if (c.CompilationUnit.FileName == null) { - ShowNoUserCodeError(); - } else { - FindReferencesAndRenameHelper.RenameClass(c); - } + Rename((rr as TypeResolveResult).ResolvedClass); } else if (rr is MemberResolveResult) { Rename((rr as MemberResolveResult).ResolvedMember); } else if (rr is MethodResolveResult) { Rename((rr as MethodResolveResult).GetMethodIfSingleOverload()); + } else if (rr is LocalResolveResult) { + RenameLocalVariableCommand.Run(rr as LocalResolveResult); } else { ShowUnknownSymbolError(); } @@ -147,7 +142,23 @@ namespace ICSharpCode.SharpDevelop.Refactoring } else if (member.DeclaringType.CompilationUnit.FileName == null) { ShowNoUserCodeError(); } 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); } } }