mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
move PsiModificationTracker topic to its own interface
This commit is contained in:
@@ -15,7 +15,6 @@
|
||||
*/
|
||||
package com.intellij.psi.impl;
|
||||
|
||||
import com.intellij.ProjectTopics;
|
||||
import com.intellij.openapi.Disposable;
|
||||
import com.intellij.openapi.application.ApplicationManager;
|
||||
import com.intellij.openapi.application.ReadActionProcessor;
|
||||
@@ -119,7 +118,7 @@ public class JavaPsiFacadeImpl extends JavaPsiFacadeEx implements Disposable {
|
||||
final PsiModificationTrackerImpl modificationTracker = (PsiModificationTrackerImpl)psiManager.getModificationTracker();
|
||||
psiManager.addTreeChangePreprocessor(new JavaCodeBlockModificationListener(modificationTracker));
|
||||
|
||||
bus.connect().subscribe(ProjectTopics.MODIFICATION_TRACKER, new PsiModificationTracker.Listener() {
|
||||
bus.connect().subscribe(PsiModificationTracker.TOPIC, new PsiModificationTracker.Listener() {
|
||||
private long lastTimeSeen = -1L;
|
||||
|
||||
public void modificationCountChanged() {
|
||||
|
||||
@@ -17,6 +17,7 @@ package com.intellij.psi.util;
|
||||
|
||||
import com.intellij.openapi.util.Key;
|
||||
import com.intellij.openapi.util.ModificationTracker;
|
||||
import com.intellij.util.messages.Topic;
|
||||
|
||||
public interface PsiModificationTracker extends ModificationTracker {
|
||||
/**
|
||||
@@ -37,6 +38,8 @@ public interface PsiModificationTracker extends ModificationTracker {
|
||||
*/
|
||||
Key JAVA_STRUCTURE_MODIFICATION_COUNT = Key.create("JAVA_STRUCTURE_MODIFICATION_COUNT");
|
||||
|
||||
Topic<Listener> TOPIC = new Topic<Listener>("modification tracker", Listener.class, Topic.BroadcastDirection.TO_PARENT);
|
||||
|
||||
/**
|
||||
* Tracks any PSI modification.
|
||||
* @return current counter value.
|
||||
|
||||
@@ -21,13 +21,11 @@ package com.intellij;
|
||||
|
||||
import com.intellij.openapi.project.ModuleListener;
|
||||
import com.intellij.openapi.roots.ModuleRootListener;
|
||||
import com.intellij.psi.util.PsiModificationTracker;
|
||||
import com.intellij.util.messages.Topic;
|
||||
|
||||
public class ProjectTopics {
|
||||
public static final Topic<ModuleRootListener> PROJECT_ROOTS = new Topic<ModuleRootListener>("project root changes", ModuleRootListener.class);
|
||||
public static final Topic<ModuleListener> MODULES = new Topic<ModuleListener>("modules added or removed from project", ModuleListener.class);
|
||||
public static final Topic<PsiModificationTracker.Listener> MODIFICATION_TRACKER = new Topic<PsiModificationTracker.Listener>("modification tracker", PsiModificationTracker.Listener.class, Topic.BroadcastDirection.TO_PARENT);
|
||||
|
||||
private ProjectTopics() {
|
||||
}
|
||||
|
||||
@@ -15,7 +15,6 @@
|
||||
*/
|
||||
package com.intellij.psi.impl;
|
||||
|
||||
import com.intellij.ProjectTopics;
|
||||
import com.intellij.openapi.application.ApplicationManager;
|
||||
import com.intellij.openapi.project.DumbService;
|
||||
import com.intellij.openapi.project.Project;
|
||||
@@ -37,7 +36,7 @@ public class PsiModificationTrackerImpl implements PsiModificationTracker, PsiTr
|
||||
|
||||
public PsiModificationTrackerImpl(Project project) {
|
||||
final MessageBus bus = project.getMessageBus();
|
||||
myPublisher = bus.syncPublisher(ProjectTopics.MODIFICATION_TRACKER);
|
||||
myPublisher = bus.syncPublisher(TOPIC);
|
||||
bus.connect().subscribe(DumbService.DUMB_MODE, new DumbService.DumbModeListener() {
|
||||
|
||||
public void enteredDumbMode() {
|
||||
|
||||
@@ -15,7 +15,6 @@
|
||||
*/
|
||||
package com.intellij.semantic;
|
||||
|
||||
import com.intellij.ProjectTopics;
|
||||
import com.intellij.lang.ASTNode;
|
||||
import com.intellij.openapi.application.ApplicationManager;
|
||||
import com.intellij.openapi.project.Project;
|
||||
@@ -69,7 +68,7 @@ public class SemServiceImpl extends SemService{
|
||||
public SemServiceImpl(Project project, PsiManager psiManager) {
|
||||
myProject = project;
|
||||
final MessageBusConnection connection = project.getMessageBus().connect();
|
||||
connection.subscribe(ProjectTopics.MODIFICATION_TRACKER, new PsiModificationTracker.Listener() {
|
||||
connection.subscribe(PsiModificationTracker.TOPIC, new PsiModificationTracker.Listener() {
|
||||
public void modificationCountChanged() {
|
||||
if (!isInsideAtomicChange()) {
|
||||
clearCache();
|
||||
|
||||
+1
-2
@@ -16,7 +16,6 @@
|
||||
|
||||
package org.jetbrains.plugins.groovy.mvc.projectView;
|
||||
|
||||
import com.intellij.ProjectTopics;
|
||||
import com.intellij.ide.util.EditorHelper;
|
||||
import com.intellij.openapi.application.ModalityState;
|
||||
import com.intellij.openapi.editor.Editor;
|
||||
@@ -98,7 +97,7 @@ public class MvcProjectViewPane extends AbstractProjectViewPSIPane implements Id
|
||||
}
|
||||
};
|
||||
|
||||
project.getMessageBus().connect(this).subscribe(ProjectTopics.MODIFICATION_TRACKER, new PsiModificationTracker.Listener() {
|
||||
project.getMessageBus().connect(this).subscribe(PsiModificationTracker.TOPIC, new PsiModificationTracker.Listener() {
|
||||
public void modificationCountChanged() {
|
||||
if (getTree() != null && getTreeBuilder() != null) {
|
||||
updateFromRoot(true);
|
||||
|
||||
Reference in New Issue
Block a user