From 523a5bf6a9847ced6799a4a7ee5a9c9fb1d980f8 Mon Sep 17 00:00:00 2001 From: sayon Date: Tue, 27 Aug 2013 16:22:20 +0400 Subject: [PATCH] New setting and test: space around arrow in function types --- .../jetbrains/jet/plugin/formatter/JetCodeStyleSettings.java | 2 ++ .../jet/plugin/formatter/JetFormattingModelBuilder.java | 2 ++ .../formatter/JetLanguageCodeStyleSettingsProvider.java | 4 ++++ idea/testData/formatter/FunctionalType.kt | 4 ++++ idea/testData/formatter/FunctionalType_after.kt | 4 ++++ idea/testData/formatter/FunctionalType_after_inv.kt | 4 ++++ idea/tests/org/jetbrains/jet/formatter/JetFormatterTest.java | 4 ++++ 7 files changed, 24 insertions(+) create mode 100644 idea/testData/formatter/FunctionalType.kt create mode 100644 idea/testData/formatter/FunctionalType_after.kt create mode 100644 idea/testData/formatter/FunctionalType_after_inv.kt diff --git a/idea/src/org/jetbrains/jet/plugin/formatter/JetCodeStyleSettings.java b/idea/src/org/jetbrains/jet/plugin/formatter/JetCodeStyleSettings.java index c04f4e9b829..e6ccc82f97c 100644 --- a/idea/src/org/jetbrains/jet/plugin/formatter/JetCodeStyleSettings.java +++ b/idea/src/org/jetbrains/jet/plugin/formatter/JetCodeStyleSettings.java @@ -34,6 +34,8 @@ public class JetCodeStyleSettings extends CustomCodeStyleSettings { public boolean INSERT_WHITESPACES_IN_SIMPLE_ONE_LINE_METHOD = true; public boolean ALIGN_IN_COLUMNS_CASE_BRANCH = false; + public boolean SPACE_AROUND_FUNCTION_TYPE_ARROW = true; + public boolean SPACE_AROUND_WHEN_ARROW = true; public static JetCodeStyleSettings getInstance(Project project) { diff --git a/idea/src/org/jetbrains/jet/plugin/formatter/JetFormattingModelBuilder.java b/idea/src/org/jetbrains/jet/plugin/formatter/JetFormattingModelBuilder.java index 58082979744..b810daccb87 100644 --- a/idea/src/org/jetbrains/jet/plugin/formatter/JetFormattingModelBuilder.java +++ b/idea/src/org/jetbrains/jet/plugin/formatter/JetFormattingModelBuilder.java @@ -110,6 +110,8 @@ public class JetFormattingModelBuilder implements FormattingModelBuilder { //when .aroundInside(ARROW, WHEN_ENTRY).spaceIf(jetSettings.SPACE_AROUND_WHEN_ARROW) .beforeInside(LBRACE, WHEN).spacing(1, 1, 0, true, 0) //omit blank lines before '{' in 'when' statement + + .aroundInside(ARROW, FUNCTION_TYPE).spaceIf(jetSettings.SPACE_AROUND_FUNCTION_TYPE_ARROW) ; } diff --git a/idea/src/org/jetbrains/jet/plugin/formatter/JetLanguageCodeStyleSettingsProvider.java b/idea/src/org/jetbrains/jet/plugin/formatter/JetLanguageCodeStyleSettingsProvider.java index a65cd6bb91b..56b38dbd07e 100644 --- a/idea/src/org/jetbrains/jet/plugin/formatter/JetLanguageCodeStyleSettingsProvider.java +++ b/idea/src/org/jetbrains/jet/plugin/formatter/JetLanguageCodeStyleSettingsProvider.java @@ -123,6 +123,10 @@ public class JetLanguageCodeStyleSettingsProvider extends LanguageCodeStyleSetti "Insert whitespaces in simple one line methods", CodeStyleSettingsCustomizable.SPACES_OTHER); + consumer.showCustomOption(JetCodeStyleSettings.class, "SPACE_AROUND_FUNCTION_TYPE_ARROW", + "Surround arrow in function types with spaces", + CodeStyleSettingsCustomizable.SPACES_OTHER); + consumer.showCustomOption(JetCodeStyleSettings.class, "SPACE_AROUND_WHEN_ARROW", "Surround arrow in \"when\" clause with spaces", CodeStyleSettingsCustomizable.SPACES_OTHER); diff --git a/idea/testData/formatter/FunctionalType.kt b/idea/testData/formatter/FunctionalType.kt new file mode 100644 index 00000000000..184133106fd --- /dev/null +++ b/idea/testData/formatter/FunctionalType.kt @@ -0,0 +1,4 @@ +fun test(some: ((Int)->Int) ->Int) { +} + +// SET_TRUE: SPACE_AROUND_FUNCTION_TYPE_ARROW \ No newline at end of file diff --git a/idea/testData/formatter/FunctionalType_after.kt b/idea/testData/formatter/FunctionalType_after.kt new file mode 100644 index 00000000000..8b45a18efd8 --- /dev/null +++ b/idea/testData/formatter/FunctionalType_after.kt @@ -0,0 +1,4 @@ +fun test(some: ((Int) -> Int) -> Int) { +} + +// SET_TRUE: SPACE_AROUND_FUNCTION_TYPE_ARROW \ No newline at end of file diff --git a/idea/testData/formatter/FunctionalType_after_inv.kt b/idea/testData/formatter/FunctionalType_after_inv.kt new file mode 100644 index 00000000000..8bbf78cd2bf --- /dev/null +++ b/idea/testData/formatter/FunctionalType_after_inv.kt @@ -0,0 +1,4 @@ +fun test(some: ((Int)->Int)->Int) { +} + +// SET_TRUE: SPACE_AROUND_FUNCTION_TYPE_ARROW \ No newline at end of file diff --git a/idea/tests/org/jetbrains/jet/formatter/JetFormatterTest.java b/idea/tests/org/jetbrains/jet/formatter/JetFormatterTest.java index d36151e3066..ff49ea3c73a 100644 --- a/idea/tests/org/jetbrains/jet/formatter/JetFormatterTest.java +++ b/idea/tests/org/jetbrains/jet/formatter/JetFormatterTest.java @@ -139,6 +139,10 @@ public class JetFormatterTest extends AbstractJetFormatterTest { doTest(); } + public void testFunctionalType() throws Exception { + doTestWithInvert(); + } + @Override public void doTest() throws Exception { String originalFileText = AbstractJetFormatterTest.loadFile(getTestName(false) + ".kt");