- fromServerMsg (ReqApplyWorkspaceEdit r) =
- ReqApplyWorkspaceEdit $ params . edit .~ swapWorkspaceEdit (r ^. params . edit) $ r
-
- 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
-
+ fromServerMsg (FromServerMess m@SWorkspaceApplyEdit r) = FromServerMess m $ params . edit .~ swapWorkspaceEdit (r ^. params . edit) $ r
+ fromServerMsg (FromServerMess m@STextDocumentPublishDiagnostics n) = FromServerMess m $ swapUri params n
+ fromServerMsg (FromServerRsp m@STextDocumentDocumentSymbol r) =
+ let swapUri' :: (List DocumentSymbol |? List SymbolInformation) -> List DocumentSymbol |? List SymbolInformation
+ swapUri' (R si) = R (swapUri location <$> si)
+ swapUri' (L dss) = L dss -- no file locations here
+ in FromServerRsp m $ r & result %~ (fmap swapUri')
+ fromServerMsg (FromServerRsp m@STextDocumentRename r) = FromServerRsp m $ r & result %~ (fmap swapWorkspaceEdit)