{-# LANGUAGE DuplicateRecordFields  #-}
{-# LANGUAGE TemplateHaskell        #-}

module Language.Haskell.LSP.Types.ClientCapabilities where

import           Data.Aeson.TH
import qualified Data.Aeson as A
import Data.Default
import Language.Haskell.LSP.Types.Constants
import Language.Haskell.LSP.Types.CodeAction
import Language.Haskell.LSP.Types.Completion
import Language.Haskell.LSP.Types.Diagnostic
import Language.Haskell.LSP.Types.List
import Language.Haskell.LSP.Types.MarkupContent
import Language.Haskell.LSP.Types.Symbol

-- ---------------------------------------------------------------------
{-
New in 3.0
----------

/**
 * Workspace specific client capabilities.
 */
export interface WorkspaceClientCapabilities {
        /**
         * The client supports applying batch edits to the workspace by supporting
         * the request 'workspace/applyEdit'
         */
        applyEdit?: boolean;

        /**
         * Capabilities specific to `WorkspaceEdit`s
         */
        workspaceEdit?: {
                /**
                 * The client supports versioned document changes in `WorkspaceEdit`s
                 */
                documentChanges?: boolean;
        };

        /**
         * Capabilities specific to the `workspace/didChangeConfiguration` notification.
         */
        didChangeConfiguration?: {
                /**
                 * Did change configuration notification supports dynamic registration.
                 */
                dynamicRegistration?: boolean;
        };

        /**
         * Capabilities specific to the `workspace/didChangeWatchedFiles` notification.
         */
        didChangeWatchedFiles?: {
                /**
                 * Did change watched files notification supports dynamic registration.
                 */
                dynamicRegistration?: boolean;
        };

        /**
         * Capabilities specific to the `workspace/symbol` request.
         */
        symbol?: {
                /**
                 * Symbol request supports dynamic registration.
                 */
                dynamicRegistration?: boolean;

                /**
                 * Specific capabilities for the `SymbolKind` in the `workspace/symbol` request.
                 */
                symbolKind?: {
                        /**
                         * The symbol kind values the client supports. When this
                         * property exists the client also guarantees that it will
                         * handle values outside its set gracefully and falls back
                         * to a default value when unknown.
                         *
                         * If this property is not present the client only supports
                         * the symbol kinds from `File` to `Array` as defined in
                         * the initial version of the protocol.
                         */
                        valueSet?: SymbolKind[];
                }
        };

        /**
         * Capabilities specific to the `workspace/executeCommand` request.
         */
        executeCommand?: {
                /**
                 * Execute command supports dynamic registration.
                 */
                dynamicRegistration?: boolean;
        };

        /**
         * The client has support for workspace folders.
         *
         * Since 3.6.0
         */
        workspaceFolders?: boolean;

        /**
         * The client supports `workspace/configuration` requests.
         *
         * Since 3.6.0
         */
        configuration?: boolean;
}
-}

-- -------------------------------------

data WorkspaceEditClientCapabilities =
  WorkspaceEditClientCapabilities
  { WorkspaceEditClientCapabilities -> Maybe Bool
_documentChanges :: Maybe Bool -- ^The client supports versioned document
                                   -- changes in `WorkspaceEdit`s
  } deriving (Int -> WorkspaceEditClientCapabilities -> ShowS
[WorkspaceEditClientCapabilities] -> ShowS
WorkspaceEditClientCapabilities -> String
(Int -> WorkspaceEditClientCapabilities -> ShowS)
-> (WorkspaceEditClientCapabilities -> String)
-> ([WorkspaceEditClientCapabilities] -> ShowS)
-> Show WorkspaceEditClientCapabilities
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [WorkspaceEditClientCapabilities] -> ShowS
$cshowList :: [WorkspaceEditClientCapabilities] -> ShowS
show :: WorkspaceEditClientCapabilities -> String
$cshow :: WorkspaceEditClientCapabilities -> String
showsPrec :: Int -> WorkspaceEditClientCapabilities -> ShowS
$cshowsPrec :: Int -> WorkspaceEditClientCapabilities -> ShowS
Show, ReadPrec [WorkspaceEditClientCapabilities]
ReadPrec WorkspaceEditClientCapabilities
Int -> ReadS WorkspaceEditClientCapabilities
ReadS [WorkspaceEditClientCapabilities]
(Int -> ReadS WorkspaceEditClientCapabilities)
-> ReadS [WorkspaceEditClientCapabilities]
-> ReadPrec WorkspaceEditClientCapabilities
-> ReadPrec [WorkspaceEditClientCapabilities]
-> Read WorkspaceEditClientCapabilities
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [WorkspaceEditClientCapabilities]
$creadListPrec :: ReadPrec [WorkspaceEditClientCapabilities]
readPrec :: ReadPrec WorkspaceEditClientCapabilities
$creadPrec :: ReadPrec WorkspaceEditClientCapabilities
readList :: ReadS [WorkspaceEditClientCapabilities]
$creadList :: ReadS [WorkspaceEditClientCapabilities]
readsPrec :: Int -> ReadS WorkspaceEditClientCapabilities
$creadsPrec :: Int -> ReadS WorkspaceEditClientCapabilities
Read, WorkspaceEditClientCapabilities
-> WorkspaceEditClientCapabilities -> Bool
(WorkspaceEditClientCapabilities
 -> WorkspaceEditClientCapabilities -> Bool)
-> (WorkspaceEditClientCapabilities
    -> WorkspaceEditClientCapabilities -> Bool)
-> Eq WorkspaceEditClientCapabilities
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: WorkspaceEditClientCapabilities
-> WorkspaceEditClientCapabilities -> Bool
$c/= :: WorkspaceEditClientCapabilities
-> WorkspaceEditClientCapabilities -> Bool
== :: WorkspaceEditClientCapabilities
-> WorkspaceEditClientCapabilities -> Bool
$c== :: WorkspaceEditClientCapabilities
-> WorkspaceEditClientCapabilities -> Bool
Eq)

$(deriveJSON lspOptions ''WorkspaceEditClientCapabilities)

-- -------------------------------------

data DidChangeConfigurationClientCapabilities =
  DidChangeConfigurationClientCapabilities
    { DidChangeConfigurationClientCapabilities -> Maybe Bool
_dynamicRegistration :: Maybe Bool -- ^Did change configuration
                                         -- notification supports dynamic
                                         -- registration.
    } deriving (Int -> DidChangeConfigurationClientCapabilities -> ShowS
[DidChangeConfigurationClientCapabilities] -> ShowS
DidChangeConfigurationClientCapabilities -> String
(Int -> DidChangeConfigurationClientCapabilities -> ShowS)
-> (DidChangeConfigurationClientCapabilities -> String)
-> ([DidChangeConfigurationClientCapabilities] -> ShowS)
-> Show DidChangeConfigurationClientCapabilities
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DidChangeConfigurationClientCapabilities] -> ShowS
$cshowList :: [DidChangeConfigurationClientCapabilities] -> ShowS
show :: DidChangeConfigurationClientCapabilities -> String
$cshow :: DidChangeConfigurationClientCapabilities -> String
showsPrec :: Int -> DidChangeConfigurationClientCapabilities -> ShowS
$cshowsPrec :: Int -> DidChangeConfigurationClientCapabilities -> ShowS
Show, ReadPrec [DidChangeConfigurationClientCapabilities]
ReadPrec DidChangeConfigurationClientCapabilities
Int -> ReadS DidChangeConfigurationClientCapabilities
ReadS [DidChangeConfigurationClientCapabilities]
(Int -> ReadS DidChangeConfigurationClientCapabilities)
-> ReadS [DidChangeConfigurationClientCapabilities]
-> ReadPrec DidChangeConfigurationClientCapabilities
-> ReadPrec [DidChangeConfigurationClientCapabilities]
-> Read DidChangeConfigurationClientCapabilities
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DidChangeConfigurationClientCapabilities]
$creadListPrec :: ReadPrec [DidChangeConfigurationClientCapabilities]
readPrec :: ReadPrec DidChangeConfigurationClientCapabilities
$creadPrec :: ReadPrec DidChangeConfigurationClientCapabilities
readList :: ReadS [DidChangeConfigurationClientCapabilities]
$creadList :: ReadS [DidChangeConfigurationClientCapabilities]
readsPrec :: Int -> ReadS DidChangeConfigurationClientCapabilities
$creadsPrec :: Int -> ReadS DidChangeConfigurationClientCapabilities
Read, DidChangeConfigurationClientCapabilities
-> DidChangeConfigurationClientCapabilities -> Bool
(DidChangeConfigurationClientCapabilities
 -> DidChangeConfigurationClientCapabilities -> Bool)
-> (DidChangeConfigurationClientCapabilities
    -> DidChangeConfigurationClientCapabilities -> Bool)
-> Eq DidChangeConfigurationClientCapabilities
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DidChangeConfigurationClientCapabilities
-> DidChangeConfigurationClientCapabilities -> Bool
$c/= :: DidChangeConfigurationClientCapabilities
-> DidChangeConfigurationClientCapabilities -> Bool
== :: DidChangeConfigurationClientCapabilities
-> DidChangeConfigurationClientCapabilities -> Bool
$c== :: DidChangeConfigurationClientCapabilities
-> DidChangeConfigurationClientCapabilities -> Bool
Eq)

$(deriveJSON lspOptions ''DidChangeConfigurationClientCapabilities)

-- -------------------------------------

data DidChangeWatchedFilesClientCapabilities =
  DidChangeWatchedFilesClientCapabilities
    { DidChangeWatchedFilesClientCapabilities -> Maybe Bool
_dynamicRegistration :: Maybe Bool -- ^Did change watched files
                                         -- notification supports dynamic
                                         -- registration.
    } deriving (Int -> DidChangeWatchedFilesClientCapabilities -> ShowS
[DidChangeWatchedFilesClientCapabilities] -> ShowS
DidChangeWatchedFilesClientCapabilities -> String
(Int -> DidChangeWatchedFilesClientCapabilities -> ShowS)
-> (DidChangeWatchedFilesClientCapabilities -> String)
-> ([DidChangeWatchedFilesClientCapabilities] -> ShowS)
-> Show DidChangeWatchedFilesClientCapabilities
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DidChangeWatchedFilesClientCapabilities] -> ShowS
$cshowList :: [DidChangeWatchedFilesClientCapabilities] -> ShowS
show :: DidChangeWatchedFilesClientCapabilities -> String
$cshow :: DidChangeWatchedFilesClientCapabilities -> String
showsPrec :: Int -> DidChangeWatchedFilesClientCapabilities -> ShowS
$cshowsPrec :: Int -> DidChangeWatchedFilesClientCapabilities -> ShowS
Show, ReadPrec [DidChangeWatchedFilesClientCapabilities]
ReadPrec DidChangeWatchedFilesClientCapabilities
Int -> ReadS DidChangeWatchedFilesClientCapabilities
ReadS [DidChangeWatchedFilesClientCapabilities]
(Int -> ReadS DidChangeWatchedFilesClientCapabilities)
-> ReadS [DidChangeWatchedFilesClientCapabilities]
-> ReadPrec DidChangeWatchedFilesClientCapabilities
-> ReadPrec [DidChangeWatchedFilesClientCapabilities]
-> Read DidChangeWatchedFilesClientCapabilities
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DidChangeWatchedFilesClientCapabilities]
$creadListPrec :: ReadPrec [DidChangeWatchedFilesClientCapabilities]
readPrec :: ReadPrec DidChangeWatchedFilesClientCapabilities
$creadPrec :: ReadPrec DidChangeWatchedFilesClientCapabilities
readList :: ReadS [DidChangeWatchedFilesClientCapabilities]
$creadList :: ReadS [DidChangeWatchedFilesClientCapabilities]
readsPrec :: Int -> ReadS DidChangeWatchedFilesClientCapabilities
$creadsPrec :: Int -> ReadS DidChangeWatchedFilesClientCapabilities
Read, DidChangeWatchedFilesClientCapabilities
-> DidChangeWatchedFilesClientCapabilities -> Bool
(DidChangeWatchedFilesClientCapabilities
 -> DidChangeWatchedFilesClientCapabilities -> Bool)
-> (DidChangeWatchedFilesClientCapabilities
    -> DidChangeWatchedFilesClientCapabilities -> Bool)
-> Eq DidChangeWatchedFilesClientCapabilities
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DidChangeWatchedFilesClientCapabilities
-> DidChangeWatchedFilesClientCapabilities -> Bool
$c/= :: DidChangeWatchedFilesClientCapabilities
-> DidChangeWatchedFilesClientCapabilities -> Bool
== :: DidChangeWatchedFilesClientCapabilities
-> DidChangeWatchedFilesClientCapabilities -> Bool
$c== :: DidChangeWatchedFilesClientCapabilities
-> DidChangeWatchedFilesClientCapabilities -> Bool
Eq)

$(deriveJSON lspOptions ''DidChangeWatchedFilesClientCapabilities)

-- -------------------------------------

data SymbolKindClientCapabilities =
  SymbolKindClientCapabilities
   { -- | The symbol kind values the client supports. When this
     -- property exists the client also guarantees that it will
     -- handle values outside its set gracefully and falls back
     -- to a default value when unknown.
     -- 
     -- If this property is not present the client only supports
     -- the symbol kinds from `File` to `Array` as defined in
     -- the initial version of the protocol. 
     SymbolKindClientCapabilities -> Maybe (List SymbolKind)
_valueSet :: Maybe (List SymbolKind)
   } deriving (Int -> SymbolKindClientCapabilities -> ShowS
[SymbolKindClientCapabilities] -> ShowS
SymbolKindClientCapabilities -> String
(Int -> SymbolKindClientCapabilities -> ShowS)
-> (SymbolKindClientCapabilities -> String)
-> ([SymbolKindClientCapabilities] -> ShowS)
-> Show SymbolKindClientCapabilities
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [SymbolKindClientCapabilities] -> ShowS
$cshowList :: [SymbolKindClientCapabilities] -> ShowS
show :: SymbolKindClientCapabilities -> String
$cshow :: SymbolKindClientCapabilities -> String
showsPrec :: Int -> SymbolKindClientCapabilities -> ShowS
$cshowsPrec :: Int -> SymbolKindClientCapabilities -> ShowS
Show, ReadPrec [SymbolKindClientCapabilities]
ReadPrec SymbolKindClientCapabilities
Int -> ReadS SymbolKindClientCapabilities
ReadS [SymbolKindClientCapabilities]
(Int -> ReadS SymbolKindClientCapabilities)
-> ReadS [SymbolKindClientCapabilities]
-> ReadPrec SymbolKindClientCapabilities
-> ReadPrec [SymbolKindClientCapabilities]
-> Read SymbolKindClientCapabilities
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [SymbolKindClientCapabilities]
$creadListPrec :: ReadPrec [SymbolKindClientCapabilities]
readPrec :: ReadPrec SymbolKindClientCapabilities
$creadPrec :: ReadPrec SymbolKindClientCapabilities
readList :: ReadS [SymbolKindClientCapabilities]
$creadList :: ReadS [SymbolKindClientCapabilities]
readsPrec :: Int -> ReadS SymbolKindClientCapabilities
$creadsPrec :: Int -> ReadS SymbolKindClientCapabilities
Read, SymbolKindClientCapabilities
-> SymbolKindClientCapabilities -> Bool
(SymbolKindClientCapabilities
 -> SymbolKindClientCapabilities -> Bool)
-> (SymbolKindClientCapabilities
    -> SymbolKindClientCapabilities -> Bool)
-> Eq SymbolKindClientCapabilities
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: SymbolKindClientCapabilities
-> SymbolKindClientCapabilities -> Bool
$c/= :: SymbolKindClientCapabilities
-> SymbolKindClientCapabilities -> Bool
== :: SymbolKindClientCapabilities
-> SymbolKindClientCapabilities -> Bool
$c== :: SymbolKindClientCapabilities
-> SymbolKindClientCapabilities -> Bool
Eq)

$(deriveJSON lspOptions ''SymbolKindClientCapabilities)

instance Default SymbolKindClientCapabilities where
  def :: SymbolKindClientCapabilities
def = Maybe (List SymbolKind) -> SymbolKindClientCapabilities
SymbolKindClientCapabilities (List SymbolKind -> Maybe (List SymbolKind)
forall a. a -> Maybe a
Just (List SymbolKind -> Maybe (List SymbolKind))
-> List SymbolKind -> Maybe (List SymbolKind)
forall a b. (a -> b) -> a -> b
$ [SymbolKind] -> List SymbolKind
forall a. [a] -> List a
List [SymbolKind]
allKinds)
    where allKinds :: [SymbolKind]
allKinds = [ SymbolKind
SkFile
                     , SymbolKind
SkModule
                     , SymbolKind
SkNamespace
                     , SymbolKind
SkPackage
                     , SymbolKind
SkClass
                     , SymbolKind
SkMethod
                     , SymbolKind
SkProperty
                     , SymbolKind
SkField
                     , SymbolKind
SkConstructor
                     , SymbolKind
SkEnum
                     , SymbolKind
SkInterface
                     , SymbolKind
SkFunction
                     , SymbolKind
SkVariable
                     , SymbolKind
SkConstant
                     , SymbolKind
SkString
                     , SymbolKind
SkNumber
                     , SymbolKind
SkBoolean
                     , SymbolKind
SkArray
                     ]

