in src/main/kotlin/com/intellij/ideolog/intentions/LogJumpToSourceIntention.kt [239:278]
override fun run(indicator: ProgressIndicator) {
println("\n<JumpToSource>")
indicator.text = IdeologBundle.message("progress.text.finding.source")
indicator.isIndeterminate = true
val event = ReadAction.compute<LogEvent, Throwable> {
LogEvent.fromEditor(editor)
}
event.prepareTrigrams()
println(event)
if (event.message.isBlank()) return
val sorted = getFilesToMatch(project, event)
val bestCandidates = sorted.take(3).toMutableList()
val psiManager = PsiManager.getInstance(project)
println("Best candidates:")
bestCandidates.forEach {
it.processFileOffset(psiManager)
println(it)
}
bestCandidates.sortBy { -it.bestScore }
val best = bestCandidates.firstOrNull() ?: return
ApplicationManager.getApplication().invokeLater {
val descriptor = OpenFileDescriptor(project, best.virtualFile, best.bestLine, 0)
val navigable = descriptor.setUseCurrentWindow(true)
if (navigable.canNavigate()) navigable.navigate(true)
}
}