Support haskell-lsp-0.22
[lsp-test.git] / src / Language / Haskell / LSP / Test / Files.hs
index 1c453a6e2632c83d233358cd57de7d730319db98..b56f536a660bb9dd5812b019a381cf6ec5714e3b 100644 (file)
@@ -9,7 +9,7 @@ where
 
 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 @@ mapUris f event =
     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
-
-    fromServerMsg (RspRename r) =
-      let oldResult = r ^. result :: Maybe WorkspaceEdit
-          newResult = fmap swapWorkspaceEdit oldResult
-      in RspRename $ result .~ newResult $ 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) = RspRename $ r & result %~ (fmap swapWorkspaceEdit)
 
     fromServerMsg x = x