import Data.Aeson
import Data.Default
import qualified Data.HashMap.Strict as HM
+import Data.Maybe
import qualified Data.Text as T
import Control.Applicative.Combinators
import Control.Concurrent
rename doc (Position 1 0) "bar"
documentContents doc >>= liftIO . shouldBe "main = bar\nbar = return 42\n"
+ describe "getHover" $
+ it "works" $ runSession "hie --lsp" "test/data/renamePass" $ do
+ doc <- openDoc "Desktop/simple.hs" "haskell"
+ -- hover returns nothing until module is loaded
+ skipManyTill loggingNotification $ count 2 noDiagnostics
+ hover <- getHover doc (Position 45 9) -- putStrLn
+ liftIO $ hover `shouldSatisfy` isJust
+ describe "getHighlights" $
+ it "works" $ runSession "hie --lsp" "test/data/renamePass" $ do
+ doc <- openDoc "Desktop/simple.hs" "haskell"
+ skipManyTill loggingNotification $ count 2 noDiagnostics
+ highlights <- getHighlights doc (Position 27 4) -- addItem
+ liftIO $ length highlights `shouldBe` 4
+
mkRange sl sc el ec = Range (Position sl sc) (Position el ec)
didChangeCaps :: ClientCapabilities