Add file parameter to Transformer

This commit is contained in:
Alexey Sedunov
2013-06-07 15:40:12 +04:00
parent 857ba92996
commit 70b4fb48bc
9 changed files with 25 additions and 16 deletions
@@ -26,6 +26,7 @@ import com.intellij.util.IncorrectOperationException;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
import org.jetbrains.jet.lang.psi.JetElement; import org.jetbrains.jet.lang.psi.JetElement;
import org.jetbrains.jet.lang.psi.JetFile;
import org.jetbrains.jet.lang.psi.JetPsiUtil; import org.jetbrains.jet.lang.psi.JetPsiUtil;
import org.jetbrains.jet.plugin.JetBundle; import org.jetbrains.jet.plugin.JetBundle;
import org.jetbrains.jet.plugin.codeInsight.codeTransformations.branchedTransformations.core.Transformer; import org.jetbrains.jet.plugin.codeInsight.codeTransformations.branchedTransformations.core.Transformer;
@@ -63,6 +64,6 @@ public abstract class AbstractCodeTransformationIntention<T extends Transformer>
assert target != null : "Intention is not applicable"; assert target != null : "Intention is not applicable";
transformer.transform(target, editor); transformer.transform(target, editor, (JetFile) file);
} }
} }
@@ -19,6 +19,7 @@ package org.jetbrains.jet.plugin.codeInsight.codeTransformations.branchedTransfo
import com.intellij.openapi.editor.Editor; import com.intellij.openapi.editor.Editor;
import com.intellij.psi.PsiElement; import com.intellij.psi.PsiElement;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.jetbrains.jet.lang.psi.JetFile;
import org.jetbrains.jet.lang.psi.JetIfExpression; import org.jetbrains.jet.lang.psi.JetIfExpression;
import org.jetbrains.jet.lang.psi.JetWhenExpression; import org.jetbrains.jet.lang.psi.JetWhenExpression;
import org.jetbrains.jet.plugin.codeInsight.codeTransformations.branchedTransformations.core.Transformer; import org.jetbrains.jet.plugin.codeInsight.codeTransformations.branchedTransformations.core.Transformer;
@@ -26,31 +27,31 @@ import org.jetbrains.jet.plugin.codeInsight.codeTransformations.branchedTransfor
public enum FoldableKind implements Transformer { public enum FoldableKind implements Transformer {
IF_TO_ASSIGNMENT("fold.if.to.assignment") { IF_TO_ASSIGNMENT("fold.if.to.assignment") {
@Override @Override
public void transform(@NotNull PsiElement element, @NotNull Editor editor) { public void transform(@NotNull PsiElement element, @NotNull Editor editor, @NotNull JetFile file) {
BranchedFoldingUtils.foldIfExpressionWithAssignments((JetIfExpression) element); BranchedFoldingUtils.foldIfExpressionWithAssignments((JetIfExpression) element);
} }
}, },
IF_TO_RETURN("fold.if.to.return") { IF_TO_RETURN("fold.if.to.return") {
@Override @Override
public void transform(@NotNull PsiElement element, @NotNull Editor editor) { public void transform(@NotNull PsiElement element, @NotNull Editor editor, @NotNull JetFile file) {
BranchedFoldingUtils.foldIfExpressionWithReturns((JetIfExpression) element); BranchedFoldingUtils.foldIfExpressionWithReturns((JetIfExpression) element);
} }
}, },
IF_TO_RETURN_ASYMMETRICALLY("fold.if.to.return") { IF_TO_RETURN_ASYMMETRICALLY("fold.if.to.return") {
@Override @Override
public void transform(@NotNull PsiElement element, @NotNull Editor editor) { public void transform(@NotNull PsiElement element, @NotNull Editor editor, @NotNull JetFile file) {
BranchedFoldingUtils.foldIfExpressionWithAsymmetricReturns((JetIfExpression) element); BranchedFoldingUtils.foldIfExpressionWithAsymmetricReturns((JetIfExpression) element);
} }
}, },
WHEN_TO_ASSIGNMENT("fold.when.to.assignment") { WHEN_TO_ASSIGNMENT("fold.when.to.assignment") {
@Override @Override
public void transform(@NotNull PsiElement element, @NotNull Editor editor) { public void transform(@NotNull PsiElement element, @NotNull Editor editor, @NotNull JetFile file) {
BranchedFoldingUtils.foldWhenExpressionWithAssignments((JetWhenExpression) element); BranchedFoldingUtils.foldWhenExpressionWithAssignments((JetWhenExpression) element);
} }
}, },
WHEN_TO_RETURN("fold.when.to.return") { WHEN_TO_RETURN("fold.when.to.return") {
@Override @Override
public void transform(@NotNull PsiElement element, @NotNull Editor editor) { public void transform(@NotNull PsiElement element, @NotNull Editor editor, @NotNull JetFile file) {
BranchedFoldingUtils.foldWhenExpressionWithReturns((JetWhenExpression) element); BranchedFoldingUtils.foldWhenExpressionWithReturns((JetWhenExpression) element);
} }
}; };
@@ -20,31 +20,32 @@ import com.intellij.openapi.editor.Editor;
import com.intellij.psi.PsiElement; import com.intellij.psi.PsiElement;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.jetbrains.jet.lang.psi.JetBinaryExpression; import org.jetbrains.jet.lang.psi.JetBinaryExpression;
import org.jetbrains.jet.lang.psi.JetFile;
import org.jetbrains.jet.lang.psi.JetReturnExpression; import org.jetbrains.jet.lang.psi.JetReturnExpression;
import org.jetbrains.jet.plugin.codeInsight.codeTransformations.branchedTransformations.core.Transformer; import org.jetbrains.jet.plugin.codeInsight.codeTransformations.branchedTransformations.core.Transformer;
public enum UnfoldableKind implements Transformer { public enum UnfoldableKind implements Transformer {
ASSIGNMENT_TO_IF("unfold.assignment.to.if") { ASSIGNMENT_TO_IF("unfold.assignment.to.if") {
@Override @Override
public void transform(@NotNull PsiElement element, @NotNull Editor editor) { public void transform(@NotNull PsiElement element, @NotNull Editor editor, JetFile file) {
BranchedUnfoldingUtils.unfoldAssignmentToIf((JetBinaryExpression) element, editor); BranchedUnfoldingUtils.unfoldAssignmentToIf((JetBinaryExpression) element, editor);
} }
}, },
RETURN_TO_IF("unfold.return.to.if") { RETURN_TO_IF("unfold.return.to.if") {
@Override @Override
public void transform(@NotNull PsiElement element, @NotNull Editor editor) { public void transform(@NotNull PsiElement element, @NotNull Editor editor, JetFile file) {
BranchedUnfoldingUtils.unfoldReturnToIf((JetReturnExpression) element); BranchedUnfoldingUtils.unfoldReturnToIf((JetReturnExpression) element);
} }
}, },
ASSIGNMENT_TO_WHEN("unfold.assignment.to.when") { ASSIGNMENT_TO_WHEN("unfold.assignment.to.when") {
@Override @Override
public void transform(@NotNull PsiElement element, @NotNull Editor editor) { public void transform(@NotNull PsiElement element, @NotNull Editor editor, JetFile file) {
BranchedUnfoldingUtils.unfoldAssignmentToWhen((JetBinaryExpression) element, editor); BranchedUnfoldingUtils.unfoldAssignmentToWhen((JetBinaryExpression) element, editor);
} }
}, },
RETURN_TO_WHEN("unfold.return.to.when") { RETURN_TO_WHEN("unfold.return.to.when") {
@Override @Override
public void transform(@NotNull PsiElement element, @NotNull Editor editor) { public void transform(@NotNull PsiElement element, @NotNull Editor editor, JetFile file) {
BranchedUnfoldingUtils.unfoldReturnToWhen((JetReturnExpression) element); BranchedUnfoldingUtils.unfoldReturnToWhen((JetReturnExpression) element);
} }
}; };
@@ -19,9 +19,10 @@ package org.jetbrains.jet.plugin.codeInsight.codeTransformations.branchedTransfo
import com.intellij.openapi.editor.Editor; import com.intellij.openapi.editor.Editor;
import com.intellij.psi.PsiElement; import com.intellij.psi.PsiElement;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.jetbrains.jet.lang.psi.JetFile;
public interface Transformer { public interface Transformer {
@NotNull @NotNull
String getKey(); String getKey();
void transform(@NotNull PsiElement element, @NotNull Editor editor); void transform(@NotNull PsiElement element, @NotNull Editor editor, @NotNull JetFile file);
} }
@@ -5,6 +5,7 @@ import com.intellij.openapi.editor.Editor;
import com.intellij.psi.PsiElement; import com.intellij.psi.PsiElement;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
import org.jetbrains.jet.lang.psi.JetFile;
import org.jetbrains.jet.lang.psi.JetWhenExpression; import org.jetbrains.jet.lang.psi.JetWhenExpression;
import org.jetbrains.jet.plugin.codeInsight.codeTransformations.branchedTransformations.AbstractCodeTransformationIntention; import org.jetbrains.jet.plugin.codeInsight.codeTransformations.branchedTransformations.AbstractCodeTransformationIntention;
import org.jetbrains.jet.plugin.codeInsight.codeTransformations.branchedTransformations.WhenUtils; import org.jetbrains.jet.plugin.codeInsight.codeTransformations.branchedTransformations.WhenUtils;
@@ -19,7 +20,7 @@ public class EliminateWhenSubjectIntention extends AbstractCodeTransformationInt
} }
@Override @Override
public void transform(@NotNull PsiElement element, @NotNull Editor editor) { public void transform(@NotNull PsiElement element, @NotNull Editor editor, @NotNull JetFile file) {
WhenUtils.eliminateWhenSubject((JetWhenExpression) element); WhenUtils.eliminateWhenSubject((JetWhenExpression) element);
} }
}; };
@@ -5,6 +5,7 @@ import com.intellij.openapi.editor.Editor;
import com.intellij.psi.PsiElement; import com.intellij.psi.PsiElement;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
import org.jetbrains.jet.lang.psi.JetFile;
import org.jetbrains.jet.lang.psi.JetWhenExpression; import org.jetbrains.jet.lang.psi.JetWhenExpression;
import org.jetbrains.jet.plugin.codeInsight.codeTransformations.branchedTransformations.AbstractCodeTransformationIntention; import org.jetbrains.jet.plugin.codeInsight.codeTransformations.branchedTransformations.AbstractCodeTransformationIntention;
import org.jetbrains.jet.plugin.codeInsight.codeTransformations.branchedTransformations.WhenUtils; import org.jetbrains.jet.plugin.codeInsight.codeTransformations.branchedTransformations.WhenUtils;
@@ -19,7 +20,7 @@ public class FlattenWhenIntention extends AbstractCodeTransformationIntention<Tr
} }
@Override @Override
public void transform(@NotNull PsiElement element, @NotNull Editor editor) { public void transform(@NotNull PsiElement element, @NotNull Editor editor, @NotNull JetFile file) {
WhenUtils.flattenWhen((JetWhenExpression) element); WhenUtils.flattenWhen((JetWhenExpression) element);
} }
}; };
@@ -5,6 +5,7 @@ import com.intellij.openapi.editor.Editor;
import com.intellij.psi.PsiElement; import com.intellij.psi.PsiElement;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
import org.jetbrains.jet.lang.psi.JetFile;
import org.jetbrains.jet.lang.psi.JetIfExpression; import org.jetbrains.jet.lang.psi.JetIfExpression;
import org.jetbrains.jet.plugin.codeInsight.codeTransformations.branchedTransformations.AbstractCodeTransformationIntention; import org.jetbrains.jet.plugin.codeInsight.codeTransformations.branchedTransformations.AbstractCodeTransformationIntention;
import org.jetbrains.jet.plugin.codeInsight.codeTransformations.branchedTransformations.IfWhenUtils; import org.jetbrains.jet.plugin.codeInsight.codeTransformations.branchedTransformations.IfWhenUtils;
@@ -19,7 +20,7 @@ public class IfToWhenIntention extends AbstractCodeTransformationIntention<Trans
} }
@Override @Override
public void transform(@NotNull PsiElement element, @NotNull Editor editor) { public void transform(@NotNull PsiElement element, @NotNull Editor editor, @NotNull JetFile file) {
IfWhenUtils.transformIfToWhen((JetIfExpression) element); IfWhenUtils.transformIfToWhen((JetIfExpression) element);
} }
}; };
@@ -5,6 +5,7 @@ import com.intellij.openapi.editor.Editor;
import com.intellij.psi.PsiElement; import com.intellij.psi.PsiElement;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
import org.jetbrains.jet.lang.psi.JetFile;
import org.jetbrains.jet.lang.psi.JetWhenExpression; import org.jetbrains.jet.lang.psi.JetWhenExpression;
import org.jetbrains.jet.plugin.codeInsight.codeTransformations.branchedTransformations.AbstractCodeTransformationIntention; import org.jetbrains.jet.plugin.codeInsight.codeTransformations.branchedTransformations.AbstractCodeTransformationIntention;
import org.jetbrains.jet.plugin.codeInsight.codeTransformations.branchedTransformations.WhenUtils; import org.jetbrains.jet.plugin.codeInsight.codeTransformations.branchedTransformations.WhenUtils;
@@ -19,7 +20,7 @@ public class IntroduceWhenSubjectIntention extends AbstractCodeTransformationInt
} }
@Override @Override
public void transform(@NotNull PsiElement element, @NotNull Editor editor) { public void transform(@NotNull PsiElement element, @NotNull Editor editor, @NotNull JetFile file) {
WhenUtils.introduceWhenSubject((JetWhenExpression) element); WhenUtils.introduceWhenSubject((JetWhenExpression) element);
} }
}; };
@@ -21,6 +21,7 @@ import com.intellij.openapi.editor.Editor;
import com.intellij.psi.PsiElement; import com.intellij.psi.PsiElement;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
import org.jetbrains.jet.lang.psi.JetFile;
import org.jetbrains.jet.lang.psi.JetWhenExpression; import org.jetbrains.jet.lang.psi.JetWhenExpression;
import org.jetbrains.jet.plugin.codeInsight.codeTransformations.branchedTransformations.AbstractCodeTransformationIntention; import org.jetbrains.jet.plugin.codeInsight.codeTransformations.branchedTransformations.AbstractCodeTransformationIntention;
import org.jetbrains.jet.plugin.codeInsight.codeTransformations.branchedTransformations.IfWhenUtils; import org.jetbrains.jet.plugin.codeInsight.codeTransformations.branchedTransformations.IfWhenUtils;
@@ -35,7 +36,7 @@ public class WhenToIfIntention extends AbstractCodeTransformationIntention<Trans
} }
@Override @Override
public void transform(@NotNull PsiElement element, @NotNull Editor editor) { public void transform(@NotNull PsiElement element, @NotNull Editor editor, @NotNull JetFile file) {
IfWhenUtils.transformWhenToIf((JetWhenExpression) element); IfWhenUtils.transformWhenToIf((JetWhenExpression) element);
} }
}; };