X-Git-Url: http://git.lukelau.me/?p=opengl.git;a=blobdiff_plain;f=src%2FLanguage%2FHaskell%2FLSP%2FTest.hs;h=04fcc21a7f9510a10f4acc0c0eb012a24321db21;hp=bb4d05721b82b2f43110ff087a6ad7237206b1be;hb=9dbcb47a59e389b2dcc4e86cde6b626a2f17e38a;hpb=4c5ad9975b44f2a0482d98c1e67f2de78e7dd0ca diff --git a/src/Language/Haskell/LSP/Test.hs b/src/Language/Haskell/LSP/Test.hs index bb4d057..04fcc21 100644 --- a/src/Language/Haskell/LSP/Test.hs +++ b/src/Language/Haskell/LSP/Test.hs @@ -349,12 +349,14 @@ noDiagnostics = do when (diagsNot ^. params . LSP.diagnostics /= List []) $ liftIO $ throw UnexpectedDiagnostics -- | Returns the symbols in a document. -getDocumentSymbols :: TextDocumentIdentifier -> Session [SymbolInformation] +getDocumentSymbols :: TextDocumentIdentifier -> Session (Either [DocumentSymbol] [SymbolInformation]) getDocumentSymbols doc = do - ResponseMessage _ rspLid mRes mErr <- request TextDocumentDocumentSymbol (DocumentSymbolParams doc) + ResponseMessage _ rspLid mRes mErr <- request TextDocumentDocumentSymbol (DocumentSymbolParams doc) :: Session DocumentSymbolsResponse maybe (return ()) (throw . UnexpectedResponseError rspLid) mErr - let (Just (List symbols)) = mRes - return symbols + 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" -- | Returns all the code actions in a document by -- querying the code actions at each of the current