add missing API to retrieve Kotlin source roots from a CompilerConfiguration

This commit is contained in:
Dmitry Jemerov
2015-05-27 13:16:40 +02:00
parent 9672264442
commit 365d45f49e
2 changed files with 8 additions and 2 deletions
@@ -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()
}