Removed unnecessary EP, introduced Rename Handler for Python Magic Literals: fixing some tests

This commit is contained in:
Ilya.Kazakevich
2014-05-06 01:27:15 +04:00
parent e5930866f5
commit 161dd99cf0
6 changed files with 32 additions and 25 deletions
@@ -938,20 +938,4 @@ public abstract class UsefulTestCase extends TestCase {
}.process(test);
return testSuite;
}
protected void findHandlerAndDoRename(final String newName, Editor editor, Project project, PsiFile file) {
final DataContext editorContext = ((EditorEx)editor).getDataContext();
final DataContext context = new DataContext() {
@Override
public Object getData(@NonNls String dataId) {
return PsiElementRenameHandler.DEFAULT_NAME.getName().equals(dataId)
? newName
: editorContext.getData(dataId);
}
};
final RenameHandler renameHandler = RenameHandlerRegistry.getInstance().getRenameHandler(context);
assertNotNull(renameHandler);
renameHandler.invoke(project, editor, file, context);
}
}
@@ -492,6 +492,13 @@ public interface CodeInsightTestFixture extends IdeaProjectTestFixture {
void renameElementAtCaret(@NotNull String newName);
/**
* Renames element at caret using injected {@link com.intellij.refactoring.rename.RenameHandler}s.
* Very close to {@link #renameElementAtCaret(String)} but uses handlers.
* @param newName new name for the element.
*/
void renameElementAtCaretUsingHandler(@NotNull String newName);
void renameElement(@NotNull PsiElement element, @NotNull String newName);
void allowTreeAccessForFile(@NotNull VirtualFile file);
@@ -98,8 +98,7 @@ import com.intellij.psi.search.UsageSearchContext;
import com.intellij.psi.stubs.StubUpdatingIndex;
import com.intellij.psi.util.PsiTreeUtil;
import com.intellij.refactoring.move.moveFilesOrDirectories.MoveFilesOrDirectoriesProcessor;
import com.intellij.refactoring.rename.RenameProcessor;
import com.intellij.refactoring.rename.RenamePsiElementProcessor;
import com.intellij.refactoring.rename.*;
import com.intellij.rt.execution.junit.FileComparisonFailure;
import com.intellij.testFramework.*;
import com.intellij.testFramework.fixtures.*;
@@ -689,6 +688,23 @@ public class CodeInsightTestFixtureImpl extends BaseFixture implements CodeInsig
renameElement(getElementAtCaret(), newName);
}
@Override
public void renameElementAtCaretUsingHandler(@NotNull final String newName) {
final DataContext editorContext = ((EditorEx)myEditor).getDataContext();
final DataContext context = new DataContext() {
@Override
public Object getData(@NonNls final String dataId) {
return PsiElementRenameHandler.DEFAULT_NAME.getName().equals(dataId)
? newName
: editorContext.getData(dataId);
}
};
final RenameHandler renameHandler = RenameHandlerRegistry.getInstance().getRenameHandler(context);
assert renameHandler != null: "No handler for this context";
renameHandler.invoke(getProject(), myEditor, getFile(), context);
}
@Override
public void renameElement(@NotNull final PsiElement element, @NotNull final String newName) {
final boolean searchInComments = false;
@@ -1,9 +1,8 @@
package com.jetbrains.python.magicLiteral;
import com.intellij.openapi.extensions.ExtensionPointName;
import com.jetbrains.python.psi.PyStringLiteralExpression;
import com.jetbrains.python.psi.StringLiteralExpression;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
/**
* Any magic literal extension point should imlement this interface and be installed as extesnion point
@@ -21,7 +20,7 @@ public interface PyMagicLiteralExtensionPoint {
* @param element element to check
* @return true if magic.
*/
boolean isMagicLiteral(@NotNull PyStringLiteralExpression element);
boolean isMagicLiteral(@NotNull StringLiteralExpression element);
/**
@@ -25,6 +25,7 @@ import com.intellij.psi.util.PsiTreeUtil;
import com.intellij.refactoring.rename.RenameDialog;
import com.intellij.refactoring.rename.RenameHandler;
import com.jetbrains.python.psi.PyStringLiteralExpression;
import com.jetbrains.python.psi.StringLiteralExpression;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@@ -59,7 +60,7 @@ public class PyMagicLiteralRenameHandler implements RenameHandler {
if (element instanceof PyStringLiteralExpression) {
return element;
}
return PsiTreeUtil.getParentOfType(element, PyStringLiteralExpression.class);
return PsiTreeUtil.getParentOfType(element, StringLiteralExpression.class);
}
@Override
@@ -2,7 +2,7 @@ package com.jetbrains.python.magicLiteral;
import com.intellij.openapi.application.ApplicationManager;
import com.intellij.psi.PsiElement;
import com.jetbrains.python.psi.PyStringLiteralExpression;
import com.jetbrains.python.psi.StringLiteralExpression;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@@ -23,7 +23,7 @@ public final class PyMagicLiteralTools {
* @return true if magic
*/
public static boolean isMagicLiteral(@NotNull final PsiElement element) {
return (element instanceof PyStringLiteralExpression) && (getPoint((PyStringLiteralExpression)element) != null);
return (element instanceof StringLiteralExpression) && (getPoint((StringLiteralExpression)element) != null);
}
/**
@@ -33,7 +33,7 @@ public final class PyMagicLiteralTools {
* @return extension point (if any) or null if literal is unknown to all installed magic literal extesnion points
*/
@Nullable
public static PyMagicLiteralExtensionPoint getPoint(@NotNull final PyStringLiteralExpression element) {
public static PyMagicLiteralExtensionPoint getPoint(@NotNull final StringLiteralExpression element) {
final PyMagicLiteralExtensionPoint[] magicLiteralExtPoints =
ApplicationManager.getApplication().getExtensions(PyMagicLiteralExtensionPoint.EP_NAME);