fun consumeResult()

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)
        }
      }
    }