public void CollectRunMarkers()

in resharper/src/CSharp/Feature/RunMarkers/ChickensoftTestRunMarkerProvider.cs [20:49]


    public void CollectRunMarkers(IFile file, IContextBoundSettingsStore settings, IHighlightingConsumer consumer)
    {
        if (file.GetSolution().GetComponent<GodotTracker>().GodotDescriptor == null) return;
        if (file is not ICSharpFile csharpFile) return;

        foreach (var declaration in CachedDeclarationsCollector.Run<IMethodDeclaration>(csharpFile))
        {
            if (declaration.DeclaredElement is not { } method) continue;

            if (!ChickensoftTestRunMarkerUtil.IsSuitableMethod(method)) continue;
            var range = declaration.GetNameDocumentRange();
            var type = method.ContainingType;
            var testIdentifier = $"{type.GetClrName().ShortName}.{method.ShortName}";
            var highlighting = new ChickensoftTestRunMarkerHighlighting(testIdentifier, declaration.IsValid(),
                ChickensoftTestRunMarkerAttributeIds.RUN_MARKER_ID, range);
            consumer.AddHighlighting(highlighting, range);
        }

        foreach (var declaration in CachedDeclarationsCollector.Run<IClassDeclaration>(csharpFile))
        {
            if (declaration.DeclaredElement is not { } @class) continue;
            if (!@class.DerivesFromChickenTest()) continue;

            var classNameRange = declaration.GetNameDocumentRange();
            var classIdentifier = declaration.NameIdentifier.Name;
            var classNameHighlighting = new ChickensoftTestRunMarkerHighlighting(classIdentifier, true,
                ChickensoftTestRunMarkerAttributeIds.RUN_MARKER_ID, classNameRange);
            consumer.AddHighlighting(classNameHighlighting, classNameRange);
        }
    }