import Control.Exception
import Control.Lens hiding (List)
import Control.Monad
-import Control.Monad.Fail
import Control.Monad.IO.Class
import Control.Monad.Except
#if __GLASGOW_HASKELL__ >= 806
-import qualified Control.Monad.Fail as Fail
+import Control.Monad.Fail
#endif
import Control.Monad.Trans.Reader (ReaderT, runReaderT)
import qualified Control.Monad.Trans.Reader as Reader (ask)
-- | The configuration used in 'Language.Haskell.LSP.Test.runSession'.
defaultConfig :: SessionConfig
-defaultConfig = SessionConfig 60 False True True Nothing
+defaultConfig = SessionConfig 60 False False True Nothing
instance Default SessionConfig where
def = defaultConfig
let context = SessionContext serverIn absRootDir messageChan reqMap initRsp config caps
initState = SessionState (IdInt 0) mempty mempty 0 False Nothing
-
- threadId <- forkIO $ void $ serverHandler serverOut context
- (result, _) <- runSession context initState session
-
- killThread threadId
+ launchServerHandler = forkIO $ void $ serverHandler serverOut context
+ (result, _) <- bracket launchServerHandler killThread $
+ const $ runSession context initState session
return result