PsiFile (@NotNull VirtualFile file, @NotNull FileType fileType, @NotNull Language language) { if (fileType.isBinary() || file.is(VFileProperty.SPECIAL)) { return SingleRootFileViewProvider.isTooLargeForContentLoading(file) ? new PsiLargeBinaryFileImpl((PsiManagerImpl)getManager(), this) : new PsiBinaryFileImpl((PsiManagerImpl)getManager(), this); } if (!SingleRootFileViewProvider.isTooLargeForIntelligence(file)) { PsiFile psiFile = createFile(language); if (psiFile != null) return psiFile; } if (SingleRootFileViewProvider.isTooLargeForContentLoading(file)) { return new PsiLargeTextFileImpl(this); } return new PsiPlainTextFileImpl(this); }