Search in sources :

Example 1 with EncodingManager

use of org.editorconfig.configmanagement.EncodingManager in project intellij-community by JetBrains.

the class ConfigProjectComponent method runActivity.

@Override
public void runActivity(@NotNull Project project) {
    // Register project-level config managers
    final EditorFactory editorFactory = EditorFactory.getInstance();
    MessageBus bus = project.getMessageBus();
    EditorSettingsManager editorSettingsManager = new EditorSettingsManager(project);
    EncodingManager encodingManager = new EncodingManager(project);
    LineEndingsManager lineEndingsManager = new LineEndingsManager(project);
    bus.connect().subscribe(AppTopics.FILE_DOCUMENT_SYNC, encodingManager);
    bus.connect().subscribe(AppTopics.FILE_DOCUMENT_SYNC, editorSettingsManager);
    bus.connect().subscribe(AppTopics.FILE_DOCUMENT_SYNC, lineEndingsManager);
    VirtualFileManager.getInstance().addVirtualFileListener(new VirtualFileAdapter() {

        @Override
        public void fileCreated(@NotNull VirtualFileEvent event) {
            updateOpenEditors(event);
        }

        @Override
        public void fileDeleted(@NotNull VirtualFileEvent event) {
            updateOpenEditors(event);
        }

        @Override
        public void contentsChanged(@NotNull VirtualFileEvent event) {
            updateOpenEditors(event);
        }

        private void updateOpenEditors(VirtualFileEvent event) {
            final VirtualFile file = event.getFile();
            if (".editorconfig".equals(file.getName())) {
                if (ProjectRootManager.getInstance(project).getFileIndex().isInContent(file) || !Registry.is("editor.config.stop.at.project.root")) {
                    for (Editor editor : editorFactory.getAllEditors()) {
                        if (editor.isDisposed())
                            continue;
                        ;
                        ((EditorEx) editor).reinitSettings();
                    }
                }
            }
        }
    }, project);
}
Also used : EncodingManager(org.editorconfig.configmanagement.EncodingManager) VirtualFile(com.intellij.openapi.vfs.VirtualFile) EditorFactory(com.intellij.openapi.editor.EditorFactory) MessageBus(com.intellij.util.messages.MessageBus) EditorSettingsManager(org.editorconfig.configmanagement.EditorSettingsManager) VirtualFileEvent(com.intellij.openapi.vfs.VirtualFileEvent) LineEndingsManager(org.editorconfig.configmanagement.LineEndingsManager) Editor(com.intellij.openapi.editor.Editor) VirtualFileAdapter(com.intellij.openapi.vfs.VirtualFileAdapter)

Aggregations

Editor (com.intellij.openapi.editor.Editor)1 EditorFactory (com.intellij.openapi.editor.EditorFactory)1 VirtualFile (com.intellij.openapi.vfs.VirtualFile)1 VirtualFileAdapter (com.intellij.openapi.vfs.VirtualFileAdapter)1 VirtualFileEvent (com.intellij.openapi.vfs.VirtualFileEvent)1 MessageBus (com.intellij.util.messages.MessageBus)1 EditorSettingsManager (org.editorconfig.configmanagement.EditorSettingsManager)1 EncodingManager (org.editorconfig.configmanagement.EncodingManager)1 LineEndingsManager (org.editorconfig.configmanagement.LineEndingsManager)1