X-Git-Url: http://git.lukelau.me/?a=blobdiff_plain;ds=sidebyside;f=src%2FLanguage%2FHaskell%2FLSP%2FTest.hs;h=2e0926a58539581e2053cc14d4fff750e8424f3f;hb=88c70a40654c7152fb50b2a4e171fbdc00324f51;hp=4de02fe1324b184835fe09b3d8ba5e8c63997d67;hpb=d8ce5332e9ac2dc24bf1490f03bd30abb17196e8;p=opengl.git diff --git a/src/Language/Haskell/LSP/Test.hs b/src/Language/Haskell/LSP/Test.hs index 4de02fe..2e0926a 100644 --- a/src/Language/Haskell/LSP/Test.hs +++ b/src/Language/Haskell/LSP/Test.hs @@ -28,43 +28,36 @@ module Language.Haskell.LSP.Test , response , notification , loggingNotification + , publishDiagnosticsNotification -- * Combinators , choice , option , optional - , skipOptional , between , some , many , sepBy , sepBy1 - , sepByNonEmpty , sepEndBy1 - , sepEndByNonEmpty , sepEndBy , endBy1 - , endByNonEmpty , endBy , count - , chainl - , chainr - , chainl1 - , chainr1 , manyTill - , try - , () , skipMany , skipSome - , unexpected - , notFollowedBy + , skipManyTill + , skipSomeTill , (<|>) , satisfy -- * Utilities + , openDoc , getDocItem , getDocUri ) where import Control.Applicative +import Control.Applicative.Combinators import Control.Monad import Control.Monad.IO.Class import Control.Concurrent @@ -85,7 +78,6 @@ import System.Directory import System.FilePath import Language.Haskell.LSP.Test.Decoding import Language.Haskell.LSP.Test.Parsing -import Text.Parser.Combinators -- | Starts a new session. runSession :: FilePath -- ^ The filepath to the root directory for the session. @@ -213,6 +205,13 @@ sendMessage msg = do h <- serverIn <$> ask liftIO $ B.hPut h $ addHeader (encode msg) +-- | Opens a text document and sends a notification to the client. +openDoc :: FilePath -> String -> Session TextDocumentIdentifier +openDoc file languageId = do + item <- getDocItem file languageId + sendNotification TextDocumentDidOpen (DidOpenTextDocumentParams item) + TextDocumentIdentifier <$> getDocUri file + -- | Reads in a text document as the first version. getDocItem :: FilePath -- ^ The path to the text document to read in. -> String -- ^ The language ID, e.g "haskell" for .hs files.