mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
move filetypes topic to FileTypeManager; move its listener to PsiVFSListener
This commit is contained in:
@@ -16,7 +16,6 @@
|
||||
|
||||
package com.intellij.ide.todo;
|
||||
|
||||
import com.intellij.AppTopics;
|
||||
import com.intellij.ide.IdeBundle;
|
||||
import com.intellij.openapi.Disposable;
|
||||
import com.intellij.openapi.application.ApplicationManager;
|
||||
@@ -26,6 +25,7 @@ import com.intellij.openapi.components.State;
|
||||
import com.intellij.openapi.components.Storage;
|
||||
import com.intellij.openapi.fileTypes.FileTypeEvent;
|
||||
import com.intellij.openapi.fileTypes.FileTypeListener;
|
||||
import com.intellij.openapi.fileTypes.FileTypeManager;
|
||||
import com.intellij.openapi.progress.ProcessCanceledException;
|
||||
import com.intellij.openapi.progress.ProgressManager;
|
||||
import com.intellij.openapi.project.DumbService;
|
||||
@@ -102,7 +102,7 @@ public class TodoView implements PersistentStateComponent<Element>, Disposable {
|
||||
TodoConfiguration.getInstance().addPropertyChangeListener(myPropertyChangeListener,this);
|
||||
|
||||
MessageBusConnection connection = myProject.getMessageBus().connect(this);
|
||||
connection.subscribe(AppTopics.FILE_TYPES, new MyFileTypeListener());
|
||||
connection.subscribe(FileTypeManager.TOPIC, new MyFileTypeListener());
|
||||
}
|
||||
|
||||
public void loadState(Element element) {
|
||||
|
||||
@@ -16,7 +16,6 @@
|
||||
|
||||
package com.intellij.openapi.roots.impl;
|
||||
|
||||
import com.intellij.AppTopics;
|
||||
import com.intellij.ProjectTopics;
|
||||
import com.intellij.openapi.components.ProjectComponent;
|
||||
import com.intellij.openapi.diagnostic.Logger;
|
||||
@@ -156,7 +155,7 @@ public class DirectoryIndexImpl extends DirectoryIndex implements ProjectCompone
|
||||
}
|
||||
|
||||
private void subscribeToFileChanges() {
|
||||
myConnection.subscribe(AppTopics.FILE_TYPES, new FileTypeListener() {
|
||||
myConnection.subscribe(FileTypeManager.TOPIC, new FileTypeListener() {
|
||||
public void beforeFileTypesChanged(FileTypeEvent event) {
|
||||
}
|
||||
|
||||
|
||||
@@ -16,7 +16,6 @@
|
||||
|
||||
package com.intellij.openapi.roots.impl;
|
||||
|
||||
import com.intellij.AppTopics;
|
||||
import com.intellij.ProjectTopics;
|
||||
import com.intellij.ide.caches.CacheUpdater;
|
||||
import com.intellij.openapi.Disposable;
|
||||
@@ -163,7 +162,7 @@ public class ProjectRootManagerImpl extends ProjectRootManagerEx implements Proj
|
||||
StartupManager startupManager) {
|
||||
myProject = (ProjectEx)project;
|
||||
myConnection = project.getMessageBus().connect(project);
|
||||
myConnection.subscribe(AppTopics.FILE_TYPES, new FileTypeListener() {
|
||||
myConnection.subscribe(FileTypeManager.TOPIC, new FileTypeListener() {
|
||||
public void beforeFileTypesChanged(FileTypeEvent event) {
|
||||
beforeRootsChange(true);
|
||||
}
|
||||
|
||||
@@ -204,18 +204,6 @@ public class FileManagerImpl implements FileManager {
|
||||
myDisposed = false;
|
||||
myInitialized = true;
|
||||
|
||||
myConnection.subscribe(AppTopics.FILE_TYPES, new FileTypeListener() {
|
||||
public void beforeFileTypesChanged(FileTypeEvent event) {}
|
||||
|
||||
public void fileTypesChanged(FileTypeEvent e) {
|
||||
handleFileTypesChange(new FileTypesChanged() {
|
||||
protected void updateMaps() {
|
||||
removeInvalidFilesAndDirs(true);
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
myConnection.subscribe(AppTopics.FILE_DOCUMENT_SYNC, new MyFileDocumentManagerAdapter());
|
||||
}
|
||||
|
||||
@@ -223,6 +211,14 @@ public class FileManagerImpl implements FileManager {
|
||||
return myInitialized;
|
||||
}
|
||||
|
||||
void processFileTypesChanged() {
|
||||
handleFileTypesChange(new FileTypesChanged() {
|
||||
protected void updateMaps() {
|
||||
removeInvalidFilesAndDirs(true);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private abstract class FileTypesChanged implements Runnable {
|
||||
protected abstract void updateMaps();
|
||||
|
||||
|
||||
@@ -21,6 +21,8 @@ import com.intellij.openapi.diagnostic.Logger;
|
||||
import com.intellij.openapi.editor.Document;
|
||||
import com.intellij.openapi.fileEditor.FileDocumentManager;
|
||||
import com.intellij.openapi.fileTypes.FileType;
|
||||
import com.intellij.openapi.fileTypes.FileTypeEvent;
|
||||
import com.intellij.openapi.fileTypes.FileTypeListener;
|
||||
import com.intellij.openapi.fileTypes.FileTypeManager;
|
||||
import com.intellij.openapi.module.Module;
|
||||
import com.intellij.openapi.roots.*;
|
||||
@@ -63,6 +65,13 @@ public class PsiVFSListener extends VirtualFileAdapter {
|
||||
public void run() {
|
||||
myConnection.subscribe(VirtualFileManager.VFS_CHANGES, new BulkVirtualFileListenerAdapter(PsiVFSListener.this));
|
||||
myConnection.subscribe(ProjectTopics.PROJECT_ROOTS, new MyModuleRootListener());
|
||||
myConnection.subscribe(FileTypeManager.TOPIC, new FileTypeListener() {
|
||||
public void beforeFileTypesChanged(FileTypeEvent event) {}
|
||||
|
||||
public void fileTypesChanged(FileTypeEvent e) {
|
||||
myFileManager.processFileTypesChanged();
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@@ -165,7 +165,7 @@ public class FileBasedIndex implements ApplicationComponent {
|
||||
}
|
||||
});
|
||||
|
||||
connection.subscribe(AppTopics.FILE_TYPES, new FileTypeListener() {
|
||||
connection.subscribe(FileTypeManager.TOPIC, new FileTypeListener() {
|
||||
private Map<FileType, Set<String>> myTypeToExtensionMap;
|
||||
public void beforeFileTypesChanged(final FileTypeEvent event) {
|
||||
cleanupProcessedFlag();
|
||||
|
||||
@@ -20,10 +20,8 @@
|
||||
package com.intellij;
|
||||
|
||||
import com.intellij.openapi.fileEditor.FileDocumentManagerListener;
|
||||
import com.intellij.openapi.fileTypes.FileTypeListener;
|
||||
import com.intellij.util.messages.Topic;
|
||||
|
||||
public class AppTopics {
|
||||
public static final Topic<FileTypeListener> FILE_TYPES = new Topic<FileTypeListener>("File types change", FileTypeListener.class);
|
||||
public static final Topic<FileDocumentManagerListener> FILE_DOCUMENT_SYNC = new Topic<FileDocumentManagerListener>("Document load, save and reload events", FileDocumentManagerListener.class);
|
||||
}
|
||||
@@ -19,6 +19,7 @@ import com.intellij.openapi.application.ApplicationComponentLocator;
|
||||
import com.intellij.openapi.application.CachedSingletonsRegistry;
|
||||
import com.intellij.openapi.util.Getter;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import com.intellij.util.messages.Topic;
|
||||
import org.jetbrains.annotations.NonNls;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
@@ -41,6 +42,9 @@ public abstract class FileTypeManager extends FileTypeRegistry {
|
||||
}
|
||||
|
||||
private static FileTypeManager ourInstance = CachedSingletonsRegistry.markCachedField(FileTypeManager.class);
|
||||
|
||||
public static final Topic<FileTypeListener> TOPIC = new Topic<FileTypeListener>("File types change", FileTypeListener.class);
|
||||
|
||||
/**
|
||||
* Returns the singleton instance of the FileTypeManager component.
|
||||
*
|
||||
@@ -117,7 +121,7 @@ public abstract class FileTypeManager extends FileTypeRegistry {
|
||||
* registered file types.
|
||||
*
|
||||
* @param listener The listener instance.
|
||||
* @deprecated Subscribe to #FILE_TYPES on any message bus level.
|
||||
* @deprecated Subscribe to #TOPIC on any message bus level.
|
||||
*/
|
||||
|
||||
public abstract void addFileTypeListener(@NotNull FileTypeListener listener);
|
||||
@@ -127,7 +131,7 @@ public abstract class FileTypeManager extends FileTypeRegistry {
|
||||
* registered file types.
|
||||
*
|
||||
* @param listener The listener instance.
|
||||
* @deprecated Subscribe to #FILE_TYPES on any message bus level.
|
||||
* @deprecated Subscribe to #TOPIC on any message bus level.
|
||||
*/
|
||||
|
||||
public abstract void removeFileTypeListener(@NotNull FileTypeListener listener);
|
||||
|
||||
+2
-2
@@ -15,7 +15,6 @@
|
||||
*/
|
||||
package com.intellij.openapi.fileEditor.impl;
|
||||
|
||||
import com.intellij.AppTopics;
|
||||
import com.intellij.ProjectTopics;
|
||||
import com.intellij.ide.IdeBundle;
|
||||
import com.intellij.ide.plugins.PluginManager;
|
||||
@@ -41,6 +40,7 @@ import com.intellij.openapi.fileEditor.impl.text.TextEditorImpl;
|
||||
import com.intellij.openapi.fileEditor.impl.text.TextEditorProvider;
|
||||
import com.intellij.openapi.fileTypes.FileTypeEvent;
|
||||
import com.intellij.openapi.fileTypes.FileTypeListener;
|
||||
import com.intellij.openapi.fileTypes.FileTypeManager;
|
||||
import com.intellij.openapi.project.DumbAwareRunnable;
|
||||
import com.intellij.openapi.project.DumbService;
|
||||
import com.intellij.openapi.project.Project;
|
||||
@@ -1201,7 +1201,7 @@ public class FileEditorManagerImpl extends FileEditorManagerEx implements Projec
|
||||
final MyFileStatusListener myFileStatusListener = new MyFileStatusListener();
|
||||
fileStatusManager.addFileStatusListener(myFileStatusListener, myProject);
|
||||
}
|
||||
connection.subscribe(AppTopics.FILE_TYPES, new MyFileTypeListener());
|
||||
connection.subscribe(FileTypeManager.TOPIC, new MyFileTypeListener());
|
||||
connection.subscribe(ProjectTopics.PROJECT_ROOTS, new MyRootsListener());
|
||||
|
||||
/**
|
||||
|
||||
+2
-2
@@ -15,7 +15,6 @@
|
||||
*/
|
||||
package com.intellij.openapi.fileEditor.impl.text;
|
||||
|
||||
import com.intellij.AppTopics;
|
||||
import com.intellij.ide.ui.customization.CustomActionsSchema;
|
||||
import com.intellij.openapi.actionSystem.*;
|
||||
import com.intellij.openapi.application.ApplicationManager;
|
||||
@@ -36,6 +35,7 @@ import com.intellij.openapi.fileEditor.FileEditorManager;
|
||||
import com.intellij.openapi.fileEditor.impl.FileEditorManagerImpl;
|
||||
import com.intellij.openapi.fileTypes.FileTypeEvent;
|
||||
import com.intellij.openapi.fileTypes.FileTypeListener;
|
||||
import com.intellij.openapi.fileTypes.FileTypeManager;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import com.intellij.openapi.vfs.VirtualFileAdapter;
|
||||
@@ -107,7 +107,7 @@ class TextEditorComponent extends JPanel implements DataProvider{
|
||||
myEditorPropertyChangeListener = new MyEditorPropertyChangeListener();
|
||||
|
||||
myConnection = project.getMessageBus().connect();
|
||||
myConnection.subscribe(AppTopics.FILE_TYPES, new MyFileTypeListener());
|
||||
myConnection.subscribe(FileTypeManager.TOPIC, new MyFileTypeListener());
|
||||
|
||||
myVirtualFileListener = new MyVirtualFileListener();
|
||||
myFile.getFileSystem().addVirtualFileListener(myVirtualFileListener);
|
||||
|
||||
+3
-4
@@ -15,7 +15,6 @@
|
||||
*/
|
||||
package com.intellij.openapi.fileTypes.impl;
|
||||
|
||||
import com.intellij.AppTopics;
|
||||
import com.intellij.ide.highlighter.custom.SyntaxTable;
|
||||
import com.intellij.ide.highlighter.custom.impl.ReadFileType;
|
||||
import com.intellij.ide.plugins.PluginManager;
|
||||
@@ -408,7 +407,7 @@ public class FileTypeManagerImpl extends FileTypeManagerEx implements NamedJDOME
|
||||
|
||||
public void fireBeforeFileTypesChanged() {
|
||||
FileTypeEvent event = new FileTypeEvent(this);
|
||||
myMessageBus.syncPublisher(AppTopics.FILE_TYPES).beforeFileTypesChanged(event);
|
||||
myMessageBus.syncPublisher(TOPIC).beforeFileTypesChanged(event);
|
||||
}
|
||||
|
||||
public SchemesManager<FileType, AbstractFileType> getSchemesManager() {
|
||||
@@ -416,14 +415,14 @@ public class FileTypeManagerImpl extends FileTypeManagerEx implements NamedJDOME
|
||||
}
|
||||
|
||||
public void fireFileTypesChanged() {
|
||||
myMessageBus.syncPublisher(AppTopics.FILE_TYPES).fileTypesChanged(new FileTypeEvent(this));
|
||||
myMessageBus.syncPublisher(TOPIC).fileTypesChanged(new FileTypeEvent(this));
|
||||
}
|
||||
|
||||
private final Map<FileTypeListener, MessageBusConnection> myAdapters = new HashMap<FileTypeListener, MessageBusConnection>();
|
||||
|
||||
public void addFileTypeListener(@NotNull FileTypeListener listener) {
|
||||
final MessageBusConnection connection = myMessageBus.connect();
|
||||
connection.subscribe(AppTopics.FILE_TYPES, listener);
|
||||
connection.subscribe(TOPIC, listener);
|
||||
myAdapters.put(listener, connection);
|
||||
}
|
||||
|
||||
|
||||
@@ -16,7 +16,6 @@
|
||||
|
||||
package com.maddyhome.idea.copyright.util;
|
||||
|
||||
import com.intellij.AppTopics;
|
||||
import com.intellij.lang.Commenter;
|
||||
import com.intellij.lang.LanguageCommenters;
|
||||
import com.intellij.openapi.components.ServiceManager;
|
||||
@@ -294,7 +293,7 @@ public class FileTypeUtil
|
||||
{
|
||||
createMappings();
|
||||
loadFileTypes();
|
||||
bus.connect().subscribe(AppTopics.FILE_TYPES, new FileTypeListener() {
|
||||
bus.connect().subscribe(FileTypeManager.TOPIC, new FileTypeListener() {
|
||||
@Override
|
||||
public void beforeFileTypesChanged(FileTypeEvent event) {
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user