diff --git a/python/src/com/jetbrains/python/formatter/PyBlock.java b/python/src/com/jetbrains/python/formatter/PyBlock.java index 5f9cd0d0f834..5519949e3f4b 100644 --- a/python/src/com/jetbrains/python/formatter/PyBlock.java +++ b/python/src/com/jetbrains/python/formatter/PyBlock.java @@ -53,7 +53,8 @@ public class PyBlock implements ASTBlock { PyElementTypes.TUPLE_EXPRESSION, PyElementTypes.PARENTHESIZED_EXPRESSION, PyElementTypes.SLICE_EXPRESSION, - PyElementTypes.SUBSCRIPTION_EXPRESSION); + PyElementTypes.SUBSCRIPTION_EXPRESSION, + PyElementTypes.GENERATOR_EXPRESSION); private static final TokenSet ourBrackets = TokenSet.create(PyTokenTypes.LPAR, PyTokenTypes.RPAR, PyTokenTypes.LBRACE, PyTokenTypes.RBRACE, diff --git a/python/testData/formatter/alignInGenerators.py b/python/testData/formatter/alignInGenerators.py new file mode 100644 index 000000000000..dfb98a3833ea --- /dev/null +++ b/python/testData/formatter/alignInGenerators.py @@ -0,0 +1,6 @@ +def supprice(): + if True: + if True: + agdrn = sum(VARS[drn + price] * md.c[drn][1] * md.c[drn][3] * + exp(md.c[drn][2] * VARS['SEEPAGE'] - md.c[drn][3] * pmp) + for drn in md.agdrn_nodes if drn in md.c) diff --git a/python/testData/formatter/alignInGenerators_after.py b/python/testData/formatter/alignInGenerators_after.py new file mode 100644 index 000000000000..921598625224 --- /dev/null +++ b/python/testData/formatter/alignInGenerators_after.py @@ -0,0 +1,6 @@ +def supprice(): + if True: + if True: + agdrn = sum(VARS[drn + price] * md.c[drn][1] * md.c[drn][3] * + exp(md.c[drn][2] * VARS['SEEPAGE'] - md.c[drn][3] * pmp) + for drn in md.agdrn_nodes if drn in md.c) diff --git a/python/testSrc/com/jetbrains/python/PyFormatterTest.java b/python/testSrc/com/jetbrains/python/PyFormatterTest.java index f17d0a2ecd63..7da411bbb1ea 100644 --- a/python/testSrc/com/jetbrains/python/PyFormatterTest.java +++ b/python/testSrc/com/jetbrains/python/PyFormatterTest.java @@ -260,6 +260,10 @@ public class PyFormatterTest extends PyTestCase { doTest(); } + public void testAlignInGenerators() { // PY-8822 + doTest(); + } + public void testContinuationIndentForCallInStatementPart() { // PY-8577 doTest(); }