mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
provide tooltip for "run" guter icon
This commit is contained in:
+20
-6
@@ -17,27 +17,41 @@ package com.intellij.execution.application;
|
||||
|
||||
import com.intellij.execution.lineMarker.ExecutorAction;
|
||||
import com.intellij.execution.lineMarker.RunLineMarkerContributor;
|
||||
import com.intellij.openapi.actionSystem.AnAction;
|
||||
import com.intellij.openapi.util.text.StringUtil;
|
||||
import com.intellij.psi.PsiClass;
|
||||
import com.intellij.psi.PsiElement;
|
||||
import com.intellij.psi.PsiIdentifier;
|
||||
import com.intellij.psi.PsiMethod;
|
||||
import com.intellij.psi.util.PsiMethodUtil;
|
||||
import com.intellij.util.Function;
|
||||
import com.intellij.util.containers.ContainerUtil;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
/**
|
||||
* @author Dmitry Avdeev
|
||||
*/
|
||||
public class ApplicationRunLineMarkerProvider extends RunLineMarkerContributor {
|
||||
|
||||
@Nullable
|
||||
@Override
|
||||
public Info getInfo(PsiElement e) {
|
||||
public Info getInfo(final PsiElement e) {
|
||||
if (isIdentifier(e)) {
|
||||
PsiElement element = e.getParent();
|
||||
if (element instanceof PsiClass && PsiMethodUtil.findMainInClass((PsiClass)element) != null)
|
||||
return new Info(ApplicationConfigurationType.getInstance().getIcon(), null, ExecutorAction.getActions(0));
|
||||
if (element instanceof PsiMethod && "main".equals(((PsiMethod)element).getName()) && PsiMethodUtil.isMainMethod((PsiMethod)element))
|
||||
return new Info(ApplicationConfigurationType.getInstance().getIcon(), null, ExecutorAction.getActions(0));
|
||||
if (element instanceof PsiClass && PsiMethodUtil.findMainInClass((PsiClass)element) != null ||
|
||||
element instanceof PsiMethod && "main".equals(((PsiMethod)element).getName()) && PsiMethodUtil.isMainMethod((PsiMethod)element)) {
|
||||
final AnAction[] actions = ExecutorAction.getActions(0);
|
||||
return new Info(ApplicationConfigurationType.getInstance().getIcon(), new Function<PsiElement, String>() {
|
||||
@Override
|
||||
public String fun(final PsiElement element) {
|
||||
return StringUtil.join(ContainerUtil.mapNotNull(actions, new Function<AnAction, String>() {
|
||||
@Override
|
||||
public String fun(AnAction action) {
|
||||
return getText(action, element);
|
||||
}
|
||||
}), "\n");
|
||||
}
|
||||
}, actions);
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user