- git clone https://github.com/haskell/haskell-ide-engine.git --recursive
- cd haskell-ide-engine
- git checkout c34c08eeced8173983601e98304258075f3057e1
- - stack --no-terminal --skip-ghc-check install -j1
+ - stack --no-terminal --skip-ghc-check install -j2
- stack exec hoogle generate
- cd ..
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE OverloadedStrings #-}
import Test.Hspec
+import Data.Maybe
import Data.Proxy
import Control.Monad.IO.Class
import Control.Lens hiding (List)
skipMany loggingNotification
- (NotPublishDiagnostics (NotificationMessage _ TextDocumentPublishDiagnostics (PublishDiagnosticsParams _ (List diags)))) <- notification
+ NotPublishDiagnostics diagsNot <- notification
- liftIO $ diags `shouldBe` []
+ liftIO $ diagsNot ^. params . diagnostics `shouldBe` List []
sendRequest (Proxy :: Proxy DocumentSymbolRequest)
TextDocumentDocumentSymbol
(DocumentSymbolParams docId)
- (RspDocumentSymbols (ResponseMessage _ _ (Just (List symbols)) Nothing)) <- response
+ RspDocumentSymbols rspSymbols <- response
liftIO $ do
- let mainSymbol = head symbols
+ let (List symbols) = fromJust (rspSymbols ^. result)
+ mainSymbol = head symbols
mainSymbol ^. name `shouldBe` "main"
mainSymbol ^. kind `shouldBe` SkFunction
mainSymbol ^. location . range `shouldBe` Range (Position 3 0) (Position 3 4)