patch from Alexander Zverev

This commit is contained in:
Dmitry Jemerov
2012-02-09 20:22:47 +01:00
parent e6639d452a
commit 8773f3ce69
2 changed files with 16 additions and 6 deletions
@@ -70,12 +70,6 @@ public class JavaCoreEnvironment extends CoreEnvironment {
myApplication.registerService(PsiPackageImplementationHelper.class, new CorePsiPackageImplementationHelper());
myFileManager = new CoreJavaFileManager(myPsiManager, getLocalFileSystem(), myJarFileSystem);
JavaPsiFacadeImpl javaPsiFacade = new JavaPsiFacadeImpl(myProject, myPsiManager, myFileManager, null);
myProject.registerService(CoreJavaFileManager.class, myFileManager);
registerComponentInstance(myProject.getPicoContainer(),
JavaPsiFacade.class,
javaPsiFacade);
myProject.registerService(JavaPsiFacade.class, javaPsiFacade);
myProject.registerService(PsiElementFactory.class, new PsiElementFactoryImpl(myPsiManager));
myProject.registerService(JavaPsiImplementationHelper.class, new CoreJavaPsiImplementationHelper());
myProject.registerService(PsiResolveHelper.class, new PsiResolveHelperImpl(myPsiManager));
@@ -83,6 +77,13 @@ public class JavaCoreEnvironment extends CoreEnvironment {
myProject.registerService(PackageIndex.class, myFileManager);
myProject.registerService(JavaResolveCache.class, new JavaResolveCache(null));
JavaPsiFacadeImpl javaPsiFacade = new JavaPsiFacadeImpl(myProject, myPsiManager, myFileManager, null);
myProject.registerService(CoreJavaFileManager.class, myFileManager);
registerComponentInstance(myProject.getPicoContainer(),
JavaPsiFacade.class,
javaPsiFacade);
myProject.registerService(JavaPsiFacade.class, javaPsiFacade);
myApplication.registerService(EmptySubstitutor.class, new EmptySubstitutorImpl());
myApplication.registerService(JavaDirectoryService.class, new CoreJavaDirectoryService());
}
@@ -3,6 +3,8 @@ package com.intellij.mock;
import com.intellij.openapi.editor.Document;
import com.intellij.openapi.fileEditor.FileDocumentManager;
import com.intellij.openapi.fileEditor.impl.LoadTextUtil;
import com.intellij.openapi.fileTypes.BinaryFileTypeDecompilers;
import com.intellij.openapi.fileTypes.FileType;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.util.Key;
import com.intellij.openapi.vfs.VirtualFile;
@@ -26,11 +28,18 @@ public class MockFileDocumentManagerImpl extends FileDocumentManager {
private final WeakFactoryMap<VirtualFile,Document> myDocuments = new WeakFactoryMap<VirtualFile, Document>() {
@Override
protected Document create(final VirtualFile key) {
if (key.isDirectory() || isBinaryWithoutDecompiler(key)) return null;
CharSequence text = LoadTextUtil.loadText(key);
final Document document = myFactory.fun(text);
document.putUserData(MOCK_VIRTUAL_FILE_KEY, key);
return document;
}
private boolean isBinaryWithoutDecompiler(VirtualFile file) {
final FileType ft = file.getFileType();
return ft.isBinary() && BinaryFileTypeDecompilers.INSTANCE.forFileType(ft) == null;
}
};
@Override