lsp-types-1.0.0.0: src/Language/LSP/Types/Command.hs
{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE DuplicateRecordFields #-}
module Language.LSP.Types.Command where
import Data.Aeson
import Data.Aeson.TH
import Data.Text
import Language.LSP.Types.Common
import Language.LSP.Types.Progress
import Language.LSP.Types.Utils
-- -------------------------------------
data ExecuteCommandClientCapabilities =
ExecuteCommandClientCapabilities
{ _dynamicRegistration :: Maybe Bool -- ^Execute command supports dynamic
-- registration.
} deriving (Show, Read, Eq)
deriveJSON lspOptions ''ExecuteCommandClientCapabilities
-- -------------------------------------
makeExtendingDatatype "ExecuteCommandOptions" [''WorkDoneProgressOptions]
[("_commands", [t| List Text |])]
deriveJSON lspOptions ''ExecuteCommandOptions
makeExtendingDatatype "ExecuteCommandRegistrationOptions" [''ExecuteCommandOptions] []
deriveJSON lspOptions ''ExecuteCommandRegistrationOptions
-- -------------------------------------
makeExtendingDatatype "ExecuteCommandParams" [''WorkDoneProgressParams]
[ ("_command", [t| Text |])
, ("_arguments", [t| Maybe (List Value) |])
]
deriveJSON lspOptions ''ExecuteCommandParams
data Command =
Command
{ -- | Title of the command, like @save@.
_title :: Text
, -- | The identifier of the actual command handler.
_command :: Text
, -- | Arguments that the command handler should be invoked with.
_arguments :: Maybe (List Value)
} deriving (Show, Read, Eq)
deriveJSON lspOptions ''Command