|
From: <mir...@us...> - 2007-02-21 14:03:10
|
Revision: 1993
http://svn.sourceforge.net/rubyeclipse/?rev=1993&view=rev
Author: mirkostocker
Date: 2007-02-21 06:01:25 -0800 (Wed, 21 Feb 2007)
Log Message:
-----------
Only invoke rename class / local if the caretposition is on the name, not anywhere inside the body.
Modified Paths:
--------------
trunk/org.rubypeople.rdt.refactoring/src/org/rubypeople/rdt/refactoring/core/renameclass/RenameClassConditionChecker.java
trunk/org.rubypeople.rdt.refactoring/src/org/rubypeople/rdt/refactoring/core/renamelocalvariable/RenameConditionChecker.java
Modified: trunk/org.rubypeople.rdt.refactoring/src/org/rubypeople/rdt/refactoring/core/renameclass/RenameClassConditionChecker.java
===================================================================
--- trunk/org.rubypeople.rdt.refactoring/src/org/rubypeople/rdt/refactoring/core/renameclass/RenameClassConditionChecker.java 2007-02-21 13:13:01 UTC (rev 1992)
+++ trunk/org.rubypeople.rdt.refactoring/src/org/rubypeople/rdt/refactoring/core/renameclass/RenameClassConditionChecker.java 2007-02-21 14:01:25 UTC (rev 1993)
@@ -50,6 +50,11 @@
ClassNodeWrapper classNode = null;
try {
classNode = SelectionNodeProvider.getSelectedClassNode(config.getDocProvider().getRootNode(), config.getOffset());
+ int nameStart = ((ClassNode) classNode.getWrappedNode()).getCPath().getPosition().getStartOffset();
+ int nameEnd = ((ClassNode) classNode.getWrappedNode()).getCPath().getPosition().getEndOffset();
+ if(config.getOffset() < nameStart || config.getOffset() > nameEnd) {
+ return;
+ }
} catch (NoClassNodeException e) {return;}
config.setModulePrefix(classNode.getFirstPartialClassNode().getModulePrefix());
config.setSelectedNode((ClassNode) classNode.getFirstPartialClassNode().getWrappedNode());
Modified: trunk/org.rubypeople.rdt.refactoring/src/org/rubypeople/rdt/refactoring/core/renamelocalvariable/RenameConditionChecker.java
===================================================================
--- trunk/org.rubypeople.rdt.refactoring/src/org/rubypeople/rdt/refactoring/core/renamelocalvariable/RenameConditionChecker.java 2007-02-21 13:13:01 UTC (rev 1992)
+++ trunk/org.rubypeople.rdt.refactoring/src/org/rubypeople/rdt/refactoring/core/renamelocalvariable/RenameConditionChecker.java 2007-02-21 14:01:25 UTC (rev 1993)
@@ -31,6 +31,7 @@
import java.util.Collection;
import org.jruby.ast.ArgumentNode;
+import org.jruby.ast.AssignableNode;
import org.jruby.ast.BlockArgNode;
import org.jruby.ast.DAsgnNode;
import org.jruby.ast.DVarNode;
@@ -39,6 +40,7 @@
import org.jruby.ast.MethodDefNode;
import org.jruby.ast.Node;
import org.jruby.ast.RootNode;
+import org.jruby.ast.types.INameNode;
import org.rubypeople.rdt.refactoring.core.NodeProvider;
import org.rubypeople.rdt.refactoring.core.RefactoringConditionChecker;
import org.rubypeople.rdt.refactoring.core.SelectionNodeProvider;
@@ -68,6 +70,13 @@
config = (RenameConfig) configObj;
RootNode rootNode = config.getDocumentProvider().getRootNode();
Node selectedNode = SelectionNodeProvider.getSelectedNodeOfType(rootNode, config.getCaretPosition(), SELECTED_NODE_TYPES);
+ if(selectedNode instanceof AssignableNode) {
+ int start = selectedNode.getPosition().getStartOffset();
+ int end = start + ((INameNode) selectedNode).getName().length();
+ if(config.getCaretPosition() < start || config.getCaretPosition() > end) {
+ return;
+ }
+ }
config.setSelectedNode(selectedNode);
if(selectedNode == null) {
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|