void (@NotNull AnActionEvent e) { List<ExtensionsArea> areas = new ArrayList<>(); areas.add(ApplicationManager.getApplication().getExtensionArea()); final Project project = e.getData(CommonDataKeys.PROJECT); if (project != null) { areas.add(project.getExtensionArea()); final Module[] modules = ModuleManager.getInstance(project).getModules(); if (modules.length > 0) { areas.add(modules[0].getExtensionArea()); } } System.out.print(areas.size() + " extension areas: "); for (ExtensionsArea area : areas) { System.out.print(area.toString() + " "); } System.out.println("\n"); List<ExtensionPoint<?>> points = new ArrayList<>(); for (ExtensionsArea area : areas) { points.addAll(area.getNameToPointMap().values()); } System.out.println(points.size() + " extension points: "); for (ExtensionPoint<?> point : points) { System.out.println(" " + ((ExtensionPointImpl<?>)point).name); } List<Object> extensions = new ArrayList<>(); for (ExtensionPoint<?> point : points) { extensions.addAll(Arrays.asList(point.getExtensions())); } System.out.println("\n" + extensions.size() + " extensions:"); for (Object extension : extensions) { if (extension instanceof Configurable) { System.out.println("!!!! Configurable extension found. Kill it !!!"); } System.out.println(extension); } }