From 15ec548aba2d0aa9f6bc45c72845047d8047e1bb Mon Sep 17 00:00:00 2001 From: Dmitry Jemerov Date: Fri, 9 Sep 2011 17:54:33 +0200 Subject: [PATCH] register ReferenceProvidersRegistry in ParsingTestCase and CoreEnvironment --- .../com/intellij/core/CoreEnvironment.java | 3 ++ .../mock/MockReferenceProvidersRegistry.java | 38 +++++++++++++++++++ .../testFramework/ParsingTestCase.java | 3 ++ 3 files changed, 44 insertions(+) create mode 100644 platform/core-impl/src/com/intellij/mock/MockReferenceProvidersRegistry.java diff --git a/platform/core-impl/src/com/intellij/core/CoreEnvironment.java b/platform/core-impl/src/com/intellij/core/CoreEnvironment.java index 995ce3ffdbe3..85b601c7d0c8 100644 --- a/platform/core-impl/src/com/intellij/core/CoreEnvironment.java +++ b/platform/core-impl/src/com/intellij/core/CoreEnvironment.java @@ -20,6 +20,7 @@ import com.intellij.lang.impl.PsiBuilderFactoryImpl; import com.intellij.mock.MockApplication; import com.intellij.mock.MockFileDocumentManagerImpl; import com.intellij.mock.MockProject; +import com.intellij.mock.MockReferenceProvidersRegistry; import com.intellij.openapi.Disposable; import com.intellij.openapi.application.ApplicationComponentLocator; import com.intellij.openapi.application.ApplicationManager; @@ -35,6 +36,7 @@ import com.intellij.psi.PsiFileFactory; import com.intellij.psi.PsiManager; import com.intellij.psi.impl.PsiFileFactoryImpl; import com.intellij.psi.impl.PsiManagerImpl; +import com.intellij.psi.impl.source.resolve.reference.ReferenceProvidersRegistry; import com.intellij.psi.util.CachedValuesManager; import com.intellij.util.CachedValuesManagerImpl; import com.intellij.util.Function; @@ -76,6 +78,7 @@ public class CoreEnvironment { myApplication.registerService(DefaultASTFactory.class, new CoreASTFactory()); myApplication.registerService(PsiBuilderFactory.class, new PsiBuilderFactoryImpl()); + myApplication.registerService(ReferenceProvidersRegistry.class, new MockReferenceProvidersRegistry()); final MutablePicoContainer projectContainer = myProject.getPicoContainer(); PsiManagerImpl psiManager = new PsiManagerImpl(myProject, null, null, null, null); diff --git a/platform/core-impl/src/com/intellij/mock/MockReferenceProvidersRegistry.java b/platform/core-impl/src/com/intellij/mock/MockReferenceProvidersRegistry.java new file mode 100644 index 000000000000..fb092b8bd495 --- /dev/null +++ b/platform/core-impl/src/com/intellij/mock/MockReferenceProvidersRegistry.java @@ -0,0 +1,38 @@ +/* + * Copyright 2000-2011 JetBrains s.r.o. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.intellij.mock; + +import com.intellij.lang.Language; +import com.intellij.psi.PsiElement; +import com.intellij.psi.PsiReference; +import com.intellij.psi.PsiReferenceRegistrar; +import com.intellij.psi.PsiReferenceService; +import com.intellij.psi.impl.source.resolve.reference.ReferenceProvidersRegistry; + +/** + * @author yole + */ +public class MockReferenceProvidersRegistry extends ReferenceProvidersRegistry { + @Override + public PsiReferenceRegistrar getRegistrar(Language language) { + return null; + } + + @Override + protected PsiReference[] doGetReferencesFromProviders(PsiElement context, PsiReferenceService.Hints hints) { + return PsiReference.EMPTY_ARRAY; + } +} diff --git a/platform/testFramework/src/com/intellij/testFramework/ParsingTestCase.java b/platform/testFramework/src/com/intellij/testFramework/ParsingTestCase.java index 6441465a1b7b..a9d6fa7fa09a 100644 --- a/platform/testFramework/src/com/intellij/testFramework/ParsingTestCase.java +++ b/platform/testFramework/src/com/intellij/testFramework/ParsingTestCase.java @@ -41,6 +41,8 @@ import com.intellij.psi.*; import com.intellij.psi.impl.DebugUtil; import com.intellij.psi.impl.PsiCachedValuesFactory; import com.intellij.psi.impl.PsiFileFactoryImpl; +import com.intellij.psi.impl.source.resolve.reference.ReferenceProvidersRegistry; +import com.intellij.psi.impl.source.resolve.reference.ReferenceProvidersRegistryImpl; import com.intellij.psi.util.CachedValuesManager; import com.intellij.util.CachedValuesManagerImpl; import com.intellij.util.Function; @@ -107,6 +109,7 @@ public abstract class ParsingTestCase extends PlatformLiteFixture { registerComponentInstance(appContainer, FileTypeManager.class, new MockFileTypeManager(new MockLanguageFileType(myLanguage, myFileExt))); registerApplicationService(PsiBuilderFactory.class, new PsiBuilderFactoryImpl()); registerApplicationService(DefaultASTFactory.class, new DefaultASTFactoryImpl()); + registerApplicationService(ReferenceProvidersRegistry.class, new ReferenceProvidersRegistryImpl()); myProject.registerService(CachedValuesManager.class, new CachedValuesManagerImpl(myProject, new PsiCachedValuesFactory(myPsiManager))); myProject.registerService(PsiManager.class, myPsiManager); myProject.registerService(StartupManager.class, new StartupManagerImpl(myProject));