boolean (@NotNull ShRunConfiguration configuration, @NotNull ConfigurationContext context) { PsiElement psiLocation = context.getPsiLocation(); if (psiLocation == null) return false; PsiFile psiFile = psiLocation.getContainingFile(); if (!(psiFile instanceof ShFile)) return false; FileViewProvider viewProvider = psiFile.getViewProvider(); if (viewProvider instanceof MultiplePsiFilesPerDocumentFileViewProvider) return false; VirtualFile virtualFile = psiFile.getVirtualFile(); if (virtualFile == null) return false; String scriptPath = configuration.getScriptPath(); String workingDirectory = configuration.getScriptWorkingDirectory(); return scriptPath != null && scriptPath.equals(virtualFile.getPath()) && workingDirectory != null && workingDirectory.equals(virtualFile.getParent().getPath()); }