clear terminal properly on re-run
This commit is contained in:
@@ -39,7 +39,7 @@ public class RunService
|
|||||||
|
|
||||||
process.Start();
|
process.Start();
|
||||||
|
|
||||||
project.RunningOutputChannel = Channel.CreateUnbounded<string>(new UnboundedChannelOptions
|
project.RunningOutputChannel = Channel.CreateUnbounded<byte[]>(new UnboundedChannelOptions
|
||||||
{
|
{
|
||||||
SingleReader = true,
|
SingleReader = true,
|
||||||
SingleWriter = false,
|
SingleWriter = false,
|
||||||
@@ -49,9 +49,9 @@ public class RunService
|
|||||||
{
|
{
|
||||||
await foreach(var log in process.CombinedOutputChannel.Reader.ReadAllAsync())
|
await foreach(var log in process.CombinedOutputChannel.Reader.ReadAllAsync())
|
||||||
{
|
{
|
||||||
var logString = System.Text.Encoding.UTF8.GetString(log, 0, log.Length);
|
//var logString = System.Text.Encoding.UTF8.GetString(log, 0, log.Length);
|
||||||
//Console.Write(logString);
|
//Console.Write(logString);
|
||||||
await project.RunningOutputChannel.Writer.WriteAsync(logString).ConfigureAwait(false);
|
await project.RunningOutputChannel.Writer.WriteAsync(log).ConfigureAwait(false);
|
||||||
}
|
}
|
||||||
project.RunningOutputChannel.Writer.Complete();
|
project.RunningOutputChannel.Writer.Complete();
|
||||||
logsDrained.TrySetResult();
|
logsDrained.TrySetResult();
|
||||||
|
|||||||
@@ -38,7 +38,7 @@ public class SharpIdeProjectModel : ISharpIdeNode
|
|||||||
|
|
||||||
public bool IsRunnable => MsBuildEvaluationProject.Xml.Sdk is "Microsoft.NET.Sdk.BlazorWebAssembly" || MsBuildEvaluationProject.GetPropertyValue("OutputType") is "Exe" or "WinExe";
|
public bool IsRunnable => MsBuildEvaluationProject.Xml.Sdk is "Microsoft.NET.Sdk.BlazorWebAssembly" || MsBuildEvaluationProject.GetPropertyValue("OutputType") is "Exe" or "WinExe";
|
||||||
public bool OpenInRunPanel { get; set; }
|
public bool OpenInRunPanel { get; set; }
|
||||||
public Channel<string>? RunningOutputChannel { get; set; }
|
public Channel<byte[]>? RunningOutputChannel { get; set; }
|
||||||
public event Func<Task> ProjectStartedRunning = () => Task.CompletedTask;
|
public event Func<Task> ProjectStartedRunning = () => Task.CompletedTask;
|
||||||
public void InvokeProjectStartedRunning() => ProjectStartedRunning?.Invoke();
|
public void InvokeProjectStartedRunning() => ProjectStartedRunning?.Invoke();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -31,6 +31,10 @@
|
|||||||
|
|
||||||
private HashSet<string> _addons = ["addon-fit"];
|
private HashSet<string> _addons = ["addon-fit"];
|
||||||
|
|
||||||
|
public async Task Write(byte[] line)
|
||||||
|
{
|
||||||
|
await _terminalRef.Write(line);
|
||||||
|
}
|
||||||
public async Task Write(string line)
|
public async Task Write(string line)
|
||||||
{
|
{
|
||||||
await _terminalRef.Write(line);
|
await _terminalRef.Write(line);
|
||||||
@@ -40,7 +44,7 @@
|
|||||||
{
|
{
|
||||||
if (_terminalRef is not null)
|
if (_terminalRef is not null)
|
||||||
{
|
{
|
||||||
await _terminalRef.Clear();
|
await _terminalRef.Reset();
|
||||||
await InvokeAsync(StateHasChanged);
|
await InvokeAsync(StateHasChanged);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user