[Java. Code Formatting] IDEA-377909 Fix wrong indentation for annotations placed before package statement

(cherry picked from commit 5ade570c9930b22dd783caefd7bfc0161dbbc46e)

IJ-CR-173265

GitOrigin-RevId: 048bd756136d90f631118c6c54d738782ff6b7a7
This commit is contained in:
Georgii Ustinov
2025-08-22 11:23:12 +03:00
committed by intellij-monorepo-bot
parent cbc1b614c8
commit ecb0c5017e
2 changed files with 47 additions and 0 deletions

View File

@@ -375,6 +375,7 @@ public abstract class AbstractJavaBlock extends AbstractBlock implements JavaBlo
if (parentType == JavaElementType.EXPRESSION_STATEMENT) return Indent.getNoneIndent();
if (parentType == JavaElementType.IMPLICIT_CLASS) return Indent.getNoneIndent();
if (parentType == JavaElementType.RECORD_COMPONENT) return Indent.getNoneIndent();
if (parentType == JavaElementType.PACKAGE_STATEMENT) return Indent.getNoneIndent();
if (SourceTreeToPsiMap.treeElementToPsi(parent) instanceof PsiFile) {
return Indent.getNoneIndent();
}

View File

@@ -1181,4 +1181,50 @@ public class JavaEnterActionTest extends AbstractBasicJavaEnterActionTest {
"""
);
}
public void testEnterAfterTheFirstAnnotationBeforePackage() {
doTextTest("java",
"""
@MyAnno<caret>
package test;
""",
"""
@MyAnno
<caret>
package test;
"""
);
}
public void testEnterBetweenAnnotationBeforePackage() {
doTextTest("java",
"""
@MyAnno<caret>
@MyAnno2
package test;
""",
"""
@MyAnno
<caret>
@MyAnno2
package test;
"""
);
}
public void testEnterAfterTheLastAnnotationBeforePackage() {
doTextTest("java",
"""
@MyAnno
@MyAnno2<caret>
package test;
""",
"""
@MyAnno
@MyAnno2
<caret>
package test;
"""
);
}
}