data SymbolClientCapabilities =
  SymbolClientCapabilities
    { SymbolClientCapabilities -> Maybe Bool
_dynamicRegistration :: Maybe Bool -- ^Symbol request supports dynamic
                                         -- registration.
    , SymbolClientCapabilities -> Maybe SymbolKindClientCapabilities
_symbolKind :: Maybe SymbolKindClientCapabilities -- ^ Specific capabilities for the `SymbolKind`.
    } deriving (Int -> SymbolClientCapabilities -> ShowS
[SymbolClientCapabilities] -> ShowS
SymbolClientCapabilities -> String
(Int -> SymbolClientCapabilities -> ShowS)
-> (SymbolClientCapabilities -> String)
-> ([SymbolClientCapabilities] -> ShowS)
-> Show SymbolClientCapabilities
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [SymbolClientCapabilities] -> ShowS
$cshowList :: [SymbolClientCapabilities] -> ShowS
show :: SymbolClientCapabilities -> String
$cshow :: SymbolClientCapabilities -> String
showsPrec :: Int -> SymbolClientCapabilities -> ShowS
$cshowsPrec :: Int -> SymbolClientCapabilities -> ShowS
Show, ReadPrec [SymbolClientCapabilities]
ReadPrec SymbolClientCapabilities
Int -> ReadS SymbolClientCapabilities
ReadS [SymbolClientCapabilities]
(Int -> ReadS SymbolClientCapabilities)
-> ReadS [SymbolClientCapabilities]
-> ReadPrec SymbolClientCapabilities
-> ReadPrec [SymbolClientCapabilities]
-> Read SymbolClientCapabilities
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [SymbolClientCapabilities]
$creadListPrec :: ReadPrec [SymbolClientCapabilities]
readPrec :: ReadPrec SymbolClientCapabilities
$creadPrec :: ReadPrec SymbolClientCapabilities
readList :: ReadS [SymbolClientCapabilities]
$creadList :: ReadS [SymbolClientCapabilities]
readsPrec :: Int -> ReadS SymbolClientCapabilities
$creadsPrec :: Int -> ReadS SymbolClientCapabilities
Read, SymbolClientCapabilities -> SymbolClientCapabilities -> Bool
(SymbolClientCapabilities -> SymbolClientCapabilities -> Bool)
-> (SymbolClientCapabilities -> SymbolClientCapabilities -> Bool)
-> Eq SymbolClientCapabilities
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: SymbolClientCapabilities -> SymbolClientCapabilities -> Bool
$c/= :: SymbolClientCapabilities -> SymbolClientCapabilities -> Bool
== :: SymbolClientCapabilities -> SymbolClientCapabilities -> Bool
$c== :: SymbolClientCapabilities -> SymbolClientCapabilities -> Bool
Eq)

$(deriveJSON lspOptions ''SymbolClientCapabilities)

-- -------------------------------------

data ExecuteClientCapabilities =
  ExecuteClientCapabilities
    { ExecuteClientCapabilities -> Maybe Bool
_dynamicRegistration :: Maybe Bool -- ^Execute command supports dynamic
                                         -- registration.
    } deriving (Int -> ExecuteClientCapabilities -> ShowS
[ExecuteClientCapabilities] -> ShowS
ExecuteClientCapabilities -> String
(Int -> ExecuteClientCapabilities -> ShowS)
-> (ExecuteClientCapabilities -> String)
-> ([ExecuteClientCapabilities] -> ShowS)
-> Show ExecuteClientCapabilities
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ExecuteClientCapabilities] -> ShowS
$cshowList :: [ExecuteClientCapabilities] -> ShowS
show :: ExecuteClientCapabilities -> String
$cshow :: ExecuteClientCapabilities -> String
showsPrec :: Int -> ExecuteClientCapabilities -> ShowS
$cshowsPrec :: Int -> ExecuteClientCapabilities -> ShowS
Show, ReadPrec [ExecuteClientCapabilities]
ReadPrec ExecuteClientCapabilities
Int -> ReadS ExecuteClientCapabilities
ReadS [ExecuteClientCapabilities]
(Int -> ReadS ExecuteClientCapabilities)
-> ReadS [ExecuteClientCapabilities]
-> ReadPrec ExecuteClientCapabilities
-> ReadPrec [ExecuteClientCapabilities]
-> Read ExecuteClientCapabilities
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [ExecuteClientCapabilities]
$creadListPrec :: ReadPrec [ExecuteClientCapabilities]
readPrec :: ReadPrec ExecuteClientCapabilities
$creadPrec :: ReadPrec ExecuteClientCapabilities
readList :: ReadS [ExecuteClientCapabilities]
$creadList :: ReadS [ExecuteClientCapabilities]
readsPrec :: Int -> ReadS ExecuteClientCapabilities
$creadsPrec :: Int -> ReadS ExecuteClientCapabilities
Read, ExecuteClientCapabilities -> ExecuteClientCapabilities -> Bool
(ExecuteClientCapabilities -> ExecuteClientCapabilities -> Bool)
-> (ExecuteClientCapabilities -> ExecuteClientCapabilities -> Bool)
-> Eq ExecuteClientCapabilities
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ExecuteClientCapabilities -> ExecuteClientCapabilities -> Bool
$c/= :: ExecuteClientCapabilities -> ExecuteClientCapabilities -> Bool
== :: ExecuteClientCapabilities -> ExecuteClientCapabilities -> Bool
$c== :: ExecuteClientCapabilities -> ExecuteClientCapabilities -> Bool
Eq)

$(deriveJSON lspOptions ''ExecuteClientCapabilities)

-- -------------------------------------

data WorkspaceClientCapabilities =
  WorkspaceClientCapabilities
    { -- | The client supports applying batch edits to the workspace by supporting
      -- the request 'workspace/applyEdit'
      WorkspaceClientCapabilities -> Maybe Bool
_applyEdit :: Maybe Bool

      -- | Capabilities specific to `WorkspaceEdit`s
    , WorkspaceClientCapabilities
-> Maybe WorkspaceEditClientCapabilities
_workspaceEdit :: Maybe WorkspaceEditClientCapabilities

      -- | Capabilities specific to the `workspace/didChangeConfiguration` notification.
    , WorkspaceClientCapabilities
-> Maybe DidChangeConfigurationClientCapabilities
_didChangeConfiguration :: Maybe DidChangeConfigurationClientCapabilities

       -- | Capabilities specific to the `workspace/didChangeWatchedFiles` notification.
    , WorkspaceClientCapabilities
-> Maybe DidChangeWatchedFilesClientCapabilities
_didChangeWatchedFiles :: Maybe DidChangeWatchedFilesClientCapabilities

      -- | Capabilities specific to the `workspace/symbol` request.
    , WorkspaceClientCapabilities -> Maybe SymbolClientCapabilities
_symbol :: Maybe SymbolClientCapabilities

      -- | Capabilities specific to the `workspace/executeCommand` request.
    , WorkspaceClientCapabilities -> Maybe ExecuteClientCapabilities
_executeCommand :: Maybe ExecuteClientCapabilities

      -- | The client has support for workspace folders.
    , WorkspaceClientCapabilities -> Maybe Bool
_workspaceFolders :: Maybe Bool

      -- | The client supports `workspace/configuration` requests.
    , WorkspaceClientCapabilities -> Maybe Bool
_configuration :: Maybe Bool
    } deriving (Int -> WorkspaceClientCapabilities -> ShowS
[WorkspaceClientCapabilities] -> ShowS
WorkspaceClientCapabilities -> String
(Int -> WorkspaceClientCapabilities -> ShowS)
-> (WorkspaceClientCapabilities -> String)
-> ([WorkspaceClientCapabilities] -> ShowS)
-> Show WorkspaceClientCapabilities
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [WorkspaceClientCapabilities] -> ShowS
$cshowList :: [WorkspaceClientCapabilities] -> ShowS
show :: WorkspaceClientCapabilities -> String
$cshow :: WorkspaceClientCapabilities -> String
showsPrec :: Int -> WorkspaceClientCapabilities -> ShowS
$cshowsPrec :: Int -> WorkspaceClientCapabilities -> ShowS
Show, ReadPrec [WorkspaceClientCapabilities]
ReadPrec WorkspaceClientCapabilities
Int -> ReadS WorkspaceClientCapabilities
ReadS [WorkspaceClientCapabilities]
(Int -> ReadS WorkspaceClientCapabilities)
-> ReadS [WorkspaceClientCapabilities]
-> ReadPrec WorkspaceClientCapabilities
-> ReadPrec [WorkspaceClientCapabilities]
-> Read WorkspaceClientCapabilities
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [WorkspaceClientCapabilities]
$creadListPrec :: ReadPrec [WorkspaceClientCapabilities]
readPrec :: ReadPrec WorkspaceClientCapabilities
$creadPrec :: ReadPrec WorkspaceClientCapabilities
readList :: ReadS [WorkspaceClientCapabilities]
$creadList :: ReadS [WorkspaceClientCapabilities]
readsPrec :: Int -> ReadS WorkspaceClientCapabilities
$creadsPrec :: Int -> ReadS WorkspaceClientCapabilities
Read, WorkspaceClientCapabilities -> WorkspaceClientCapabilities -> Bool
(WorkspaceClientCapabilities
 -> WorkspaceClientCapabilities -> Bool)
-> (WorkspaceClientCapabilities
    -> WorkspaceClientCapabilities -> Bool)
-> Eq WorkspaceClientCapabilities
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: WorkspaceClientCapabilities -> WorkspaceClientCapabilities -> Bool
$c/= :: WorkspaceClientCapabilities -> WorkspaceClientCapabilities -> Bool
== :: WorkspaceClientCapabilities -> WorkspaceClientCapabilities -> Bool
$c== :: WorkspaceClientCapabilities -> WorkspaceClientCapabilities -> Bool
Eq)

$(deriveJSON lspOptions ''WorkspaceClientCapabilities)

instance Default WorkspaceClientCapabilities where
  def :: WorkspaceClientCapabilities
def = Maybe Bool
-> Maybe WorkspaceEditClientCapabilities
-> Maybe DidChangeConfigurationClientCapabilities
-> Maybe DidChangeWatchedFilesClientCapabilities
-> Maybe SymbolClientCapabilities
-> Maybe ExecuteClientCapabilities
-> Maybe Bool
-> Maybe Bool
-> WorkspaceClientCapabilities
WorkspaceClientCapabilities Maybe Bool
forall a. Default a => a
def Maybe WorkspaceEditClientCapabilities
forall a. Default a => a
def Maybe DidChangeConfigurationClientCapabilities
forall a. Default a => a
def Maybe DidChangeWatchedFilesClientCapabilities
forall a. Default a => a
def Maybe SymbolClientCapabilities
forall a. Default a => a
def Maybe ExecuteClientCapabilities
forall a. Default a => a
def Maybe Bool
forall a. Default a => a
def Maybe Bool
forall a. Default a => a
def

-- ---------------------------------------------------------------------
{-
New in 3.0
----------
/**
 * Text document specific client capabilities.
 */
export interface TextDocumentClientCapabilities {

        synchronization?: {
                /**
                 * Whether text document synchronization supports dynamic registration.
                 */
                dynamicRegistration?: boolean;

                /**
                 * The client supports sending will save notifications.
                 */
                willSave?: boolean;

                /**
                 * The client supports sending a will save request and
                 * waits for a response providing text edits which will
                 * be applied to the document before it is saved.
                 */
                willSaveWaitUntil?: boolean;

                /**
                 * The client supports did save notifications.
                 */
                didSave?: boolean;
        }

        /**
         * Capabilities specific to the `textDocument/completion`
         */
        completion?: {
                /**
                 * Whether completion supports dynamic registration.
                 */
                dynamicRegistration?: boolean;

                /**
                 * The client supports the following `CompletionItem` specific
                 * capabilities.
                 */
                completionItem?: {
                        /**
                         * Client supports snippets as insert text.
                         *
                         * A snippet can define tab stops and placeholders with `$1`, `$2`
                         * and `${3:foo}`. `$0` defines the final tab stop, it defaults to
                         * the end of the snippet. Placeholders with equal identifiers are linked,
                         * that is typing in one will update others too.
                         */
                        snippetSupport?: boolean;

                        /**
                         * Client supports commit characters on a completion item.
                         */
                        commitCharactersSupport?: boolean

                        /**
                         * Client supports the follow content formats for the documentation
                         * property. The order describes the preferred format of the client.
                         */
                        documentationFormat?: MarkupKind[];

                        /**
                         * Client supports the deprecated property on a completion item.
                         */
                        deprecatedSupport?: boolean;

                        /**
                         * Client supports the preselect property on a completion item.
                         */
                        preselectSupport?: boolean;
                }

                completionItemKind?: {
                        /**
                         * The completion item kind values the client supports. When this
                         * property exists the client also guarantees that it will
                         * handle values outside its set gracefully and falls back
                         * to a default value when unknown.
                         *
                         * If this property is not present the client only supports
                         * the completion items kinds from `Text` to `Reference` as defined in
                         * the initial version of the protocol.
                         */
                        valueSet?: CompletionItemKind[];
                },

                /**
                 * The client supports to send additional context information for a
                 * `textDocument/completion` request.
                 */
                contextSupport?: boolean;
        };

        /**
         * Capabilities specific to the `textDocument/hover`
         */
        hover?: {
                /**
                 * Whether hover supports dynamic registration.
                 */
                dynamicRegistration?: boolean;

                /**
                 * Client supports the follow content formats for the content
                 * property. The order describes the preferred format of the client.
                 */
                contentFormat?: MarkupKind[];
        };

        /**
         * Capabilities specific to the `textDocument/signatureHelp`
         */
        signatureHelp?: {
                /**
                 * Whether signature help supports dynamic registration.
                 */
                dynamicRegistration?: boolean;

                /**
                 * The client supports the following `SignatureInformation`
                 * specific properties.
                 */
                signatureInformation?: {
                        /**
                         * Client supports the follow content formats for the documentation
                         * property. The order describes the preferred format of the client.
                         */
                        documentationFormat?: MarkupKind[];
                };
        };

        /**
         * Capabilities specific to the `textDocument/references`
         */
        references?: {
                /**
                 * Whether references supports dynamic registration.
                 */
                dynamicRegistration?: boolean;
        };

        /**
         * Capabilities specific to the `textDocument/documentHighlight`
         */
        documentHighlight?: {
                /**
                 * Whether document highlight supports dynamic registration.
                 */
                dynamicRegistration?: boolean;
        };

        /**
         * Capabilities specific to the `textDocument/documentSymbol`
         */
        documentSymbol?: {
                /**
                 * Whether document symbol supports dynamic registration.
                 */
                dynamicRegistration?: boolean;

                /**
                 * Specific capabilities for the `SymbolKind`.
                 */
                symbolKind?: {
                        /**
                         * The symbol kind values the client supports. When this
                         * property exists the client also guarantees that it will
                         * handle values outside its set gracefully and falls back
                         * to a default value when unknown.
                         *
                         * If this property is not present the client only supports
                         * the symbol kinds from `File` to `Array` as defined in
                         * the initial version of the protocol.
                         */
                        valueSet?: SymbolKind[];
                }
        };

        /**
         * Capabilities specific to the `textDocument/formatting`
         */
        formatting?: {
                /**
                 * Whether formatting supports dynamic registration.
                 */
                dynamicRegistration?: boolean;
        };

        /**
         * Capabilities specific to the `textDocument/rangeFormatting`
         */
        rangeFormatting?: {
                /**
                 * Whether range formatting supports dynamic registration.
                 */
                dynamicRegistration?: boolean;
        };

        /**
         * Capabilities specific to the `textDocument/onTypeFormatting`
         */
        onTypeFormatting?: {
                /**
                 * Whether on type formatting supports dynamic registration.
                 */
                dynamicRegistration?: boolean;
        };

        /**
         * Capabilities specific to the `textDocument/definition`
         */
        definition?: {
                /**
                 * Whether definition supports dynamic registration.
                 */
                dynamicRegistration?: boolean;
        };

        /**
         * Capabilities specific to the `textDocument/typeDefinition`
         *
         * Since 3.6.0
         */
        typeDefinition?: {
                /**
                 * Whether typeDefinition supports dynamic registration. If this is set to `true`
                 * the client supports the new `(TextDocumentRegistrationOptions & StaticRegistrationOptions)`
                 * return value for the corresponding server capability as well.
                 */
                dynamicRegistration?: boolean;
        };

        /**
         * Capabilities specific to the `textDocument/implementation`.
         *
         * Since 3.6.0
         */
        implementation?: {
                /**
                 * Whether implementation supports dynamic registration. If this is set to `true`
                 * the client supports the new `(TextDocumentRegistrationOptions & StaticRegistrationOptions)`
                 * return value for the corresponding server capability as well.
                 */
                dynamicRegistration?: boolean;
        };

        /**
         * Capabilities specific to the `textDocument/codeAction`
         */
        codeAction?: {
                /**
                 * Whether code action supports dynamic registration.
                 */
                dynamicRegistration?: boolean;
                /**
                 * The client support code action literals as a valid
                 * response of the `textDocument/codeAction` request.
                 *
                 * Since 3.8.0
                 */
                codeActionLiteralSupport?: {
                        /**
                         * The code action kind is support with the following value
                         * set.
                         */
                        codeActionKind: {

                                /**
                                 * The code action kind values the client supports. When this
                                 * property exists the client also guarantees that it will
                                 * handle values outside its set gracefully and falls back
                                 * to a default value when unknown.
                                 */
                                valueSet: CodeActionKind[];
                        };
                };
        };

        /**
         * Capabilities specific to the `textDocument/codeLens`
         */
        codeLens?: {
                /**
                 * Whether code lens supports dynamic registration.
                 */
                dynamicRegistration?: boolean;
        };

        /**
         * Capabilities specific to the `textDocument/documentLink`
         */
        documentLink?: {
                /**
                 * Whether document link supports dynamic registration.
                 */
                dynamicRegistration?: boolean;
        };

        /**
         * Capabilities specific to the `textDocument/documentColor` and the
         * `textDocument/colorPresentation` request.
         *
         * Since 3.6.0
         */
        colorProvider?: {
                /**
                 * Whether colorProvider supports dynamic registration. If this is set to `true`
                 * the client supports the new `(ColorProviderOptions & TextDocumentRegistrationOptions & StaticRegistrationOptions)`
                 * return value for the corresponding server capability as well.
                 */
                dynamicRegistration?: boolean;
        }

        /**
         * Capabilities specific to the `textDocument/rename`
         */
        rename?: {
                /**
                 * Whether rename supports dynamic registration.
                 */
                dynamicRegistration?: boolean;
		/**
		 * The client supports testing for validity of rename operations
		 * before execution.
                 *
                 * Since 3.12.0
		 */
		prepareSupport?: boolean;
        };

        /**
         * Capabilities specific to `textDocument/publishDiagnostics`.
         */
        publishDiagnostics?: {
                /**
                 * Whether the clients accepts diagnostics with related information.
                 */
                relatedInformation?: boolean;
        };
        
        /**
	 * Capabilities specific to `textDocument/foldingRange` requests.
	 * 
	 * Since 3.10.0
	 */
	foldingRange?: {
		/**
		 * Whether implementation supports dynamic registration for folding range providers. If this is set to `true`
		 * the client supports the new `(FoldingRangeProviderOptions & TextDocumentRegistrationOptions & StaticRegistrationOptions)`
		 * return value for the corresponding server capability as well.
		 */
		dynamicRegistration?: boolean;
		/**
		 * The maximum number of folding ranges that the client prefers to receive per document. The value serves as a
		 * hint, servers are free to follow the limit.
		 */
		rangeLimit?: number;
		/**
		 * If set, the client signals that it only supports folding complete lines. If set, client will
		 * ignore specified `startCharacter` and `endCharacter` properties in a FoldingRange.
		 */
		lineFoldingOnly?: boolean;
	};
}

-}

