From 2464cb6dd292eed0b0db91e0595b85aae2a0d1e7 Mon Sep 17 00:00:00 2001 From: Georgii Ustinov Date: Thu, 28 Aug 2025 17:41:00 +0300 Subject: [PATCH] [Java. Code Formatting] IDEA-378318 remove spaces between module declarations if they exists GitOrigin-RevId: 4358baab3482ff4c6ccd0037764cb35e179610f8 --- .../psi/formatter/java/AbstractJavaBlock.java | 2 +- .../formatter/java/JavaModuleFormatterTest.kt | 30 +++++++++++++++++++ 2 files changed, 31 insertions(+), 1 deletion(-) diff --git a/java/java-frontback-impl/src/com/intellij/psi/formatter/java/AbstractJavaBlock.java b/java/java-frontback-impl/src/com/intellij/psi/formatter/java/AbstractJavaBlock.java index e6942b9cfef8..5a25e923ad75 100644 --- a/java/java-frontback-impl/src/com/intellij/psi/formatter/java/AbstractJavaBlock.java +++ b/java/java-frontback-impl/src/com/intellij/psi/formatter/java/AbstractJavaBlock.java @@ -204,7 +204,7 @@ public abstract class AbstractJavaBlock extends AbstractBlock implements JavaBlo InjectedLanguageUtil.hasInjections((PsiLanguageInjectionHost)child)) { return new CommentWithInjectionBlock(child, wrap, alignment, indent, settings, javaSettings, formattingMode); } - if (child instanceof LeafElement || childPsi instanceof PsiJavaModuleReferenceElement) { + if (child instanceof LeafElement) { if (child.getElementType() == JavaTokenType.C_STYLE_COMMENT) { return new CStyleCommentBlock(child, actualIndent); } diff --git a/java/java-tests/testSrc/com/intellij/java/psi/formatter/java/JavaModuleFormatterTest.kt b/java/java-tests/testSrc/com/intellij/java/psi/formatter/java/JavaModuleFormatterTest.kt index e035c3ac6240..3a30c96e4421 100644 --- a/java/java-tests/testSrc/com/intellij/java/psi/formatter/java/JavaModuleFormatterTest.kt +++ b/java/java-tests/testSrc/com/intellij/java/psi/formatter/java/JavaModuleFormatterTest.kt @@ -34,4 +34,34 @@ class JavaModuleFormatterTest : AbstractJavaFormatterTest() { doTextTest("@Deprecated\nmodule m { }", "@Deprecated\nmodule m {\n}") doTextTest("@Deprecated(forRemoval = true) module m { }", "@Deprecated(forRemoval = true)\nmodule m {\n}") } + + fun testComposedModulesNamesAreCollapsed() { + doTextTest(""" + module m . b . + c { exports a . b to m1 . + m2 ,m2 . m3, m3 + . m4; } + """.trimIndent(), + """ + module m.b. + c { + exports a.b to m1. + m2, m2.m3, m3 + .m4; + } + """.trimIndent()) + } + + fun testComposedImportModuleNamesAreCollapsed() { + doTextTest(""" + import module m . b . c + import module m2 . b . + c + """.trimIndent(), + """ + import module m.b.c + import module m2.b. + c + """.trimIndent() ) + } } \ No newline at end of file