diff --git a/python/src/com/jetbrains/python/formatter/PyBlock.java b/python/src/com/jetbrains/python/formatter/PyBlock.java index d675a85f9270..5290f5598b3d 100644 --- a/python/src/com/jetbrains/python/formatter/PyBlock.java +++ b/python/src/com/jetbrains/python/formatter/PyBlock.java @@ -381,6 +381,9 @@ public class PyBlock implements ASTBlock { if (type2 == PyElementTypes.ARGUMENT_LIST) { return getSpacingForOption(mySettings.SPACE_BEFORE_METHOD_CALL_PARENTHESES); } + if (type2 == PyElementTypes.PARAMETER_LIST) { + return getSpacingForOption(mySettings.SPACE_BEFORE_METHOD_PARENTHESES); + } if (type1 == PyTokenTypes.EQ || type2 == PyTokenTypes.EQ) { if (parentType == PyElementTypes.ASSIGNMENT_STATEMENT) { diff --git a/python/src/com/jetbrains/python/formatter/PyLanguageCodeStyleSettingsProvider.java b/python/src/com/jetbrains/python/formatter/PyLanguageCodeStyleSettingsProvider.java index 9258f586f2ef..19ac34cd8b59 100644 --- a/python/src/com/jetbrains/python/formatter/PyLanguageCodeStyleSettingsProvider.java +++ b/python/src/com/jetbrains/python/formatter/PyLanguageCodeStyleSettingsProvider.java @@ -33,6 +33,7 @@ public class PyLanguageCodeStyleSettingsProvider extends LanguageCodeStyleSettin public void customizeSettings(@NotNull CodeStyleSettingsCustomizable consumer, @NotNull SettingsType settingsType) { if (settingsType == SettingsType.SPACING_SETTINGS) { consumer.showStandardOptions("SPACE_BEFORE_METHOD_CALL_PARENTHESES", + "SPACE_BEFORE_METHOD_PARENTHESES", "SPACE_AROUND_ASSIGNMENT_OPERATORS", "SPACE_AROUND_EQUALITY_OPERATORS", "SPACE_AROUND_RELATIONAL_OPERATORS", diff --git a/python/testData/formatter/spaceInMethodDeclaration.py b/python/testData/formatter/spaceInMethodDeclaration.py new file mode 100644 index 000000000000..77ac4b23f9bc --- /dev/null +++ b/python/testData/formatter/spaceInMethodDeclaration.py @@ -0,0 +1,4 @@ +def foo(bar, baz): + pass + +foo(True, False) \ No newline at end of file diff --git a/python/testData/formatter/spaceInMethodDeclaration_after.py b/python/testData/formatter/spaceInMethodDeclaration_after.py new file mode 100644 index 000000000000..209b9ab1a77c --- /dev/null +++ b/python/testData/formatter/spaceInMethodDeclaration_after.py @@ -0,0 +1,4 @@ +def foo (bar, baz): + pass + +foo(True, False) \ No newline at end of file diff --git a/python/testSrc/com/jetbrains/python/PyFormatterTest.java b/python/testSrc/com/jetbrains/python/PyFormatterTest.java index 3bb0f3af12ed..0628a6cef3b3 100644 --- a/python/testSrc/com/jetbrains/python/PyFormatterTest.java +++ b/python/testSrc/com/jetbrains/python/PyFormatterTest.java @@ -117,6 +117,11 @@ public class PyFormatterTest extends PyLightFixtureTestCase { doTest(); } + public void testSpaceInMethodDeclaration() { // PY-4241 + CodeStyleSettingsManager.getInstance().getSettings(myFixture.getProject()).SPACE_BEFORE_METHOD_PARENTHESES = true; + doTest(); + } + public void testPsiFormatting() { // IDEA-69724 String initial = "def method_name(\n" +