Fix loading Kotlin Scripting options from kotlinScripting.xml

^KT-28046 Fixed
This commit is contained in:
Natalia Selezneva
2018-11-07 11:34:48 +03:00
parent da71a35187
commit 4661ab9961
@@ -59,10 +59,12 @@ class KotlinScriptingSettings : PersistentStateComponent<Element> {
} }
override fun loadState(state: Element) { override fun loadState(state: Element) {
isAutoReloadEnabled = state.getOptionTag(KotlinScriptingSettings::isAutoReloadEnabled.name)?.let {
state.getAttributeBooleanValue(KotlinScriptingSettings::isAutoReloadEnabled.name) isAutoReloadEnabled = it
suppressDefinitionsCheck = }
state.getAttributeBooleanValue(KotlinScriptingSettings::suppressDefinitionsCheck.name) state.getOptionTag(KotlinScriptingSettings::suppressDefinitionsCheck.name)?.let {
suppressDefinitionsCheck = it
}
val scriptDefinitionsList = state.getChildren(SCRIPT_DEFINITION_TAG) val scriptDefinitionsList = state.getChildren(SCRIPT_DEFINITION_TAG)
for (scriptDefinitionElement in scriptDefinitionsList) { for (scriptDefinitionElement in scriptDefinitionsList) {
@@ -124,6 +126,9 @@ class KotlinScriptingSettings : PersistentStateComponent<Element> {
return KotlinScriptDefinitionValue(order, isEnabled) return KotlinScriptDefinitionValue(order, isEnabled)
} }
private fun Element.getOptionTag(name: String) =
getChildren("option").firstOrNull { it.getAttribute("name").value == name }?.getAttributeBooleanValue("value")
companion object { companion object {
fun getInstance(project: Project): KotlinScriptingSettings = fun getInstance(project: Project): KotlinScriptingSettings =
ServiceManager.getService(project, KotlinScriptingSettings::class.java) ServiceManager.getService(project, KotlinScriptingSettings::class.java)