, SessionMessage(..)
, SessionContext(..)
, SessionState(..)
- , MonadSessionConfig(..)
, runSessionWithHandles
, get
, put
instance Default SessionConfig where
def = SessionConfig def 60 False
-class Monad m => MonadSessionConfig m where
- sessionConfig :: m SessionConfig
-
-instance Monad m => MonadSessionConfig (StateT SessionState (ReaderT SessionContext m)) where
- sessionConfig = config <$> lift Reader.ask
-
data SessionMessage = ServerMessage FromServerMessage
| TimeoutMessage Int
deriving Show
+++ /dev/null
-{-# LANGUAGE OverloadedStrings #-}
-{-# LANGUAGE FlexibleInstances #-}
-module ParsingTests where
-
-import Control.Lens hiding (List)
-import Language.Haskell.LSP.Messages
-import Language.Haskell.LSP.Test
-import Language.Haskell.LSP.Types
-import Data.Conduit
-import Data.Conduit.Parser
-import Data.Default
-import Test.Hspec
-
-type TestSession = ConduitParser FromServerMessage IO
-
-instance MonadSessionConfig IO where
- sessionConfig = return def
-
-parsingSpec :: Spec
-parsingSpec = return ()
--- describe "diagnostics" $ do
--- let testDiag = NotPublishDiagnostics
--- (NotificationMessage "2.0"
--- TextDocumentPublishDiagnostics
--- (PublishDiagnosticsParams (Uri "foo")
--- (List [])))
--- it "get picked up" $ do
--- let source = yield testDiag
--- session = do
--- diags <- publishDiagnosticsNotification :: TestSession PublishDiagnosticsNotification
--- return $ diags ^. params . uri
--- runConduit (source .| runConduitParser session) `shouldReturn` Uri "foo"
--- it "get picked up after skipping others before" $ do
--- let testDiag = NotPublishDiagnostics
--- (NotificationMessage "2.0"
--- TextDocumentPublishDiagnostics
--- (PublishDiagnosticsParams (Uri "foo")
--- (List [])))
--- notTestDiag = NotLogMessage (NotificationMessage "2.0" WindowLogMessage (LogMessageParams MtLog "foo"))
--- source = yield notTestDiag >> yield testDiag
--- session = do
--- diags <- skipManyTill anyNotification notification :: TestSession PublishDiagnosticsNotification
--- return $ diags ^. params . uri
--- runConduit (source .| runConduitParser session) `shouldReturn` Uri "foo"
+++ b/test/ParsingTests.hs
import Language.Haskell.LSP.Test.Replay
import Language.Haskell.LSP.TH.ClientCapabilities
import Language.Haskell.LSP.Types hiding (message, capabilities)
-import ParsingTests
import System.Timeout
main = hspec $ do
mainSymbol ^. location . range `shouldBe` Range (Position 3 0) (Position 3 4)
mainSymbol ^. containerName `shouldBe` Nothing
- parsingSpec
-
data ApplyOneParams = AOP
{ file :: Uri
, start_pos :: Position