X-Git-Url: http://git.lukelau.me/?p=lsp-test.git;a=blobdiff_plain;f=src%2FLanguage%2FHaskell%2FLSP%2FTest.hs;h=086a34c9257465d8ef284f66e5138486dbc91832;hp=79b7b1e7147934150d4cf632b9c142940e2191e0;hb=7d0ddb8022d9cccc68a99008dd55c1d39ddda3e7;hpb=bc52b000bf018360efbfa0fcd289329c70d2c77e diff --git a/src/Language/Haskell/LSP/Test.hs b/src/Language/Haskell/LSP/Test.hs index 79b7b1e..086a34c 100644 --- a/src/Language/Haskell/LSP/Test.hs +++ b/src/Language/Haskell/LSP/Test.hs @@ -81,7 +81,7 @@ import Language.Haskell.LSP.Test.Decoding import Language.Haskell.LSP.Test.Parsing -- | Starts a new session. -runSession :: FilePath -- ^ The filepath to the server executable. +runSession :: String -- ^ The command to run the server. -> FilePath -- ^ The filepath to the root directory for the session. -> Session a -- ^ The session to run. -> IO () @@ -113,16 +113,15 @@ runSession serverExe 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 + -> String -> FilePath -> Session a -> IO a runSessionWithHandler serverHandler serverExe rootDir session = do absRootDir <- canonicalizePath rootDir - (Just serverIn, Just serverOut, Nothing, serverProc) <- createProcess - (proc serverExe ["--lsp", "-d", "-l", "/tmp/hie-test.log"]) - { std_in = CreatePipe, std_out = CreatePipe } + let createProc = (shell serverExe) { std_in = CreatePipe, std_out = CreatePipe } + (Just serverIn, Just serverOut, Nothing, serverProc) <- createProcess createProc hSetBuffering serverIn NoBuffering hSetBuffering serverOut NoBuffering