void (@NotNull Project project) { CoverageRunner.EP_NAME.addExtensionPointListener(new ExtensionPointListener<>() { @Override public void extensionRemoved(@NotNull CoverageRunner coverageRunner, @NotNull PluginDescriptor pluginDescriptor) { for (CoverageSuitesBundle suitesBundle : myActiveBundles.values()) { if (ContainerUtil.exists(suitesBundle.getSuites(), suite -> coverageRunner == suite.getRunner())) { closeSuitesBundle(suitesBundle); } } RunManager runManager = RunManager.getInstance(project); List<RunConfiguration> configurations = runManager.getAllConfigurationsList(); for (RunConfiguration configuration : configurations) { if (configuration instanceof RunConfigurationBase<?> runConfiguration) { CoverageEnabledConfiguration coverageEnabledConfiguration = runConfiguration.getCopyableUserData(CoverageEnabledConfiguration.COVERAGE_KEY); if (coverageEnabledConfiguration != null && Objects.equals(coverageRunner.getId(), coverageEnabledConfiguration.getRunnerId())) { coverageEnabledConfiguration.coverageRunnerExtensionRemoved(coverageRunner); runConfiguration.putCopyableUserData(CoverageEnabledConfiguration.COVERAGE_KEY, null); } } } //cleanup created templates ((RunManagerImpl)runManager).reloadSchemes(); } }, this); }