Info (@NotNull PsiElement element) { if (element instanceof OuterLanguageElementImpl || !(element instanceof LeafElement ) || element.getTextRange().getStartOffset() != 0) return null; var contributionProhibited = ContainerUtil.exists(ShRunnerAdditionalCondition.EP.getExtensionsIfPointIsRegistered(), additionalCondition -> { return additionalCondition.isRunningProhibitedForElement(element); }); if (contributionProhibited) return null; PsiFile psiFile = element.getContainingFile(); if (!(psiFile instanceof ShFile) && !element.getText().startsWith("#!")) return null; AnAction[] actions = {ActionManager.getInstance().getAction(ShRunFileAction.ID)}; return new Info(AllIcons.RunConfigurations.TestState.Run, actions, psiElement -> StringUtil.join(ContainerUtil.mapNotNull(actions, action -> ShBundle .message("line.marker.run.0", psiElement.getContainingFile().getName())), "\n")); }