-- -------------------------------------

-- TODO:AZ: this name is Java-ridiculously long
data SynchronizationTextDocumentClientCapabilities =
  SynchronizationTextDocumentClientCapabilities
    { -- | Whether text document synchronization supports dynamic registration.
      SynchronizationTextDocumentClientCapabilities -> Maybe Bool
_dynamicRegistration :: Maybe Bool

      -- | The client supports sending will save notifications.
    , SynchronizationTextDocumentClientCapabilities -> Maybe Bool
_willSave :: Maybe Bool

      -- | The client supports sending a will save request and waits for a
      -- response providing text edits which will be applied to the document
      -- before it is saved.
    , SynchronizationTextDocumentClientCapabilities -> Maybe Bool
_willSaveWaitUntil :: Maybe Bool

      -- | The client supports did save notifications.
    , SynchronizationTextDocumentClientCapabilities -> Maybe Bool
_didSave :: Maybe Bool
    } deriving (Int -> SynchronizationTextDocumentClientCapabilities -> ShowS
[SynchronizationTextDocumentClientCapabilities] -> ShowS
SynchronizationTextDocumentClientCapabilities -> String
(Int -> SynchronizationTextDocumentClientCapabilities -> ShowS)
-> (SynchronizationTextDocumentClientCapabilities -> String)
-> ([SynchronizationTextDocumentClientCapabilities] -> ShowS)
-> Show SynchronizationTextDocumentClientCapabilities
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [SynchronizationTextDocumentClientCapabilities] -> ShowS
$cshowList :: [SynchronizationTextDocumentClientCapabilities] -> ShowS
show :: SynchronizationTextDocumentClientCapabilities -> String
$cshow :: SynchronizationTextDocumentClientCapabilities -> String
showsPrec :: Int -> SynchronizationTextDocumentClientCapabilities -> ShowS
$cshowsPrec :: Int -> SynchronizationTextDocumentClientCapabilities -> ShowS
Show, ReadPrec [SynchronizationTextDocumentClientCapabilities]
ReadPrec SynchronizationTextDocumentClientCapabilities
Int -> ReadS SynchronizationTextDocumentClientCapabilities
ReadS [SynchronizationTextDocumentClientCapabilities]
(Int -> ReadS SynchronizationTextDocumentClientCapabilities)
-> ReadS [SynchronizationTextDocumentClientCapabilities]
-> ReadPrec SynchronizationTextDocumentClientCapabilities
-> ReadPrec [SynchronizationTextDocumentClientCapabilities]
-> Read SynchronizationTextDocumentClientCapabilities
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [SynchronizationTextDocumentClientCapabilities]
$creadListPrec :: ReadPrec [SynchronizationTextDocumentClientCapabilities]
readPrec :: ReadPrec SynchronizationTextDocumentClientCapabilities
$creadPrec :: ReadPrec SynchronizationTextDocumentClientCapabilities
readList :: ReadS [SynchronizationTextDocumentClientCapabilities]
$creadList :: ReadS [SynchronizationTextDocumentClientCapabilities]
readsPrec :: Int -> ReadS SynchronizationTextDocumentClientCapabilities
$creadsPrec :: Int -> ReadS SynchronizationTextDocumentClientCapabilities
Read, SynchronizationTextDocumentClientCapabilities
-> SynchronizationTextDocumentClientCapabilities -> Bool
(SynchronizationTextDocumentClientCapabilities
 -> SynchronizationTextDocumentClientCapabilities -> Bool)
-> (SynchronizationTextDocumentClientCapabilities
    -> SynchronizationTextDocumentClientCapabilities -> Bool)
-> Eq SynchronizationTextDocumentClientCapabilities
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: SynchronizationTextDocumentClientCapabilities
-> SynchronizationTextDocumentClientCapabilities -> Bool
$c/= :: SynchronizationTextDocumentClientCapabilities
-> SynchronizationTextDocumentClientCapabilities -> Bool
== :: SynchronizationTextDocumentClientCapabilities
-> SynchronizationTextDocumentClientCapabilities -> Bool
$c== :: SynchronizationTextDocumentClientCapabilities
-> SynchronizationTextDocumentClientCapabilities -> Bool
Eq)

$(deriveJSON lspOptions ''SynchronizationTextDocumentClientCapabilities)

instance Default SynchronizationTextDocumentClientCapabilities where
  def :: SynchronizationTextDocumentClientCapabilities
def = Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> SynchronizationTextDocumentClientCapabilities
SynchronizationTextDocumentClientCapabilities Maybe Bool
forall a. Default a => a
def Maybe Bool
forall a. Default a => a
def Maybe Bool
forall a. Default a => a
def Maybe Bool
forall a. Default a => a
def

-- -------------------------------------

data CompletionItemTagsClientCapabilities =
  CompletionItemTagsClientCapabilities
    { -- | The tag supported by the client.
      CompletionItemTagsClientCapabilities -> List CompletionItemTag
_valueSet :: List CompletionItemTag
    } deriving (Int -> CompletionItemTagsClientCapabilities -> ShowS
[CompletionItemTagsClientCapabilities] -> ShowS
CompletionItemTagsClientCapabilities -> String
(Int -> CompletionItemTagsClientCapabilities -> ShowS)
-> (CompletionItemTagsClientCapabilities -> String)
-> ([CompletionItemTagsClientCapabilities] -> ShowS)
-> Show CompletionItemTagsClientCapabilities
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CompletionItemTagsClientCapabilities] -> ShowS
$cshowList :: [CompletionItemTagsClientCapabilities] -> ShowS
show :: CompletionItemTagsClientCapabilities -> String
$cshow :: CompletionItemTagsClientCapabilities -> String
showsPrec :: Int -> CompletionItemTagsClientCapabilities -> ShowS
$cshowsPrec :: Int -> CompletionItemTagsClientCapabilities -> ShowS
Show, ReadPrec [CompletionItemTagsClientCapabilities]
ReadPrec CompletionItemTagsClientCapabilities
Int -> ReadS CompletionItemTagsClientCapabilities
ReadS [CompletionItemTagsClientCapabilities]
(Int -> ReadS CompletionItemTagsClientCapabilities)
-> ReadS [CompletionItemTagsClientCapabilities]
-> ReadPrec CompletionItemTagsClientCapabilities
-> ReadPrec [CompletionItemTagsClientCapabilities]
-> Read CompletionItemTagsClientCapabilities
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [CompletionItemTagsClientCapabilities]
$creadListPrec :: ReadPrec [CompletionItemTagsClientCapabilities]
readPrec :: ReadPrec CompletionItemTagsClientCapabilities
$creadPrec :: ReadPrec CompletionItemTagsClientCapabilities
readList :: ReadS [CompletionItemTagsClientCapabilities]
$creadList :: ReadS [CompletionItemTagsClientCapabilities]
readsPrec :: Int -> ReadS CompletionItemTagsClientCapabilities
$creadsPrec :: Int -> ReadS CompletionItemTagsClientCapabilities
Read, CompletionItemTagsClientCapabilities
-> CompletionItemTagsClientCapabilities -> Bool
(CompletionItemTagsClientCapabilities
 -> CompletionItemTagsClientCapabilities -> Bool)
-> (CompletionItemTagsClientCapabilities
    -> CompletionItemTagsClientCapabilities -> Bool)
-> Eq CompletionItemTagsClientCapabilities
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CompletionItemTagsClientCapabilities
-> CompletionItemTagsClientCapabilities -> Bool
$c/= :: CompletionItemTagsClientCapabilities
-> CompletionItemTagsClientCapabilities -> Bool
== :: CompletionItemTagsClientCapabilities
-> CompletionItemTagsClientCapabilities -> Bool
$c== :: CompletionItemTagsClientCapabilities
-> CompletionItemTagsClientCapabilities -> Bool
Eq)

$(deriveJSON lspOptions ''CompletionItemTagsClientCapabilities)

data CompletionItemClientCapabilities =
  CompletionItemClientCapabilities
    { -- | Client supports snippets as insert text.
      --
      -- A snippet can define tab stops and placeholders with `$1`, `$2` and
      -- `${3:foo}`. `$0` defines the final tab stop, it defaults to the end of
      -- the snippet. Placeholders with equal identifiers are linked, that is
      -- typing in one will update others too.
      CompletionItemClientCapabilities -> Maybe Bool
_snippetSupport :: Maybe Bool

      -- | Client supports commit characters on a completion item.
    , CompletionItemClientCapabilities -> Maybe Bool
_commitCharactersSupport :: Maybe Bool

      -- | Client supports the follow content formats for the documentation
      -- property. The order describes the preferred format of the client.
    , CompletionItemClientCapabilities -> Maybe (List MarkupKind)
_documentationFormat :: Maybe (List MarkupKind)

      -- | Client supports the deprecated property on a completion item.
    , CompletionItemClientCapabilities -> Maybe Bool
_deprecatedSupport :: Maybe Bool

      -- | Client supports the preselect property on a completion item.
    , CompletionItemClientCapabilities -> Maybe Bool
_preselectSupport :: Maybe Bool

      -- | Client supports the tag property on a completion item. Clients
      -- supporting tags have to handle unknown tags gracefully. Clients
      -- especially need to preserve unknown tags when sending a
      -- completion item back to the server in a resolve call.
    , CompletionItemClientCapabilities
-> Maybe CompletionItemTagsClientCapabilities
_tagSupport :: Maybe CompletionItemTagsClientCapabilities
    } deriving (Int -> CompletionItemClientCapabilities -> ShowS
[CompletionItemClientCapabilities] -> ShowS
CompletionItemClientCapabilities -> String
(Int -> CompletionItemClientCapabilities -> ShowS)
-> (CompletionItemClientCapabilities -> String)
-> ([CompletionItemClientCapabilities] -> ShowS)
-> Show CompletionItemClientCapabilities
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CompletionItemClientCapabilities] -> ShowS
$cshowList :: [CompletionItemClientCapabilities] -> ShowS
show :: CompletionItemClientCapabilities -> String
$cshow :: CompletionItemClientCapabilities -> String
showsPrec :: Int -> CompletionItemClientCapabilities -> ShowS
$cshowsPrec :: Int -> CompletionItemClientCapabilities -> ShowS
Show, ReadPrec [CompletionItemClientCapabilities]
ReadPrec CompletionItemClientCapabilities
Int -> ReadS CompletionItemClientCapabilities
ReadS [CompletionItemClientCapabilities]
(Int -> ReadS CompletionItemClientCapabilities)
-> ReadS [CompletionItemClientCapabilities]
-> ReadPrec CompletionItemClientCapabilities
-> ReadPrec [CompletionItemClientCapabilities]
-> Read CompletionItemClientCapabilities
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [CompletionItemClientCapabilities]
$creadListPrec :: ReadPrec [CompletionItemClientCapabilities]
readPrec :: ReadPrec CompletionItemClientCapabilities
$creadPrec :: ReadPrec CompletionItemClientCapabilities
readList :: ReadS [CompletionItemClientCapabilities]
$creadList :: ReadS [CompletionItemClientCapabilities]
readsPrec :: Int -> ReadS CompletionItemClientCapabilities
$creadsPrec :: Int -> ReadS CompletionItemClientCapabilities
Read, CompletionItemClientCapabilities
-> CompletionItemClientCapabilities -> Bool
(CompletionItemClientCapabilities
 -> CompletionItemClientCapabilities -> Bool)
-> (CompletionItemClientCapabilities
    -> CompletionItemClientCapabilities -> Bool)
-> Eq CompletionItemClientCapabilities
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CompletionItemClientCapabilities
-> CompletionItemClientCapabilities -> Bool
$c/= :: CompletionItemClientCapabilities
-> CompletionItemClientCapabilities -> Bool
== :: CompletionItemClientCapabilities
-> CompletionItemClientCapabilities -> Bool
$c== :: CompletionItemClientCapabilities
-> CompletionItemClientCapabilities -> Bool
Eq)

$(deriveJSON lspOptions ''CompletionItemClientCapabilities)

data CompletionItemKindClientCapabilities =
  CompletionItemKindClientCapabilities
    { -- | The completion item kind values the client supports. When this
      -- property exists the client also guarantees that it will
      --  handle values outside its set gracefully and falls back
      --  to a default value when unknown.
      CompletionItemKindClientCapabilities
-> Maybe (List CompletionItemKind)
_valueSet :: Maybe (List CompletionItemKind)
    }
  deriving (Int -> CompletionItemKindClientCapabilities -> ShowS
[CompletionItemKindClientCapabilities] -> ShowS
CompletionItemKindClientCapabilities -> String
(Int -> CompletionItemKindClientCapabilities -> ShowS)
-> (CompletionItemKindClientCapabilities -> String)
-> ([CompletionItemKindClientCapabilities] -> ShowS)
-> Show CompletionItemKindClientCapabilities
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CompletionItemKindClientCapabilities] -> ShowS
$cshowList :: [CompletionItemKindClientCapabilities] -> ShowS
show :: CompletionItemKindClientCapabilities -> String
$cshow :: CompletionItemKindClientCapabilities -> String
showsPrec :: Int -> CompletionItemKindClientCapabilities -> ShowS
$cshowsPrec :: Int -> CompletionItemKindClientCapabilities -> ShowS
Show, ReadPrec [CompletionItemKindClientCapabilities]
ReadPrec CompletionItemKindClientCapabilities
Int -> ReadS CompletionItemKindClientCapabilities
ReadS [CompletionItemKindClientCapabilities]
(Int -> ReadS CompletionItemKindClientCapabilities)
-> ReadS [CompletionItemKindClientCapabilities]
-> ReadPrec CompletionItemKindClientCapabilities
-> ReadPrec [CompletionItemKindClientCapabilities]
-> Read CompletionItemKindClientCapabilities
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [CompletionItemKindClientCapabilities]
$creadListPrec :: ReadPrec [CompletionItemKindClientCapabilities]
readPrec :: ReadPrec CompletionItemKindClientCapabilities
$creadPrec :: ReadPrec CompletionItemKindClientCapabilities
readList :: ReadS [CompletionItemKindClientCapabilities]
$creadList :: ReadS [CompletionItemKindClientCapabilities]
readsPrec :: Int -> ReadS CompletionItemKindClientCapabilities
$creadsPrec :: Int -> ReadS CompletionItemKindClientCapabilities
Read, CompletionItemKindClientCapabilities
-> CompletionItemKindClientCapabilities -> Bool
(CompletionItemKindClientCapabilities
 -> CompletionItemKindClientCapabilities -> Bool)
-> (CompletionItemKindClientCapabilities
    -> CompletionItemKindClientCapabilities -> Bool)
-> Eq CompletionItemKindClientCapabilities
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CompletionItemKindClientCapabilities
-> CompletionItemKindClientCapabilities -> Bool
$c/= :: CompletionItemKindClientCapabilities
-> CompletionItemKindClientCapabilities -> Bool
== :: CompletionItemKindClientCapabilities
-> CompletionItemKindClientCapabilities -> Bool
$c== :: CompletionItemKindClientCapabilities
-> CompletionItemKindClientCapabilities -> Bool
Eq)

$(deriveJSON lspOptions ''CompletionItemKindClientCapabilities)

