From b5f0c2e3909476d9ea580b0c82a91cbd5647420c Mon Sep 17 00:00:00 2001 From: Dmitry Jemerov Date: Thu, 16 Jun 2011 12:46:16 +0200 Subject: [PATCH] couple of fixes needed to have rename work --- .../org/jetbrains/jet/lang/psi/JetNamedDeclaration.java | 6 ++++++ .../jetbrains/jet/lang/psi/JetSimpleNameExpression.java | 7 +++++++ 2 files changed, 13 insertions(+) diff --git a/idea/src/org/jetbrains/jet/lang/psi/JetNamedDeclaration.java b/idea/src/org/jetbrains/jet/lang/psi/JetNamedDeclaration.java index 9cf3319d8c3..d6a5caa149c 100644 --- a/idea/src/org/jetbrains/jet/lang/psi/JetNamedDeclaration.java +++ b/idea/src/org/jetbrains/jet/lang/psi/JetNamedDeclaration.java @@ -31,4 +31,10 @@ public abstract class JetNamedDeclaration extends JetDeclaration implements PsiN public PsiElement setName(@NonNls @NotNull String name) throws IncorrectOperationException { return getNameIdentifier().replace(JetChangeUtil.createNameIdentifier(getProject(), name)); } + + @Override + public int getTextOffset() { + PsiElement identifier = getNameIdentifier(); + return identifier != null ? identifier.getTextRange().getStartOffset() : getTextRange().getStartOffset(); + } } diff --git a/idea/src/org/jetbrains/jet/lang/psi/JetSimpleNameExpression.java b/idea/src/org/jetbrains/jet/lang/psi/JetSimpleNameExpression.java index 902e82f3380..f1c78d59f5d 100644 --- a/idea/src/org/jetbrains/jet/lang/psi/JetSimpleNameExpression.java +++ b/idea/src/org/jetbrains/jet/lang/psi/JetSimpleNameExpression.java @@ -11,6 +11,7 @@ import com.intellij.psi.PsiReference; import com.intellij.psi.tree.IElementType; import com.intellij.psi.tree.TokenSet; import com.intellij.util.Function; +import com.intellij.util.IncorrectOperationException; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.jetbrains.jet.lang.descriptors.*; @@ -106,6 +107,12 @@ public class JetSimpleNameExpression extends JetReferenceExpression { return EMPTY_ARRAY; } + + @Override + public PsiElement handleElementRename(String newElementName) throws IncorrectOperationException { + PsiElement element = JetChangeUtil.createNameIdentifier(getProject(), newElementName); + return getReferencedNameElement().replace(element); + } }; }