Add manual session testing
[opengl.git] / example / Main.hs
index 4dd268c907d8c96b8af2bee7b7eff27de2b2b4ad..5aaa2d13abee6adb516dcfece381e3cd215d1e50 100644 (file)
@@ -1,16 +1,17 @@
 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 "test/recordings/renamePass" $ do
+
+  docItem <- getDocItem "Desktop/simple.hs" "haskell"
+  docId <- TextDocumentIdentifier <$> getDocUri "Desktop/simple.hs"
+
+  sendNotification TextDocumentDidOpen (DidOpenTextDocumentParams docItem)
+  
+  sendRequest (Proxy :: Proxy DocumentSymbolRequest) TextDocumentDocumentSymbol (DocumentSymbolParams docId)
+
+  syms <- getMessage :: Session DocumentSymbolsResponse
+  liftIO $ print syms
\ No newline at end of file