projects
/
opengl.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (from parent 1:
600388d
)
Add config option to log stderr
author
Luke Lau
<luke_lau@icloud.com>
Thu, 28 Jun 2018 10:32:46 +0000
(11:32 +0100)
committer
Luke Lau
<luke_lau@icloud.com>
Thu, 28 Jun 2018 10:32:46 +0000
(11:32 +0100)
src/Language/Haskell/LSP/Test.hs
patch
|
blob
|
history
src/Language/Haskell/LSP/Test/Replay.hs
patch
|
blob
|
history
src/Language/Haskell/LSP/Test/Server.hs
patch
|
blob
|
history
src/Language/Haskell/LSP/Test/Session.hs
patch
|
blob
|
history
diff --git
a/src/Language/Haskell/LSP/Test.hs
b/src/Language/Haskell/LSP/Test.hs
index 1b8c2a8c20a297af751b96497fd200700fe1b22f..1ce6871fb211f3a66e75f7ac95d65bbb979a4085 100644
(file)
--- a/
src/Language/Haskell/LSP/Test.hs
+++ b/
src/Language/Haskell/LSP/Test.hs
@@
-121,7
+121,7
@@
runSessionWithConfig config serverExe rootDir session = do
Nothing
(capabilities config)
(Just TraceOff)
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
runSessionWithHandles serverIn serverOut listenServer config rootDir $ do
-- Wrap the session around initialize and shutdown calls
diff --git
a/src/Language/Haskell/LSP/Test/Replay.hs
b/src/Language/Haskell/LSP/Test/Replay.hs
index 88bc09228fd3a76e643fcc01ab62e692d0ac3f1d..68e6b1ba56424fe4f846fb111b3130717fe6ba4f 100644
(file)
--- a/
src/Language/Haskell/LSP/Test/Replay.hs
+++ b/
src/Language/Haskell/LSP/Test/Replay.hs
@@
-42,7
+42,7
@@
replaySession serverExe sessionDir = do
-- decode session
let unswappedEvents = map (fromJust . decode) entries
-- decode session
let unswappedEvents = map (fromJust . decode) entries
- withServer serverExe $ \serverIn serverOut pid -> do
+ withServer serverExe
False
$ \serverIn serverOut pid -> do
events <- swapCommands pid <$> swapFiles sessionDir unswappedEvents
events <- swapCommands pid <$> swapFiles sessionDir unswappedEvents
diff --git
a/src/Language/Haskell/LSP/Test/Server.hs
b/src/Language/Haskell/LSP/Test/Server.hs
index c59a755979314316d4759765088f883df873c73a..7d00f2382900e454b5b67b32de1a33ffc71a4caa 100644
(file)
--- a/
src/Language/Haskell/LSP/Test/Server.hs
+++ b/
src/Language/Haskell/LSP/Test/Server.hs
@@
-6,8
+6,8
@@
import Language.Haskell.LSP.Test.Compat
import System.IO
import System.Process
import System.IO
import System.Process
-withServer :: String -> (Handle -> Handle -> Int -> IO a) -> IO a
-withServer serverExe f = do
+withServer :: String ->
Bool ->
(Handle -> Handle -> Int -> IO a) -> IO a
+withServer serverExe
logStdErr
f = do
-- TODO Probably should just change runServer to accept
-- separate command and arguments
let cmd:args = words serverExe
-- TODO Probably should just change runServer to accept
-- separate command and arguments
let cmd:args = words serverExe
@@
-17,7
+17,7
@@
withServer serverExe f = do
-- Need to continuously consume to stderr else it gets blocked
-- Can't pass NoStream either to std_err
hSetBuffering serverErr NoBuffering
-- Need to continuously consume to stderr else it gets blocked
-- Can't pass NoStream either to std_err
hSetBuffering serverErr NoBuffering
- errSinkThread <- forkIO $ forever $ hGetLine serverErr
+ errSinkThread <- forkIO $ forever $ hGetLine serverErr
>>= when logStdErr . putStrLn
pid <- getProcessID serverProc
pid <- getProcessID serverProc
diff --git
a/src/Language/Haskell/LSP/Test/Session.hs
b/src/Language/Haskell/LSP/Test/Session.hs
index 6a9a6d50d51ef738c37b0250a9a9744add532049..b38d1b7fe1d4885de1354036be174aa10f484c93 100644
(file)
--- a/
src/Language/Haskell/LSP/Test/Session.hs
+++ b/
src/Language/Haskell/LSP/Test/Session.hs
@@
-66,10
+66,11
@@
data SessionConfig = SessionConfig
{
capabilities :: ClientCapabilities -- ^ Specific capabilities the client should advertise. Default is yes to everything.
, timeout :: Int -- ^ Maximum time to wait for a request in seconds. Defaults to 60.
{
capabilities :: ClientCapabilities -- ^ Specific capabilities the client should advertise. Default is yes to everything.
, timeout :: Int -- ^ Maximum time to wait for a request in seconds. Defaults to 60.
+ , logStdErr :: Bool -- ^ When True redirects the servers stderr output to haskell-lsp-test's stdout. Defaults to False
}
instance Default SessionConfig where
}
instance Default SessionConfig where
- def = SessionConfig def 60
+ def = SessionConfig def 60
False
class Monad m => MonadSessionConfig m where
sessionConfig :: m SessionConfig
class Monad m => MonadSessionConfig m where
sessionConfig :: m SessionConfig