X-Git-Url: http://git.lukelau.me/?a=blobdiff_plain;f=example%2FMain.hs;h=1e2e3baf3356b36f6eb09967a02ce2e7fbd12c0a;hb=cdb1ba7038c32bac71a3bc783effc1e07049a985;hp=8080991051ec609e297498b6d491ef14470c76af;hpb=9db776483f617de170b6798d5ea8a9f997c0d098;p=opengl.git diff --git a/example/Main.hs b/example/Main.hs index 8080991..1e2e3ba 100644 --- a/example/Main.hs +++ b/example/Main.hs @@ -1,16 +1,19 @@ -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 Control.Applicative.Combinators import Control.Monad.IO.Class -import System.Directory -import System.Environment +import Language.Haskell.LSP.Test +import Language.Haskell.LSP.Types + +main = runSession "hie --lsp" fullCaps "test/data/renamePass" $ do + docItem <- openDoc "Desktop/simple.hs" "haskell" + + -- Use your favourite favourite combinators. + skipManyTill loggingNotification (count 2 publishDiagnosticsNotification) + + -- Send requests and notifications and receive responses + let params = DocumentSymbolParams docItem + rsp <- request TextDocumentDocumentSymbol params :: Session DocumentSymbolsResponse + liftIO $ print rsp + + -- Or use one of the helper functions + getDocumentSymbols docItem >>= liftIO . print -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)