in src/main/kotlin/com/intellij/ideolog/highlighting/LogHeavyFilterService.kt [81:100]
fun consumeResult(result: Filter.Result?, addOffset: Boolean) {
result ?: return
if (editor.isDisposed) return
cs.launch(Dispatchers.EDT) { // todo: consider MergingQueue if this generates too many events
if (editor.isDisposed) return@launch
if (markupModel.getUserData(markupHighlightedExceptionsKey) !== set) return@launch
val extraOffset = if (addOffset) eventOffset else 0
result.resultItems.forEach {
val hyperlinkInfo = it.hyperlinkInfo
val highlightStartOffset = it.highlightStartOffset + extraOffset
val highlightEndOffset = it.highlightEndOffset + extraOffset
if (highlightEndOffset > editor.document.textLength) return@forEach
if (hyperlinkInfo != null)
hyperlinkSupport.createHyperlink(highlightStartOffset, highlightEndOffset, it.highlightAttributes, hyperlinkInfo)
else
markupModel.addRangeHighlighter(highlightStartOffset, highlightEndOffset, it.highlighterLayer, it.highlightAttributes,
HighlighterTargetArea.EXACT_RANGE)
}
}
}