in resharper/src/CSharp/Feature/RunMarkers/ChickensoftTestRunMarkerGutterMark.cs [17:51]
public class ChickensoftTestRunMarkerGutterMark() : RunMarkerGutterMark(RunMarkersThemedIcons.DebugThis.Id)
{
public override IEnumerable<BulbMenuItem> GetBulbMenuItems(IHighlighter highlighter)
{
if (highlighter.GetHighlighting() is not ChickensoftTestRunMarkerHighlighting runMarker) yield break;
var solution = Shell.Instance.GetComponent<SolutionsManager>().Solution;
if (solution == null) yield break;
switch (runMarker.AttributeId)
{
case ChickensoftTestRunMarkerAttributeIds.RUN_MARKER_ID:
foreach (var item in GetRunItems(solution, runMarker)) yield return item;
yield break;
default:
yield break;
}
}
private static IEnumerable<BulbMenuItem> GetRunItems(ISolution solution,
ChickensoftTestRunMarkerHighlighting runMarker)
{
var host = solution.GetComponent<FrontendBackendHost>();
var testScriptIdentifier = runMarker.TestIdentifier;
var iconId = RunMarkersThemedIcons.RunThis.Id;
yield return new BulbMenuItem(new ExecutableItem(() =>
{
host.Model?.RunChickensoftTest(testScriptIdentifier);
}),
new RichText(runMarker.ToolTip),
iconId,
BulbMenuAnchors.PermanentBackgroundItems);
}
}