From 37c69004247d05dcc756a4939751a0735928e204 Mon Sep 17 00:00:00 2001 From: Georgii Ustinov Date: Thu, 4 Jul 2024 14:58:32 +0300 Subject: [PATCH] [Java. Code Formatting] Add tests for blank lines around annotated/non-annotated fields IDEA-110857 GitOrigin-RevId: 84dcb160fb09831989b1defee8ee83cace3beb45 --- ...AndNonAnnotatedFieldsRespectEachOther.java | 16 ++++++++++ ...AnnotatedFieldsRespectEachOther_after.java | 25 ++++++++++++++++ ...annotatedFieldAfterNonAnnotatedFields.java | 10 +++++++ ...tedFieldAfterNonAnnotatedFields_after.java | 12 ++++++++ .../differentAnnotationLocation.java | 15 ++++++++++ .../differentAnnotationLocation_after.java | 21 ++++++++++++++ .../blankLinesAroundField/mixed.java | 16 ++++++++++ .../blankLinesAroundField/mixed_after.java | 22 ++++++++++++++ .../multipleAnnotatedFields.java | 12 ++++++++ .../multipleAnnotatedFields_after.java | 16 ++++++++++ ...oBlankLinesAfterLBraceAndBeforeRBrace.java | 12 ++++++++ ...LinesAfterLBraceAndBeforeRBrace_after.java | 12 ++++++++ .../JavaFormatterBlankLinesAroundFieldTest.kt | 29 +++++++++++++++++++ 13 files changed, 218 insertions(+) create mode 100644 java/java-tests/testData/psi/formatter/blankLinesAroundField/annotatedAndNonAnnotatedFieldsRespectEachOther.java create mode 100644 java/java-tests/testData/psi/formatter/blankLinesAroundField/annotatedAndNonAnnotatedFieldsRespectEachOther_after.java create mode 100644 java/java-tests/testData/psi/formatter/blankLinesAroundField/annotatedFieldAfterNonAnnotatedFields.java create mode 100644 java/java-tests/testData/psi/formatter/blankLinesAroundField/annotatedFieldAfterNonAnnotatedFields_after.java create mode 100644 java/java-tests/testData/psi/formatter/blankLinesAroundField/differentAnnotationLocation.java create mode 100644 java/java-tests/testData/psi/formatter/blankLinesAroundField/differentAnnotationLocation_after.java create mode 100644 java/java-tests/testData/psi/formatter/blankLinesAroundField/mixed.java create mode 100644 java/java-tests/testData/psi/formatter/blankLinesAroundField/mixed_after.java create mode 100644 java/java-tests/testData/psi/formatter/blankLinesAroundField/multipleAnnotatedFields.java create mode 100644 java/java-tests/testData/psi/formatter/blankLinesAroundField/multipleAnnotatedFields_after.java create mode 100644 java/java-tests/testData/psi/formatter/blankLinesAroundField/noBlankLinesAfterLBraceAndBeforeRBrace.java create mode 100644 java/java-tests/testData/psi/formatter/blankLinesAroundField/noBlankLinesAfterLBraceAndBeforeRBrace_after.java create mode 100644 java/java-tests/testSrc/com/intellij/java/psi/formatter/java/JavaFormatterBlankLinesAroundFieldTest.kt diff --git a/java/java-tests/testData/psi/formatter/blankLinesAroundField/annotatedAndNonAnnotatedFieldsRespectEachOther.java b/java/java-tests/testData/psi/formatter/blankLinesAroundField/annotatedAndNonAnnotatedFieldsRespectEachOther.java new file mode 100644 index 000000000000..010d3561f631 --- /dev/null +++ b/java/java-tests/testData/psi/formatter/blankLinesAroundField/annotatedAndNonAnnotatedFieldsRespectEachOther.java @@ -0,0 +1,16 @@ +package org.example; + +import org.jetbrains.annotations.NotNull; + +public class ClassWithAnnotations { + public boolean simpleField1 = true; + public boolean simpleField2 = true; + @NotNull + public Integer annotatedField1 = 2; + public boolean simpleField3 = true; + @NotNull + public Integer annotatedField2 = 2; + public boolean simpleField4 = true; + @NotNull + private Integer annotatedField3 = 2; +} diff --git a/java/java-tests/testData/psi/formatter/blankLinesAroundField/annotatedAndNonAnnotatedFieldsRespectEachOther_after.java b/java/java-tests/testData/psi/formatter/blankLinesAroundField/annotatedAndNonAnnotatedFieldsRespectEachOther_after.java new file mode 100644 index 000000000000..3f6d256c0f34 --- /dev/null +++ b/java/java-tests/testData/psi/formatter/blankLinesAroundField/annotatedAndNonAnnotatedFieldsRespectEachOther_after.java @@ -0,0 +1,25 @@ +package org.example; + +import org.jetbrains.annotations.NotNull; + +public class ClassWithAnnotations { + public boolean simpleField1 = true; + + public boolean simpleField2 = true; + + + @NotNull + public Integer annotatedField1 = 2; + + public boolean simpleField3 = true; + + + @NotNull + public Integer annotatedField2 = 2; + + public boolean simpleField4 = true; + + + @NotNull + private Integer annotatedField3 = 2; +} diff --git a/java/java-tests/testData/psi/formatter/blankLinesAroundField/annotatedFieldAfterNonAnnotatedFields.java b/java/java-tests/testData/psi/formatter/blankLinesAroundField/annotatedFieldAfterNonAnnotatedFields.java new file mode 100644 index 000000000000..933eabfb2a7a --- /dev/null +++ b/java/java-tests/testData/psi/formatter/blankLinesAroundField/annotatedFieldAfterNonAnnotatedFields.java @@ -0,0 +1,10 @@ +package org.example; + +import org.jetbrains.annotations.NotNull; + +public class ClassWithAnnotations { + public final Boolean b = false; + public final Boolean a = false; + @NotNull + public Boolean d = false; +} diff --git a/java/java-tests/testData/psi/formatter/blankLinesAroundField/annotatedFieldAfterNonAnnotatedFields_after.java b/java/java-tests/testData/psi/formatter/blankLinesAroundField/annotatedFieldAfterNonAnnotatedFields_after.java new file mode 100644 index 000000000000..12f1e1c7d064 --- /dev/null +++ b/java/java-tests/testData/psi/formatter/blankLinesAroundField/annotatedFieldAfterNonAnnotatedFields_after.java @@ -0,0 +1,12 @@ +package org.example; + +import org.jetbrains.annotations.NotNull; + +public class ClassWithAnnotations { + public final Boolean b = false; + public final Boolean a = false; + + + @NotNull + public Boolean d = false; +} diff --git a/java/java-tests/testData/psi/formatter/blankLinesAroundField/differentAnnotationLocation.java b/java/java-tests/testData/psi/formatter/blankLinesAroundField/differentAnnotationLocation.java new file mode 100644 index 000000000000..b81923949f48 --- /dev/null +++ b/java/java-tests/testData/psi/formatter/blankLinesAroundField/differentAnnotationLocation.java @@ -0,0 +1,15 @@ +package org.example; + +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +public class ClassWithAnnotations { + public final boolean simpleField1 = true; + private @Nullable + final Integer annotatedField1 = 10; + public Boolean simpleField2 = false; + public @NotNull Integer annotatedField2 = 1; + private Boolean simpleField3 = false; + @NotNull + private Integer getAnnotatedField3 = 2; +} diff --git a/java/java-tests/testData/psi/formatter/blankLinesAroundField/differentAnnotationLocation_after.java b/java/java-tests/testData/psi/formatter/blankLinesAroundField/differentAnnotationLocation_after.java new file mode 100644 index 000000000000..8cb9ec0546bb --- /dev/null +++ b/java/java-tests/testData/psi/formatter/blankLinesAroundField/differentAnnotationLocation_after.java @@ -0,0 +1,21 @@ +package org.example; + +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +public class ClassWithAnnotations { + public final boolean simpleField1 = true; + + + private @Nullable + final Integer annotatedField1 = 10; + public Boolean simpleField2 = false; + + + public @NotNull Integer annotatedField2 = 1; + private Boolean simpleField3 = false; + + + @NotNull + private Integer getAnnotatedField3 = 2; +} diff --git a/java/java-tests/testData/psi/formatter/blankLinesAroundField/mixed.java b/java/java-tests/testData/psi/formatter/blankLinesAroundField/mixed.java new file mode 100644 index 000000000000..010d3561f631 --- /dev/null +++ b/java/java-tests/testData/psi/formatter/blankLinesAroundField/mixed.java @@ -0,0 +1,16 @@ +package org.example; + +import org.jetbrains.annotations.NotNull; + +public class ClassWithAnnotations { + public boolean simpleField1 = true; + public boolean simpleField2 = true; + @NotNull + public Integer annotatedField1 = 2; + public boolean simpleField3 = true; + @NotNull + public Integer annotatedField2 = 2; + public boolean simpleField4 = true; + @NotNull + private Integer annotatedField3 = 2; +} diff --git a/java/java-tests/testData/psi/formatter/blankLinesAroundField/mixed_after.java b/java/java-tests/testData/psi/formatter/blankLinesAroundField/mixed_after.java new file mode 100644 index 000000000000..5676863cad75 --- /dev/null +++ b/java/java-tests/testData/psi/formatter/blankLinesAroundField/mixed_after.java @@ -0,0 +1,22 @@ +package org.example; + +import org.jetbrains.annotations.NotNull; + +public class ClassWithAnnotations { + public boolean simpleField1 = true; + public boolean simpleField2 = true; + + + @NotNull + public Integer annotatedField1 = 2; + public boolean simpleField3 = true; + + + @NotNull + public Integer annotatedField2 = 2; + public boolean simpleField4 = true; + + + @NotNull + private Integer annotatedField3 = 2; +} diff --git a/java/java-tests/testData/psi/formatter/blankLinesAroundField/multipleAnnotatedFields.java b/java/java-tests/testData/psi/formatter/blankLinesAroundField/multipleAnnotatedFields.java new file mode 100644 index 000000000000..110371f3d919 --- /dev/null +++ b/java/java-tests/testData/psi/formatter/blankLinesAroundField/multipleAnnotatedFields.java @@ -0,0 +1,12 @@ +package org.example; + +import org.jetbrains.annotations.NotNull; + +public class ClassWithAnnotations { + @NotNull + public static Integer STATIC_FIELD = -1; + @NotNull + public Boolean a = true; + @NotNull + public Boolean d = false; +} diff --git a/java/java-tests/testData/psi/formatter/blankLinesAroundField/multipleAnnotatedFields_after.java b/java/java-tests/testData/psi/formatter/blankLinesAroundField/multipleAnnotatedFields_after.java new file mode 100644 index 000000000000..30523517d47c --- /dev/null +++ b/java/java-tests/testData/psi/formatter/blankLinesAroundField/multipleAnnotatedFields_after.java @@ -0,0 +1,16 @@ +package org.example; + +import org.jetbrains.annotations.NotNull; + +public class ClassWithAnnotations { + @NotNull + public static Integer STATIC_FIELD = -1; + + + @NotNull + public Boolean a = true; + + + @NotNull + public Boolean d = false; +} diff --git a/java/java-tests/testData/psi/formatter/blankLinesAroundField/noBlankLinesAfterLBraceAndBeforeRBrace.java b/java/java-tests/testData/psi/formatter/blankLinesAroundField/noBlankLinesAfterLBraceAndBeforeRBrace.java new file mode 100644 index 000000000000..124fa3ec868f --- /dev/null +++ b/java/java-tests/testData/psi/formatter/blankLinesAroundField/noBlankLinesAfterLBraceAndBeforeRBrace.java @@ -0,0 +1,12 @@ +package org.example; + +import org.jetbrains.annotations.NotNull; + +class ClassWithAnnotations { + @NotNull + public Boolean d = false; +} + +class ClassWithoutAnnotations { + public Boolean a = false; +} \ No newline at end of file diff --git a/java/java-tests/testData/psi/formatter/blankLinesAroundField/noBlankLinesAfterLBraceAndBeforeRBrace_after.java b/java/java-tests/testData/psi/formatter/blankLinesAroundField/noBlankLinesAfterLBraceAndBeforeRBrace_after.java new file mode 100644 index 000000000000..124fa3ec868f --- /dev/null +++ b/java/java-tests/testData/psi/formatter/blankLinesAroundField/noBlankLinesAfterLBraceAndBeforeRBrace_after.java @@ -0,0 +1,12 @@ +package org.example; + +import org.jetbrains.annotations.NotNull; + +class ClassWithAnnotations { + @NotNull + public Boolean d = false; +} + +class ClassWithoutAnnotations { + public Boolean a = false; +} \ No newline at end of file diff --git a/java/java-tests/testSrc/com/intellij/java/psi/formatter/java/JavaFormatterBlankLinesAroundFieldTest.kt b/java/java-tests/testSrc/com/intellij/java/psi/formatter/java/JavaFormatterBlankLinesAroundFieldTest.kt new file mode 100644 index 000000000000..d89b3bb1c368 --- /dev/null +++ b/java/java-tests/testSrc/com/intellij/java/psi/formatter/java/JavaFormatterBlankLinesAroundFieldTest.kt @@ -0,0 +1,29 @@ +// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. +package com.intellij.java.psi.formatter.java + +import com.intellij.lang.java.JavaLanguage + +class JavaFormatterBlankLinesAroundFieldTest : JavaFormatterTestCase() { + override fun getBasePath(): String = "psi/formatter/blankLinesAroundField" + + override fun setUp() { + super.setUp() + customJavaSettings.BLANK_LINES_AROUND_FIELD_WITH_ANNOTATIONS = 2 + getSettings(JavaLanguage.INSTANCE).BLANK_LINES_AROUND_FIELD = 0 + } + + fun testAnnotatedFieldAfterNonAnnotatedFields() = doTest() + + fun testNoBlankLinesAfterLBraceAndBeforeRBrace() = doTest() + + fun testMultipleAnnotatedFields() = doTest() + + fun testDifferentAnnotationLocation() = doTest() + + fun testMixed() = doTest() + + fun testAnnotatedAndNonAnnotatedFieldsRespectEachOther() { + getSettings(JavaLanguage.INSTANCE).BLANK_LINES_AROUND_FIELD = 1 + doTest() + } +} \ No newline at end of file