From 13e2a51bc3cc27640c8a39ad96c19b246fe03938 Mon Sep 17 00:00:00 2001 From: Florian Verdonck Date: Wed, 22 Feb 2023 09:42:03 +0100 Subject: [PATCH] Don't hook up SerilogTraceListener in FantomasDaemon. (#2777) --- src/Fantomas.Tests/Fantomas.Tests.fsproj | 1 + src/Fantomas.Tests/ToolLocatorTests.fs | 25 ++++++++++++++++++++++++ src/Fantomas/Daemon.fs | 9 +++++---- 3 files changed, 31 insertions(+), 4 deletions(-) create mode 100644 src/Fantomas.Tests/ToolLocatorTests.fs diff --git a/src/Fantomas.Tests/Fantomas.Tests.fsproj b/src/Fantomas.Tests/Fantomas.Tests.fsproj index dbddd3d7c6..836424e727 100644 --- a/src/Fantomas.Tests/Fantomas.Tests.fsproj +++ b/src/Fantomas.Tests/Fantomas.Tests.fsproj @@ -27,6 +27,7 @@ + diff --git a/src/Fantomas.Tests/ToolLocatorTests.fs b/src/Fantomas.Tests/ToolLocatorTests.fs new file mode 100644 index 0000000000..72c27d3c66 --- /dev/null +++ b/src/Fantomas.Tests/ToolLocatorTests.fs @@ -0,0 +1,25 @@ +module Fantomas.CoreGlobalTool.Tests.ToolLocatorTests + +open Fantomas.Client +open Fantomas.Client.LSPFantomasServiceTypes +open Fantomas.Client.Contracts +open NUnit.Framework + +[] +[] +let ``locate fantomas tool`` () = + let pwd = @"C:\Users\nojaf\Projects" + let result = FantomasToolLocator.findFantomasTool (Folder pwd) + + match result with + | Error error -> Assert.Fail $"Could not locate tool: %A{error}" + | Ok(FantomasToolFound(FantomasVersion(version), startInfo)) -> + let result = FantomasToolLocator.createFor startInfo + + match result with + | Error error -> Assert.Fail $"Could not start tool: %A{error}" + | Ok runningFantomasTool -> + let version2 = + runningFantomasTool.RpcClient.InvokeAsync(Methods.Version).Result + + Assert.AreEqual(version, $"v{version2}") diff --git a/src/Fantomas/Daemon.fs b/src/Fantomas/Daemon.fs index 31cc92f45e..f8169b28aa 100644 --- a/src/Fantomas/Daemon.fs +++ b/src/Fantomas/Daemon.fs @@ -16,13 +16,12 @@ open Fantomas.EditorConfig type FantomasDaemon(sender: Stream, reader: Stream) as this = let rpc: JsonRpc = JsonRpc.Attach(sender, reader, this) + let traceListener = new DefaultTraceListener() do // hook up request/response logging for debugging rpc.TraceSource <- TraceSource(typeof.Name, SourceLevels.Verbose) - - rpc.TraceSource.Listeners.Add(new SerilogTraceListener.SerilogTraceListener(typeof.Name)) - |> ignore + rpc.TraceSource.Listeners.Add traceListener |> ignore let disconnectEvent = new ManualResetEvent(false) @@ -33,7 +32,9 @@ type FantomasDaemon(sender: Stream, reader: Stream) as this = do rpc.Disconnected.Add(fun _ -> exit ()) interface IDisposable with - member this.Dispose() = disconnectEvent.Dispose() + member this.Dispose() = + traceListener.Dispose() + disconnectEvent.Dispose() /// returns a hot task that resolves when the stream has terminated member this.WaitForClose = rpc.Completion