-- * Sessions
runSession
, runSessionWithHandles
- , runSessionWithCapabilities
+ , runSessionWithConfig
, Session
+ , SessionConfig(..)
+ , MonadSessionConfig(..)
+ , SessionException(..)
+ , anySessionException
-- * Sending
, sendRequest
, sendNotification
import Data.Default
import qualified Data.Map as Map
import Data.Maybe
-import Language.Haskell.LSP.Types
-import qualified Language.Haskell.LSP.Types as LSP (error, id)
-import Language.Haskell.LSP.TH.ClientCapabilities
+import Language.Haskell.LSP.Types hiding (id, capabilities)
+import qualified Language.Haskell.LSP.Types as LSP
import Language.Haskell.LSP.VFS
import Language.Haskell.LSP.Test.Compat
import Language.Haskell.LSP.Test.Decoding
+import Language.Haskell.LSP.Test.Exceptions
import Language.Haskell.LSP.Test.Parsing
import Language.Haskell.LSP.Test.Session
import Language.Haskell.LSP.Test.Server
-> FilePath -- ^ The filepath to the root directory for the session.
-> Session a -- ^ The session to run.
-> IO a
-runSession = runSessionWithCapabilities def
+runSession = runSessionWithConfig def
-- | Starts a new sesion with a client with the specified capabilities.
-runSessionWithCapabilities :: ClientCapabilities -- ^ The capabilities the client should have.
+runSessionWithConfig :: SessionConfig -- ^ The capabilities the client should have.
-> String -- ^ The command to run the server.
-> FilePath -- ^ The filepath to the root directory for the session.
-> Session a -- ^ The session to run.
-> IO a
-runSessionWithCapabilities caps serverExe rootDir session = do
+runSessionWithConfig config serverExe rootDir session = do
pid <- getProcessID
absRootDir <- canonicalizePath rootDir
(Just $ T.pack absRootDir)
(Just $ filePathToUri absRootDir)
Nothing
- caps
+ (capabilities config)
(Just TraceOff)
- withServer serverExe $ \serverIn serverOut _ -> runSessionWithHandles serverIn serverOut listenServer rootDir $ do
+ withServer serverExe $ \serverIn serverOut _ ->
+ runSessionWithHandles serverIn serverOut listenServer config rootDir $ do
-- Wrap the session around initialize and shutdown calls
sendRequest Initialize initializeParams