Show pre-released 1.5 version in configuration preferences

^KT-44116 Fixed
This commit is contained in:
Mikhail Zarechenskiy
2021-01-12 08:56:36 +03:00
parent d53354057a
commit 032c64669c
4 changed files with 9 additions and 4 deletions
@@ -324,6 +324,9 @@ enum class LanguageVersion(val major: Int, val minor: Int) : DescriptionAware {
} }
} }
fun LanguageVersion.isStableOrReadyForPreview(): Boolean =
isStable || this == KOTLIN_1_5
interface LanguageVersionSettings { interface LanguageVersionSettings {
fun getFeatureSupport(feature: LanguageFeature): LanguageFeature.State fun getFeatureSupport(feature: LanguageFeature): LanguageFeature.State
@@ -17,6 +17,7 @@ import com.intellij.psi.PsiElement
import org.jetbrains.kotlin.config.ApiVersion import org.jetbrains.kotlin.config.ApiVersion
import org.jetbrains.kotlin.config.KotlinFacetSettingsProvider import org.jetbrains.kotlin.config.KotlinFacetSettingsProvider
import org.jetbrains.kotlin.config.LanguageFeature import org.jetbrains.kotlin.config.LanguageFeature
import org.jetbrains.kotlin.config.isStableOrReadyForPreview
import org.jetbrains.kotlin.diagnostics.Diagnostic import org.jetbrains.kotlin.diagnostics.Diagnostic
import org.jetbrains.kotlin.diagnostics.Errors import org.jetbrains.kotlin.diagnostics.Errors
import org.jetbrains.kotlin.idea.KotlinJvmBundle import org.jetbrains.kotlin.idea.KotlinJvmBundle
@@ -104,7 +105,7 @@ sealed class EnableUnsupportedFeatureFix(
val apiVersionOnly = sinceVersion <= languageFeatureSettings.languageVersion && val apiVersionOnly = sinceVersion <= languageFeatureSettings.languageVersion &&
feature.sinceApiVersion > languageFeatureSettings.apiVersion feature.sinceApiVersion > languageFeatureSettings.apiVersion
if (!sinceVersion.isStable && !ApplicationManager.getApplication().isInternal) { if (!sinceVersion.isStableOrReadyForPreview() && !ApplicationManager.getApplication().isInternal) {
return null return null
} }
@@ -11,14 +11,15 @@ import org.jetbrains.idea.maven.plugins.api.MavenFixedValueReferenceProvider
import org.jetbrains.kotlin.cli.common.arguments.DefaultValues import org.jetbrains.kotlin.cli.common.arguments.DefaultValues
import org.jetbrains.kotlin.config.JvmTarget import org.jetbrains.kotlin.config.JvmTarget
import org.jetbrains.kotlin.config.LanguageVersion import org.jetbrains.kotlin.config.LanguageVersion
import org.jetbrains.kotlin.config.isStableOrReadyForPreview
class MavenLanguageVersionsCompletionProvider : MavenFixedValueReferenceProvider( class MavenLanguageVersionsCompletionProvider : MavenFixedValueReferenceProvider(
LanguageVersion.values().filter { it.isStable || ApplicationManager.getApplication().isInternal }.map { it.versionString } LanguageVersion.values().filter { it.isStableOrReadyForPreview() || ApplicationManager.getApplication().isInternal }.map { it.versionString }
.toTypedArray() .toTypedArray()
) )
class MavenApiVersionsCompletionProvider : MavenFixedValueReferenceProvider( class MavenApiVersionsCompletionProvider : MavenFixedValueReferenceProvider(
LanguageVersion.values().filter { it.isStable || ApplicationManager.getApplication().isInternal }.map { it.versionString } LanguageVersion.values().filter { it.isStableOrReadyForPreview() || ApplicationManager.getApplication().isInternal }.map { it.versionString }
.toTypedArray() .toTypedArray()
) )
@@ -370,7 +370,7 @@ public class KotlinCompilerConfigurableTab implements SearchableConfigurable {
apiVersionComboBox.addItem(VersionView.LatestStable.INSTANCE); apiVersionComboBox.addItem(VersionView.LatestStable.INSTANCE);
for (LanguageVersion version : LanguageVersion.values()) { for (LanguageVersion version : LanguageVersion.values()) {
if (version.isUnsupported() || !version.isStable() && !ApplicationManager.getApplication().isInternal()) { if (version.isUnsupported() || !LanguageVersionSettingsKt.isStableOrReadyForPreview(version) && !ApplicationManager.getApplication().isInternal()) {
continue; continue;
} }