mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
[Parameter Hints] IDEA-164121, clear state when empty element is passed
This commit is contained in:
+11
-5
@@ -80,11 +80,17 @@ class ParameterNameHintsSettings : PersistentStateComponent<Element> {
|
||||
}
|
||||
|
||||
override fun loadState(state: Element) {
|
||||
val allBlackLists = state.getChild(XmlTagHelper.BLACKLISTS)?.getChildren(XmlTagHelper.LANGUAGE_LIST) ?: emptyList()
|
||||
allBlackLists.mapNotNull {
|
||||
val language = it.attributeValue(XmlTagHelper.LANGUAGE) ?: return@mapNotNull
|
||||
myAddedPatterns[language] = it.extractPatterns(XmlTagHelper.ADDED)
|
||||
myRemovedPatterns[language] = it.extractPatterns(XmlTagHelper.REMOVED)
|
||||
val allBlackLists = state
|
||||
.getChild(XmlTagHelper.BLACKLISTS)
|
||||
?.getChildren(XmlTagHelper.LANGUAGE_LIST) ?: emptyList()
|
||||
|
||||
myAddedPatterns.clear()
|
||||
myRemovedPatterns.clear()
|
||||
|
||||
allBlackLists.mapNotNull { blacklist ->
|
||||
val language = blacklist.attributeValue(XmlTagHelper.LANGUAGE) ?: return@mapNotNull
|
||||
myAddedPatterns[language] = blacklist.extractPatterns(XmlTagHelper.ADDED)
|
||||
myRemovedPatterns[language] = blacklist.extractPatterns(XmlTagHelper.REMOVED)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+13
@@ -20,6 +20,7 @@ import com.intellij.codeInsight.hints.InlayParameterHintsProvider
|
||||
import com.intellij.openapi.fileTypes.PlainTextLanguage
|
||||
import com.intellij.psi.PsiElement
|
||||
import junit.framework.TestCase
|
||||
import org.jdom.Element
|
||||
|
||||
|
||||
class MockInlayProvider(override val defaultBlackList: Set<String>): InlayParameterHintsProvider {
|
||||
@@ -75,6 +76,18 @@ class ParameterNameSettingsTest : TestCase() {
|
||||
assert(ignoreSet.contains("xxx"))
|
||||
}
|
||||
|
||||
fun `test if empty element is passed settings are dropped`() {
|
||||
addIgnorePattern("new_ignore_pattern")
|
||||
|
||||
var ignoreSet = getIgnoreSet()
|
||||
assert(ignoreSet.size == 1)
|
||||
|
||||
settings.loadState(Element("element"))
|
||||
|
||||
ignoreSet = getIgnoreSet()
|
||||
assert(ignoreSet.isEmpty())
|
||||
}
|
||||
|
||||
fun `test removed pattern is removed when defaults are updated`() {
|
||||
defaultSettingsUpdated("aaa", "bbb")
|
||||
|
||||
|
||||
+2
-4
@@ -19,7 +19,7 @@ import com.intellij.codeInsight.daemon.impl.ParameterHintsPresentationManager
|
||||
import com.intellij.codeInsight.hints.settings.ParameterNameHintsSettings
|
||||
import com.intellij.testFramework.LightProjectDescriptor
|
||||
import groovy.transform.CompileStatic
|
||||
import groovy.transform.TypeCheckingMode
|
||||
import org.jdom.Element
|
||||
import org.jetbrains.plugins.groovy.GroovyLightProjectDescriptor
|
||||
import org.jetbrains.plugins.groovy.LightGroovyTestCase
|
||||
|
||||
@@ -47,10 +47,8 @@ class Foo {
|
||||
}
|
||||
|
||||
@Override
|
||||
@CompileStatic(TypeCheckingMode.SKIP)
|
||||
void tearDown() throws Exception {
|
||||
ParameterNameHintsSettings.getInstance().myAddedPatterns.clear()
|
||||
ParameterNameHintsSettings.getInstance().myRemovedPatterns.clear()
|
||||
ParameterNameHintsSettings.getInstance().loadState(new Element("element"))
|
||||
super.tearDown()
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user