add missing API to retrieve Kotlin source roots from a CompilerConfiguration
This commit is contained in:
@@ -69,6 +69,7 @@ import org.jetbrains.kotlin.compiler.plugin.ComponentRegistrar
|
||||
import org.jetbrains.kotlin.config.CommonConfigurationKeys
|
||||
import org.jetbrains.kotlin.config.CompilerConfiguration
|
||||
import org.jetbrains.kotlin.config.KotlinSourceRoot
|
||||
import org.jetbrains.kotlin.config.kotlinSourceRoots
|
||||
import org.jetbrains.kotlin.extensions.ExternalDeclarationsProvider
|
||||
import org.jetbrains.kotlin.idea.JetFileType
|
||||
import org.jetbrains.kotlin.load.kotlin.JvmVirtualFileFinderFactory
|
||||
@@ -214,8 +215,7 @@ public class KotlinCoreEnvironment private(
|
||||
private fun getSourceRootsCheckingForDuplicates(): Collection<String> {
|
||||
val uniqueSourceRoots = Sets.newLinkedHashSet<String>()
|
||||
|
||||
configuration.getList(CommonConfigurationKeys.CONTENT_ROOTS).filterIsInstance<KotlinSourceRoot>().forEach { sourceRoot ->
|
||||
val path = sourceRoot.path
|
||||
configuration.kotlinSourceRoots.forEach { path ->
|
||||
if (!uniqueSourceRoots.add(path)) {
|
||||
report(WARNING, "Duplicate source root: $path")
|
||||
}
|
||||
|
||||
@@ -16,6 +16,8 @@
|
||||
|
||||
package org.jetbrains.kotlin.config
|
||||
|
||||
import java.io.File
|
||||
|
||||
public trait ContentRoot
|
||||
|
||||
public data class KotlinSourceRoot(public val path: String): ContentRoot
|
||||
@@ -26,3 +28,7 @@ public fun CompilerConfiguration.addKotlinSourceRoot(source: String) {
|
||||
|
||||
public fun CompilerConfiguration.addKotlinSourceRoots(sources: List<String>): Unit = sources.forEach { addKotlinSourceRoot(it) }
|
||||
|
||||
public val CompilerConfiguration.kotlinSourceRoots: List<String>
|
||||
get() {
|
||||
return get(CommonConfigurationKeys.CONTENT_ROOTS)?.filterIsInstance<KotlinSourceRoot>()?.map { it.path } ?: emptyList()
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user