[Analysis API] introduce a KotlinResolutionScopeProvider to optimize the resolutions scope in the IDE
This commit is contained in:
+19
@@ -0,0 +1,19 @@
|
||||
/*
|
||||
* Copyright 2010-2023 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||
*/
|
||||
|
||||
package org.jetbrains.kotlin.analysis.providers
|
||||
|
||||
import com.intellij.openapi.project.Project
|
||||
import com.intellij.psi.search.GlobalSearchScope
|
||||
import org.jetbrains.kotlin.analysis.project.structure.KtModule
|
||||
|
||||
public abstract class KotlinResolutionScopeProvider {
|
||||
public abstract fun getResolutionScope(module: KtModule): GlobalSearchScope
|
||||
|
||||
public companion object {
|
||||
public fun getInstance(project: Project): KotlinResolutionScopeProvider =
|
||||
project.getService(KotlinResolutionScopeProvider::class.java)
|
||||
}
|
||||
}
|
||||
+21
@@ -0,0 +1,21 @@
|
||||
/*
|
||||
* Copyright 2010-2023 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||
*/
|
||||
|
||||
package org.jetbrains.kotlin.analysis.providers.impl
|
||||
|
||||
import com.intellij.psi.search.GlobalSearchScope
|
||||
import org.jetbrains.kotlin.analysis.project.structure.KtModule
|
||||
import org.jetbrains.kotlin.analysis.project.structure.allDirectDependencies
|
||||
import org.jetbrains.kotlin.analysis.providers.KotlinResolutionScopeProvider
|
||||
|
||||
public class KotlinByModulesResolutionScopeProvider : KotlinResolutionScopeProvider() {
|
||||
override fun getResolutionScope(module: KtModule): GlobalSearchScope {
|
||||
val allModules = buildList {
|
||||
add(module)
|
||||
addAll(module.allDirectDependencies())
|
||||
}
|
||||
return GlobalSearchScope.union(allModules.map { it.contentScope })
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user