use instance for global events
This commit is contained in:
@@ -76,7 +76,7 @@ public class DebuggingService
|
||||
var filePath = dict?["source"]?["path"]!.Value<string>()!;
|
||||
var line = (dict?["line"]?.Value<int>()!).Value;
|
||||
var executionStopInfo = new ExecutionStopInfo { FilePath = filePath, Line = line, ThreadId = @event.ThreadId!.Value };
|
||||
GlobalEvents.InvokeDebuggerExecutionStopped(executionStopInfo);
|
||||
GlobalEvents.Instance.InvokeDebuggerExecutionStopped(executionStopInfo);
|
||||
if (@event.Reason is StoppedEvent.ReasonValue.Exception)
|
||||
{
|
||||
Console.WriteLine("Stopped due to exception, continuing");
|
||||
|
||||
@@ -3,28 +3,29 @@ using SharpIDE.Application.Features.SolutionDiscovery.VsPersistence;
|
||||
|
||||
namespace SharpIDE.Application.Features.Events;
|
||||
|
||||
public static class GlobalEvents
|
||||
public class GlobalEvents
|
||||
{
|
||||
public static event Func<Task> ProjectsRunningChanged = () => Task.CompletedTask;
|
||||
public static void InvokeProjectsRunningChanged() => ProjectsRunningChanged?.InvokeParallelFireAndForget();
|
||||
public static GlobalEvents Instance { get; set; } = null!;
|
||||
public event Func<Task> ProjectsRunningChanged = () => Task.CompletedTask;
|
||||
public void InvokeProjectsRunningChanged() => ProjectsRunningChanged?.InvokeParallelFireAndForget();
|
||||
|
||||
public static event Func<Task> StartedRunningProject = () => Task.CompletedTask;
|
||||
public static void InvokeStartedRunningProject() => StartedRunningProject?.InvokeParallelFireAndForget();
|
||||
public event Func<Task> StartedRunningProject = () => Task.CompletedTask;
|
||||
public void InvokeStartedRunningProject() => StartedRunningProject?.InvokeParallelFireAndForget();
|
||||
|
||||
public static event Func<SharpIdeProjectModel, Task> ProjectStartedDebugging = _ => Task.CompletedTask;
|
||||
public static void InvokeProjectStartedDebugging(SharpIdeProjectModel project) => ProjectStartedDebugging?.InvokeParallelFireAndForget(project);
|
||||
public event Func<SharpIdeProjectModel, Task> ProjectStartedDebugging = _ => Task.CompletedTask;
|
||||
public void InvokeProjectStartedDebugging(SharpIdeProjectModel project) => ProjectStartedDebugging?.InvokeParallelFireAndForget(project);
|
||||
|
||||
public static event Func<SharpIdeProjectModel, Task> ProjectStoppedDebugging = _ => Task.CompletedTask;
|
||||
public static void InvokeProjectStoppedDebugging(SharpIdeProjectModel project) => ProjectStoppedDebugging?.InvokeParallelFireAndForget(project);
|
||||
public event Func<SharpIdeProjectModel, Task> ProjectStoppedDebugging = _ => Task.CompletedTask;
|
||||
public void InvokeProjectStoppedDebugging(SharpIdeProjectModel project) => ProjectStoppedDebugging?.InvokeParallelFireAndForget(project);
|
||||
|
||||
public static event Func<SharpIdeProjectModel, Task> ProjectStartedRunning = _ => Task.CompletedTask;
|
||||
public static void InvokeProjectStartedRunning(SharpIdeProjectModel project) => ProjectStartedRunning?.InvokeParallelFireAndForget(project);
|
||||
public event Func<SharpIdeProjectModel, Task> ProjectStartedRunning = _ => Task.CompletedTask;
|
||||
public void InvokeProjectStartedRunning(SharpIdeProjectModel project) => ProjectStartedRunning?.InvokeParallelFireAndForget(project);
|
||||
|
||||
public static event Func<SharpIdeProjectModel, Task> ProjectStoppedRunning = _ => Task.CompletedTask;
|
||||
public static void InvokeProjectStoppedRunning(SharpIdeProjectModel project) => ProjectStoppedRunning?.InvokeParallelFireAndForget(project);
|
||||
public event Func<SharpIdeProjectModel, Task> ProjectStoppedRunning = _ => Task.CompletedTask;
|
||||
public void InvokeProjectStoppedRunning(SharpIdeProjectModel project) => ProjectStoppedRunning?.InvokeParallelFireAndForget(project);
|
||||
|
||||
public static event Func<ExecutionStopInfo, Task> DebuggerExecutionStopped = _ => Task.CompletedTask;
|
||||
public static void InvokeDebuggerExecutionStopped(ExecutionStopInfo executionStopInfo) => DebuggerExecutionStopped?.InvokeParallelFireAndForget(executionStopInfo);
|
||||
public event Func<ExecutionStopInfo, Task> DebuggerExecutionStopped = _ => Task.CompletedTask;
|
||||
public void InvokeDebuggerExecutionStopped(ExecutionStopInfo executionStopInfo) => DebuggerExecutionStopped?.InvokeParallelFireAndForget(executionStopInfo);
|
||||
}
|
||||
|
||||
public static class AsyncEventExtensions
|
||||
|
||||
@@ -93,13 +93,13 @@ public class RunService
|
||||
project.OpenInRunPanel = true;
|
||||
if (isDebug)
|
||||
{
|
||||
GlobalEvents.InvokeProjectStartedDebugging(project);
|
||||
GlobalEvents.Instance.InvokeProjectStartedDebugging(project);
|
||||
}
|
||||
else
|
||||
{
|
||||
GlobalEvents.InvokeProjectsRunningChanged();
|
||||
GlobalEvents.InvokeStartedRunningProject();
|
||||
GlobalEvents.InvokeProjectStartedRunning(project);
|
||||
GlobalEvents.Instance.InvokeProjectsRunningChanged();
|
||||
GlobalEvents.Instance.InvokeStartedRunningProject();
|
||||
GlobalEvents.Instance.InvokeProjectStartedRunning(project);
|
||||
}
|
||||
project.InvokeProjectStartedRunning();
|
||||
await process.WaitForExitAsync().WaitAsync(project.RunningCancellationTokenSource.Token).ConfigureAwait(ConfigureAwaitOptions.SuppressThrowing);
|
||||
@@ -115,12 +115,12 @@ public class RunService
|
||||
project.Running = false;
|
||||
if (isDebug)
|
||||
{
|
||||
GlobalEvents.InvokeProjectStoppedDebugging(project);
|
||||
GlobalEvents.Instance.InvokeProjectStoppedDebugging(project);
|
||||
}
|
||||
else
|
||||
{
|
||||
GlobalEvents.InvokeProjectsRunningChanged();
|
||||
GlobalEvents.InvokeProjectStoppedRunning(project);
|
||||
GlobalEvents.Instance.InvokeProjectsRunningChanged();
|
||||
GlobalEvents.Instance.InvokeProjectStoppedRunning(project);
|
||||
}
|
||||
|
||||
project.InvokeProjectStoppedRunning();
|
||||
|
||||
Reference in New Issue
Block a user