0f5cdb46fea65960e8978677fb0d702cb30ae5e5
[lsp-test.git] / example / Test.hs
1 import Control.Applicative.Combinators
2 import Control.Monad.IO.Class
3 import Language.Haskell.LSP.Test
4 import Language.Haskell.LSP.Types
5
6 main = runSession "hie --lsp" fullCaps "../test/data/" $ do
7   docItem <- openDoc "Rename.hs" "haskell"
8   
9   -- Use your favourite favourite combinators.
10   skipManyTill loggingNotification (count 2 publishDiagnosticsNotification)
11
12   -- Send requests and notifications and receive responses
13   let params = DocumentSymbolParams docItem
14   rsp <- request TextDocumentDocumentSymbol params :: Session DocumentSymbolsResponse
15   liftIO $ print rsp
16
17   -- Or use one of the helper functions
18   getDocumentSymbols docItem >>= liftIO . print
19