override fun getLineMarkerInfo()

in src/main/kotlin/mobi/hsz/idea/gitignore/daemon/IgnoreDirectoryMarkerProvider.kt [31:64]


    override fun getLineMarkerInfo(element: PsiElement): LineMarkerInfo<*>? {
        if (element !is IgnoreEntryFile) {
            return null
        }
        var isDirectory = element is IgnoreEntryDirectory

        if (!isDirectory) {
            val key = element.getText()
            if (cache.containsKey(key)) {
                isDirectory = cache[key] ?: false
            } else {
                val parent = element.getContainingFile().virtualFile.parent ?: return null
                val project = element.getProject()
                Utils.getModuleForFile(parent, project) ?: return null

                val matcher = project.service<IgnoreMatcher>()
                val file = Glob.findOne(parent, element, matcher)
                cache[key] = file != null && file.isDirectory.also { isDirectory = it }
            }
        }

        return when {
            isDirectory -> LineMarkerInfo(
                element.getFirstChild(),
                element.getTextRange(),
                PlatformIcons.FOLDER_ICON,
                null,
                null,
                GutterIconRenderer.Alignment.CENTER,
                IgnoreBundle.messagePointer("daemon.lineMarker.directory")
            )
            else -> null
        }
    }