lsp-test 0.10.2.0 → 0.10.3.0
raw patch · 8 files changed
+39/−39 lines, 8 filesdep ~haskell-lspPVP ok
version bump matches the API change (PVP)
Dependency ranges changed: haskell-lsp
API changes (from Hackage documentation)
Files
- ChangeLog.md +5/−1
- lsp-test.cabal +4/−4
- src/Language/Haskell/LSP/Test.hs +18/−18
- src/Language/Haskell/LSP/Test/Decoding.hs +0/−1
- src/Language/Haskell/LSP/Test/Files.hs +5/−9
- src/Language/Haskell/LSP/Test/Replay.hs +4/−4
- src/Language/Haskell/LSP/Test/Session.hs +1/−1
- test/Test.hs +2/−1
ChangeLog.md view
@@ -1,6 +1,10 @@ # Revision history for lsp-test -## 0.10.1.0 -- 2020-03-21+## 0.10.3.0 -- 2020-05-04++* Build with new haskell-lsp-0.22++## 0.10.2.0 -- 2020-03-21 * Bump constraints for new haskell-lsp
lsp-test.cabal view
@@ -1,5 +1,5 @@ name: lsp-test-version: 0.10.2.0+version: 0.10.3.0 synopsis: Functional test framework for LSP servers. description: A test framework for writing tests against@@ -20,7 +20,7 @@ cabal-version: 2.0 extra-source-files: README.md , ChangeLog.md-tested-with: GHC == 8.2.2 , GHC == 8.4.2 , GHC == 8.4.3, GHC == 8.6.4, GHC == 8.6.5, GHC == 8.8.1+tested-with: GHC == 8.2.2 , GHC == 8.4.2 , GHC == 8.4.3, GHC == 8.6.4, GHC == 8.6.5, GHC == 8.8.1, GHC == 8.10.1 source-repository head type: git@@ -35,7 +35,7 @@ , parser-combinators:Control.Applicative.Combinators default-language: Haskell2010 build-depends: base >= 4.10 && < 5- , haskell-lsp >= 0.19 && < 0.22+ , haskell-lsp >= 0.22 && < 0.23 , aeson , aeson-pretty , ansi-terminal@@ -77,7 +77,7 @@ build-depends: base >= 4.10 && < 5 , hspec , lens- , haskell-lsp >= 0.19 && < 0.22+ , haskell-lsp >= 0.22 && < 0.23 , lsp-test , data-default , aeson
src/Language/Haskell/LSP/Test.hs view
@@ -160,7 +160,9 @@ -- collect them and then... (inBetween, initRspMsg) <- manyTill_ anyMessage (responseForId initReqId) - liftIO $ maybe (return ()) (putStrLn . ("Error while initializing: " ++) . show ) (initRspMsg ^. LSP.error)+ case initRspMsg ^. LSP.result of+ Left error -> liftIO $ putStrLn ("Error while initializing: " ++ show error)+ Right _ -> pure () initRspVar <- initRsp <$> ask liftIO $ putMVar initRspVar initRspMsg@@ -412,12 +414,11 @@ -- | Returns the symbols in a document. getDocumentSymbols :: TextDocumentIdentifier -> Session (Either [DocumentSymbol] [SymbolInformation]) getDocumentSymbols doc = do- ResponseMessage _ rspLid mRes mErr <- request TextDocumentDocumentSymbol (DocumentSymbolParams doc Nothing) :: Session DocumentSymbolsResponse- maybe (return ()) (throw . UnexpectedResponseError rspLid) mErr- case mRes of- Just (DSDocumentSymbols (List xs)) -> return (Left xs)- Just (DSSymbolInformation (List xs)) -> return (Right xs)- Nothing -> Prelude.error "No result and no error in DocumentSymbolsResponse"+ ResponseMessage _ rspLid res <- request TextDocumentDocumentSymbol (DocumentSymbolParams doc Nothing) :: Session DocumentSymbolsResponse+ case res of+ Right (DSDocumentSymbols (List xs)) -> return (Left xs)+ Right (DSSymbolInformation (List xs)) -> return (Right xs)+ Left err -> throw (UnexpectedResponseError rspLid err) -- | Returns the code actions in the specified range. getCodeActions :: TextDocumentIdentifier -> Range -> Session [CAResult]@@ -426,8 +427,8 @@ rsp <- request TextDocumentCodeAction (CodeActionParams doc range ctx Nothing) case rsp ^. result of- Just (List xs) -> return xs- _ -> throw (UnexpectedResponseError (rsp ^. LSP.id) (fromJust $ rsp ^. LSP.error))+ Right (List xs) -> return xs+ Left error -> throw (UnexpectedResponseError (rsp ^. LSP.id) error) -- | Returns all the code actions in a document by -- querying the code actions at each of the current@@ -441,13 +442,11 @@ where go :: CodeActionContext -> [CAResult] -> Diagnostic -> Session [CAResult] go ctx acc diag = do- ResponseMessage _ rspLid mRes mErr <- request TextDocumentCodeAction (CodeActionParams doc (diag ^. range) ctx Nothing)+ ResponseMessage _ rspLid res <- request TextDocumentCodeAction (CodeActionParams doc (diag ^. range) ctx Nothing) - case mErr of- Just e -> throw (UnexpectedResponseError rspLid e)- Nothing ->- let Just (List cmdOrCAs) = mRes- in return (acc ++ cmdOrCAs)+ case res of+ Left e -> throw (UnexpectedResponseError rspLid e)+ Right (List cmdOrCAs) -> pure (acc ++ cmdOrCAs) getCodeActionContext :: TextDocumentIdentifier -> Session CodeActionContext getCodeActionContext doc = do@@ -581,9 +580,10 @@ -- | Checks the response for errors and throws an exception if needed. -- Returns the result if successful. getResponseResult :: ResponseMessage a -> a-getResponseResult rsp = fromMaybe exc (rsp ^. result)- where exc = throw $ UnexpectedResponseError (rsp ^. LSP.id)- (fromJust $ rsp ^. LSP.error)+getResponseResult rsp =+ case rsp ^. result of+ Right x -> x+ Left err -> throw $ UnexpectedResponseError (rsp ^. LSP.id) err -- | Applies formatting to the specified document. formatDoc :: TextDocumentIdentifier -> FormattingOptions -> Session ()
src/Language/Haskell/LSP/Test/Decoding.hs view
@@ -12,7 +12,6 @@ import System.IO.Error import Language.Haskell.LSP.Types import Language.Haskell.LSP.Types.Lens- hiding ( error ) import Language.Haskell.LSP.Messages import Language.Haskell.LSP.Test.Exceptions import qualified Data.HashMap.Strict as HM
src/Language/Haskell/LSP/Test/Files.hs view
@@ -9,7 +9,7 @@ import Language.Haskell.LSP.Capture import Language.Haskell.LSP.Types-import Language.Haskell.LSP.Types.Lens hiding (error)+import Language.Haskell.LSP.Types.Lens import Language.Haskell.LSP.Messages import Control.Lens import qualified Data.HashMap.Strict as HM@@ -63,15 +63,11 @@ fromServerMsg (NotPublishDiagnostics n) = NotPublishDiagnostics $ swapUri params n fromServerMsg (RspDocumentSymbols r) =- let newSymbols = case r ^. result of- Just (DSSymbolInformation si) -> Just (DSSymbolInformation (fmap (swapUri location) si))- x -> x- in RspDocumentSymbols $ result .~ newSymbols $ r+ let swapUri' (DSSymbolInformation si) = DSSymbolInformation (swapUri location <$> si)+ swapUri' (DSDocumentSymbols dss) = DSDocumentSymbols dss -- no file locations here+ in RspDocumentSymbols $ r & result %~ (fmap swapUri') - fromServerMsg (RspRename r) =- let oldResult = r ^. result :: Maybe WorkspaceEdit- newResult = fmap swapWorkspaceEdit oldResult- in RspRename $ result .~ newResult $ r+ fromServerMsg (RspRename r) = RspRename $ r & result %~ (fmap swapWorkspaceEdit) fromServerMsg x = x
src/Language/Haskell/LSP/Test/Replay.hs view
@@ -13,7 +13,7 @@ import Language.Haskell.LSP.Capture import Language.Haskell.LSP.Messages import Language.Haskell.LSP.Types-import Language.Haskell.LSP.Types.Lens as LSP hiding (error)+import Language.Haskell.LSP.Types.Lens as LSP import Data.Aeson import Data.Default import Data.List@@ -108,7 +108,7 @@ sendMessages remainingMsgs reqSema rspSema - response msg@(ResponseMessage _ id _ _) = do+ response msg@(ResponseMessage _ id _) = do liftIO $ putStrLn $ "Waiting for request id " ++ show id ++ " from the server" reqId <- liftIO $ takeMVar reqSema if responseId reqId /= id@@ -220,9 +220,9 @@ swapCommands pid (FromServer t (RspInitialize rsp):xs) = FromServer t (RspInitialize swapped):swapCommands pid xs where swapped = case newCommands of- Just cmds -> result . _Just . LSP.capabilities . executeCommandProvider . _Just . commands .~ cmds $ rsp+ Just cmds -> result . _Right . LSP.capabilities . executeCommandProvider . _Just . commands .~ cmds $ rsp Nothing -> rsp- oldCommands = rsp ^? result . _Just . LSP.capabilities . executeCommandProvider . _Just . commands+ oldCommands = rsp ^? result . _Right . LSP.capabilities . executeCommandProvider . _Just . commands newCommands = fmap (fmap (swapPid pid)) oldCommands swapCommands pid (x:xs) = x:swapCommands pid xs
src/Language/Haskell/LSP/Test/Session.hs view
@@ -60,7 +60,7 @@ import Language.Haskell.LSP.Messages import Language.Haskell.LSP.Types.Capabilities import Language.Haskell.LSP.Types-import Language.Haskell.LSP.Types.Lens hiding (error)+import Language.Haskell.LSP.Types.Lens import Language.Haskell.LSP.VFS import Language.Haskell.LSP.Test.Compat import Language.Haskell.LSP.Test.Decoding
test/Test.hs view
@@ -7,6 +7,7 @@ import Data.Aeson import Data.Default import qualified Data.HashMap.Strict as HM+import Data.Either import Data.Maybe import qualified Data.Text as T import Control.Applicative.Combinators@@ -37,7 +38,7 @@ in session `shouldThrow` anySessionException it "initializeResponse" $ runSession "hie" fullCaps "test/data/renamePass" $ do rsp <- initializeResponse- liftIO $ rsp ^. result `shouldNotBe` Nothing+ liftIO $ rsp ^. result `shouldSatisfy` isLeft it "runSessionWithConfig" $ runSession "hie" didChangeCaps "test/data/renamePass" $ return ()