X-Git-Url: http://git.lukelau.me/?p=lsp-test.git;a=blobdiff_plain;f=src%2FLanguage%2FHaskell%2FLSP%2FTest.hs;h=200dbb84807856959a2dfe0bf92faa8947eb8958;hp=81bdc8a8b465087baa960fbc6b1303e8497fcff7;hb=72257c6a7b5461c529c415b93e1c3507e1c843a7;hpb=2f0ce0270e1d164b4b7c8c45d4d0e92564086e39 diff --git a/src/Language/Haskell/LSP/Test.hs b/src/Language/Haskell/LSP/Test.hs index 81bdc8a..200dbb8 100644 --- a/src/Language/Haskell/LSP/Test.hs +++ b/src/Language/Haskell/LSP/Test.hs @@ -611,9 +611,12 @@ getDefinitions doc pos = do getTypeDefinitions :: TextDocumentIdentifier -- ^ The document the term is in. -> Position -- ^ The position the term is at. -> Session [Location] -- ^ The location(s) of the definitions -getTypeDefinitions doc pos = +getTypeDefinitions doc pos = do let params = TextDocumentPositionParams doc pos Nothing - in getResponseResult <$> request TextDocumentTypeDefinition params + rsp <- request TextDocumentTypeDefinition params :: Session TypeDefinitionResponse + case getResponseResult rsp of + SingleLoc loc -> pure [loc] + MultiLoc locs -> pure locs -- | Renames the term at the specified position. rename :: TextDocumentIdentifier -> Position -> String -> Session ()