@Override protected RunnerAndConfigurationSettings findExistingByElement( Location location, @NotNull List<RunnerAndConfigurationSettings> existingConfigurations, ConfigurationContext context) { for (RunnerAndConfigurationSettings existingConfiguration : existingConfigurations) { final RunConfiguration configuration = existingConfiguration.getConfiguration(); final GroovyScriptRunConfiguration existing = (GroovyScriptRunConfiguration) configuration; final String path = existing.getScriptPath(); if (path != null) { final PsiFile file = location.getPsiElement().getContainingFile(); if (file instanceof GroovyFile) { final VirtualFile vfile = file.getVirtualFile(); if (vfile != null && FileUtil.toSystemIndependentName(path).equals(vfile.getPath())) { if (!((GroovyFile) file).isScript() || GroovyScriptTypeDetector.getScriptType((GroovyFile) file) .isConfigurationByLocation(existing, location)) { return existingConfiguration; } } } } } return null; }