package com.sgaop.idea.linemarker;

import com.intellij.codeInsight.daemon.LineMarkerInfo;
import com.intellij.codeInsight.daemon.LineMarkerProvider;
import com.intellij.icons.AllIcons;
import com.intellij.openapi.editor.markup.GutterIconRenderer;
import com.intellij.psi.PsiElement;
import com.sgaop.idea.linemarker.navigation.Sqls2XmlNavigationHandler;
import com.sgaop.util.SqlsXmlUtil;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;

import javax.swing.*;

/**
 * @author 黄川 [email protected]
 * @date: 2020/5/30
 */
public class SqlsXml2JavaLineMarkerProvider implements LineMarkerProvider {

    @Nullable
    @Override
    public LineMarkerInfo getLineMarkerInfo(@NotNull PsiElement psiElement) {
        try {
            if (SqlsXmlUtil.isSqsXmlFile(psiElement)) {
                Icon icon = AllIcons.FileTypes.Java;
                return new LineMarkerInfo<>(psiElement, psiElement.getTextRange(), icon,
                        new FunctionTooltip(), new Sqls2XmlNavigationHandler(),
                        GutterIconRenderer.Alignment.LEFT);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }
}