{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE TemplateHaskell #-}
module Language.LSP.Types.Implementation 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 ImplementationClientCapabilities = ImplementationClientCapabilities
{
_dynamicRegistration :: Maybe Bool,
_linkSupport :: Maybe Bool
}
deriving (Read, Show, Eq)
deriveJSON lspOptions ''ImplementationClientCapabilities
makeExtendingDatatype "ImplementationOptions" [''WorkDoneProgressOptions] []
deriveJSON lspOptions ''ImplementationOptions
makeExtendingDatatype "ImplementationRegistrationOptions"
[ ''TextDocumentRegistrationOptions
, ''ImplementationOptions
, ''StaticRegistrationOptions
] []
deriveJSON lspOptions ''ImplementationRegistrationOptions
makeExtendingDatatype "ImplementationParams"
[ ''TextDocumentPositionParams
, ''WorkDoneProgressParams
, ''PartialResultParams
] []
deriveJSON lspOptions ''ImplementationParams