From a9b4587b821c16566dcc290a3c37cf5b37c8a2c8 Mon Sep 17 00:00:00 2001 From: "Pavel V. Talanov" Date: Mon, 7 Sep 2015 16:00:27 +0300 Subject: [PATCH] Index facade files by package fq names --- .../idea/stubindex/IdeStubIndexService.java | 1 + .../JetFileFacadeClassByPackageIndex.kt | 36 +++++++++++++++++++ idea/src/META-INF/plugin.xml | 1 + 3 files changed, 38 insertions(+) create mode 100644 idea/idea-analysis/src/org/jetbrains/kotlin/idea/stubindex/JetFileFacadeClassByPackageIndex.kt diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/stubindex/IdeStubIndexService.java b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/stubindex/IdeStubIndexService.java index f3094cf2c7d..25b435a0ffb 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/stubindex/IdeStubIndexService.java +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/stubindex/IdeStubIndexService.java @@ -46,6 +46,7 @@ public class IdeStubIndexService extends StubIndexService { FqName facadeFqName = ((KotlinFileStubForIde) stub).getFacadeFqName(); if (facadeFqName != null) { sink.occurrence(JetFileFacadeClassIndex.INSTANCE.getKey(), facadeFqName.asString()); + sink.occurrence(JetFileFacadeClassByPackageIndex.INSTANCE.getKey(), packageFqName.asString()); } FqName partFqName = ((KotlinFileStubForIde) stub).getPartFqName(); diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/stubindex/JetFileFacadeClassByPackageIndex.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/stubindex/JetFileFacadeClassByPackageIndex.kt new file mode 100644 index 00000000000..2638710645e --- /dev/null +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/stubindex/JetFileFacadeClassByPackageIndex.kt @@ -0,0 +1,36 @@ +/* + * Copyright 2010-2015 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.stubindex + +import com.intellij.openapi.project.Project +import com.intellij.psi.search.GlobalSearchScope +import com.intellij.psi.stubs.StringStubIndexExtension +import com.intellij.psi.stubs.StubIndexKey +import org.jetbrains.kotlin.psi.JetFile + +public class JetFileFacadeClassByPackageIndex private constructor() : StringStubIndexExtension() { + override fun getKey(): StubIndexKey = KEY + + override fun get(key: String, project: Project, scope: GlobalSearchScope) = + super.get(key, project, JetSourceFilterScope.kotlinSourcesAndLibraries(scope, project)) + + companion object { + private val KEY = KotlinIndexUtil.createIndexKey(JetFileFacadeClassByPackageIndex::class.java) + public val INSTANCE: JetFileFacadeClassByPackageIndex = JetFileFacadeClassByPackageIndex() + public @jvmStatic fun getInstance(): JetFileFacadeClassByPackageIndex = INSTANCE + } +} \ No newline at end of file diff --git a/idea/src/META-INF/plugin.xml b/idea/src/META-INF/plugin.xml index 07bfab730d0..31c66b3e6bf 100644 --- a/idea/src/META-INF/plugin.xml +++ b/idea/src/META-INF/plugin.xml @@ -502,6 +502,7 @@ +