lsp-types-1.0.0.0: src/Language/LSP/Types/Declaration.hs
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE TemplateHaskell #-}
module Language.LSP.Types.Declaration where
import Data.Aeson.TH
import Language.LSP.Types.Progress
import Language.LSP.Types.StaticRegistrationOptions
import Language.LSP.Types.TextDocument
import Language.LSP.Types.Utils
data DeclarationClientCapabilities =
DeclarationClientCapabilities
{ -- | Whether declaration supports dynamic registration. If this is set to 'true'
-- the client supports the new 'DeclarationRegistrationOptions' return value
-- for the corresponding server capability as well.
_dynamicRegistration :: Maybe Bool
-- | The client supports additional metadata in the form of declaration links.
, _linkSupport :: Maybe Bool
}
deriving (Read, Show, Eq)
deriveJSON lspOptions ''DeclarationClientCapabilities
makeExtendingDatatype "DeclarationOptions" [''WorkDoneProgressOptions] []
deriveJSON lspOptions ''DeclarationOptions
makeExtendingDatatype "DeclarationRegistrationOptions"
[ ''DeclarationOptions
, ''TextDocumentRegistrationOptions
, ''StaticRegistrationOptions
] []
deriveJSON lspOptions ''DeclarationRegistrationOptions
makeExtendingDatatype "DeclarationParams"
[ ''TextDocumentPositionParams
, ''WorkDoneProgressParams
, ''PartialResultParams
] []
deriveJSON lspOptions ''DeclarationParams