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 Control.Monad.IO.Class
-import System.Directory
-import System.Environment
-main = do
- files <- getArgs
- forM_ files $ \fp -> session $ 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 <- openDoc "Desktop/simple.hs" "haskell"
+
+ let params = DocumentSymbolParams docItem
+ _ <- sendRequest TextDocumentDocumentSymbol params :: Session DocumentSymbolsResponse
+
+ skipMany loggingNotification
+
+ anyResponse >>= liftIO . print