From 689947fd6fc73d334b0ddd2a96bd1feefb21d6bb Mon Sep 17 00:00:00 2001 From: Roman Shevchenko Date: Mon, 17 Jul 2017 20:48:52 +0200 Subject: [PATCH] [java] supports moving module statements up/down --- .../editorActions/moveUpDown/StatementMover.java | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/java/java-impl/src/com/intellij/codeInsight/editorActions/moveUpDown/StatementMover.java b/java/java-impl/src/com/intellij/codeInsight/editorActions/moveUpDown/StatementMover.java index 20c9e011ca41..2e727ded8a04 100644 --- a/java/java-impl/src/com/intellij/codeInsight/editorActions/moveUpDown/StatementMover.java +++ b/java/java-impl/src/com/intellij/codeInsight/editorActions/moveUpDown/StatementMover.java @@ -162,11 +162,11 @@ class StatementMover extends LineMover { boolean found = false; if ((element instanceof PsiStatement || element instanceof PsiComment) && statementCanBePlacedAlong(element)) { found = true; - if (!(element.getParent() instanceof PsiCodeBlock)) { + if (!(statementsCanBeMovedWithin(element.getParent()))) { elementToSurround = element; } } - else if (PsiUtil.isJavaToken(element, JavaTokenType.RBRACE) && element.getParent() instanceof PsiCodeBlock) { + else if (PsiUtil.isJavaToken(element, JavaTokenType.RBRACE) && statementsCanBeMovedWithin(element.getParent())) { // before code block closing brace found = true; } @@ -188,7 +188,7 @@ class StatementMover extends LineMover { } destLine += down ? 1 : -1; - if (destLine == 0 || destLine >= editor.getDocument().getLineCount()) { + if (destLine < 0 || destLine >= editor.getDocument().getLineCount()) { return false; } } @@ -203,7 +203,7 @@ class StatementMover extends LineMover { if (element instanceof PsiBlockStatement) return false; PsiElement parent = element.getParent(); if (parent instanceof JspClassLevelDeclarationStatement) return false; - if (parent instanceof PsiCodeBlock) return true; + if (statementsCanBeMovedWithin(parent)) return true; if (parent instanceof PsiIfStatement && (element == ((PsiIfStatement)parent).getThenBranch() || element == ((PsiIfStatement)parent).getElseBranch())) { return true; @@ -218,6 +218,10 @@ class StatementMover extends LineMover { return false; } + private static boolean statementsCanBeMovedWithin(PsiElement parent) { + return parent instanceof PsiCodeBlock || parent instanceof PsiJavaModule; + } + private static boolean checkMovingInsideOutside(PsiFile file, Editor editor, @NotNull MoveInfo info, boolean down) { int offset = editor.getCaretModel().getOffset();