data CompletionClientCapabilities =
  CompletionClientCapabilities
    { CompletionClientCapabilities -> Maybe Bool
_dynamicRegistration :: Maybe Bool -- ^Whether completion supports dynamic
                                         -- registration.
    , CompletionClientCapabilities
-> Maybe CompletionItemClientCapabilities
_completionItem :: Maybe CompletionItemClientCapabilities
    , CompletionClientCapabilities
-> Maybe CompletionItemKindClientCapabilities
_completionItemKind :: Maybe CompletionItemKindClientCapabilities
    , CompletionClientCapabilities -> Maybe Bool
_contextSupport :: Maybe Bool
    } deriving (Int -> CompletionClientCapabilities -> ShowS
[CompletionClientCapabilities] -> ShowS
CompletionClientCapabilities -> String
(Int -> CompletionClientCapabilities -> ShowS)
-> (CompletionClientCapabilities -> String)
-> ([CompletionClientCapabilities] -> ShowS)
-> Show CompletionClientCapabilities
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CompletionClientCapabilities] -> ShowS
$cshowList :: [CompletionClientCapabilities] -> ShowS
show :: CompletionClientCapabilities -> String
$cshow :: CompletionClientCapabilities -> String
showsPrec :: Int -> CompletionClientCapabilities -> ShowS
$cshowsPrec :: Int -> CompletionClientCapabilities -> ShowS
Show, ReadPrec [CompletionClientCapabilities]
ReadPrec CompletionClientCapabilities
Int -> ReadS CompletionClientCapabilities
ReadS [CompletionClientCapabilities]
(Int -> ReadS CompletionClientCapabilities)
-> ReadS [CompletionClientCapabilities]
-> ReadPrec CompletionClientCapabilities
-> ReadPrec [CompletionClientCapabilities]
-> Read CompletionClientCapabilities
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [CompletionClientCapabilities]
$creadListPrec :: ReadPrec [CompletionClientCapabilities]
readPrec :: ReadPrec CompletionClientCapabilities
$creadPrec :: ReadPrec CompletionClientCapabilities
readList :: ReadS [CompletionClientCapabilities]
$creadList :: ReadS [CompletionClientCapabilities]
readsPrec :: Int -> ReadS CompletionClientCapabilities
$creadsPrec :: Int -> ReadS CompletionClientCapabilities
Read, CompletionClientCapabilities
-> CompletionClientCapabilities -> Bool
(CompletionClientCapabilities
 -> CompletionClientCapabilities -> Bool)
-> (CompletionClientCapabilities
    -> CompletionClientCapabilities -> Bool)
-> Eq CompletionClientCapabilities
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CompletionClientCapabilities
-> CompletionClientCapabilities -> Bool
$c/= :: CompletionClientCapabilities
-> CompletionClientCapabilities -> Bool
== :: CompletionClientCapabilities
-> CompletionClientCapabilities -> Bool
$c== :: CompletionClientCapabilities
-> CompletionClientCapabilities -> Bool
Eq)

$(deriveJSON lspOptions ''CompletionClientCapabilities)

-- -------------------------------------

data HoverClientCapabilities =
  HoverClientCapabilities
    { HoverClientCapabilities -> Maybe Bool
_dynamicRegistration :: Maybe Bool
    , HoverClientCapabilities -> Maybe (List MarkupKind)
_contentFormat :: Maybe (List MarkupKind)
    } deriving (Int -> HoverClientCapabilities -> ShowS
[HoverClientCapabilities] -> ShowS
HoverClientCapabilities -> String
(Int -> HoverClientCapabilities -> ShowS)
-> (HoverClientCapabilities -> String)
-> ([HoverClientCapabilities] -> ShowS)
-> Show HoverClientCapabilities
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [HoverClientCapabilities] -> ShowS
$cshowList :: [HoverClientCapabilities] -> ShowS
show :: HoverClientCapabilities -> String
$cshow :: HoverClientCapabilities -> String
showsPrec :: Int -> HoverClientCapabilities -> ShowS
$cshowsPrec :: Int -> HoverClientCapabilities -> ShowS
Show, ReadPrec [HoverClientCapabilities]
ReadPrec HoverClientCapabilities
Int -> ReadS HoverClientCapabilities
ReadS [HoverClientCapabilities]
(Int -> ReadS HoverClientCapabilities)
-> ReadS [HoverClientCapabilities]
-> ReadPrec HoverClientCapabilities
-> ReadPrec [HoverClientCapabilities]
-> Read HoverClientCapabilities
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [HoverClientCapabilities]
$creadListPrec :: ReadPrec [HoverClientCapabilities]
readPrec :: ReadPrec HoverClientCapabilities
$creadPrec :: ReadPrec HoverClientCapabilities
readList :: ReadS [HoverClientCapabilities]
$creadList :: ReadS [HoverClientCapabilities]
readsPrec :: Int -> ReadS HoverClientCapabilities
$creadsPrec :: Int -> ReadS HoverClientCapabilities
Read, HoverClientCapabilities -> HoverClientCapabilities -> Bool
(HoverClientCapabilities -> HoverClientCapabilities -> Bool)
-> (HoverClientCapabilities -> HoverClientCapabilities -> Bool)
-> Eq HoverClientCapabilities
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: HoverClientCapabilities -> HoverClientCapabilities -> Bool
$c/= :: HoverClientCapabilities -> HoverClientCapabilities -> Bool
== :: HoverClientCapabilities -> HoverClientCapabilities -> Bool
$c== :: HoverClientCapabilities -> HoverClientCapabilities -> Bool
Eq)

$(deriveJSON lspOptions ''HoverClientCapabilities)

-- -------------------------------------

data SignatureInformationClientCapabilities = 
  SignatureInformationClientCapabilities
    { -- | Client supports the follow content formats for the documentation
      -- property. The order describes the preferred format of the client.
      SignatureInformationClientCapabilities -> Maybe (List MarkupKind)
documentationFormat :: Maybe (List MarkupKind)
    }
  deriving (Int -> SignatureInformationClientCapabilities -> ShowS
[SignatureInformationClientCapabilities] -> ShowS
SignatureInformationClientCapabilities -> String
(Int -> SignatureInformationClientCapabilities -> ShowS)
-> (SignatureInformationClientCapabilities -> String)
-> ([SignatureInformationClientCapabilities] -> ShowS)
-> Show SignatureInformationClientCapabilities
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [SignatureInformationClientCapabilities] -> ShowS
$cshowList :: [SignatureInformationClientCapabilities] -> ShowS
show :: SignatureInformationClientCapabilities -> String
$cshow :: SignatureInformationClientCapabilities -> String
showsPrec :: Int -> SignatureInformationClientCapabilities -> ShowS
$cshowsPrec :: Int -> SignatureInformationClientCapabilities -> ShowS
Show, ReadPrec [SignatureInformationClientCapabilities]
ReadPrec SignatureInformationClientCapabilities
Int -> ReadS SignatureInformationClientCapabilities
ReadS [SignatureInformationClientCapabilities]
(Int -> ReadS SignatureInformationClientCapabilities)
-> ReadS [SignatureInformationClientCapabilities]
-> ReadPrec SignatureInformationClientCapabilities
-> ReadPrec [SignatureInformationClientCapabilities]
-> Read SignatureInformationClientCapabilities
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [SignatureInformationClientCapabilities]
$creadListPrec :: ReadPrec [SignatureInformationClientCapabilities]
readPrec :: ReadPrec SignatureInformationClientCapabilities
$creadPrec :: ReadPrec SignatureInformationClientCapabilities
readList :: ReadS [SignatureInformationClientCapabilities]
$creadList :: ReadS [SignatureInformationClientCapabilities]
readsPrec :: Int -> ReadS SignatureInformationClientCapabilities
$creadsPrec :: Int -> ReadS SignatureInformationClientCapabilities
Read, SignatureInformationClientCapabilities
-> SignatureInformationClientCapabilities -> Bool
(SignatureInformationClientCapabilities
 -> SignatureInformationClientCapabilities -> Bool)
-> (SignatureInformationClientCapabilities
    -> SignatureInformationClientCapabilities -> Bool)
-> Eq SignatureInformationClientCapabilities
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: SignatureInformationClientCapabilities
-> SignatureInformationClientCapabilities -> Bool
$c/= :: SignatureInformationClientCapabilities
-> SignatureInformationClientCapabilities -> Bool
== :: SignatureInformationClientCapabilities
-> SignatureInformationClientCapabilities -> Bool
$c== :: SignatureInformationClientCapabilities
-> SignatureInformationClientCapabilities -> Bool
Eq)

$(deriveJSON lspOptions ''SignatureInformationClientCapabilities)

data SignatureHelpClientCapabilities =
  SignatureHelpClientCapabilities
    { -- | Whether signature help supports dynamic registration.
      SignatureHelpClientCapabilities -> Maybe Bool
_dynamicRegistration :: Maybe Bool
      
      -- | The client supports the following `SignatureInformation`
      -- specific properties.
    , SignatureHelpClientCapabilities
-> Maybe SignatureInformationClientCapabilities
_signatureInformation :: Maybe SignatureInformationClientCapabilities
    } deriving (Int -> SignatureHelpClientCapabilities -> ShowS
[SignatureHelpClientCapabilities] -> ShowS
SignatureHelpClientCapabilities -> String
(Int -> SignatureHelpClientCapabilities -> ShowS)
-> (SignatureHelpClientCapabilities -> String)
-> ([SignatureHelpClientCapabilities] -> ShowS)
-> Show SignatureHelpClientCapabilities
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [SignatureHelpClientCapabilities] -> ShowS
$cshowList :: [SignatureHelpClientCapabilities] -> ShowS
show :: SignatureHelpClientCapabilities -> String
$cshow :: SignatureHelpClientCapabilities -> String
showsPrec :: Int -> SignatureHelpClientCapabilities -> ShowS
$cshowsPrec :: Int -> SignatureHelpClientCapabilities -> ShowS
Show, ReadPrec [SignatureHelpClientCapabilities]
ReadPrec SignatureHelpClientCapabilities
Int -> ReadS SignatureHelpClientCapabilities
ReadS [SignatureHelpClientCapabilities]
(Int -> ReadS SignatureHelpClientCapabilities)
-> ReadS [SignatureHelpClientCapabilities]
-> ReadPrec SignatureHelpClientCapabilities
-> ReadPrec [SignatureHelpClientCapabilities]
-> Read SignatureHelpClientCapabilities
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [SignatureHelpClientCapabilities]
$creadListPrec :: ReadPrec [SignatureHelpClientCapabilities]
readPrec :: ReadPrec SignatureHelpClientCapabilities
$creadPrec :: ReadPrec SignatureHelpClientCapabilities
readList :: ReadS [SignatureHelpClientCapabilities]
$creadList :: ReadS [SignatureHelpClientCapabilities]
readsPrec :: Int -> ReadS SignatureHelpClientCapabilities
$creadsPrec :: Int -> ReadS SignatureHelpClientCapabilities
Read, SignatureHelpClientCapabilities
-> SignatureHelpClientCapabilities -> Bool
(SignatureHelpClientCapabilities
 -> SignatureHelpClientCapabilities -> Bool)
-> (SignatureHelpClientCapabilities
    -> SignatureHelpClientCapabilities -> Bool)
-> Eq SignatureHelpClientCapabilities
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: SignatureHelpClientCapabilities
-> SignatureHelpClientCapabilities -> Bool
$c/= :: SignatureHelpClientCapabilities
-> SignatureHelpClientCapabilities -> Bool
== :: SignatureHelpClientCapabilities
-> SignatureHelpClientCapabilities -> Bool
$c== :: SignatureHelpClientCapabilities
-> SignatureHelpClientCapabilities -> Bool
Eq)

$(deriveJSON lspOptions ''SignatureHelpClientCapabilities)

-- -------------------------------------

data ReferencesClientCapabilities =
  ReferencesClientCapabilities
    { ReferencesClientCapabilities -> Maybe Bool
_dynamicRegistration :: Maybe Bool
    } deriving (Int -> ReferencesClientCapabilities -> ShowS
[ReferencesClientCapabilities] -> ShowS
ReferencesClientCapabilities -> String
(Int -> ReferencesClientCapabilities -> ShowS)
-> (ReferencesClientCapabilities -> String)
-> ([ReferencesClientCapabilities] -> ShowS)
-> Show ReferencesClientCapabilities
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ReferencesClientCapabilities] -> ShowS
$cshowList :: [ReferencesClientCapabilities] -> ShowS
show :: ReferencesClientCapabilities -> String
$cshow :: ReferencesClientCapabilities -> String
showsPrec :: Int -> ReferencesClientCapabilities -> ShowS
$cshowsPrec :: Int -> ReferencesClientCapabilities -> ShowS
Show, ReadPrec [ReferencesClientCapabilities]
ReadPrec ReferencesClientCapabilities
Int -> ReadS ReferencesClientCapabilities
ReadS [ReferencesClientCapabilities]
(Int -> ReadS ReferencesClientCapabilities)
-> ReadS [ReferencesClientCapabilities]
-> ReadPrec ReferencesClientCapabilities
-> ReadPrec [ReferencesClientCapabilities]
-> Read ReferencesClientCapabilities
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [ReferencesClientCapabilities]
$creadListPrec :: ReadPrec [ReferencesClientCapabilities]
readPrec :: ReadPrec ReferencesClientCapabilities
$creadPrec :: ReadPrec ReferencesClientCapabilities
readList :: ReadS [ReferencesClientCapabilities]
$creadList :: ReadS [ReferencesClientCapabilities]
readsPrec :: Int -> ReadS ReferencesClientCapabilities
$creadsPrec :: Int -> ReadS ReferencesClientCapabilities
Read, ReferencesClientCapabilities
-> ReferencesClientCapabilities -> Bool
(ReferencesClientCapabilities
 -> ReferencesClientCapabilities -> Bool)
-> (ReferencesClientCapabilities
    -> ReferencesClientCapabilities -> Bool)
-> Eq ReferencesClientCapabilities
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ReferencesClientCapabilities
-> ReferencesClientCapabilities -> Bool
$c/= :: ReferencesClientCapabilities
-> ReferencesClientCapabilities -> Bool
== :: ReferencesClientCapabilities
-> ReferencesClientCapabilities -> Bool
$c== :: ReferencesClientCapabilities
-> ReferencesClientCapabilities -> Bool
Eq)

$(deriveJSON lspOptions ''ReferencesClientCapabilities)

-- -------------------------------------

data DocumentHighlightClientCapabilities =
  DocumentHighlightClientCapabilities
    { DocumentHighlightClientCapabilities -> Maybe Bool
_dynamicRegistration :: Maybe Bool
    } deriving (Int -> DocumentHighlightClientCapabilities -> ShowS
[DocumentHighlightClientCapabilities] -> ShowS
DocumentHighlightClientCapabilities -> String
(Int -> DocumentHighlightClientCapabilities -> ShowS)
-> (DocumentHighlightClientCapabilities -> String)
-> ([DocumentHighlightClientCapabilities] -> ShowS)
-> Show DocumentHighlightClientCapabilities
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DocumentHighlightClientCapabilities] -> ShowS
$cshowList :: [DocumentHighlightClientCapabilities] -> ShowS
show :: DocumentHighlightClientCapabilities -> String
$cshow :: DocumentHighlightClientCapabilities -> String
showsPrec :: Int -> DocumentHighlightClientCapabilities -> ShowS
$cshowsPrec :: Int -> DocumentHighlightClientCapabilities -> ShowS
Show, ReadPrec [DocumentHighlightClientCapabilities]
ReadPrec DocumentHighlightClientCapabilities
Int -> ReadS DocumentHighlightClientCapabilities
ReadS [DocumentHighlightClientCapabilities]
(Int -> ReadS DocumentHighlightClientCapabilities)
-> ReadS [DocumentHighlightClientCapabilities]
-> ReadPrec DocumentHighlightClientCapabilities
-> ReadPrec [DocumentHighlightClientCapabilities]
-> Read DocumentHighlightClientCapabilities
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DocumentHighlightClientCapabilities]
$creadListPrec :: ReadPrec [DocumentHighlightClientCapabilities]
readPrec :: ReadPrec DocumentHighlightClientCapabilities
$creadPrec :: ReadPrec DocumentHighlightClientCapabilities
readList :: ReadS [DocumentHighlightClientCapabilities]
$creadList :: ReadS [DocumentHighlightClientCapabilities]
readsPrec :: Int -> ReadS DocumentHighlightClientCapabilities
$creadsPrec :: Int -> ReadS DocumentHighlightClientCapabilities
Read, DocumentHighlightClientCapabilities
-> DocumentHighlightClientCapabilities -> Bool
(DocumentHighlightClientCapabilities
 -> DocumentHighlightClientCapabilities -> Bool)
-> (DocumentHighlightClientCapabilities
    -> DocumentHighlightClientCapabilities -> Bool)
-> Eq DocumentHighlightClientCapabilities
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DocumentHighlightClientCapabilities
-> DocumentHighlightClientCapabilities -> Bool
$c/= :: DocumentHighlightClientCapabilities
-> DocumentHighlightClientCapabilities -> Bool
== :: DocumentHighlightClientCapabilities
-> DocumentHighlightClientCapabilities -> Bool
$c== :: DocumentHighlightClientCapabilities
-> DocumentHighlightClientCapabilities -> Bool
Eq)

$(deriveJSON lspOptions ''DocumentHighlightClientCapabilities)

-- -------------------------------------

data DocumentSymbolKindClientCapabilities =
  DocumentSymbolKindClientCapabilities
    { -- | The symbol kind values the client supports. When this
      --  property exists the client also guarantees that it will
      --  handle values outside its set gracefully and falls back
      --  to a default value when unknown.
      --  
      --  If this property is not present the client only supports
      --  the symbol kinds from `File` to `Array` as defined in
      --  the initial version of the protocol.
      DocumentSymbolKindClientCapabilities -> Maybe (List SymbolKind)
_valueSet :: Maybe (List SymbolKind)
    }
  deriving (Int -> DocumentSymbolKindClientCapabilities -> ShowS
[DocumentSymbolKindClientCapabilities] -> ShowS
DocumentSymbolKindClientCapabilities -> String
(Int -> DocumentSymbolKindClientCapabilities -> ShowS)
-> (DocumentSymbolKindClientCapabilities -> String)
-> ([DocumentSymbolKindClientCapabilities] -> ShowS)
-> Show DocumentSymbolKindClientCapabilities
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DocumentSymbolKindClientCapabilities] -> ShowS
$cshowList :: [DocumentSymbolKindClientCapabilities] -> ShowS
show :: DocumentSymbolKindClientCapabilities -> String
$cshow :: DocumentSymbolKindClientCapabilities -> String
showsPrec :: Int -> DocumentSymbolKindClientCapabilities -> ShowS
$cshowsPrec :: Int -> DocumentSymbolKindClientCapabilities -> ShowS
Show, ReadPrec [DocumentSymbolKindClientCapabilities]
ReadPrec DocumentSymbolKindClientCapabilities
Int -> ReadS DocumentSymbolKindClientCapabilities
ReadS [DocumentSymbolKindClientCapabilities]
(Int -> ReadS DocumentSymbolKindClientCapabilities)
-> ReadS [DocumentSymbolKindClientCapabilities]
-> ReadPrec DocumentSymbolKindClientCapabilities
-> ReadPrec [DocumentSymbolKindClientCapabilities]
-> Read DocumentSymbolKindClientCapabilities
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DocumentSymbolKindClientCapabilities]
$creadListPrec :: ReadPrec [DocumentSymbolKindClientCapabilities]
readPrec :: ReadPrec DocumentSymbolKindClientCapabilities
$creadPrec :: ReadPrec DocumentSymbolKindClientCapabilities
readList :: ReadS [DocumentSymbolKindClientCapabilities]
$creadList :: ReadS [DocumentSymbolKindClientCapabilities]
readsPrec :: Int -> ReadS DocumentSymbolKindClientCapabilities
$creadsPrec :: Int -> ReadS DocumentSymbolKindClientCapabilities
Read, DocumentSymbolKindClientCapabilities
-> DocumentSymbolKindClientCapabilities -> Bool
(DocumentSymbolKindClientCapabilities
 -> DocumentSymbolKindClientCapabilities -> Bool)
