import Language.Haskell.LSP.Test
-import qualified Language.Haskell.LSP.TH.DataTypesJSON as LSP
-import qualified Data.Text.IO as T
-import Control.Lens
-import Control.Monad
+import Language.Haskell.LSP.TH.DataTypesJSON
+import Data.Proxy
+
import Control.Monad.IO.Class
-import System.Directory
-import System.Environment
-main = do
- files <- getArgs
- forM_ files $ \fp -> manualSession $ do
- file <- liftIO $ canonicalizePath fp
- openDocument file
- symbols <- documentSymbols file
- liftIO $ mapM_ T.putStrLn (symbols ^.. traverse . LSP.name)
+main = runSession "hie --lsp" "test/recordings/renamePass" $ do
+
+ docItem <- getDocItem "Desktop/simple.hs" "haskell"
+ docId <- TextDocumentIdentifier <$> getDocUri "Desktop/simple.hs"
+
+ sendNotification TextDocumentDidOpen (DidOpenTextDocumentParams docItem)
+
+ sendRequest TextDocumentDocumentSymbol (DocumentSymbolParams docId)
+
+ skipMany loggingNotification
+
+ anyResponse >>= liftIO . print