lsp-types-1.0.0.0: src/Language/LSP/Types/Rename.hs
{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE DuplicateRecordFields #-}
module Language.LSP.Types.Rename where
import Data.Aeson.TH
import Data.Text (Text)
import Language.LSP.Types.Location
import Language.LSP.Types.TextDocument
import Language.LSP.Types.Progress
import Language.LSP.Types.Utils
data RenameClientCapabilities =
RenameClientCapabilities
{ -- | Whether rename supports dynamic registration.
_dynamicRegistration :: Maybe Bool
-- | Client supports testing for validity of rename operations
-- before execution.
--
-- Since LSP 3.12.0
, _prepareSupport :: Maybe Bool
} deriving (Show, Read, Eq)
deriveJSON lspOptions ''RenameClientCapabilities
makeExtendingDatatype "RenameOptions" [''WorkDoneProgressOptions]
[("_prepareProvider", [t| Maybe Bool |])]
deriveJSON lspOptions ''RenameOptions
makeExtendingDatatype "RenameRegistrationOptions"
[ ''TextDocumentRegistrationOptions
, ''RenameOptions
] []
deriveJSON lspOptions ''RenameRegistrationOptions
makeExtendingDatatype "RenameParams"
[ ''TextDocumentPositionParams
, ''WorkDoneProgressParams
]
[("_newName", [t| Text |])]
deriveJSON lspOptions ''RenameParams
-- -----------------------------------------
makeExtendingDatatype "PrepareRenameParams" [''TextDocumentPositionParams] []
deriveJSON lspOptions ''PrepareRenameParams
data RangeWithPlaceholder =
RangeWithPlaceholder
{
_range :: Range
, _placeholder :: Text
} deriving Eq
deriveJSON lspOptions ''RangeWithPlaceholder