public InjectedLanguageManagerImpl(Project project, DumbService dumbService) { myProject = project; myDumbService = dumbService; final ExtensionPoint<MultiHostInjector> multiPoint = Extensions.getArea(project).getExtensionPoint(MultiHostInjector.MULTIHOST_INJECTOR_EP_NAME); multiPoint.addExtensionPointListener( new ExtensionPointListener<MultiHostInjector>() { @Override public void extensionAdded( @NotNull MultiHostInjector injector, @Nullable PluginDescriptor pluginDescriptor) { registerMultiHostInjector(injector); } @Override public void extensionRemoved( @NotNull MultiHostInjector injector, @Nullable PluginDescriptor pluginDescriptor) { unregisterMultiHostInjector(injector); } }, this); final ExtensionPointListener<LanguageInjector> myListener = new ExtensionPointListener<LanguageInjector>() { @Override public void extensionAdded( @NotNull LanguageInjector extension, @Nullable PluginDescriptor pluginDescriptor) { psiManagerInjectorsChanged(); } @Override public void extensionRemoved( @NotNull LanguageInjector extension, @Nullable PluginDescriptor pluginDescriptor) { psiManagerInjectorsChanged(); } }; final ExtensionPoint<LanguageInjector> psiManagerPoint = Extensions.getRootArea().getExtensionPoint(LanguageInjector.EXTENSION_POINT_NAME); psiManagerPoint.addExtensionPointListener(myListener, this); myProgress = new DaemonProgressIndicator(); project .getMessageBus() .connect(this) .subscribe( DaemonCodeAnalyzer.DAEMON_EVENT_TOPIC, new DaemonCodeAnalyzer.DaemonListener() { @Override public void daemonFinished() {} @Override public void daemonCancelEventOccurred() { myProgress.cancel(); } }); }
public EntryPointsManagerImpl(Project project) { myProject = project; myTemporaryEntryPoints = new HashSet<RefElement>(); myPersistentEntryPoints = new LinkedHashMap< String, SmartRefElementPointer>(); // To keep the order between readExternal to writeExternal Disposer.register(project, this); final ExtensionPoint<EntryPoint> point = Extensions.getRootArea().getExtensionPoint(ExtensionPoints.DEAD_CODE_TOOL); point.addExtensionPointListener( new ExtensionPointListener<EntryPoint>() { @Override public void extensionAdded( @NotNull EntryPoint extension, @Nullable PluginDescriptor pluginDescriptor) { extensionRemoved(extension, pluginDescriptor); } @Override public void extensionRemoved( @NotNull EntryPoint extension, @Nullable PluginDescriptor pluginDescriptor) { if (ADDITIONAL_ANNOS != null) { ADDITIONAL_ANNOS = null; UIUtil.invokeLaterIfNeeded( new Runnable() { @Override public void run() { if (ApplicationManager.getApplication().isDisposed()) return; InspectionProfileManager.getInstance().fireProfileChanged(null); } }); } } }, this); }