Log session messages, don't know why it was ever a good idea to hide them 💩
[opengl.git] / src / Language / Haskell / LSP / Test.hs
index 1b8c2a8c20a297af751b96497fd200700fe1b22f..0e8f5bfcaa92259f253defa2d89bbb40610c1e66 100644 (file)
@@ -93,6 +93,7 @@ import Language.Haskell.LSP.Test.Exceptions
 import Language.Haskell.LSP.Test.Parsing
 import Language.Haskell.LSP.Test.Session
 import Language.Haskell.LSP.Test.Server
+import System.Console.ANSI
 import System.IO
 import System.Directory
 import System.FilePath
@@ -121,7 +122,7 @@ runSessionWithConfig config serverExe rootDir session = do
                                           Nothing
                                           (capabilities config)
                                           (Just TraceOff)
-  withServer serverExe $ \serverIn serverOut _ ->
+  withServer serverExe (logStdErr config) $ \serverIn serverOut _ ->
     runSessionWithHandles serverIn serverOut listenServer config rootDir $ do
 
       -- Wrap the session around initialize and shutdown calls
@@ -273,7 +274,16 @@ sendResponse = sendMessage
 sendMessage :: ToJSON a => a -> Session ()
 sendMessage msg = do
   h <- serverIn <$> ask
-  liftIO $ B.hPut h $ addHeader (encode msg)
+  let encoded = encode msg
+  liftIO $ do
+
+    setSGR [SetColor Foreground Vivid Cyan]
+    putStrLn $ "--> " ++ B.unpack encoded
+    setSGR [Reset]
+
+    B.hPut h (addHeader encoded)
+
+
 
 -- | Returns the initialize response that was received from the server.
 -- The initialize requests and responses are not included the session,