mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
EnforcedPlainTextFileTypeManager: pass project as a parameter [CR-IC-4656]
This commit is contained in:
+18
-20
@@ -78,36 +78,34 @@ public class EnforcedPlainTextFileTypeManager implements ProjectManagerListener
|
||||
return !originalType.isBinary() && originalType != FileTypes.PLAIN_TEXT && originalType != StdFileTypes.JAVA;
|
||||
}
|
||||
|
||||
public void markAsPlainText(VirtualFile... files) {
|
||||
setPlainTextStatus(true, files);
|
||||
public void markAsPlainText(@NotNull Project project, VirtualFile... files) {
|
||||
setPlainTextStatus(project, true, files);
|
||||
}
|
||||
|
||||
public void resetOriginalFileType(VirtualFile... files) {
|
||||
setPlainTextStatus(false, files);
|
||||
public void resetOriginalFileType(@NotNull Project project, VirtualFile... files) {
|
||||
setPlainTextStatus(project, false, files);
|
||||
}
|
||||
|
||||
private void setPlainTextStatus(final boolean isAdded, final VirtualFile... files) {
|
||||
private void setPlainTextStatus(@NotNull final Project project, final boolean isAdded, final VirtualFile... files) {
|
||||
ApplicationManager.getApplication().runWriteAction(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
for (final Project project : ProjectManager.getInstance().getOpenProjects()) {
|
||||
ProjectRootManagerEx.getInstanceEx(project).makeRootsChange(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
ProjectPlainTextFileTypeManager projectPlainTextFileTypeManager = ProjectPlainTextFileTypeManager.getInstance(project);
|
||||
for (VirtualFile file : files) {
|
||||
if (projectPlainTextFileTypeManager.hasProjectContaining(file)) {
|
||||
ensureProjectFileSetAdded(project, projectPlainTextFileTypeManager);
|
||||
if (isAdded ?
|
||||
projectPlainTextFileTypeManager.addFile(file) :
|
||||
projectPlainTextFileTypeManager.removeFile(file)) {
|
||||
FileBasedIndex.getInstance().requestReindex(file);
|
||||
}
|
||||
ProjectRootManagerEx.getInstanceEx(project).makeRootsChange(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
ProjectPlainTextFileTypeManager projectPlainTextFileTypeManager = ProjectPlainTextFileTypeManager.getInstance(project);
|
||||
for (VirtualFile file : files) {
|
||||
if (projectPlainTextFileTypeManager.hasProjectContaining(file)) {
|
||||
ensureProjectFileSetAdded(project, projectPlainTextFileTypeManager);
|
||||
if (isAdded ?
|
||||
projectPlainTextFileTypeManager.addFile(file) :
|
||||
projectPlainTextFileTypeManager.removeFile(file)) {
|
||||
FileBasedIndex.getInstance().requestReindex(file);
|
||||
}
|
||||
}
|
||||
}
|
||||
}, false, true);
|
||||
}
|
||||
}
|
||||
}, false, true);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
+5
-1
@@ -20,6 +20,7 @@ import com.intellij.openapi.actionSystem.*;
|
||||
import com.intellij.openapi.file.exclude.EnforcedPlainTextFileTypeManager;
|
||||
import com.intellij.openapi.fileTypes.FileType;
|
||||
import com.intellij.openapi.fileTypes.FileTypeManager;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
|
||||
import java.util.ArrayList;
|
||||
@@ -33,6 +34,7 @@ public class MarkAsOriginalTypeAction extends AnAction {
|
||||
public void actionPerformed(AnActionEvent e) {
|
||||
DataContext dataContext = e.getDataContext();
|
||||
final VirtualFile[] selectedFiles = CommonDataKeys.VIRTUAL_FILE_ARRAY.getData(dataContext);
|
||||
final Project project = CommonDataKeys.PROJECT.getData(dataContext);
|
||||
if (selectedFiles == null || selectedFiles.length == 0) return;
|
||||
Collection<VirtualFile> filesToUnmark = new ArrayList<VirtualFile>();
|
||||
for (VirtualFile file : selectedFiles) {
|
||||
@@ -42,7 +44,9 @@ public class MarkAsOriginalTypeAction extends AnAction {
|
||||
}
|
||||
EnforcedPlainTextFileTypeManager typeManager = EnforcedPlainTextFileTypeManager.getInstance();
|
||||
assert typeManager != null;
|
||||
typeManager.resetOriginalFileType(filesToUnmark.toArray(new VirtualFile[filesToUnmark.size()]));
|
||||
if (project != null) {
|
||||
typeManager.resetOriginalFileType(project, filesToUnmark.toArray(new VirtualFile[filesToUnmark.size()]));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
+5
-1
@@ -18,6 +18,7 @@ package com.intellij.openapi.file.exclude.ui;
|
||||
import com.intellij.openapi.actionSystem.*;
|
||||
import com.intellij.openapi.file.exclude.EnforcedPlainTextFileTypeFactory;
|
||||
import com.intellij.openapi.file.exclude.EnforcedPlainTextFileTypeManager;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
|
||||
import java.util.ArrayList;
|
||||
@@ -31,6 +32,7 @@ public class MarkAsPlainTextAction extends AnAction {
|
||||
public void actionPerformed(AnActionEvent e) {
|
||||
DataContext dataContext = e.getDataContext();
|
||||
final VirtualFile[] selectedFiles = CommonDataKeys.VIRTUAL_FILE_ARRAY.getData(dataContext);
|
||||
final Project project = CommonDataKeys.PROJECT.getData(dataContext);
|
||||
if (selectedFiles == null || selectedFiles.length == 0) return;
|
||||
EnforcedPlainTextFileTypeManager typeManager = EnforcedPlainTextFileTypeManager.getInstance();
|
||||
assert typeManager != null;
|
||||
@@ -43,7 +45,9 @@ public class MarkAsPlainTextAction extends AnAction {
|
||||
filesToMark.add(file);
|
||||
}
|
||||
}
|
||||
typeManager.markAsPlainText(filesToMark.toArray(new VirtualFile[filesToMark.size()]));
|
||||
if (project != null) {
|
||||
typeManager.markAsPlainText(project, filesToMark.toArray(new VirtualFile[filesToMark.size()]));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
+2
-2
@@ -29,10 +29,10 @@ public class EnforcedPlaintTextFileTypeManagerTest extends LightPlatformCodeInsi
|
||||
VirtualFile file = myFixture.getTempDirFixture().createFile("test.java");
|
||||
FileType originalType = file.getFileType();
|
||||
assertEquals("JAVA", originalType.getName());
|
||||
manager.markAsPlainText(file);
|
||||
manager.markAsPlainText(getProject(), file);
|
||||
FileType changedType = file.getFileType();
|
||||
assertEquals(EnforcedPlainTextFileTypeFactory.ENFORCED_PLAIN_TEXT, changedType.getName());
|
||||
manager.resetOriginalFileType(file);
|
||||
manager.resetOriginalFileType(getProject(), file);
|
||||
FileType revertedType = file.getFileType();
|
||||
assertEquals(originalType, revertedType);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user