X-Git-Url: https://git.lukelau.me/?a=blobdiff_plain;f=src%2FLanguage%2FHaskell%2FLSP%2FTest.hs;h=087143fa8960537db6d71dab2c3bc70e82e83221;hb=4eb97ef8a3d4b3908fa9b5bbbd5ae77cfa95cecc;hp=2e0926a58539581e2053cc14d4fff750e8424f3f;hpb=88c70a40654c7152fb50b2a4e171fbdc00324f51;p=lsp-test.git diff --git a/src/Language/Haskell/LSP/Test.hs b/src/Language/Haskell/LSP/Test.hs index 2e0926a..087143f 100644 --- a/src/Language/Haskell/LSP/Test.hs +++ b/src/Language/Haskell/LSP/Test.hs @@ -80,10 +80,11 @@ import Language.Haskell.LSP.Test.Decoding import Language.Haskell.LSP.Test.Parsing -- | Starts a new session. -runSession :: FilePath -- ^ The filepath to the root directory for the session. +runSession :: FilePath -- ^ The filepath to the server executable. + -> FilePath -- ^ The filepath to the root directory for the session. -> Session a -- ^ The session to run. -> IO () -runSession rootDir session = do +runSession serverExe rootDir session = do pid <- getProcessID absRootDir <- canonicalizePath rootDir @@ -94,7 +95,7 @@ runSession rootDir session = do def (Just TraceOff) - runSessionWithHandler listenServer rootDir $ do + runSessionWithHandler listenServer serverExe rootDir $ do -- Wrap the session around initialize and shutdown calls sendRequest (Proxy :: Proxy InitializeRequest) Initialize initializeParams @@ -111,14 +112,15 @@ runSession rootDir session = do -- | An internal version of 'runSession' that allows for a custom handler to listen to the server. -- It also does not automatically send initialize and exit messages. runSessionWithHandler :: (Handle -> Session ()) + -> FilePath -> FilePath -> Session a -> IO a -runSessionWithHandler serverHandler rootDir session = do +runSessionWithHandler serverHandler serverExe rootDir session = do absRootDir <- canonicalizePath rootDir (Just serverIn, Just serverOut, Nothing, serverProc) <- createProcess - (proc "hie" ["--lsp", "-d", "-l", "/tmp/hie-test.log"]) + (proc serverExe ["--lsp", "-d", "-l", "/tmp/hie-test.log"]) { std_in = CreatePipe, std_out = CreatePipe } hSetBuffering serverIn NoBuffering