X-Git-Url: https://git.lukelau.me/?p=lsp-test.git;a=blobdiff_plain;f=src%2FLanguage%2FHaskell%2FLSP%2FTest%2FParsing.hs;h=6c3c64afe8f9ff85a8fa0b6a3e2e0b9b501f4df1;hp=d1fec456221dca4168fe1fdcfa5cf076c7a1ef99;hb=8b2c929b82594c3c95a94852a06e9f4a733d40f6;hpb=98d03792f46f3ac870c010a78944822569e76763 diff --git a/src/Language/Haskell/LSP/Test/Parsing.hs b/src/Language/Haskell/LSP/Test/Parsing.hs index d1fec45..6c3c64a 100644 --- a/src/Language/Haskell/LSP/Test/Parsing.hs +++ b/src/Language/Haskell/LSP/Test/Parsing.hs @@ -1,5 +1,6 @@ {-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE ScopedTypeVariables #-} +{-# LANGUAGE PolyKinds #-} {-# LANGUAGE KindSignatures #-} {-# LANGUAGE DataKinds #-} {-# LANGUAGE GADTs #-} @@ -11,6 +12,7 @@ module Language.Haskell.LSP.Test.Parsing ( -- $receiving satisfy , satisfyMaybe + , message , anyRequest , anyResponse , anyNotification @@ -33,7 +35,6 @@ import qualified Data.Text as T import Data.Typeable import Language.Haskell.LSP.Types import qualified Language.Haskell.LSP.Types.Lens as LSP -import Language.Haskell.LSP.Test.Messages import Language.Haskell.LSP.Test.Session -- $receiving @@ -100,14 +101,8 @@ satisfyMaybe pred = do named :: T.Text -> Session a -> Session a named s (Session x) = Session (Data.Conduit.Parser.named s x) -{- --- | Matches a message of type @a@. -message :: forall a. (Typeable a, FromJSON a) => Session a -message = - let parser = decode . encodeMsg :: FromServerMessage -> Maybe a - in named (T.pack $ show $ head $ snd $ splitTyConApp $ last $ typeRepArgs $ typeOf parser) $ - satisfyMaybe parser --} +message :: SServerMethod m -> Session (ServerMessage m) +message = undefined -- TODO -- | Matches if the message is a notification. anyNotification :: Session FromServerMessage