Allow to move Kotlin file if it contains single top-level class/object
This commit is contained in:
+12
-5
@@ -42,14 +42,21 @@ public class KotlinMoveFilesOrDirectoriesHandler extends MoveFilesOrDirectoriesH
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean canMove(PsiElement[] elements, @Nullable PsiElement targetContainer) {
|
public boolean canMove(PsiElement[] elements, @Nullable PsiElement targetContainer) {
|
||||||
|
ArrayList<PsiElement> adjustedElements = new ArrayList<PsiElement>();
|
||||||
for (PsiElement element : elements) {
|
for (PsiElement element : elements) {
|
||||||
if (!(element instanceof PsiFile) && !(element instanceof PsiDirectory) &&
|
if (element instanceof PsiFile || element instanceof PsiDirectory) {
|
||||||
(!(element instanceof JetClassOrObject) ||
|
adjustedElements.add(element);
|
||||||
!isMovableClass((JetClassOrObject) element))) {
|
continue;
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (element instanceof JetClassOrObject && element.getParent() instanceof JetFile) {
|
||||||
|
adjustedElements.add(element.getParent());
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
return super.canMove(elements, targetContainer);
|
return super.canMove(adjustedElements.toArray(new PsiElement[adjustedElements.size()]), targetContainer);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
Reference in New Issue
Block a user