override fun actionPerformed()

in src/main/kotlin/com/intellij/ideolog/editorActions/GoToNextErrorAction.kt [27:47]


  override fun actionPerformed(e: AnActionEvent) {
    val editor = e.dataContext.getData(CommonDataKeys.EDITOR) ?: return
    val psiFile = e.dataContext.getData(CommonDataKeys.PSI_FILE) ?: return
    val project = e.dataContext.getData(CommonDataKeys.PROJECT) ?: return

    if (!canExecute(e)) return

    var pos = editor.caretModel.offset
    var event = LogEvent.fromEditor(editor, pos)

    while (event.endOffset + 1 < editor.document.textLength) {
      pos = event.endOffset + 1
      event = LogEvent.fromEditor(editor, pos)
      if (event.level == "ERROR") {
        val descriptor = OpenFileDescriptor(project, psiFile.virtualFile, event.startOffset)
        val navigable = descriptor.setUseCurrentWindow(true)
        if (navigable.canNavigate()) navigable.navigate(true)
        return
      }
    }
  }