diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/references/AbstractKotlinReferenceContributor.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/references/AbstractKotlinReferenceContributor.kt deleted file mode 100644 index 36f45f81cf3..00000000000 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/references/AbstractKotlinReferenceContributor.kt +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Copyright 2010-2016 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 org.jetbrains.kotlin.idea.references - -import com.intellij.patterns.ElementPattern -import com.intellij.patterns.PlatformPatterns -import com.intellij.psi.* -import com.intellij.util.ProcessingContext -import org.jetbrains.kotlin.psi.KtElement - -abstract class AbstractKotlinReferenceContributor : PsiReferenceContributor() { - protected inline fun PsiReferenceRegistrar.registerProvider( - priority: Double = PsiReferenceRegistrar.DEFAULT_PRIORITY, - crossinline factory: (E) -> PsiReference? - ) { - registerMultiProvider(priority) { factory(it)?.let { arrayOf(it) } ?: PsiReference.EMPTY_ARRAY } - } - - protected inline fun PsiReferenceRegistrar.registerMultiProvider( - priority: Double = PsiReferenceRegistrar.DEFAULT_PRIORITY, - crossinline factory: (E) -> Array - ) { - registerMultiProvider(PlatformPatterns.psiElement(E::class.java), priority, factory) - } - - protected inline fun PsiReferenceRegistrar.registerMultiProvider( - pattern: ElementPattern, - priority: Double = PsiReferenceRegistrar.DEFAULT_PRIORITY, - crossinline factory: (E) -> Array - ) { - registerReferenceProvider( - pattern, - object : PsiReferenceProvider() { - override fun getReferencesByElement(element: PsiElement, context: ProcessingContext): Array { - @Suppress("UNCHECKED_CAST") - return factory(element as E) - } - }, - priority - ) - } -} \ No newline at end of file diff --git a/idea/idea-jvm/src/org/jetbrains/kotlin/idea/properties/KotlinPropertiesReferenceContributor.kt b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/properties/KotlinPropertiesReferenceContributor.kt index 616d8473972..dd101369e2e 100644 --- a/idea/idea-jvm/src/org/jetbrains/kotlin/idea/properties/KotlinPropertiesReferenceContributor.kt +++ b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/properties/KotlinPropertiesReferenceContributor.kt @@ -17,11 +17,11 @@ package org.jetbrains.kotlin.idea.properties import com.intellij.patterns.PlatformPatterns +import com.intellij.psi.PsiReferenceContributor import com.intellij.psi.PsiReferenceRegistrar -import org.jetbrains.kotlin.idea.references.AbstractKotlinReferenceContributor import org.jetbrains.kotlin.psi.KtStringTemplateExpression -class KotlinPropertiesReferenceContributor : AbstractKotlinReferenceContributor() { +class KotlinPropertiesReferenceContributor : PsiReferenceContributor() { override fun registerReferenceProviders(registrar: PsiReferenceRegistrar) { registrar.registerReferenceProvider( PlatformPatterns.psiElement(KtStringTemplateExpression::class.java), diff --git a/idea/src/org/jetbrains/kotlin/idea/references/KotlinFilePathReferenceContributor.kt b/idea/src/org/jetbrains/kotlin/idea/references/KotlinFilePathReferenceContributor.kt index 406f2987a72..4385319d753 100644 --- a/idea/src/org/jetbrains/kotlin/idea/references/KotlinFilePathReferenceContributor.kt +++ b/idea/src/org/jetbrains/kotlin/idea/references/KotlinFilePathReferenceContributor.kt @@ -20,6 +20,7 @@ import com.intellij.codeInsight.lookup.LookupElement import com.intellij.patterns.PlatformPatterns import com.intellij.psi.PsiElement import com.intellij.psi.PsiReference +import com.intellij.psi.PsiReferenceContributor import com.intellij.psi.PsiReferenceRegistrar import com.intellij.psi.impl.source.resolve.reference.impl.providers.FilePathReferenceProvider import com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference @@ -30,7 +31,7 @@ import org.jetbrains.kotlin.psi.psiUtil.getContentRange import org.jetbrains.kotlin.psi.psiUtil.isPlain import org.jetbrains.kotlin.psi.psiUtil.plainContent -class KotlinFilePathReferenceContributor : AbstractKotlinReferenceContributor() { +class KotlinFilePathReferenceContributor : PsiReferenceContributor() { object KotlinFilePathReferenceProvider : FilePathReferenceProvider() { override fun getReferencesByElement(element: PsiElement, context: ProcessingContext): Array { if (element !is KtStringTemplateExpression) return PsiReference.EMPTY_ARRAY