mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
decouple ClassFileViewProvider from ProjectRootManager
This commit is contained in:
@@ -19,14 +19,13 @@
|
||||
*/
|
||||
package com.intellij.psi;
|
||||
|
||||
import com.intellij.openapi.components.ServiceManager;
|
||||
import com.intellij.openapi.fileTypes.FileType;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.roots.ProjectRootManager;
|
||||
import com.intellij.openapi.roots.ProjectFileIndex;
|
||||
import com.intellij.openapi.roots.ExcludedFileIndex;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import com.intellij.psi.impl.PsiManagerImpl;
|
||||
import com.intellij.psi.impl.compiled.ClsFileImpl;
|
||||
import com.intellij.testFramework.LightVirtualFile;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
public class ClassFileViewProvider extends SingleRootFileViewProvider {
|
||||
@@ -40,7 +39,7 @@ public class ClassFileViewProvider extends SingleRootFileViewProvider {
|
||||
|
||||
@Override
|
||||
protected PsiFile createFile(final Project project, final VirtualFile vFile, final FileType fileType) {
|
||||
final ProjectFileIndex fileIndex = ProjectRootManager.getInstance(project).getFileIndex();
|
||||
final ExcludedFileIndex fileIndex = ServiceManager.getService(project, ExcludedFileIndex.class);
|
||||
if (fileIndex.isInLibraryClasses(vFile) || !fileIndex.isInSource(vFile)) {
|
||||
String name = vFile.getName();
|
||||
|
||||
|
||||
@@ -30,6 +30,7 @@ public abstract class ExcludedFileIndex {
|
||||
|
||||
public abstract boolean isInContent(VirtualFile file);
|
||||
public abstract boolean isInSource(VirtualFile file);
|
||||
public abstract boolean isInLibraryClasses(VirtualFile file);
|
||||
public abstract boolean isExcludedFile(VirtualFile file);
|
||||
|
||||
/**
|
||||
|
||||
@@ -44,6 +44,11 @@ public class ProjectExcludedFileIndex extends ExcludedFileIndex {
|
||||
return myRootManager.getFileIndex().isInSource(file);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isInLibraryClasses(VirtualFile file) {
|
||||
return myRootManager.getFileIndex().isInLibraryClasses(file);
|
||||
}
|
||||
|
||||
public boolean isExcludedFile(final VirtualFile file) {
|
||||
return myRootManager.getFileIndex().isIgnored(file);
|
||||
}
|
||||
|
||||
@@ -43,6 +43,11 @@ public class DefaultExcludedFileIndex extends ExcludedFileIndex {
|
||||
return isInContent(file);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isInLibraryClasses(VirtualFile file) {
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean isExcludedFile(final VirtualFile file) {
|
||||
return false;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user