fun getHsErrLogCached()

in src/main/kotlin/com/github/mkartashev/hserr/Utils.kt [53:71]


fun getHsErrLogCached(project: Project, virtualFile: VirtualFile): HsErrLog? {
    val fileDocumentManager = FileDocumentManager.getInstance()
    val document = fileDocumentManager.getDocument(virtualFile)

    var log = virtualFile.getUserData(hsErrLogKey)
    if (log == null && document != null) {
        val psiFile = com.intellij.psi.PsiDocumentManager.getInstance(project).getPsiFile(document)
        val fileText = psiFile?.text
        if (fileText != null) {
            try {
                log = HsErrLog(fileText)
                virtualFile.putUserData(hsErrLogKey, log)
            } catch (ignored: IOException) {
            }
        }
    }

    return log
}