Browse Source

fixed bugs in Extract Method

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/branches/3.0@3755 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
shortcuts
Siegfried Pammer 17 years ago
parent
commit
61a20439ea
  1. 1
      src/AddIns/Misc/SharpRefactoring/Src/CSharpMethodExtractor.cs
  2. 6
      src/AddIns/Misc/SharpRefactoring/Src/ExtractMethodCommand.cs
  3. 9
      src/AddIns/Misc/SharpRefactoring/Src/Forms/ExtractMethodForm.cs
  4. 4
      src/AddIns/Misc/SharpRefactoring/Src/MethodExtractorBase.cs

1
src/AddIns/Misc/SharpRefactoring/Src/CSharpMethodExtractor.cs

@ -125,7 +125,6 @@ namespace SharpRefactoring
otherReturnValues.Add(new VariableDeclaration(variable.Name, variable.Initializer, variable.TypeRef)); otherReturnValues.Add(new VariableDeclaration(variable.Name, variable.Initializer, variable.TypeRef));
} }
FindReferenceVisitor frv = new FindReferenceVisitor(true, variable.Name, start, end); FindReferenceVisitor frv = new FindReferenceVisitor(true, variable.Name, start, end);
parentNode.AcceptVisitor(frv, null); parentNode.AcceptVisitor(frv, null);

6
src/AddIns/Misc/SharpRefactoring/Src/ExtractMethodCommand.cs

@ -5,7 +5,6 @@
// <version>$Revision$</version> // <version>$Revision$</version>
// </file> // </file>
using ICSharpCode.TextEditor;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.IO; using System.IO;
@ -20,6 +19,7 @@ using ICSharpCode.SharpDevelop.Dom;
using ICSharpCode.SharpDevelop.Gui; using ICSharpCode.SharpDevelop.Gui;
using ICSharpCode.SharpDevelop.Project; using ICSharpCode.SharpDevelop.Project;
using ICSharpCode.SharpDevelop.Refactoring; using ICSharpCode.SharpDevelop.Refactoring;
using ICSharpCode.TextEditor;
using ICSharpCode.TextEditor.Document; using ICSharpCode.TextEditor.Document;
using SharpRefactoring.Forms; using SharpRefactoring.Forms;
using SharpRefactoring.Transformers; using SharpRefactoring.Transformers;
@ -54,11 +54,11 @@ namespace SharpRefactoring
MethodExtractorBase GetCurrentExtractor(TextEditorControl editor) MethodExtractorBase GetCurrentExtractor(TextEditorControl editor)
{ {
switch (ProjectService.CurrentProject.Language) { switch (LanguageBindingService.GetCodonPerCodeFileName(editor.FileName).Language) {
case "C#": case "C#":
return new CSharpMethodExtractor(editor, editor.ActiveTextAreaControl.SelectionManager.SelectionCollection[0]); return new CSharpMethodExtractor(editor, editor.ActiveTextAreaControl.SelectionManager.SelectionCollection[0]);
default: default:
MessageService.ShowError(string.Format(StringParser.Parse("${res:AddIns.SharpRefactoring.ExtractMethodNotSupported}"), ProjectService.CurrentProject.Language)); MessageService.ShowError(string.Format(StringParser.Parse("${res:AddIns.SharpRefactoring.ExtractMethodNotSupported}"), LanguageBindingService.GetCodonPerCodeFileName(editor.FileName).Language));
return null; return null;
} }
} }

9
src/AddIns/Misc/SharpRefactoring/Src/Forms/ExtractMethodForm.cs

@ -8,8 +8,11 @@
*/ */
using System; using System;
using System.Collections.Generic;
using System.Drawing; using System.Drawing;
using System.Linq;
using System.Windows.Forms; using System.Windows.Forms;
using ICSharpCode.Core; using ICSharpCode.Core;
namespace SharpRefactoring.Forms namespace SharpRefactoring.Forms
@ -54,9 +57,11 @@ namespace SharpRefactoring.Forms
string afterName = text.Substring(text.IndexOf('(')); string afterName = text.Substring(text.IndexOf('('));
string type = text.Split(' ')[0]; List<string> list = text.Split(' ').ToList();
list.RemoveAt(list.Count - 1);
this.txtPreview.Text = type + " " + this.txtName.Text + afterName; this.txtPreview.Text = string.Join(" ", list.ToArray()) + " " + this.txtName.Text + afterName;
} }
} }
} }

4
src/AddIns/Misc/SharpRefactoring/Src/MethodExtractorBase.cs

@ -64,7 +64,7 @@ namespace SharpRefactoring
Statement caller; Statement caller;
InvocationExpression expr = new InvocationExpression(new IdentifierExpression(method.Name), CreateArgumentExpressions(method.Parameters)); InvocationExpression expr = new InvocationExpression(new IdentifierExpression(method.Name), CreateArgumentExpressions(method.Parameters));
if (method.TypeReference.Type != "void") { if (method.TypeReference.Type != "System.Void") {
if (parent is MethodDeclaration) { if (parent is MethodDeclaration) {
if (method.TypeReference == (parent as MethodDeclaration).TypeReference) if (method.TypeReference == (parent as MethodDeclaration).TypeReference)
caller = new ReturnStatement(expr); caller = new ReturnStatement(expr);
@ -100,7 +100,7 @@ namespace SharpRefactoring
newMethod.Body.Children.Add(new ReturnStatement(new IdentifierExpression(possibleReturnValues[possibleReturnValues.Count - 1].Name))); newMethod.Body.Children.Add(new ReturnStatement(new IdentifierExpression(possibleReturnValues[possibleReturnValues.Count - 1].Name)));
this.returnedVariable = possibleReturnValues[possibleReturnValues.Count - 1]; this.returnedVariable = possibleReturnValues[possibleReturnValues.Count - 1];
} else { } else {
newMethod.TypeReference = new TypeReference("void"); newMethod.TypeReference = new TypeReference("System.Void", true);
this.returnedVariable = null; this.returnedVariable = null;
} }
} }

Loading…
Cancel
Save