1{-# LANGUAGE TemplateHaskell #-} 2{-# LANGUAGE DuplicateRecordFields #-} 3-- | Find References Request 4-- https://microsoft.github.io/language-server-protocol/specifications/specification-3-15/#textDocument_references 5module Language.LSP.Types.References where 6 7import Data.Aeson.TH 8 9import Language.LSP.Types.TextDocument 10import Language.LSP.Types.Progress 11import Language.LSP.Types.Utils 12 13data ReferencesClientCapabilities = 14 ReferencesClientCapabilities 15 { -- | Whether references supports dynamic registration. 16 _dynamicRegistration :: Maybe Bool 17 } deriving (Show, Read, Eq) 18deriveJSON lspOptions ''ReferencesClientCapabilities 19 20makeExtendingDatatype "ReferenceOptions" [''WorkDoneProgressOptions] [] 21deriveJSON lspOptions ''ReferenceOptions 22 23makeExtendingDatatype "ReferenceRegistrationOptions" 24 [ ''TextDocumentRegistrationOptions 25 , ''ReferenceOptions 26 ] 27 [] 28deriveJSON lspOptions ''ReferenceRegistrationOptions 29 30data ReferenceContext = 31 ReferenceContext 32 { -- | Include the declaration of the current symbol. 33 _includeDeclaration :: Bool 34 } deriving (Read,Show,Eq) 35deriveJSON lspOptions ''ReferenceContext 36 37makeExtendingDatatype "ReferenceParams" 38 [ ''TextDocumentPositionParams 39 , ''WorkDoneProgressParams 40 , ''PartialResultParams 41 ] 42 [("_context", [t| ReferenceContext |])] 43deriveJSON lspOptions ''ReferenceParams 44