-> (DocumentSymbolKindClientCapabilities
    -> DocumentSymbolKindClientCapabilities -> Bool)
-> Eq DocumentSymbolKindClientCapabilities
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DocumentSymbolKindClientCapabilities
-> DocumentSymbolKindClientCapabilities -> Bool
$c/= :: DocumentSymbolKindClientCapabilities
-> DocumentSymbolKindClientCapabilities -> Bool
== :: DocumentSymbolKindClientCapabilities
-> DocumentSymbolKindClientCapabilities -> Bool
$c== :: DocumentSymbolKindClientCapabilities
-> DocumentSymbolKindClientCapabilities -> Bool
Eq)

$(deriveJSON lspOptions ''DocumentSymbolKindClientCapabilities)

data DocumentSymbolClientCapabilities =
  DocumentSymbolClientCapabilities
    { -- | Whether document symbol supports dynamic registration.
      DocumentSymbolClientCapabilities -> Maybe Bool
_dynamicRegistration :: Maybe Bool
      -- | Specific capabilities for the `SymbolKind`.
    , DocumentSymbolClientCapabilities
-> Maybe DocumentSymbolKindClientCapabilities
_symbolKind :: Maybe DocumentSymbolKindClientCapabilities
    , DocumentSymbolClientCapabilities -> Maybe Bool
_hierarchicalDocumentSymbolSupport :: Maybe Bool
    } deriving (Int -> DocumentSymbolClientCapabilities -> ShowS
[DocumentSymbolClientCapabilities] -> ShowS
DocumentSymbolClientCapabilities -> String
(Int -> DocumentSymbolClientCapabilities -> ShowS)
-> (DocumentSymbolClientCapabilities -> String)
-> ([DocumentSymbolClientCapabilities] -> ShowS)
-> Show DocumentSymbolClientCapabilities
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DocumentSymbolClientCapabilities] -> ShowS
$cshowList :: [DocumentSymbolClientCapabilities] -> ShowS
show :: DocumentSymbolClientCapabilities -> String
$cshow :: DocumentSymbolClientCapabilities -> String
showsPrec :: Int -> DocumentSymbolClientCapabilities -> ShowS
$cshowsPrec :: Int -> DocumentSymbolClientCapabilities -> ShowS
Show, ReadPrec [DocumentSymbolClientCapabilities]
ReadPrec DocumentSymbolClientCapabilities
Int -> ReadS DocumentSymbolClientCapabilities
ReadS [DocumentSymbolClientCapabilities]
(Int -> ReadS DocumentSymbolClientCapabilities)
-> ReadS [DocumentSymbolClientCapabilities]
-> ReadPrec DocumentSymbolClientCapabilities
-> ReadPrec [DocumentSymbolClientCapabilities]
-> Read DocumentSymbolClientCapabilities
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DocumentSymbolClientCapabilities]
$creadListPrec :: ReadPrec [DocumentSymbolClientCapabilities]
readPrec :: ReadPrec DocumentSymbolClientCapabilities
$creadPrec :: ReadPrec DocumentSymbolClientCapabilities
readList :: ReadS [DocumentSymbolClientCapabilities]
$creadList :: ReadS [DocumentSymbolClientCapabilities]
readsPrec :: Int -> ReadS DocumentSymbolClientCapabilities
$creadsPrec :: Int -> ReadS DocumentSymbolClientCapabilities
Read, DocumentSymbolClientCapabilities
-> DocumentSymbolClientCapabilities -> Bool
(DocumentSymbolClientCapabilities
 -> DocumentSymbolClientCapabilities -> Bool)
-> (DocumentSymbolClientCapabilities
    -> DocumentSymbolClientCapabilities -> Bool)
-> Eq DocumentSymbolClientCapabilities
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DocumentSymbolClientCapabilities
-> DocumentSymbolClientCapabilities -> Bool
$c/= :: DocumentSymbolClientCapabilities
-> DocumentSymbolClientCapabilities -> Bool
== :: DocumentSymbolClientCapabilities
-> DocumentSymbolClientCapabilities -> Bool
$c== :: DocumentSymbolClientCapabilities
-> DocumentSymbolClientCapabilities -> Bool
Eq)

$(deriveJSON lspOptions ''DocumentSymbolClientCapabilities)

-- -------------------------------------

data FormattingClientCapabilities =
  FormattingClientCapabilities
    { FormattingClientCapabilities -> Maybe Bool
_dynamicRegistration :: Maybe Bool
    } deriving (Int -> FormattingClientCapabilities -> ShowS
[FormattingClientCapabilities] -> ShowS
FormattingClientCapabilities -> String
(Int -> FormattingClientCapabilities -> ShowS)
-> (FormattingClientCapabilities -> String)
-> ([FormattingClientCapabilities] -> ShowS)
-> Show FormattingClientCapabilities
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [FormattingClientCapabilities] -> ShowS
$cshowList :: [FormattingClientCapabilities] -> ShowS
show :: FormattingClientCapabilities -> String
$cshow :: FormattingClientCapabilities -> String
showsPrec :: Int -> FormattingClientCapabilities -> ShowS
$cshowsPrec :: Int -> FormattingClientCapabilities -> ShowS
Show, ReadPrec [FormattingClientCapabilities]
ReadPrec FormattingClientCapabilities
Int -> ReadS FormattingClientCapabilities
ReadS [FormattingClientCapabilities]
(Int -> ReadS FormattingClientCapabilities)
-> ReadS [FormattingClientCapabilities]
-> ReadPrec FormattingClientCapabilities
-> ReadPrec [FormattingClientCapabilities]
-> Read FormattingClientCapabilities
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [FormattingClientCapabilities]
$creadListPrec :: ReadPrec [FormattingClientCapabilities]
readPrec :: ReadPrec FormattingClientCapabilities
$creadPrec :: ReadPrec FormattingClientCapabilities
readList :: ReadS [FormattingClientCapabilities]
$creadList :: ReadS [FormattingClientCapabilities]
readsPrec :: Int -> ReadS FormattingClientCapabilities
$creadsPrec :: Int -> ReadS FormattingClientCapabilities
Read, FormattingClientCapabilities
-> FormattingClientCapabilities -> Bool
(FormattingClientCapabilities
 -> FormattingClientCapabilities -> Bool)
-> (FormattingClientCapabilities
    -> FormattingClientCapabilities -> Bool)
-> Eq FormattingClientCapabilities
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: FormattingClientCapabilities
-> FormattingClientCapabilities -> Bool
$c/= :: FormattingClientCapabilities
-> FormattingClientCapabilities -> Bool
== :: FormattingClientCapabilities
-> FormattingClientCapabilities -> Bool
$c== :: FormattingClientCapabilities
-> FormattingClientCapabilities -> Bool
Eq)

$(deriveJSON lspOptions ''FormattingClientCapabilities)

-- -------------------------------------

data RangeFormattingClientCapabilities =
  RangeFormattingClientCapabilities
    { RangeFormattingClientCapabilities -> Maybe Bool
_dynamicRegistration :: Maybe Bool
    } deriving (Int -> RangeFormattingClientCapabilities -> ShowS
[RangeFormattingClientCapabilities] -> ShowS
RangeFormattingClientCapabilities -> String
(Int -> RangeFormattingClientCapabilities -> ShowS)
-> (RangeFormattingClientCapabilities -> String)
-> ([RangeFormattingClientCapabilities] -> ShowS)
-> Show RangeFormattingClientCapabilities
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [RangeFormattingClientCapabilities] -> ShowS
$cshowList :: [RangeFormattingClientCapabilities] -> ShowS
show :: RangeFormattingClientCapabilities -> String
$cshow :: RangeFormattingClientCapabilities -> String
showsPrec :: Int -> RangeFormattingClientCapabilities -> ShowS
$cshowsPrec :: Int -> RangeFormattingClientCapabilities -> ShowS
Show, ReadPrec [RangeFormattingClientCapabilities]
ReadPrec RangeFormattingClientCapabilities
Int -> ReadS RangeFormattingClientCapabilities
ReadS [RangeFormattingClientCapabilities]
(Int -> ReadS RangeFormattingClientCapabilities)
-> ReadS [RangeFormattingClientCapabilities]
-> ReadPrec RangeFormattingClientCapabilities
-> ReadPrec [RangeFormattingClientCapabilities]
-> Read RangeFormattingClientCapabilities
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [RangeFormattingClientCapabilities]
$creadListPrec :: ReadPrec [RangeFormattingClientCapabilities]
readPrec :: ReadPrec RangeFormattingClientCapabilities
$creadPrec :: ReadPrec RangeFormattingClientCapabilities
readList :: ReadS [RangeFormattingClientCapabilities]
$creadList :: ReadS [RangeFormattingClientCapabilities]
readsPrec :: Int -> ReadS RangeFormattingClientCapabilities
$creadsPrec :: Int -> ReadS RangeFormattingClientCapabilities
Read, RangeFormattingClientCapabilities
-> RangeFormattingClientCapabilities -> Bool
(RangeFormattingClientCapabilities
 -> RangeFormattingClientCapabilities -> Bool)
-> (RangeFormattingClientCapabilities
    -> RangeFormattingClientCapabilities -> Bool)
-> Eq RangeFormattingClientCapabilities
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: RangeFormattingClientCapabilities
-> RangeFormattingClientCapabilities -> Bool
$c/= :: RangeFormattingClientCapabilities
-> RangeFormattingClientCapabilities -> Bool
== :: RangeFormattingClientCapabilities
-> RangeFormattingClientCapabilities -> Bool
$c== :: RangeFormattingClientCapabilities
-> RangeFormattingClientCapabilities -> Bool
Eq)

$(deriveJSON lspOptions ''RangeFormattingClientCapabilities)

-- -------------------------------------

data OnTypeFormattingClientCapabilities =
  OnTypeFormattingClientCapabilities
    { OnTypeFormattingClientCapabilities -> Maybe Bool
_dynamicRegistration :: Maybe Bool
    } deriving (Int -> OnTypeFormattingClientCapabilities -> ShowS
[OnTypeFormattingClientCapabilities] -> ShowS
OnTypeFormattingClientCapabilities -> String
(Int -> OnTypeFormattingClientCapabilities -> ShowS)
-> (OnTypeFormattingClientCapabilities -> String)
-> ([OnTypeFormattingClientCapabilities] -> ShowS)
-> Show OnTypeFormattingClientCapabilities
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [OnTypeFormattingClientCapabilities] -> ShowS
$cshowList :: [OnTypeFormattingClientCapabilities] -> ShowS
show :: OnTypeFormattingClientCapabilities -> String
$cshow :: OnTypeFormattingClientCapabilities -> String
showsPrec :: Int -> OnTypeFormattingClientCapabilities -> ShowS
$cshowsPrec :: Int -> OnTypeFormattingClientCapabilities -> ShowS
Show, ReadPrec [OnTypeFormattingClientCapabilities]
ReadPrec OnTypeFormattingClientCapabilities
Int -> ReadS OnTypeFormattingClientCapabilities
ReadS [OnTypeFormattingClientCapabilities]
(Int -> ReadS OnTypeFormattingClientCapabilities)
-> ReadS [OnTypeFormattingClientCapabilities]
-> ReadPrec OnTypeFormattingClientCapabilities
-> ReadPrec [OnTypeFormattingClientCapabilities]
-> Read OnTypeFormattingClientCapabilities
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [OnTypeFormattingClientCapabilities]
$creadListPrec :: ReadPrec [OnTypeFormattingClientCapabilities]
readPrec :: ReadPrec OnTypeFormattingClientCapabilities
$creadPrec :: ReadPrec OnTypeFormattingClientCapabilities
readList :: ReadS [OnTypeFormattingClientCapabilities]
$creadList :: ReadS [OnTypeFormattingClientCapabilities]
readsPrec :: Int -> ReadS OnTypeFormattingClientCapabilities
$creadsPrec :: Int -> ReadS OnTypeFormattingClientCapabilities
Read, OnTypeFormattingClientCapabilities
-> OnTypeFormattingClientCapabilities -> Bool
(OnTypeFormattingClientCapabilities
 -> OnTypeFormattingClientCapabilities -> Bool)
-> (OnTypeFormattingClientCapabilities
    -> OnTypeFormattingClientCapabilities -> Bool)
-> Eq OnTypeFormattingClientCapabilities
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: OnTypeFormattingClientCapabilities
-> OnTypeFormattingClientCapabilities -> Bool
$c/= :: OnTypeFormattingClientCapabilities
-> OnTypeFormattingClientCapabilities -> Bool
== :: OnTypeFormattingClientCapabilities
-> OnTypeFormattingClientCapabilities -> Bool
$c== :: OnTypeFormattingClientCapabilities
-> OnTypeFormattingClientCapabilities -> Bool
Eq)

$(deriveJSON lspOptions ''OnTypeFormattingClientCapabilities)

-- -------------------------------------

data DefinitionClientCapabilities =
  DefinitionClientCapabilities
    { DefinitionClientCapabilities -> Maybe Bool
_dynamicRegistration :: Maybe Bool
    } deriving (Int -> DefinitionClientCapabilities -> ShowS
[DefinitionClientCapabilities] -> ShowS
DefinitionClientCapabilities -> String
(Int -> DefinitionClientCapabilities -> ShowS)
-> (DefinitionClientCapabilities -> String)
-> ([DefinitionClientCapabilities] -> ShowS)
-> Show DefinitionClientCapabilities
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DefinitionClientCapabilities] -> ShowS
$cshowList :: [DefinitionClientCapabilities] -> ShowS
show :: DefinitionClientCapabilities -> String
$cshow :: DefinitionClientCapabilities -> String
showsPrec :: Int -> DefinitionClientCapabilities -> ShowS
$cshowsPrec :: Int -> DefinitionClientCapabilities -> ShowS
Show, ReadPrec [DefinitionClientCapabilities]
ReadPrec DefinitionClientCapabilities
Int -> ReadS DefinitionClientCapabilities
ReadS [DefinitionClientCapabilities]
(Int -> ReadS DefinitionClientCapabilities)
-> ReadS [DefinitionClientCapabilities]
-> ReadPrec DefinitionClientCapabilities
-> ReadPrec [DefinitionClientCapabilities]
-> Read DefinitionClientCapabilities
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DefinitionClientCapabilities]
$creadListPrec :: ReadPrec [DefinitionClientCapabilities]
readPrec :: ReadPrec DefinitionClientCapabilities
$creadPrec :: ReadPrec DefinitionClientCapabilities
readList :: ReadS [DefinitionClientCapabilities]
$creadList :: ReadS [DefinitionClientCapabilities]
readsPrec :: Int -> ReadS DefinitionClientCapabilities
$creadsPrec :: Int -> ReadS DefinitionClientCapabilities
Read, DefinitionClientCapabilities
-> DefinitionClientCapabilities -> Bool
(DefinitionClientCapabilities
 -> DefinitionClientCapabilities -> Bool)
-> (DefinitionClientCapabilities
    -> DefinitionClientCapabilities -> Bool)
-> Eq DefinitionClientCapabilities
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DefinitionClientCapabilities
-> DefinitionClientCapabilities -> Bool
$c/= :: DefinitionClientCapabilities
-> DefinitionClientCapabilities -> Bool
== :: DefinitionClientCapabilities
-> DefinitionClientCapabilities -> Bool
$c== :: DefinitionClientCapabilities
-> DefinitionClientCapabilities -> Bool
Eq)

$(deriveJSON lspOptions ''DefinitionClientCapabilities)

-- -------------------------------------

