X-Git-Url: http://git.lukelau.me/?p=opengl.git;a=blobdiff_plain;f=src%2FLanguage%2FHaskell%2FLSP%2FTest.hs;h=4cad784156477f23f4cefdb482de94764ac7d215;hp=b406e7bd4e87a5a068d59b44e7b27678b100a64e;hb=fe5448266f5db772dd3f10be432cd56581bbcb40;hpb=84997c18f0c53fe4038dbf80d53ed389cf9f9c75 diff --git a/src/Language/Haskell/LSP/Test.hs b/src/Language/Haskell/LSP/Test.hs index b406e7b..4cad784 100644 --- a/src/Language/Haskell/LSP/Test.hs +++ b/src/Language/Haskell/LSP/Test.hs @@ -94,7 +94,7 @@ import Data.Default import qualified Data.HashMap.Strict as HashMap import qualified Data.Map as Map import Data.Maybe -import Language.Haskell.LSP.Types hiding (id, capabilities, error) +import Language.Haskell.LSP.Types hiding (id, capabilities) import qualified Language.Haskell.LSP.Types as LSP import Language.Haskell.LSP.Messages import Language.Haskell.LSP.VFS @@ -151,20 +151,19 @@ runSessionWithConfig config serverExe rootDir session = do sendNotification Exit ExitParams return result - + where -- | Listens to the server output, makes sure it matches the record and -- signals any semaphores -listenServer :: Handle -> Session () -listenServer serverOut = do - msgBytes <- liftIO $ getNextMessage serverOut + listenServer :: Handle -> SessionContext -> IO () + listenServer serverOut context = do + msgBytes <- getNextMessage serverOut - context <- ask - reqMap <- liftIO $ readMVar $ requestMap context + reqMap <- readMVar $ requestMap context let msg = decodeFromServerMsg reqMap msgBytes - liftIO $ writeChan (messageChan context) msg + writeChan (messageChan context) msg - listenServer serverOut + listenServer serverOut context -- | The current text contents of a document. documentContents :: TextDocumentIdentifier -> Session T.Text