[LL API] Provide customizable default language version settings

This commit is contained in:
Yan Zhulanow
2023-08-22 23:38:33 +09:00
committed by Space Team
parent 705a97e9d4
commit dbb7e788b2
4 changed files with 23 additions and 4 deletions
@@ -7,6 +7,8 @@ package org.jetbrains.kotlin.analysis.project.structure
import com.intellij.openapi.project.Project
import com.intellij.psi.PsiElement
import org.jetbrains.kotlin.config.LanguageVersionSettings
import org.jetbrains.kotlin.config.LanguageVersionSettingsImpl
public abstract class ProjectStructureProvider {
/**
@@ -24,6 +26,19 @@ public abstract class ProjectStructureProvider {
*/
public abstract fun getModule(element: PsiElement, contextualModule: KtModule?): KtModule
/**
* Project-global [LanguageVersionSettings]. For source modules lacking [LanguageVersionSettings]
* (such as [KtNotUnderContentRootModule]), the default settings apply.
*/
public open val globalLanguageVersionSettings: LanguageVersionSettings
get() = LanguageVersionSettingsImpl.DEFAULT
/**
* Project-global [LanguageVersionSettings] for [KtLibraryModule]s and [KtLibrarySourceModule]s.
*/
public open val libraryLanguageVersionSettings: LanguageVersionSettings
get() = globalLanguageVersionSettings
public companion object {
public fun getInstance(project: Project): ProjectStructureProvider {
return project.getService(ProjectStructureProvider::class.java)