// Path: src/cmake/icons/CMakeIcons.java
// public class CMakeIcons {
//     public static final Icon FILE = IconLoader.getIcon("/icons/cmake.png");
//     public static final Icon MACRO = IconLoader.getIcon("/icons/hashtag.png");
//     public static final Icon FUN = IconLoader.getIcon("/icons/fun.jpg");
//     public static final Icon LOOP = IconLoader.getIcon("/icons/loop.png");
// }


import cmake.icons.CMakeIcons;
import cmake.psi.CMakeFbegin;
import cmake.psi.CMakeLoop;
import cmake.psi.CMakeMbegin;
import com.intellij.codeInsight.daemon.RelatedItemLineMarkerInfo;
import com.intellij.codeInsight.daemon.RelatedItemLineMarkerProvider;
import com.intellij.codeInsight.navigation.NavigationGutterIconBuilder;
import com.intellij.psi.PsiElement;
import org.jetbrains.annotations.NotNull;
import java.util.Collection;
package cmake.global;



/**
 * Provides gutter icons for function/macro/loop
 * elements.
 */
public class CMakeLineProvider extends RelatedItemLineMarkerProvider {
    @Override
    protected void collectNavigationMarkers(@NotNull PsiElement element, Collection<? super RelatedItemLineMarkerInfo> result) {
        if (element instanceof CMakeFbegin) {
            NavigationGutterIconBuilder<PsiElement> builder =
                    NavigationGutterIconBuilder.create(CMakeIcons.FUN).
                            setTargets(element).
                            setTooltipText("Navigate to a simple property");
            result.add(builder.createLineMarkerInfo(element));

        }

        if (element instanceof CMakeMbegin) {
            NavigationGutterIconBuilder<PsiElement> builder =
                    NavigationGutterIconBuilder.create(CMakeIcons.MACRO).
                            setTargets(element).
                            setTooltipText("Navigate to a simple property");
            result.add(builder.createLineMarkerInfo(element));

        }
        
// Path: src/cmake/icons/CMakeIcons.java
// public class CMakeIcons {
//     public static final Icon FILE = IconLoader.getIcon("/icons/cmake.png");
//     public static final Icon MACRO = IconLoader.getIcon("/icons/hashtag.png");
//     public static final Icon FUN = IconLoader.getIcon("/icons/fun.jpg");
//     public static final Icon LOOP = IconLoader.getIcon("/icons/loop.png");
// }


// Path: src/cmake/global/CMakeLineProvider.java
import cmake.icons.CMakeIcons;
import cmake.psi.CMakeFbegin;
import cmake.psi.CMakeLoop;
import cmake.psi.CMakeMbegin;
import com.intellij.codeInsight.daemon.RelatedItemLineMarkerInfo;
import com.intellij.codeInsight.daemon.RelatedItemLineMarkerProvider;
import com.intellij.codeInsight.navigation.NavigationGutterIconBuilder;
import com.intellij.psi.PsiElement;
import org.jetbrains.annotations.NotNull;
import java.util.Collection;

package cmake.global;



/**
 * Provides gutter icons for function/macro/loop
 * elements.
 */
public class CMakeLineProvider extends RelatedItemLineMarkerProvider {
    @Override
    protected void collectNavigationMarkers(@NotNull PsiElement element, Collection<? super RelatedItemLineMarkerInfo> result) {
        if (element instanceof CMakeFbegin) {
            NavigationGutterIconBuilder<PsiElement> builder =
                    NavigationGutterIconBuilder.create(CMakeIcons.FUN).
                            setTargets(element).
                            setTooltipText("Navigate to a simple property");
            result.add(builder.createLineMarkerInfo(element));

        }

        if (element instanceof CMakeMbegin) {
            NavigationGutterIconBuilder<PsiElement> builder =
                    NavigationGutterIconBuilder.create(CMakeIcons.MACRO).
                            setTargets(element).
                            setTooltipText("Navigate to a simple property");
            result.add(builder.createLineMarkerInfo(element));

        }
        
        else if (element instanceof CMakeLoop) {