data TypeDefinitionClientCapabilities =
  TypeDefinitionClientCapabilities
    { -- | Whether typeDefinition supports dynamic registration. If this is set to `true`
      --  the client supports the new `(TextDocumentRegistrationOptions & StaticRegistrationOptions)`
      --  return value for the corresponding server capability as well.
      TypeDefinitionClientCapabilities -> Maybe Bool
_dynamicRegistration :: Maybe Bool
    } deriving (Int -> TypeDefinitionClientCapabilities -> ShowS
[TypeDefinitionClientCapabilities] -> ShowS
TypeDefinitionClientCapabilities -> String
(Int -> TypeDefinitionClientCapabilities -> ShowS)
-> (TypeDefinitionClientCapabilities -> String)
-> ([TypeDefinitionClientCapabilities] -> ShowS)
-> Show TypeDefinitionClientCapabilities
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [TypeDefinitionClientCapabilities] -> ShowS
$cshowList :: [TypeDefinitionClientCapabilities] -> ShowS
show :: TypeDefinitionClientCapabilities -> String
$cshow :: TypeDefinitionClientCapabilities -> String
showsPrec :: Int -> TypeDefinitionClientCapabilities -> ShowS
$cshowsPrec :: Int -> TypeDefinitionClientCapabilities -> ShowS
Show, ReadPrec [TypeDefinitionClientCapabilities]
ReadPrec TypeDefinitionClientCapabilities
Int -> ReadS TypeDefinitionClientCapabilities
ReadS [TypeDefinitionClientCapabilities]
(Int -> ReadS TypeDefinitionClientCapabilities)
-> ReadS [TypeDefinitionClientCapabilities]
-> ReadPrec TypeDefinitionClientCapabilities
-> ReadPrec [TypeDefinitionClientCapabilities]
-> Read TypeDefinitionClientCapabilities
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [TypeDefinitionClientCapabilities]
$creadListPrec :: ReadPrec [TypeDefinitionClientCapabilities]
readPrec :: ReadPrec TypeDefinitionClientCapabilities
$creadPrec :: ReadPrec TypeDefinitionClientCapabilities
readList :: ReadS [TypeDefinitionClientCapabilities]
$creadList :: ReadS [TypeDefinitionClientCapabilities]
readsPrec :: Int -> ReadS TypeDefinitionClientCapabilities
$creadsPrec :: Int -> ReadS TypeDefinitionClientCapabilities
Read, TypeDefinitionClientCapabilities
-> TypeDefinitionClientCapabilities -> Bool
(TypeDefinitionClientCapabilities
 -> TypeDefinitionClientCapabilities -> Bool)
-> (TypeDefinitionClientCapabilities
    -> TypeDefinitionClientCapabilities -> Bool)
-> Eq TypeDefinitionClientCapabilities
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: TypeDefinitionClientCapabilities
-> TypeDefinitionClientCapabilities -> Bool
$c/= :: TypeDefinitionClientCapabilities
-> TypeDefinitionClientCapabilities -> Bool
== :: TypeDefinitionClientCapabilities
-> TypeDefinitionClientCapabilities -> Bool
$c== :: TypeDefinitionClientCapabilities
-> TypeDefinitionClientCapabilities -> Bool
Eq)

$(deriveJSON lspOptions ''TypeDefinitionClientCapabilities)

-- -------------------------------------
--
data ImplementationClientCapabilities =
  ImplementationClientCapabilities
    { -- | Whether implementation supports dynamic registration. If this is set to `true`
      -- the client supports the new `(TextDocumentRegistrationOptions & StaticRegistrationOptions)`
      -- return value for the corresponding server capability as well.
      ImplementationClientCapabilities -> Maybe Bool
_dynamicRegistration :: Maybe Bool
    } deriving (Int -> ImplementationClientCapabilities -> ShowS
[ImplementationClientCapabilities] -> ShowS
ImplementationClientCapabilities -> String
(Int -> ImplementationClientCapabilities -> ShowS)
-> (ImplementationClientCapabilities -> String)
-> ([ImplementationClientCapabilities] -> ShowS)
-> Show ImplementationClientCapabilities
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ImplementationClientCapabilities] -> ShowS
$cshowList :: [ImplementationClientCapabilities] -> ShowS
show :: ImplementationClientCapabilities -> String
$cshow :: ImplementationClientCapabilities -> String
showsPrec :: Int -> ImplementationClientCapabilities -> ShowS
$cshowsPrec :: Int -> ImplementationClientCapabilities -> ShowS
Show, ReadPrec [ImplementationClientCapabilities]
ReadPrec ImplementationClientCapabilities
Int -> ReadS ImplementationClientCapabilities
ReadS [ImplementationClientCapabilities]
(Int -> ReadS ImplementationClientCapabilities)
-> ReadS [ImplementationClientCapabilities]
-> ReadPrec ImplementationClientCapabilities
-> ReadPrec [ImplementationClientCapabilities]
-> Read ImplementationClientCapabilities
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [ImplementationClientCapabilities]
$creadListPrec :: ReadPrec [ImplementationClientCapabilities]
readPrec :: ReadPrec ImplementationClientCapabilities
$creadPrec :: ReadPrec ImplementationClientCapabilities
readList :: ReadS [ImplementationClientCapabilities]
$creadList :: ReadS [ImplementationClientCapabilities]
readsPrec :: Int -> ReadS ImplementationClientCapabilities
$creadsPrec :: Int -> ReadS ImplementationClientCapabilities
Read, ImplementationClientCapabilities
-> ImplementationClientCapabilities -> Bool
(ImplementationClientCapabilities
 -> ImplementationClientCapabilities -> Bool)
-> (ImplementationClientCapabilities
    -> ImplementationClientCapabilities -> Bool)
-> Eq ImplementationClientCapabilities
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ImplementationClientCapabilities
-> ImplementationClientCapabilities -> Bool
$c/= :: ImplementationClientCapabilities
-> ImplementationClientCapabilities -> Bool
== :: ImplementationClientCapabilities
-> ImplementationClientCapabilities -> Bool
$c== :: ImplementationClientCapabilities
-> ImplementationClientCapabilities -> Bool
Eq)

$(deriveJSON lspOptions ''ImplementationClientCapabilities)

-- -------------------------------------

data CodeActionKindClientCapabilities =
  CodeActionKindClientCapabilities
   { -- | The code action kind values the client supports. When this
     -- property exists the client also guarantees that it will
     -- handle values outside its set gracefully and falls back
     -- to a default value when unknown.
      CodeActionKindClientCapabilities -> List CodeActionKind
_valueSet :: List CodeActionKind
   } deriving (Int -> CodeActionKindClientCapabilities -> ShowS
[CodeActionKindClientCapabilities] -> ShowS
CodeActionKindClientCapabilities -> String
(Int -> CodeActionKindClientCapabilities -> ShowS)
-> (CodeActionKindClientCapabilities -> String)
-> ([CodeActionKindClientCapabilities] -> ShowS)
-> Show CodeActionKindClientCapabilities
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CodeActionKindClientCapabilities] -> ShowS
$cshowList :: [CodeActionKindClientCapabilities] -> ShowS
show :: CodeActionKindClientCapabilities -> String
$cshow :: CodeActionKindClientCapabilities -> String
showsPrec :: Int -> CodeActionKindClientCapabilities -> ShowS
$cshowsPrec :: Int -> CodeActionKindClientCapabilities -> ShowS
Show, ReadPrec [CodeActionKindClientCapabilities]
ReadPrec CodeActionKindClientCapabilities
Int -> ReadS CodeActionKindClientCapabilities
ReadS [CodeActionKindClientCapabilities]
(Int -> ReadS CodeActionKindClientCapabilities)
-> ReadS [CodeActionKindClientCapabilities]
-> ReadPrec CodeActionKindClientCapabilities
-> ReadPrec [CodeActionKindClientCapabilities]
-> Read CodeActionKindClientCapabilities
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [CodeActionKindClientCapabilities]
$creadListPrec :: ReadPrec [CodeActionKindClientCapabilities]
readPrec :: ReadPrec CodeActionKindClientCapabilities
$creadPrec :: ReadPrec CodeActionKindClientCapabilities
readList :: ReadS [CodeActionKindClientCapabilities]
$creadList :: ReadS [CodeActionKindClientCapabilities]
readsPrec :: Int -> ReadS CodeActionKindClientCapabilities
$creadsPrec :: Int -> ReadS CodeActionKindClientCapabilities
Read, CodeActionKindClientCapabilities
-> CodeActionKindClientCapabilities -> Bool
(CodeActionKindClientCapabilities
 -> CodeActionKindClientCapabilities -> Bool)
-> (CodeActionKindClientCapabilities
    -> CodeActionKindClientCapabilities -> Bool)
-> Eq CodeActionKindClientCapabilities
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CodeActionKindClientCapabilities
-> CodeActionKindClientCapabilities -> Bool
$c/= :: CodeActionKindClientCapabilities
-> CodeActionKindClientCapabilities -> Bool
== :: CodeActionKindClientCapabilities
-> CodeActionKindClientCapabilities -> Bool
$c== :: CodeActionKindClientCapabilities
-> CodeActionKindClientCapabilities -> Bool
Eq)

$(deriveJSON lspOptions ''CodeActionKindClientCapabilities)

instance Default CodeActionKindClientCapabilities where
  def :: CodeActionKindClientCapabilities
def = List CodeActionKind -> CodeActionKindClientCapabilities
CodeActionKindClientCapabilities ([CodeActionKind] -> List CodeActionKind
forall a. [a] -> List a
List [CodeActionKind]
allKinds)
    where allKinds :: [CodeActionKind]
allKinds = [ CodeActionKind
CodeActionQuickFix
                     , CodeActionKind
CodeActionRefactor
                     , CodeActionKind
CodeActionRefactorExtract
                     , CodeActionKind
CodeActionRefactorInline
                     , CodeActionKind
CodeActionRefactorRewrite
                     , CodeActionKind
CodeActionSource
                     , CodeActionKind
CodeActionSourceOrganizeImports
                     ]

data CodeActionLiteralSupport =
  CodeActionLiteralSupport
    { CodeActionLiteralSupport -> CodeActionKindClientCapabilities
_codeActionKind :: CodeActionKindClientCapabilities -- ^ The code action kind is support with the following value set.
    } deriving (Int -> CodeActionLiteralSupport -> ShowS
[CodeActionLiteralSupport] -> ShowS
CodeActionLiteralSupport -> String
(Int -> CodeActionLiteralSupport -> ShowS)
-> (CodeActionLiteralSupport -> String)
-> ([CodeActionLiteralSupport] -> ShowS)
-> Show CodeActionLiteralSupport
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CodeActionLiteralSupport] -> ShowS
$cshowList :: [CodeActionLiteralSupport] -> ShowS
show :: CodeActionLiteralSupport -> String
$cshow :: CodeActionLiteralSupport -> String
showsPrec :: Int -> CodeActionLiteralSupport -> ShowS
$cshowsPrec :: Int -> CodeActionLiteralSupport -> ShowS
Show, ReadPrec [CodeActionLiteralSupport]
ReadPrec CodeActionLiteralSupport
Int -> ReadS CodeActionLiteralSupport
ReadS [CodeActionLiteralSupport]
(Int -> ReadS CodeActionLiteralSupport)
-> ReadS [CodeActionLiteralSupport]
-> ReadPrec CodeActionLiteralSupport
-> ReadPrec [CodeActionLiteralSupport]
-> Read CodeActionLiteralSupport
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [CodeActionLiteralSupport]
$creadListPrec :: ReadPrec [CodeActionLiteralSupport]
readPrec :: ReadPrec CodeActionLiteralSupport
$creadPrec :: ReadPrec CodeActionLiteralSupport
readList :: ReadS [CodeActionLiteralSupport]
$creadList :: ReadS [CodeActionLiteralSupport]
readsPrec :: Int -> ReadS CodeActionLiteralSupport
$creadsPrec :: Int -> ReadS CodeActionLiteralSupport
Read, CodeActionLiteralSupport -> CodeActionLiteralSupport -> Bool
(CodeActionLiteralSupport -> CodeActionLiteralSupport -> Bool)
-> (CodeActionLiteralSupport -> CodeActionLiteralSupport -> Bool)
-> Eq CodeActionLiteralSupport
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CodeActionLiteralSupport -> CodeActionLiteralSupport -> Bool
$c/= :: CodeActionLiteralSupport -> CodeActionLiteralSupport -> Bool
== :: CodeActionLiteralSupport -> CodeActionLiteralSupport -> Bool
$c== :: CodeActionLiteralSupport -> CodeActionLiteralSupport -> Bool
Eq)

$(deriveJSON lspOptions ''CodeActionLiteralSupport)

data CodeActionClientCapabilities =
  CodeActionClientCapabilities
    { CodeActionClientCapabilities -> Maybe Bool
_dynamicRegistration      :: Maybe Bool -- ^ Whether code action supports dynamic registration.
    , CodeActionClientCapabilities -> Maybe CodeActionLiteralSupport
_codeActionLiteralSupport :: Maybe CodeActionLiteralSupport -- ^ The client support code action literals as a valid response
                                                                  -- of the `textDocument/codeAction` request.
                                                                  -- Since 3.8.0
    } deriving (Int -> CodeActionClientCapabilities -> ShowS
[CodeActionClientCapabilities] -> ShowS
CodeActionClientCapabilities -> String
(Int -> CodeActionClientCapabilities -> ShowS)
-> (CodeActionClientCapabilities -> String)
-> ([CodeActionClientCapabilities] -> ShowS)
-> Show CodeActionClientCapabilities
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CodeActionClientCapabilities] -> ShowS
$cshowList :: [CodeActionClientCapabilities] -> ShowS
show :: CodeActionClientCapabilities -> String
$cshow :: CodeActionClientCapabilities -> String
showsPrec :: Int -> CodeActionClientCapabilities -> ShowS
$cshowsPrec :: Int -> CodeActionClientCapabilities -> ShowS
Show, ReadPrec [CodeActionClientCapabilities]
ReadPrec CodeActionClientCapabilities
Int -> ReadS CodeActionClientCapabilities
ReadS [CodeActionClientCapabilities]
(Int -> ReadS CodeActionClientCapabilities)
-> ReadS [CodeActionClientCapabilities]
-> ReadPrec CodeActionClientCapabilities
-> ReadPrec [CodeActionClientCapabilities]
-> Read CodeActionClientCapabilities
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [CodeActionClientCapabilities]
$creadListPrec :: ReadPrec [CodeActionClientCapabilities]
readPrec :: ReadPrec CodeActionClientCapabilities
$creadPrec :: ReadPrec CodeActionClientCapabilities
readList :: ReadS [CodeActionClientCapabilities]
$creadList :: ReadS [CodeActionClientCapabilities]
readsPrec :: Int -> ReadS CodeActionClientCapabilities
$creadsPrec :: Int -> ReadS CodeActionClientCapabilities
Read, CodeActionClientCapabilities
-> CodeActionClientCapabilities -> Bool
(CodeActionClientCapabilities
 -> CodeActionClientCapabilities -> Bool)
-> (CodeActionClientCapabilities
    -> CodeActionClientCapabilities -> Bool)
-> Eq CodeActionClientCapabilities
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CodeActionClientCapabilities
-> CodeActionClientCapabilities -> Bool
$c/= :: CodeActionClientCapabilities
-> CodeActionClientCapabilities -> Bool
== :: CodeActionClientCapabilities
-> CodeActionClientCapabilities -> Bool
$c== :: CodeActionClientCapabilities
-> CodeActionClientCapabilities -> Bool
Eq)

$(deriveJSON lspOptions ''CodeActionClientCapabilities)

-- -------------------------------------

data CodeLensClientCapabilities =
  CodeLensClientCapabilities
    { CodeLensClientCapabilities -> Maybe Bool
_dynamicRegistration :: Maybe Bool
    } deriving (Int -> CodeLensClientCapabilities -> ShowS
[CodeLensClientCapabilities] -> ShowS
CodeLensClientCapabilities -> String
(Int -> CodeLensClientCapabilities -> ShowS)
-> (CodeLensClientCapabilities -> String)
-> ([CodeLensClientCapabilities] -> ShowS)
-> Show CodeLensClientCapabilities
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CodeLensClientCapabilities] -> ShowS
$cshowList :: [CodeLensClientCapabilities] -> ShowS
show :: CodeLensClientCapabilities -> String
$cshow :: CodeLensClientCapabilities -> String
showsPrec :: Int -> CodeLensClientCapabilities -> ShowS
$cshowsPrec :: Int -> CodeLensClientCapabilities -> ShowS
Show, ReadPrec [CodeLensClientCapabilities]
ReadPrec CodeLensClientCapabilities
Int -> ReadS CodeLensClientCapabilities
ReadS [CodeLensClientCapabilities]
(Int -> ReadS CodeLensClientCapabilities)
-> ReadS [CodeLensClientCapabilities]
-> ReadPrec CodeLensClientCapabilities
-> ReadPrec [CodeLensClientCapabilities]
-> Read CodeLensClientCapabilities
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [CodeLensClientCapabilities]
$creadListPrec :: ReadPrec [CodeLensClientCapabilities]
readPrec :: ReadPrec CodeLensClientCapabilities
$creadPrec :: ReadPrec CodeLensClientCapabilities
readList :: ReadS [CodeLensClientCapabilities]
$creadList :: ReadS [CodeLensClientCapabilities]
readsPrec :: Int -> ReadS CodeLensClientCapabilities
$creadsPrec :: Int -> ReadS CodeLensClientCapabilities
Read, CodeLensClientCapabilities -> CodeLensClientCapabilities -> Bool
(CodeLensClientCapabilities -> CodeLensClientCapabilities -> Bool)
-> (CodeLensClientCapabilities
    -> CodeLensClientCapabilities -> Bool)
-> Eq CodeLensClientCapabilities
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CodeLensClientCapabilities -> CodeLensClientCapabilities -> Bool
$c/= :: CodeLensClientCapabilities -> CodeLensClientCapabilities -> Bool
== :: CodeLensClientCapabilities -> CodeLensClientCapabilities -> Bool
$c== :: CodeLensClientCapabilities -> CodeLensClientCapabilities -> Bool
Eq)

$(deriveJSON lspOptions ''CodeLensClientCapabilities)

-- -------------------------------------

