Make KotlinFacetSettingsProvider.getInstance() nullable
A module may not have a KotlinFacet. It isn't correct to throw an exception in that case.
This commit is contained in:
+25
-19
@@ -340,11 +340,13 @@ abstract class KotlinWithLibraryConfigurator protected constructor() : KotlinPro
|
||||
return
|
||||
}
|
||||
|
||||
val facetSettings = KotlinFacetSettingsProvider.getInstance(module.project).getInitializedSettings(module)
|
||||
ModuleRootModificationUtil.updateModel(module) {
|
||||
facetSettings.coroutineSupport = state
|
||||
facetSettings.apiLevel = LanguageVersion.KOTLIN_1_1
|
||||
facetSettings.languageLevel = LanguageVersion.KOTLIN_1_1
|
||||
val facetSettings = KotlinFacetSettingsProvider.getInstance(module.project)?.getInitializedSettings(module)
|
||||
if (facetSettings != null) {
|
||||
ModuleRootModificationUtil.updateModel(module) {
|
||||
facetSettings.coroutineSupport = state
|
||||
facetSettings.apiLevel = LanguageVersion.KOTLIN_1_1
|
||||
facetSettings.languageLevel = LanguageVersion.KOTLIN_1_1
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -363,12 +365,14 @@ abstract class KotlinWithLibraryConfigurator protected constructor() : KotlinPro
|
||||
return
|
||||
}
|
||||
|
||||
val facetSettings = KotlinFacetSettingsProvider.getInstance(module.project).getInitializedSettings(module)
|
||||
ModuleRootModificationUtil.updateModel(module) {
|
||||
facetSettings.apiLevel = feature.sinceVersion
|
||||
facetSettings.languageLevel = feature.sinceVersion
|
||||
facetSettings.compilerSettings?.apply {
|
||||
additionalArguments = additionalArguments.replaceLanguageFeature(feature, state, separator = " ", quoted = false)
|
||||
val facetSettings = KotlinFacetSettingsProvider.getInstance(module.project)?.getInitializedSettings(module)
|
||||
if (facetSettings != null) {
|
||||
ModuleRootModificationUtil.updateModel(module) {
|
||||
facetSettings.apiLevel = feature.sinceVersion
|
||||
facetSettings.languageLevel = feature.sinceVersion
|
||||
facetSettings.compilerSettings?.apply {
|
||||
additionalArguments = additionalArguments.replaceLanguageFeature(feature, state, separator = " ", quoted = false)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -382,14 +386,16 @@ abstract class KotlinWithLibraryConfigurator protected constructor() : KotlinPro
|
||||
return
|
||||
}
|
||||
|
||||
val facetSettings = KotlinFacetSettingsProvider.getInstance(module.project).getInitializedSettings(module)
|
||||
ModuleRootModificationUtil.updateModel(module) {
|
||||
with(facetSettings) {
|
||||
if (languageVersion != null) {
|
||||
languageLevel = LanguageVersion.fromVersionString(languageVersion)
|
||||
}
|
||||
if (apiVersion != null) {
|
||||
apiLevel = LanguageVersion.fromVersionString(apiVersion)
|
||||
val facetSettings = KotlinFacetSettingsProvider.getInstance(module.project)?.getInitializedSettings(module)
|
||||
if (facetSettings != null) {
|
||||
ModuleRootModificationUtil.updateModel(module) {
|
||||
with(facetSettings) {
|
||||
if (languageVersion != null) {
|
||||
languageLevel = LanguageVersion.fromVersionString(languageVersion)
|
||||
}
|
||||
if (apiVersion != null) {
|
||||
apiLevel = LanguageVersion.fromVersionString(apiVersion)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -48,8 +48,8 @@ sealed class EnableUnsupportedFeatureFix(
|
||||
override fun invoke(project: Project, editor: Editor?, file: KtFile) {
|
||||
val module = ModuleUtilCore.findModuleForPsiElement(file) ?: return
|
||||
|
||||
val facetSettings = KotlinFacetSettingsProvider.getInstance(project).getInitializedSettings(module)
|
||||
val targetApiLevel = facetSettings.apiLevel?.let { apiLevel ->
|
||||
val facetSettings = KotlinFacetSettingsProvider.getInstance(project)?.getInitializedSettings(module)
|
||||
val targetApiLevel = facetSettings?.apiLevel?.let { apiLevel ->
|
||||
if (ApiVersion.createByLanguageVersion(apiLevel) < feature.sinceApiVersion)
|
||||
feature.sinceApiVersion.versionString
|
||||
else
|
||||
|
||||
Reference in New Issue
Block a user