diff --git a/platform/lang-impl/src/com/intellij/codeInsight/highlighting/BraceHighlighter.java b/platform/lang-impl/src/com/intellij/codeInsight/highlighting/BraceHighlighter.java index e0c38dd86a98..0d317360bf7f 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/highlighting/BraceHighlighter.java +++ b/platform/lang-impl/src/com/intellij/codeInsight/highlighting/BraceHighlighter.java @@ -2,17 +2,20 @@ package com.intellij.codeInsight.highlighting; +import com.intellij.openapi.Disposable; import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.editor.Editor; import com.intellij.openapi.editor.EditorFactory; import com.intellij.openapi.editor.SelectionModel; import com.intellij.openapi.editor.event.*; +import com.intellij.openapi.extensions.ExtensionPointUtil; import com.intellij.openapi.fileEditor.FileEditor; import com.intellij.openapi.fileEditor.FileEditorManagerEvent; import com.intellij.openapi.fileEditor.FileEditorManagerListener; import com.intellij.openapi.fileEditor.TextEditor; import com.intellij.openapi.project.Project; import com.intellij.openapi.startup.StartupActivity; +import com.intellij.openapi.util.Disposer; import com.intellij.openapi.util.TextRange; import com.intellij.util.Alarm; import org.jetbrains.annotations.NotNull; @@ -25,6 +28,10 @@ public class BraceHighlighter implements StartupActivity.DumbAware { @Override public void runActivity(@NotNull final Project project) { if (ApplicationManager.getApplication().isHeadlessEnvironment()) return; // sorry, upsource + + Disposable activityDisposable = ExtensionPointUtil.createExtensionDisposable(this, StartupActivity.POST_STARTUP_ACTIVITY); + Disposer.register(project, activityDisposable); + final EditorEventMulticaster eventMulticaster = EditorFactory.getInstance().getEventMulticaster(); eventMulticaster.addCaretListener(new CaretListener() { @@ -40,7 +47,7 @@ public class BraceHighlighter implements StartupActivity.DumbAware { } updateBraces(editor, myAlarm); } - }, project); + }, activityDisposable); final SelectionListener selectionListener = new SelectionListener() { @Override @@ -60,7 +67,7 @@ public class BraceHighlighter implements StartupActivity.DumbAware { updateBraces(editor, myAlarm); } }; - eventMulticaster.addSelectionListener(selectionListener, project); + eventMulticaster.addSelectionListener(selectionListener, activityDisposable); DocumentListener documentListener = new DocumentListener() { @Override @@ -72,22 +79,23 @@ public class BraceHighlighter implements StartupActivity.DumbAware { } } }; - eventMulticaster.addDocumentListener(documentListener, project); + eventMulticaster.addDocumentListener(documentListener, activityDisposable); - project.getMessageBus().connect().subscribe(FileEditorManagerListener.FILE_EDITOR_MANAGER, new FileEditorManagerListener() { - @Override - public void selectionChanged(@NotNull FileEditorManagerEvent e) { - myAlarm.cancelAllRequests(); - FileEditor oldEditor = e.getOldEditor(); - if (oldEditor instanceof TextEditor) { - clearBraces(((TextEditor)oldEditor).getEditor()); + project.getMessageBus().connect(activityDisposable) + .subscribe(FileEditorManagerListener.FILE_EDITOR_MANAGER, new FileEditorManagerListener() { + @Override + public void selectionChanged(@NotNull FileEditorManagerEvent e) { + myAlarm.cancelAllRequests(); + FileEditor oldEditor = e.getOldEditor(); + if (oldEditor instanceof TextEditor) { + clearBraces(((TextEditor)oldEditor).getEditor()); + } + FileEditor newEditor = e.getNewEditor(); + if (newEditor instanceof TextEditor) { + updateBraces(((TextEditor)newEditor).getEditor(), myAlarm); + } } - FileEditor newEditor = e.getNewEditor(); - if (newEditor instanceof TextEditor) { - updateBraces(((TextEditor)newEditor).getEditor(), myAlarm); - } - } - }); + }); } static void updateBraces(@NotNull final Editor editor, @NotNull final Alarm alarm) { diff --git a/platform/tasks-platform-impl/src/com/intellij/tasks/context/BranchContextTracker.java b/platform/tasks-platform-impl/src/com/intellij/tasks/context/BranchContextTracker.java index f94c7bec05e0..e9f0de7e3502 100644 --- a/platform/tasks-platform-impl/src/com/intellij/tasks/context/BranchContextTracker.java +++ b/platform/tasks-platform-impl/src/com/intellij/tasks/context/BranchContextTracker.java @@ -1,11 +1,14 @@ package com.intellij.tasks.context; import com.intellij.notification.*; +import com.intellij.openapi.Disposable; import com.intellij.openapi.actionSystem.AnAction; import com.intellij.openapi.actionSystem.AnActionEvent; import com.intellij.openapi.application.TransactionGuard; +import com.intellij.openapi.extensions.ExtensionPointUtil; import com.intellij.openapi.project.Project; import com.intellij.openapi.startup.StartupActivity; +import com.intellij.openapi.util.Disposer; import com.intellij.openapi.vcs.BranchChangeListener; import com.intellij.openapi.vcs.VcsConfiguration; import com.intellij.tasks.BranchInfo; @@ -24,10 +27,11 @@ public class BranchContextTracker implements BranchChangeListener { private final Project myProject; private String myLastBranch; - private BranchContextTracker(Project project) { + private BranchContextTracker(@NotNull Project project, @NotNull Disposable activityDisposable) { myProject = project; myContextManager = WorkingContextManager.getInstance(project); - project.getMessageBus().connect().subscribe(BranchChangeListener.VCS_BRANCH_CHANGED, this); + project.getMessageBus().connect(activityDisposable) + .subscribe(BranchChangeListener.VCS_BRANCH_CHANGED, this); } @Override @@ -93,7 +97,9 @@ public class BranchContextTracker implements BranchChangeListener { @Override public void runActivity(@NotNull Project project) { - new BranchContextTracker(project); + Disposable activityDisposable = ExtensionPointUtil.createExtensionDisposable(this, StartupActivity.POST_STARTUP_ACTIVITY); + Disposer.register(project, activityDisposable); + new BranchContextTracker(project, activityDisposable); } } } diff --git a/plugins/ant/src/com/intellij/lang/ant/config/impl/AntShortcutStartupActivity.java b/plugins/ant/src/com/intellij/lang/ant/config/impl/AntShortcutStartupActivity.java index 006998d22bd1..845aa8468bb5 100644 --- a/plugins/ant/src/com/intellij/lang/ant/config/impl/AntShortcutStartupActivity.java +++ b/plugins/ant/src/com/intellij/lang/ant/config/impl/AntShortcutStartupActivity.java @@ -3,8 +3,10 @@ package com.intellij.lang.ant.config.impl; import com.intellij.lang.ant.config.AntConfiguration; import com.intellij.lang.ant.config.actions.TargetActionStub; +import com.intellij.openapi.Disposable; import com.intellij.openapi.actionSystem.ActionManager; import com.intellij.openapi.actionSystem.ex.ActionManagerEx; +import com.intellij.openapi.extensions.ExtensionPointUtil; import com.intellij.openapi.keymap.Keymap; import com.intellij.openapi.keymap.ex.KeymapManagerEx; import com.intellij.openapi.project.Project; @@ -15,6 +17,9 @@ import org.jetbrains.annotations.NotNull; public class AntShortcutStartupActivity implements StartupActivity { @Override public void runActivity(@NotNull Project project) { + Disposable activityDisposable = ExtensionPointUtil.createExtensionDisposable(this, StartupActivity.POST_STARTUP_ACTIVITY); + Disposer.register(project, activityDisposable); + final String prefix = AntConfiguration.getActionIdPrefix(project); final ActionManager actionManager = ActionManager.getInstance(); @@ -26,7 +31,7 @@ public class AntShortcutStartupActivity implements StartupActivity { } } - Disposer.register(project, () -> unregisterAction(project)); + Disposer.register(activityDisposable, () -> unregisterAction(project)); } private static void unregisterAction(@NotNull Project project) {