data DocumentLinkClientCapabilities =
  DocumentLinkClientCapabilities
    { DocumentLinkClientCapabilities -> Maybe Bool
_dynamicRegistration :: Maybe Bool
    } deriving (Int -> DocumentLinkClientCapabilities -> ShowS
[DocumentLinkClientCapabilities] -> ShowS
DocumentLinkClientCapabilities -> String
(Int -> DocumentLinkClientCapabilities -> ShowS)
-> (DocumentLinkClientCapabilities -> String)
-> ([DocumentLinkClientCapabilities] -> ShowS)
-> Show DocumentLinkClientCapabilities
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DocumentLinkClientCapabilities] -> ShowS
$cshowList :: [DocumentLinkClientCapabilities] -> ShowS
show :: DocumentLinkClientCapabilities -> String
$cshow :: DocumentLinkClientCapabilities -> String
showsPrec :: Int -> DocumentLinkClientCapabilities -> ShowS
$cshowsPrec :: Int -> DocumentLinkClientCapabilities -> ShowS
Show, ReadPrec [DocumentLinkClientCapabilities]
ReadPrec DocumentLinkClientCapabilities
Int -> ReadS DocumentLinkClientCapabilities
ReadS [DocumentLinkClientCapabilities]
(Int -> ReadS DocumentLinkClientCapabilities)
-> ReadS [DocumentLinkClientCapabilities]
-> ReadPrec DocumentLinkClientCapabilities
-> ReadPrec [DocumentLinkClientCapabilities]
-> Read DocumentLinkClientCapabilities
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DocumentLinkClientCapabilities]
$creadListPrec :: ReadPrec [DocumentLinkClientCapabilities]
readPrec :: ReadPrec DocumentLinkClientCapabilities
$creadPrec :: ReadPrec DocumentLinkClientCapabilities
readList :: ReadS [DocumentLinkClientCapabilities]
$creadList :: ReadS [DocumentLinkClientCapabilities]
readsPrec :: Int -> ReadS DocumentLinkClientCapabilities
$creadsPrec :: Int -> ReadS DocumentLinkClientCapabilities
Read, DocumentLinkClientCapabilities
-> DocumentLinkClientCapabilities -> Bool
(DocumentLinkClientCapabilities
 -> DocumentLinkClientCapabilities -> Bool)
-> (DocumentLinkClientCapabilities
    -> DocumentLinkClientCapabilities -> Bool)
-> Eq DocumentLinkClientCapabilities
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DocumentLinkClientCapabilities
-> DocumentLinkClientCapabilities -> Bool
$c/= :: DocumentLinkClientCapabilities
-> DocumentLinkClientCapabilities -> Bool
== :: DocumentLinkClientCapabilities
-> DocumentLinkClientCapabilities -> Bool
$c== :: DocumentLinkClientCapabilities
-> DocumentLinkClientCapabilities -> Bool
Eq)

$(deriveJSON lspOptions ''DocumentLinkClientCapabilities)

-- -------------------------------------

data ColorProviderClientCapabilities =
  ColorProviderClientCapabilities
    { -- | Whether colorProvider supports dynamic registration. If this is set to `true`
      --  the client supports the new `(ColorProviderOptions & TextDocumentRegistrationOptions & StaticRegistrationOptions)`
      --  return value for the corresponding server capability as well.
      ColorProviderClientCapabilities -> Maybe Bool
_dynamicRegistration :: Maybe Bool
    } deriving (Int -> ColorProviderClientCapabilities -> ShowS
[ColorProviderClientCapabilities] -> ShowS
ColorProviderClientCapabilities -> String
(Int -> ColorProviderClientCapabilities -> ShowS)
-> (ColorProviderClientCapabilities -> String)
-> ([ColorProviderClientCapabilities] -> ShowS)
-> Show ColorProviderClientCapabilities
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ColorProviderClientCapabilities] -> ShowS
$cshowList :: [ColorProviderClientCapabilities] -> ShowS
show :: ColorProviderClientCapabilities -> String
$cshow :: ColorProviderClientCapabilities -> String
showsPrec :: Int -> ColorProviderClientCapabilities -> ShowS
$cshowsPrec :: Int -> ColorProviderClientCapabilities -> ShowS
Show, ReadPrec [ColorProviderClientCapabilities]
ReadPrec ColorProviderClientCapabilities
Int -> ReadS ColorProviderClientCapabilities
ReadS [ColorProviderClientCapabilities]
(Int -> ReadS ColorProviderClientCapabilities)
-> ReadS [ColorProviderClientCapabilities]
-> ReadPrec ColorProviderClientCapabilities
-> ReadPrec [ColorProviderClientCapabilities]
-> Read ColorProviderClientCapabilities
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [ColorProviderClientCapabilities]
$creadListPrec :: ReadPrec [ColorProviderClientCapabilities]
readPrec :: ReadPrec ColorProviderClientCapabilities
$creadPrec :: ReadPrec ColorProviderClientCapabilities
readList :: ReadS [ColorProviderClientCapabilities]
$creadList :: ReadS [ColorProviderClientCapabilities]
readsPrec :: Int -> ReadS ColorProviderClientCapabilities
$creadsPrec :: Int -> ReadS ColorProviderClientCapabilities
Read, ColorProviderClientCapabilities
-> ColorProviderClientCapabilities -> Bool
(ColorProviderClientCapabilities
 -> ColorProviderClientCapabilities -> Bool)
-> (ColorProviderClientCapabilities
    -> ColorProviderClientCapabilities -> Bool)
-> Eq ColorProviderClientCapabilities
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ColorProviderClientCapabilities
-> ColorProviderClientCapabilities -> Bool
$c/= :: ColorProviderClientCapabilities
-> ColorProviderClientCapabilities -> Bool
== :: ColorProviderClientCapabilities
-> ColorProviderClientCapabilities -> Bool
$c== :: ColorProviderClientCapabilities
-> ColorProviderClientCapabilities -> Bool
Eq)

$(deriveJSON lspOptions ''ColorProviderClientCapabilities)

-- -------------------------------------

data RenameClientCapabilities =
  RenameClientCapabilities
    { RenameClientCapabilities -> Maybe Bool
_dynamicRegistration :: Maybe Bool
    , RenameClientCapabilities -> Maybe Bool
_prepareSupport :: Maybe Bool
    } deriving (Int -> RenameClientCapabilities -> ShowS
[RenameClientCapabilities] -> ShowS
RenameClientCapabilities -> String
(Int -> RenameClientCapabilities -> ShowS)
-> (RenameClientCapabilities -> String)
-> ([RenameClientCapabilities] -> ShowS)
-> Show RenameClientCapabilities
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [RenameClientCapabilities] -> ShowS
$cshowList :: [RenameClientCapabilities] -> ShowS
show :: RenameClientCapabilities -> String
$cshow :: RenameClientCapabilities -> String
showsPrec :: Int -> RenameClientCapabilities -> ShowS
$cshowsPrec :: Int -> RenameClientCapabilities -> ShowS
Show, ReadPrec [RenameClientCapabilities]
ReadPrec RenameClientCapabilities
Int -> ReadS RenameClientCapabilities
ReadS [RenameClientCapabilities]
(Int -> ReadS RenameClientCapabilities)
-> ReadS [RenameClientCapabilities]
-> ReadPrec RenameClientCapabilities
-> ReadPrec [RenameClientCapabilities]
-> Read RenameClientCapabilities
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [RenameClientCapabilities]
$creadListPrec :: ReadPrec [RenameClientCapabilities]
readPrec :: ReadPrec RenameClientCapabilities
$creadPrec :: ReadPrec RenameClientCapabilities
readList :: ReadS [RenameClientCapabilities]
$creadList :: ReadS [RenameClientCapabilities]
readsPrec :: Int -> ReadS RenameClientCapabilities
$creadsPrec :: Int -> ReadS RenameClientCapabilities
Read, RenameClientCapabilities -> RenameClientCapabilities -> Bool
(RenameClientCapabilities -> RenameClientCapabilities -> Bool)
-> (RenameClientCapabilities -> RenameClientCapabilities -> Bool)
-> Eq RenameClientCapabilities
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: RenameClientCapabilities -> RenameClientCapabilities -> Bool
$c/= :: RenameClientCapabilities -> RenameClientCapabilities -> Bool
== :: RenameClientCapabilities -> RenameClientCapabilities -> Bool
$c== :: RenameClientCapabilities -> RenameClientCapabilities -> Bool
Eq)

$(deriveJSON lspOptions ''RenameClientCapabilities)

-- -------------------------------------

data PublishDiagnosticsTagsClientCapabilities =
  PublishDiagnosticsTagsClientCapabilities
    { -- | The tags supported by the client.
      PublishDiagnosticsTagsClientCapabilities -> List DiagnosticTag
_valueSet :: List DiagnosticTag
    } deriving (Int -> PublishDiagnosticsTagsClientCapabilities -> ShowS
[PublishDiagnosticsTagsClientCapabilities] -> ShowS
PublishDiagnosticsTagsClientCapabilities -> String
(Int -> PublishDiagnosticsTagsClientCapabilities -> ShowS)
-> (PublishDiagnosticsTagsClientCapabilities -> String)
-> ([PublishDiagnosticsTagsClientCapabilities] -> ShowS)
-> Show PublishDiagnosticsTagsClientCapabilities
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PublishDiagnosticsTagsClientCapabilities] -> ShowS
$cshowList :: [PublishDiagnosticsTagsClientCapabilities] -> ShowS
show :: PublishDiagnosticsTagsClientCapabilities -> String
$cshow :: PublishDiagnosticsTagsClientCapabilities -> String
showsPrec :: Int -> PublishDiagnosticsTagsClientCapabilities -> ShowS
$cshowsPrec :: Int -> PublishDiagnosticsTagsClientCapabilities -> ShowS
Show, ReadPrec [PublishDiagnosticsTagsClientCapabilities]
ReadPrec PublishDiagnosticsTagsClientCapabilities
Int -> ReadS PublishDiagnosticsTagsClientCapabilities
ReadS [PublishDiagnosticsTagsClientCapabilities]
(Int -> ReadS PublishDiagnosticsTagsClientCapabilities)
-> ReadS [PublishDiagnosticsTagsClientCapabilities]
-> ReadPrec PublishDiagnosticsTagsClientCapabilities
-> ReadPrec [PublishDiagnosticsTagsClientCapabilities]
-> Read PublishDiagnosticsTagsClientCapabilities
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [PublishDiagnosticsTagsClientCapabilities]
$creadListPrec :: ReadPrec [PublishDiagnosticsTagsClientCapabilities]
readPrec :: ReadPrec PublishDiagnosticsTagsClientCapabilities
$creadPrec :: ReadPrec PublishDiagnosticsTagsClientCapabilities
readList :: ReadS [PublishDiagnosticsTagsClientCapabilities]
$creadList :: ReadS [PublishDiagnosticsTagsClientCapabilities]
readsPrec :: Int -> ReadS PublishDiagnosticsTagsClientCapabilities
$creadsPrec :: Int -> ReadS PublishDiagnosticsTagsClientCapabilities
Read, PublishDiagnosticsTagsClientCapabilities
-> PublishDiagnosticsTagsClientCapabilities -> Bool
(PublishDiagnosticsTagsClientCapabilities
 -> PublishDiagnosticsTagsClientCapabilities -> Bool)
-> (PublishDiagnosticsTagsClientCapabilities
    -> PublishDiagnosticsTagsClientCapabilities -> Bool)
-> Eq PublishDiagnosticsTagsClientCapabilities
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PublishDiagnosticsTagsClientCapabilities
-> PublishDiagnosticsTagsClientCapabilities -> Bool
$c/= :: PublishDiagnosticsTagsClientCapabilities
-> PublishDiagnosticsTagsClientCapabilities -> Bool
== :: PublishDiagnosticsTagsClientCapabilities
-> PublishDiagnosticsTagsClientCapabilities -> Bool
$c== :: PublishDiagnosticsTagsClientCapabilities
-> PublishDiagnosticsTagsClientCapabilities -> Bool
Eq)

$(deriveJSON lspOptions ''PublishDiagnosticsTagsClientCapabilities)

data PublishDiagnosticsClientCapabilities =
  PublishDiagnosticsClientCapabilities
    { -- | Whether the clients accepts diagnostics with related information.
      PublishDiagnosticsClientCapabilities -> Maybe Bool
_relatedInformation :: Maybe Bool
      -- | Client supports the tag property to provide metadata about a
      -- diagnostic.
      --
      -- Clients supporting tags have to handle unknown tags gracefully.
    , PublishDiagnosticsClientCapabilities
-> Maybe PublishDiagnosticsTagsClientCapabilities
_tagSupport :: Maybe PublishDiagnosticsTagsClientCapabilities
    } deriving (Int -> PublishDiagnosticsClientCapabilities -> ShowS
[PublishDiagnosticsClientCapabilities] -> ShowS
PublishDiagnosticsClientCapabilities -> String
(Int -> PublishDiagnosticsClientCapabilities -> ShowS)
-> (PublishDiagnosticsClientCapabilities -> String)
-> ([PublishDiagnosticsClientCapabilities] -> ShowS)
-> Show PublishDiagnosticsClientCapabilities
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PublishDiagnosticsClientCapabilities] -> ShowS
$cshowList :: [PublishDiagnosticsClientCapabilities] -> ShowS
show :: PublishDiagnosticsClientCapabilities -> String
$cshow :: PublishDiagnosticsClientCapabilities -> String
showsPrec :: Int -> PublishDiagnosticsClientCapabilities -> ShowS
$cshowsPrec :: Int -> PublishDiagnosticsClientCapabilities -> ShowS
Show, ReadPrec [PublishDiagnosticsClientCapabilities]
ReadPrec PublishDiagnosticsClientCapabilities
Int -> ReadS PublishDiagnosticsClientCapabilities
ReadS [PublishDiagnosticsClientCapabilities]
(Int -> ReadS PublishDiagnosticsClientCapabilities)
-> ReadS [PublishDiagnosticsClientCapabilities]
-> ReadPrec PublishDiagnosticsClientCapabilities
-> ReadPrec [PublishDiagnosticsClientCapabilities]
-> Read PublishDiagnosticsClientCapabilities
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [PublishDiagnosticsClientCapabilities]
$creadListPrec :: ReadPrec [PublishDiagnosticsClientCapabilities]
readPrec :: ReadPrec PublishDiagnosticsClientCapabilities
$creadPrec :: ReadPrec PublishDiagnosticsClientCapabilities
readList :: ReadS [PublishDiagnosticsClientCapabilities]
$creadList :: ReadS [PublishDiagnosticsClientCapabilities]
readsPrec :: Int -> ReadS PublishDiagnosticsClientCapabilities
$creadsPrec :: Int -> ReadS PublishDiagnosticsClientCapabilities
Read, PublishDiagnosticsClientCapabilities
-> PublishDiagnosticsClientCapabilities -> Bool
(PublishDiagnosticsClientCapabilities
 -> PublishDiagnosticsClientCapabilities -> Bool)
-> (PublishDiagnosticsClientCapabilities
    -> PublishDiagnosticsClientCapabilities -> Bool)
-> Eq PublishDiagnosticsClientCapabilities
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PublishDiagnosticsClientCapabilities
-> PublishDiagnosticsClientCapabilities -> Bool
$c/= :: PublishDiagnosticsClientCapabilities
-> PublishDiagnosticsClientCapabilities -> Bool
== :: PublishDiagnosticsClientCapabilities
-> PublishDiagnosticsClientCapabilities -> Bool
$c== :: PublishDiagnosticsClientCapabilities
-> PublishDiagnosticsClientCapabilities -> Bool
Eq)

$(deriveJSON lspOptions ''PublishDiagnosticsClientCapabilities)

-- -------------------------------------

data FoldingRangeClientCapabilities =
  FoldingRangeClientCapabilities
    { -- | Whether implementation supports dynamic registration for folding range
      -- providers. If this is set to `true` the client supports the new
      -- `(FoldingRangeProviderOptions & TextDocumentRegistrationOptions & StaticRegistrationOptions)`
      -- return value for the corresponding server capability as well.
      FoldingRangeClientCapabilities -> Maybe Bool
_dynamicRegistration :: Maybe Bool
      -- | The maximum number of folding ranges that the client prefers to receive
      -- per document. The value serves as a hint, servers are free to follow the limit.
    , FoldingRangeClientCapabilities -> Maybe Int
_rangeLimit          :: Maybe Int
      -- | If set, the client signals that it only supports folding complete lines. If set,
      -- client will ignore specified `startCharacter` and `endCharacter` properties in a
      -- FoldingRange.
    , FoldingRangeClientCapabilities -> Maybe Bool
_lineFoldingOnly     :: Maybe Bool
    } deriving (Int -> FoldingRangeClientCapabilities -> ShowS
[FoldingRangeClientCapabilities] -> ShowS
FoldingRangeClientCapabilities -> String
(Int -> FoldingRangeClientCapabilities -> ShowS)
-> (FoldingRangeClientCapabilities -> String)
-> ([FoldingRangeClientCapabilities] -> ShowS)
-> Show FoldingRangeClientCapabilities
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [FoldingRangeClientCapabilities] -> ShowS
$cshowList :: [FoldingRangeClientCapabilities] -> ShowS
show :: FoldingRangeClientCapabilities -> String
$cshow :: FoldingRangeClientCapabilities -> String
showsPrec :: Int -> FoldingRangeClientCapabilities -> ShowS
$cshowsPrec :: Int -> FoldingRangeClientCapabilities -> ShowS
Show, ReadPrec [FoldingRangeClientCapabilities]
ReadPrec FoldingRangeClientCapabilities
Int -> ReadS FoldingRangeClientCapabilities
ReadS [FoldingRangeClientCapabilities]
(Int -> ReadS FoldingRangeClientCapabilities)
-> ReadS [FoldingRangeClientCapabilities]
-> ReadPrec FoldingRangeClientCapabilities
-> ReadPrec [FoldingRangeClientCapabilities]
-> Read FoldingRangeClientCapabilities
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [FoldingRangeClientCapabilities]
$creadListPrec :: ReadPrec [FoldingRangeClientCapabilities]
readPrec :: ReadPrec FoldingRangeClientCapabilities
$creadPrec :: ReadPrec FoldingRangeClientCapabilities
readList :: ReadS [FoldingRangeClientCapabilities]
$creadList :: ReadS [FoldingRangeClientCapabilities]
readsPrec :: Int -> ReadS FoldingRangeClientCapabilities
$creadsPrec :: Int -> ReadS FoldingRangeClientCapabilities
Read, FoldingRangeClientCapabilities
-> FoldingRangeClientCapabilities -> Bool
(FoldingRangeClientCapabilities
 -> FoldingRangeClientCapabilities -> Bool)
-> (FoldingRangeClientCapabilities
    -> FoldingRangeClientCapabilities -> Bool)
-> Eq FoldingRangeClientCapabilities
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: FoldingRangeClientCapabilities
-> FoldingRangeClientCapabilities -> Bool
$c/= :: FoldingRangeClientCapabilities
-> FoldingRangeClientCapabilities -> Bool
== :: FoldingRangeClientCapabilities
-> FoldingRangeClientCapabilities -> Bool
$c== :: FoldingRangeClientCapabilities
-> FoldingRangeClientCapabilities -> Bool
Eq)

