Fix duplicate stepping filter adding on plugin start-up (KT-38628)

Review KT-CR-1301.
This commit is contained in:
Yan Zhulanow
2020-06-11 17:21:32 +09:00
parent 235b9b9269
commit 8b5f2f9474
4 changed files with 6 additions and 11 deletions
@@ -21,7 +21,6 @@ import org.jetbrains.kotlin.idea.debugger.stepping.KotlinSteppingConfigurableUi
class KotlinDebuggerSettings : XDebuggerSettings<KotlinDebuggerSettings>("kotlin_debugger"), Getter<KotlinDebuggerSettings> {
var renderDelegatedProperties: Boolean = false
var disableKotlinInternalClasses: Boolean = true
var isFilterForStdlibAlreadyAdded: Boolean = false
var debugDisableCoroutineAgent: Boolean = false
companion object {
@@ -18,18 +18,17 @@ package org.jetbrains.kotlin.idea.debugger.filter
import com.intellij.debugger.settings.DebuggerSettings
import com.intellij.ui.classFilter.ClassFilter
import org.jetbrains.kotlin.idea.debugger.KotlinDebuggerSettings
private const val KOTLIN_STDLIB_FILTER = "kotlin.*"
fun addKotlinStdlibDebugFilterIfNeeded() {
if (!KotlinDebuggerSettings.getInstance().isFilterForStdlibAlreadyAdded) {
val settings = DebuggerSettings.getInstance()!!
val newFilters = (settings.steppingFilters + ClassFilter(KOTLIN_STDLIB_FILTER))
val settings = DebuggerSettings.getInstance() ?: return
val existingFilters = settings.steppingFilters
settings.steppingFilters = newFilters
KotlinDebuggerSettings.getInstance().isFilterForStdlibAlreadyAdded = true
if (existingFilters.any { it.pattern == KOTLIN_STDLIB_FILTER }) {
return
}
settings.steppingFilters = settings.steppingFilters + ClassFilter(KOTLIN_STDLIB_FILTER)
}