diff --git a/platform/platform-api/src/com/intellij/ui/list/LeftRightSearchAwareRenderer.kt b/platform/platform-api/src/com/intellij/ui/list/LeftRightSearchAwareRenderer.kt new file mode 100644 index 000000000000..9dcc8626d493 --- /dev/null +++ b/platform/platform-api/src/com/intellij/ui/list/LeftRightSearchAwareRenderer.kt @@ -0,0 +1,24 @@ +// Copyright 2000-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. +package com.intellij.ui.list + +import com.intellij.ui.speedSearch.SearchAwareRenderer + +/** + * A renderer which combines [two renderers][LeftRightRenderer] and combines [search string][getItemSearchString] from both renderers. + */ +class LeftRightSearchAwareRenderer( + override val mainRenderer: SearchAwareRenderer, + override val rightRenderer: SearchAwareRenderer +) : LeftRightRenderer(), + SearchAwareRenderer { + + override fun getItemSearchString(item: T): String? { + val main = mainRenderer.getItemSearchString(item) + val right = rightRenderer.getItemSearchString(item) + return when { + main == null -> right + right == null -> main + else -> "$main $right" + } + } +}