$(deriveJSON lspOptions ''FoldingRangeClientCapabilities)

-- -------------------------------------

data TextDocumentClientCapabilities =
  TextDocumentClientCapabilities
    { TextDocumentClientCapabilities
-> Maybe SynchronizationTextDocumentClientCapabilities
_synchronization :: Maybe SynchronizationTextDocumentClientCapabilities

      -- | Capabilities specific to the `textDocument/completion`
    , TextDocumentClientCapabilities
-> Maybe CompletionClientCapabilities
_completion :: Maybe CompletionClientCapabilities

      -- | Capabilities specific to the `textDocument/hover`
    , TextDocumentClientCapabilities -> Maybe HoverClientCapabilities
_hover :: Maybe HoverClientCapabilities

      -- | Capabilities specific to the `textDocument/signatureHelp`
    , TextDocumentClientCapabilities
-> Maybe SignatureHelpClientCapabilities
_signatureHelp :: Maybe SignatureHelpClientCapabilities

      -- | Capabilities specific to the `textDocument/references`
    , TextDocumentClientCapabilities
-> Maybe ReferencesClientCapabilities
_references :: Maybe ReferencesClientCapabilities

      -- | Capabilities specific to the `textDocument/documentHighlight`
    , TextDocumentClientCapabilities
-> Maybe DocumentHighlightClientCapabilities
_documentHighlight :: Maybe DocumentHighlightClientCapabilities

      -- | Capabilities specific to the `textDocument/documentSymbol`
    , TextDocumentClientCapabilities
-> Maybe DocumentSymbolClientCapabilities
_documentSymbol :: Maybe DocumentSymbolClientCapabilities

      -- | Capabilities specific to the `textDocument/formatting`
    , TextDocumentClientCapabilities
-> Maybe FormattingClientCapabilities
_formatting :: Maybe FormattingClientCapabilities

      -- | Capabilities specific to the `textDocument/rangeFormatting`
    , TextDocumentClientCapabilities
-> Maybe RangeFormattingClientCapabilities
_rangeFormatting :: Maybe RangeFormattingClientCapabilities

      -- | Capabilities specific to the `textDocument/onTypeFormatting`
    , TextDocumentClientCapabilities
-> Maybe OnTypeFormattingClientCapabilities
_onTypeFormatting :: Maybe OnTypeFormattingClientCapabilities

      -- | Capabilities specific to the `textDocument/definition`
    , TextDocumentClientCapabilities
-> Maybe DefinitionClientCapabilities
_definition :: Maybe DefinitionClientCapabilities

      -- | Capabilities specific to the `textDocument/typeDefinition`
    , TextDocumentClientCapabilities
-> Maybe TypeDefinitionClientCapabilities
_typeDefinition :: Maybe TypeDefinitionClientCapabilities

      -- | Capabilities specific to the `textDocument/implementation`
    , TextDocumentClientCapabilities
-> Maybe ImplementationClientCapabilities
_implementation :: Maybe ImplementationClientCapabilities

      -- | Capabilities specific to the `textDocument/codeAction`
    , TextDocumentClientCapabilities
-> Maybe CodeActionClientCapabilities
_codeAction :: Maybe CodeActionClientCapabilities

      -- | Capabilities specific to the `textDocument/codeLens`
    , TextDocumentClientCapabilities -> Maybe CodeLensClientCapabilities
_codeLens :: Maybe CodeLensClientCapabilities

      -- | Capabilities specific to the `textDocument/documentLink`
    , TextDocumentClientCapabilities
-> Maybe DocumentLinkClientCapabilities
_documentLink :: Maybe DocumentLinkClientCapabilities

      -- | Capabilities specific to the `textDocument/documentColor` and the
      -- `textDocument/colorPresentation` request
    , TextDocumentClientCapabilities
-> Maybe ColorProviderClientCapabilities
_colorProvider :: Maybe ColorProviderClientCapabilities

      -- | Capabilities specific to the `textDocument/rename`
    , TextDocumentClientCapabilities -> Maybe RenameClientCapabilities
_rename :: Maybe RenameClientCapabilities

      -- | Capabilities specific to `textDocument/publishDiagnostics`
    , TextDocumentClientCapabilities
-> Maybe PublishDiagnosticsClientCapabilities
_publishDiagnostics :: Maybe PublishDiagnosticsClientCapabilities

      -- | Capabilities specific to `textDocument/foldingRange` requests. Since LSP 3.10.
      --
      -- @since 0.7.0.0
    , TextDocumentClientCapabilities
-> Maybe FoldingRangeClientCapabilities
_foldingRange :: Maybe FoldingRangeClientCapabilities
    } deriving (Int -> TextDocumentClientCapabilities -> ShowS
[TextDocumentClientCapabilities] -> ShowS
TextDocumentClientCapabilities -> String
(Int -> TextDocumentClientCapabilities -> ShowS)
-> (TextDocumentClientCapabilities -> String)
-> ([TextDocumentClientCapabilities] -> ShowS)
-> Show TextDocumentClientCapabilities
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [TextDocumentClientCapabilities] -> ShowS
$cshowList :: [TextDocumentClientCapabilities] -> ShowS
show :: TextDocumentClientCapabilities -> String
$cshow :: TextDocumentClientCapabilities -> String
showsPrec :: Int -> TextDocumentClientCapabilities -> ShowS
$cshowsPrec :: Int -> TextDocumentClientCapabilities -> ShowS
Show, ReadPrec [TextDocumentClientCapabilities]
ReadPrec TextDocumentClientCapabilities
Int -> ReadS TextDocumentClientCapabilities
ReadS [TextDocumentClientCapabilities]
(Int -> ReadS TextDocumentClientCapabilities)
-> ReadS [TextDocumentClientCapabilities]
-> ReadPrec TextDocumentClientCapabilities
-> ReadPrec [TextDocumentClientCapabilities]
-> Read TextDocumentClientCapabilities
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [TextDocumentClientCapabilities]
$creadListPrec :: ReadPrec [TextDocumentClientCapabilities]
readPrec :: ReadPrec TextDocumentClientCapabilities
$creadPrec :: ReadPrec TextDocumentClientCapabilities
readList :: ReadS [TextDocumentClientCapabilities]
$creadList :: ReadS [TextDocumentClientCapabilities]
readsPrec :: Int -> ReadS TextDocumentClientCapabilities
$creadsPrec :: Int -> ReadS TextDocumentClientCapabilities
Read, TextDocumentClientCapabilities
-> TextDocumentClientCapabilities -> Bool
(TextDocumentClientCapabilities
 -> TextDocumentClientCapabilities -> Bool)
-> (TextDocumentClientCapabilities
    -> TextDocumentClientCapabilities -> Bool)
-> Eq TextDocumentClientCapabilities
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: TextDocumentClientCapabilities
-> TextDocumentClientCapabilities -> Bool
$c/= :: TextDocumentClientCapabilities
-> TextDocumentClientCapabilities -> Bool
== :: TextDocumentClientCapabilities
-> TextDocumentClientCapabilities -> Bool
$c== :: TextDocumentClientCapabilities
-> TextDocumentClientCapabilities -> Bool
Eq)

$(deriveJSON lspOptions ''TextDocumentClientCapabilities)

instance Default TextDocumentClientCapabilities where
  def :: TextDocumentClientCapabilities
def = Maybe SynchronizationTextDocumentClientCapabilities
-> Maybe CompletionClientCapabilities
-> Maybe HoverClientCapabilities
-> Maybe SignatureHelpClientCapabilities
-> Maybe ReferencesClientCapabilities
-> Maybe DocumentHighlightClientCapabilities
-> Maybe DocumentSymbolClientCapabilities
-> Maybe FormattingClientCapabilities
-> Maybe RangeFormattingClientCapabilities
-> Maybe OnTypeFormattingClientCapabilities
-> Maybe DefinitionClientCapabilities
-> Maybe TypeDefinitionClientCapabilities
-> Maybe ImplementationClientCapabilities
-> Maybe CodeActionClientCapabilities
-> Maybe CodeLensClientCapabilities
-> Maybe DocumentLinkClientCapabilities
-> Maybe ColorProviderClientCapabilities
-> Maybe RenameClientCapabilities
-> Maybe PublishDiagnosticsClientCapabilities
-> Maybe FoldingRangeClientCapabilities
-> TextDocumentClientCapabilities
TextDocumentClientCapabilities Maybe SynchronizationTextDocumentClientCapabilities
forall a. Default a => a
def Maybe CompletionClientCapabilities
forall a. Default a => a
def Maybe HoverClientCapabilities
forall a. Default a => a
def Maybe SignatureHelpClientCapabilities
forall a. Default a => a
def Maybe ReferencesClientCapabilities
forall a. Default a => a
def Maybe DocumentHighlightClientCapabilities
forall a. Default a => a
def Maybe DocumentSymbolClientCapabilities
forall a. Default a => a
def Maybe FormattingClientCapabilities
forall a. Default a => a
def
                                       Maybe RangeFormattingClientCapabilities
forall a. Default a => a
def Maybe OnTypeFormattingClientCapabilities
forall a. Default a => a
def Maybe DefinitionClientCapabilities
forall a. Default a => a
def Maybe TypeDefinitionClientCapabilities
forall a. Default a => a
def Maybe ImplementationClientCapabilities
forall a. Default a => a
def Maybe CodeActionClientCapabilities
forall a. Default a => a
def Maybe CodeLensClientCapabilities
forall a. Default a => a
def Maybe DocumentLinkClientCapabilities
forall a. Default a => a
def
                                       Maybe ColorProviderClientCapabilities
forall a. Default a => a
def Maybe RenameClientCapabilities
forall a. Default a => a
def Maybe PublishDiagnosticsClientCapabilities
forall a. Default a => a
def Maybe FoldingRangeClientCapabilities
forall a. Default a => a
def

-- ---------------------------------------------------------------------

-- | Window specific client capabilities.
data WindowClientCapabilities = 
  WindowClientCapabilities
    { -- | Whether client supports handling progress notifications.
      WindowClientCapabilities -> Maybe Bool
_workDoneProgress :: Maybe Bool
    } deriving (Int -> WindowClientCapabilities -> ShowS
[WindowClientCapabilities] -> ShowS
WindowClientCapabilities -> String
(Int -> WindowClientCapabilities -> ShowS)
-> (WindowClientCapabilities -> String)
-> ([WindowClientCapabilities] -> ShowS)
-> Show WindowClientCapabilities
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [WindowClientCapabilities] -> ShowS
$cshowList :: [WindowClientCapabilities] -> ShowS
show :: WindowClientCapabilities -> String
$cshow :: WindowClientCapabilities -> String
showsPrec :: Int -> WindowClientCapabilities -> ShowS
$cshowsPrec :: Int -> WindowClientCapabilities -> ShowS
Show, ReadPrec [WindowClientCapabilities]
ReadPrec WindowClientCapabilities
Int -> ReadS WindowClientCapabilities
ReadS [WindowClientCapabilities]
(Int -> ReadS WindowClientCapabilities)
-> ReadS [WindowClientCapabilities]
-> ReadPrec WindowClientCapabilities
-> ReadPrec [WindowClientCapabilities]
-> Read WindowClientCapabilities
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [WindowClientCapabilities]
$creadListPrec :: ReadPrec [WindowClientCapabilities]
readPrec :: ReadPrec WindowClientCapabilities
$creadPrec :: ReadPrec WindowClientCapabilities
readList :: ReadS [WindowClientCapabilities]
$creadList :: ReadS [WindowClientCapabilities]
readsPrec :: Int -> ReadS WindowClientCapabilities
$creadsPrec :: Int -> ReadS WindowClientCapabilities
Read, WindowClientCapabilities -> WindowClientCapabilities -> Bool
(WindowClientCapabilities -> WindowClientCapabilities -> Bool)
-> (WindowClientCapabilities -> WindowClientCapabilities -> Bool)
-> Eq WindowClientCapabilities
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: WindowClientCapabilities -> WindowClientCapabilities -> Bool
$c/= :: WindowClientCapabilities -> WindowClientCapabilities -> Bool
== :: WindowClientCapabilities -> WindowClientCapabilities -> Bool
$c== :: WindowClientCapabilities -> WindowClientCapabilities -> Bool
Eq)

$(deriveJSON lspOptions ''WindowClientCapabilities)

instance Default WindowClientCapabilities where
  def :: WindowClientCapabilities
def = Maybe Bool -> WindowClientCapabilities
WindowClientCapabilities Maybe Bool
forall a. Default a => a
def

-- ---------------------------------------------------------------------
{-
New in 3.0

-----------

ClientCapabilities

now define capabilities for dynamic registration, workspace and text document
features the client supports. The experimental can be used to pass experimential
capabilities under development. For future compatibility a ClientCapabilities
object literal can have more properties set than currently defined. Servers
receiving a ClientCapabilities object literal with unknown properties should
ignore these properties. A missing property should be interpreted as an absence
of the capability. If a property is missing that defines sub properties all sub
properties should be interpreted as an absence of the capability.

Client capabilities got introduced with the version 3.0 of the protocol. They
therefore only describe capabilities that got introduced in 3.x or later.
Capabilities that existed in the 2.x version of the protocol are still mandatory
for clients. Clients cannot opt out of providing them. So even if a client omits
the ClientCapabilities.textDocument.synchronization it is still required that
the client provides text document synchronization (e.g. open, changed and close
notifications).

interface ClientCapabilities {
        /**
         * Workspace specific client capabilities.
         */
        workspace?: WorkspaceClientCapabilities;

        /**
         * Text document specific client capabilities.
         */
        textDocument?: TextDocumentClientCapabilities;

        /**
         * Experimental client capabilities.
         */
        experimental?: any;

        /**
         * Window specific client capabilities.
	       */
	      window?: WindowClientCapabilities;
}
-}

data ClientCapabilities =
  ClientCapabilities
    { ClientCapabilities -> Maybe WorkspaceClientCapabilities
_workspace    :: Maybe WorkspaceClientCapabilities
    , ClientCapabilities -> Maybe TextDocumentClientCapabilities
_textDocument :: Maybe TextDocumentClientCapabilities
    -- | Capabilities specific to `window/progress` requests. Experimental.
    --
    -- @since 0.10.0.0
    , ClientCapabilities -> Maybe WindowClientCapabilities
_window :: Maybe WindowClientCapabilities
    , ClientCapabilities -> Maybe Object
_experimental :: Maybe A.Object
    } deriving (Int -> ClientCapabilities -> ShowS
[ClientCapabilities] -> ShowS
ClientCapabilities -> String
(Int -> ClientCapabilities -> ShowS)
-> (ClientCapabilities -> String)
-> ([ClientCapabilities] -> ShowS)
-> Show ClientCapabilities
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ClientCapabilities] -> ShowS
$cshowList :: [ClientCapabilities] -> ShowS
show :: ClientCapabilities -> String
$cshow :: ClientCapabilities -> String
showsPrec :: Int -> ClientCapabilities -> ShowS
$cshowsPrec :: Int -> ClientCapabilities -> ShowS
Show, ReadPrec [ClientCapabilities]
ReadPrec ClientCapabilities
Int -> ReadS ClientCapabilities
ReadS [ClientCapabilities]
(Int -> ReadS ClientCapabilities)
-> ReadS [ClientCapabilities]
-> ReadPrec ClientCapabilities
-> ReadPrec [ClientCapabilities]
-> Read ClientCapabilities
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [ClientCapabilities]
$creadListPrec :: ReadPrec [ClientCapabilities]
readPrec :: ReadPrec ClientCapabilities
$creadPrec :: ReadPrec ClientCapabilities
readList :: ReadS [ClientCapabilities]
$creadList :: ReadS [ClientCapabilities]
readsPrec :: Int -> ReadS ClientCapabilities
$creadsPrec :: Int -> ReadS ClientCapabilities
Read, ClientCapabilities -> ClientCapabilities -> Bool
(ClientCapabilities -> ClientCapabilities -> Bool)
-> (ClientCapabilities -> ClientCapabilities -> Bool)
-> Eq ClientCapabilities
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ClientCapabilities -> ClientCapabilities -> Bool
$c/= :: ClientCapabilities -> ClientCapabilities -> Bool
== :: ClientCapabilities -> ClientCapabilities -> Bool
$c== :: ClientCapabilities -> ClientCapabilities -> Bool
Eq)

$(deriveJSON lspOptions ''ClientCapabilities)

instance Default ClientCapabilities where
  def :: ClientCapabilities
def = Maybe WorkspaceClientCapabilities
-> Maybe TextDocumentClientCapabilities
-> Maybe WindowClientCapabilities
-> Maybe Object
-> ClientCapabilities
ClientCapabilities Maybe WorkspaceClientCapabilities
forall a. Default a => a
def Maybe TextDocumentClientCapabilities
forall a. Default a => a
def Maybe WindowClientCapabilities
forall a. Default a => a
def Maybe Object
forall a. Default a => a
def