Kotlin Facet: Use facet configuration to provide language version for IDE analyzer

This commit is contained in:
Alexey Sedunov
2016-10-27 18:35:02 +03:00
parent 6dd950cd5a
commit 30d08c989d
14 changed files with 119 additions and 16 deletions
@@ -16,9 +16,13 @@
package org.jetbrains.kotlin.analyzer
import com.intellij.openapi.components.ServiceManager
import com.intellij.openapi.project.Project
import com.intellij.psi.search.GlobalSearchScope
import org.jetbrains.kotlin.builtins.DefaultBuiltIns
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
import org.jetbrains.kotlin.config.LanguageVersionSettings
import org.jetbrains.kotlin.config.LanguageVersionSettingsImpl
import org.jetbrains.kotlin.container.ComponentProvider
import org.jetbrains.kotlin.context.ModuleContext
import org.jetbrains.kotlin.context.ProjectContext
@@ -246,3 +250,15 @@ private class DelegatingPackageFragmentProvider(
return delegate().getSubPackagesOf(fqName, nameFilter)
}
}
interface LanguageVersionSettingsProvider {
fun getLanguageVersionSettings(moduleInfo: ModuleInfo): LanguageVersionSettings
object Default : LanguageVersionSettingsProvider {
override fun getLanguageVersionSettings(moduleInfo: ModuleInfo) = LanguageVersionSettingsImpl.DEFAULT
}
companion object {
fun getInstance(project: Project) = ServiceManager.getService(project, LanguageVersionSettingsProvider::class.java) ?: Default
}
}