IJ-CR-138987 [java] IDEA-355892 JEP 477 JEP 477. Problems with run gutters

- more assertions
- add comment

GitOrigin-RevId: 3c804fec7727a5527b522aaf0a16bb55507b4cc3
This commit is contained in:
Mikhail Pyltsin
2024-07-05 17:33:24 +02:00
committed by intellij-monorepo-bot
parent 96a1761f1f
commit 86f9b646e3
3 changed files with 27 additions and 5 deletions

View File

@@ -67,8 +67,8 @@ public final class PsiMethodUtil {
/**
* Finds the main method in the given class or its parents.
* ATTENTION: does not use implementations of {@link JavaMainMethodProvider}
* (unlike {@link #hasMainMethod(PsiClass)} or {@link #findMainMethod(PsiClass)})
* ATTENTION: this method does not use implementations of {@link JavaMainMethodProvider}
* if you need to take into account custom entry points, use {@link #hasMainMethod(PsiClass)} or {@link #findMainMethod(PsiClass)}
*
* @param aClass the class in which to find the main method.
* @return the main method if found, or null if not found or if an {@link IndexNotReadyException} occurs.

View File

@@ -2,12 +2,12 @@
package com.intellij.java.codeInsight.navigation;
import com.intellij.codeInsight.daemon.GutterMark;
import com.intellij.codeInsight.daemon.LineMarkerInfo;
import com.intellij.execution.application.ApplicationRunLineMarkerProvider;
import com.intellij.execution.lineMarker.RunLineMarkerContributor;
import com.intellij.icons.AllIcons;
import com.intellij.pom.java.LanguageLevel;
import com.intellij.psi.PsiClass;
import com.intellij.psi.PsiJavaFile;
import com.intellij.psi.PsiMethod;
import com.intellij.psi.*;
import com.intellij.testFramework.DumbModeTestUtils;
import com.intellij.testFramework.IdeaTestUtil;
import com.intellij.testFramework.fixtures.LightJavaCodeInsightFixtureTestCase;
@@ -26,6 +26,13 @@ public class RunLineMarkerJava21Test extends LightJavaCodeInsightFixtureTestCase
""");
List<GutterMark> marks = myFixture.findGuttersAtCaret();
assertEquals(1, marks.size());
GutterMark mark = marks.get(0);
assertTrue(mark instanceof LineMarkerInfo.LineMarkerGutterIconRenderer);
LineMarkerInfo.LineMarkerGutterIconRenderer gutterIconRenderer = (LineMarkerInfo.LineMarkerGutterIconRenderer)mark;
PsiElement element = gutterIconRenderer.getLineMarkerInfo().getElement();
assertEquals(AllIcons.RunConfigurations.TestState.Run, gutterIconRenderer.getIcon());
assertTrue(element instanceof PsiIdentifier);
assertEquals("main", element.getText());
});
}

View File

@@ -2,7 +2,13 @@
package com.intellij.java.codeInsight.navigation;
import com.intellij.codeInsight.daemon.GutterMark;
import com.intellij.codeInsight.daemon.LineMarkerInfo;
import com.intellij.icons.AllIcons;
import com.intellij.pom.java.LanguageLevel;
import com.intellij.psi.PsiClass;
import com.intellij.psi.PsiElement;
import com.intellij.psi.PsiIdentifier;
import com.intellij.psi.util.PsiTreeUtil;
import com.intellij.testFramework.IdeaTestUtil;
import com.intellij.testFramework.fixtures.LightJavaCodeInsightFixtureTestCase;
@@ -295,6 +301,15 @@ public class RunLineMarkerJava22Test extends LightJavaCodeInsightFixtureTestCase
""");
List<GutterMark> marks = myFixture.findGuttersAtCaret();
assertEquals(1, marks.size());
GutterMark mark = marks.get(0);
assertTrue(mark instanceof LineMarkerInfo.LineMarkerGutterIconRenderer);
LineMarkerInfo.LineMarkerGutterIconRenderer gutterIconRenderer = (LineMarkerInfo.LineMarkerGutterIconRenderer)mark;
PsiElement element = gutterIconRenderer.getLineMarkerInfo().getElement();
assertEquals(AllIcons.RunConfigurations.TestState.Run, gutterIconRenderer.getIcon());
assertTrue(element instanceof PsiIdentifier);
assertEquals("main", element.getText());
PsiClass psiClass = PsiTreeUtil.getParentOfType(element, PsiClass.class);
assertEquals("BBBBBB", psiClass.getName());
});
}
}