mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
disable Move statement up/down on strange case block selection (IDEA-CR-41973)
This commit is contained in:
+4
-2
@@ -25,17 +25,19 @@ public class CaseBlockMover extends LineMover {
|
||||
|
||||
final Document document = editor.getDocument();
|
||||
int startOffset = document.getLineStartOffset(info.toMove.startLine);
|
||||
int endOffset = document.getLineEndOffset(info.toMove.endLine);
|
||||
int endOffset = document.getLineStartOffset(info.toMove.endLine);
|
||||
List<PsiSwitchLabelStatement> statements = new SmartList<>();
|
||||
PsiElement firstElement = null;
|
||||
for (PsiElement element : CodeInsightUtil.findStatementsInRange(file, startOffset, endOffset)) {
|
||||
if (element instanceof PsiSwitchLabelStatement) {
|
||||
statements.add((PsiSwitchLabelStatement)element);
|
||||
}
|
||||
else if (statements.isEmpty()) {
|
||||
return false; // if first statement is not a label let the regular statement mover handle it.
|
||||
firstElement = element;
|
||||
}
|
||||
}
|
||||
if (statements.isEmpty()) return false;
|
||||
if (firstElement != null) return info.prohibitMove(); // nonsensical selection
|
||||
|
||||
PsiSwitchLabelStatement firstToMove = getThisCaseBlockStart(statements.get(0));
|
||||
PsiSwitchLabelStatement lastStatement = statements.get(statements.size() - 1);
|
||||
|
||||
Reference in New Issue
Block a user