public static void initExtensions(@NotNull MockProject project) {
Extensions.getRootArea().registerExtensionPoint("com.intellij.referencesSearch", "com.intellij.util.QueryExecutor");
Extensions.getRootArea().registerExtensionPoint("com.intellij.useScopeEnlarger", "com.intellij.psi.search.UseScopeEnlarger");
Extensions.getRootArea().registerExtensionPoint("com.intellij.useScopeOptimizer", "com.intellij.psi.search.UseScopeOptimizer");
Extensions.getRootArea().registerExtensionPoint("com.intellij.languageInjector", "com.intellij.psi.LanguageInjector");
Extensions.getArea(project).registerExtensionPoint("com.intellij.multiHostInjector", "com.intellij.lang.injection.MultiHostInjector");
Extensions.getRootArea().registerExtensionPoint("com.intellij.codeInsight.containerProvider", "com.intellij.codeInsight.ContainerProvider");
Extensions.getRootArea().getExtensionPoint("com.intellij.referencesSearch").registerExtension(new CachesBasedRefSearcher());
registerApplicationService(project, PsiReferenceService.class, PsiReferenceServiceImpl.class);
registerApplicationService(project, JobLauncher.class, JobLauncherImpl.class);
registerApplicationService(project, AsyncFutureFactory.class, AsyncFutureFactoryImpl.class);
project.registerService(PsiSearchHelper.class, PsiSearchHelperImpl.class);
project.registerService(DumbService.class, DumbServiceImpl.class);
project.registerService(ResolveCache.class, ResolveCache.class);
project.registerService(PsiFileFactory.class, PsiFileFactoryImpl.class);
try {
project.registerService(JavaHelper.class, new JavaHelper.AsmHelper());
}
catch (LinkageError e) {
System.out.println("ASM not available, using reflection helper: " + e);
project.registerService(JavaHelper.class, new JavaHelper.ReflectionHelper());
}
project.registerService(InjectedLanguageManager.class, InjectedLanguageManagerImpl.class);
ProgressManager.getInstance();
}