diff --git a/python/src/com/jetbrains/python/codeInsight/editorActions/moveUpDown/StatementMover.java b/python/src/com/jetbrains/python/codeInsight/editorActions/moveUpDown/StatementMover.java index e115afe1616c..bfadbf105f69 100644 --- a/python/src/com/jetbrains/python/codeInsight/editorActions/moveUpDown/StatementMover.java +++ b/python/src/com/jetbrains/python/codeInsight/editorActions/moveUpDown/StatementMover.java @@ -203,7 +203,7 @@ public class StatementMover extends LineMover { if (tmp != null) { int start = editor.offsetToLogicalPosition(tmp.getParent().getTextRange().getStartOffset()).line; int end = editor.offsetToLogicalPosition(tmp.getParent().getTextRange().getEndOffset()).line; - if (start == end && start == info.toMove2.startLine) + if (start == info.toMove2.startLine && (start == end || tmp.getParent() instanceof PyClass || tmp.getParent() instanceof PyFunction)) element2 = tmp; else element2 = PyPsiUtils.getSignificantToTheLeft(element2, true); diff --git a/python/testData/mover/class.py b/python/testData/mover/class.py new file mode 100644 index 000000000000..cb726960546d --- /dev/null +++ b/python/testData/mover/class.py @@ -0,0 +1,7 @@ +if condition: + test1() + +class B(Exception): + b=1 +class C: + pass \ No newline at end of file diff --git a/python/testData/mover/class_afterDown.py b/python/testData/mover/class_afterDown.py new file mode 100644 index 000000000000..cb726960546d --- /dev/null +++ b/python/testData/mover/class_afterDown.py @@ -0,0 +1,7 @@ +if condition: + test1() + +class B(Exception): + b=1 +class C: + pass \ No newline at end of file diff --git a/python/testData/mover/class_afterUp.py b/python/testData/mover/class_afterUp.py new file mode 100644 index 000000000000..7864db22ba35 --- /dev/null +++ b/python/testData/mover/class_afterUp.py @@ -0,0 +1,7 @@ +if condition: + test1() + +class C: + pass +class B(Exception): + b=1 diff --git a/python/testSrc/com/jetbrains/python/PyStatementMoverTest.java b/python/testSrc/com/jetbrains/python/PyStatementMoverTest.java index 01a5cbe60a58..056510d08fee 100644 --- a/python/testSrc/com/jetbrains/python/PyStatementMoverTest.java +++ b/python/testSrc/com/jetbrains/python/PyStatementMoverTest.java @@ -103,4 +103,8 @@ public class PyStatementMoverTest extends PyTestCase { public void testNestedTry() { // PY-5192 doTest(); } + + public void testClass() { // PY-5196 + doTest(); + } }