X-Git-Url: https://git.lukelau.me/?p=lsp-test.git;a=blobdiff_plain;f=src%2FLanguage%2FLSP%2FTest.hs;h=a068b0eda6bb9254e32aa49c4daadcb95716eb86;hp=3eda63e90dd6fb39a936a431f68bac7042147da0;hb=56c39e493dfc0bf610e3807f69ccc7af8549d3e3;hpb=2e75030de6600e4050fa800f1468459e308d568f diff --git a/src/Language/LSP/Test.hs b/src/Language/LSP/Test.hs index 3eda63e..a068b0e 100644 --- a/src/Language/LSP/Test.hs +++ b/src/Language/LSP/Test.hs @@ -283,9 +283,16 @@ getDocumentEdit doc = do documentContents doc where + -- extract Uri out from DocumentChange + documentChangeUri :: DocumentChange -> Uri + documentChangeUri (InL x) = x ^. textDocument . uri + documentChangeUri (InR (InL x)) = x ^. uri + documentChangeUri (InR (InR (InL x))) = x ^. oldUri + documentChangeUri (InR (InR (InR x))) = x ^. uri + checkDocumentChanges req = let changes = req ^. params . edit . documentChanges - maybeDocs = fmap (fmap (^. textDocument . uri)) changes + maybeDocs = fmap (fmap documentChangeUri) changes in case maybeDocs of Just docs -> (doc ^. uri) `elem` docs Nothing -> False @@ -583,7 +590,7 @@ applyEdit doc edit = do let wEdit = if supportsDocChanges then let docEdit = TextDocumentEdit verDoc (List [edit]) - in WorkspaceEdit Nothing (Just (List [docEdit])) + in WorkspaceEdit Nothing (Just (List [InL docEdit])) else let changes = HashMap.singleton (doc ^. uri) (List [edit]) in WorkspaceEdit (Just changes) Nothing