mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-18 09:34:34 +07:00
patch from Alexander Zverev
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user