Add getReferences
[lsp-test.git] / src / Language / Haskell / LSP / Test.hs
index 427b6172674e0dce35ede6689e1c0b25b992aac5..bc1faa1b7976cfca975a8f72754a07318ca490cf 100644 (file)
@@ -39,25 +39,6 @@ module Language.Haskell.LSP.Test
   , loggingNotification
   , publishDiagnosticsNotification
   -- * Combinators
-  , choice
-  , option
-  , optional
-  , between
-  , some
-  , many
-  , sepBy
-  , sepBy1
-  , sepEndBy1
-  , sepEndBy
-  , endBy1
-  , endBy
-  , count
-  , manyTill
-  , skipMany
-  , skipSome
-  , skipManyTill
-  , skipSomeTill
-  , (<|>)
   , satisfy
   -- * Utilities
   , initializeResponse
@@ -79,11 +60,12 @@ module Language.Haskell.LSP.Test
   , executeCodeAction
   -- ** Completions
   , getCompletions
+  -- ** References
+  , getReferences
   -- ** Edits
   , applyEdit
   ) where
 
-import Control.Applicative
 import Control.Applicative.Combinators
 import Control.Concurrent
 import Control.Monad
@@ -434,3 +416,9 @@ getCompletions doc pos = do
   case res of
     Completions (List items) -> return items
     CompletionList (CompletionListType _ (List items)) -> return items
+
+getReferences :: TextDocumentIdentifier -> Position -> Bool -> Session [Location]
+getReferences doc pos inclDecl =
+  let ctx = ReferenceContext inclDecl
+      params = ReferenceParams doc pos ctx
+  in fromMaybe [] . (^. result) <$> sendRequest TextDocumentReferences params