{- ORMOLU_DISABLE -}
{- HLINT ignore -}
-- THIS IS A GENERATED FILE, DO NOT EDIT

{-# OPTIONS_GHC -Wno-unused-imports #-}
{-# OPTIONS_GHC -Wno-unused-matches #-}
{-# OPTIONS_GHC -Wno-deprecations #-}
module Language.LSP.Protocol.Internal.Types.TextDocumentClientCapabilities where

import Control.DeepSeq
import Data.Hashable
import GHC.Generics
import Language.LSP.Protocol.Utils.Misc
import Prettyprinter
import qualified Data.Aeson as Aeson
import qualified Data.Row.Aeson as Aeson
import qualified Data.Row.Hashable as Hashable
import qualified Language.LSP.Protocol.Internal.Types.CallHierarchyClientCapabilities
import qualified Language.LSP.Protocol.Internal.Types.CodeActionClientCapabilities
import qualified Language.LSP.Protocol.Internal.Types.CodeLensClientCapabilities
import qualified Language.LSP.Protocol.Internal.Types.CompletionClientCapabilities
import qualified Language.LSP.Protocol.Internal.Types.DeclarationClientCapabilities
import qualified Language.LSP.Protocol.Internal.Types.DefinitionClientCapabilities
import qualified Language.LSP.Protocol.Internal.Types.DiagnosticClientCapabilities
import qualified Language.LSP.Protocol.Internal.Types.DocumentColorClientCapabilities
import qualified Language.LSP.Protocol.Internal.Types.DocumentFormattingClientCapabilities
import qualified Language.LSP.Protocol.Internal.Types.DocumentHighlightClientCapabilities
import qualified Language.LSP.Protocol.Internal.Types.DocumentLinkClientCapabilities
import qualified Language.LSP.Protocol.Internal.Types.DocumentOnTypeFormattingClientCapabilities
import qualified Language.LSP.Protocol.Internal.Types.DocumentRangeFormattingClientCapabilities
import qualified Language.LSP.Protocol.Internal.Types.DocumentSymbolClientCapabilities
import qualified Language.LSP.Protocol.Internal.Types.FoldingRangeClientCapabilities
import qualified Language.LSP.Protocol.Internal.Types.HoverClientCapabilities
import qualified Language.LSP.Protocol.Internal.Types.ImplementationClientCapabilities
import qualified Language.LSP.Protocol.Internal.Types.InlayHintClientCapabilities
import qualified Language.LSP.Protocol.Internal.Types.InlineValueClientCapabilities
import qualified Language.LSP.Protocol.Internal.Types.LinkedEditingRangeClientCapabilities
import qualified Language.LSP.Protocol.Internal.Types.MonikerClientCapabilities
import qualified Language.LSP.Protocol.Internal.Types.PublishDiagnosticsClientCapabilities
import qualified Language.LSP.Protocol.Internal.Types.ReferenceClientCapabilities
import qualified Language.LSP.Protocol.Internal.Types.RenameClientCapabilities
import qualified Language.LSP.Protocol.Internal.Types.SelectionRangeClientCapabilities
import qualified Language.LSP.Protocol.Internal.Types.SemanticTokensClientCapabilities
import qualified Language.LSP.Protocol.Internal.Types.SignatureHelpClientCapabilities
import qualified Language.LSP.Protocol.Internal.Types.TextDocumentSyncClientCapabilities
import qualified Language.LSP.Protocol.Internal.Types.TypeDefinitionClientCapabilities
import qualified Language.LSP.Protocol.Internal.Types.TypeHierarchyClientCapabilities
import qualified Language.LSP.Protocol.Types.Common

{-|
Text document specific client capabilities.
-}
data TextDocumentClientCapabilities = TextDocumentClientCapabilities 
  { {-|
  Defines which synchronization capabilities the client supports.
  -}
  TextDocumentClientCapabilities
-> Maybe TextDocumentSyncClientCapabilities
_synchronization :: (Maybe Language.LSP.Protocol.Internal.Types.TextDocumentSyncClientCapabilities.TextDocumentSyncClientCapabilities)
  , {-|
  Capabilities specific to the `textDocument/completion` request.
  -}
  TextDocumentClientCapabilities
-> Maybe CompletionClientCapabilities
_completion :: (Maybe Language.LSP.Protocol.Internal.Types.CompletionClientCapabilities.CompletionClientCapabilities)
  , {-|
  Capabilities specific to the `textDocument/hover` request.
  -}
  TextDocumentClientCapabilities -> Maybe HoverClientCapabilities
_hover :: (Maybe Language.LSP.Protocol.Internal.Types.HoverClientCapabilities.HoverClientCapabilities)
  , {-|
  Capabilities specific to the `textDocument/signatureHelp` request.
  -}
  TextDocumentClientCapabilities
-> Maybe SignatureHelpClientCapabilities
_signatureHelp :: (Maybe Language.LSP.Protocol.Internal.Types.SignatureHelpClientCapabilities.SignatureHelpClientCapabilities)
  , {-|
  Capabilities specific to the `textDocument/declaration` request.

  @since 3.14.0
  -}
  TextDocumentClientCapabilities
-> Maybe DeclarationClientCapabilities
_declaration :: (Maybe Language.LSP.Protocol.Internal.Types.DeclarationClientCapabilities.DeclarationClientCapabilities)
  , {-|
  Capabilities specific to the `textDocument/definition` request.
  -}
  TextDocumentClientCapabilities
-> Maybe DefinitionClientCapabilities
_definition :: (Maybe Language.LSP.Protocol.Internal.Types.DefinitionClientCapabilities.DefinitionClientCapabilities)
  , {-|
  Capabilities specific to the `textDocument/typeDefinition` request.

  @since 3.6.0
  -}
  TextDocumentClientCapabilities
-> Maybe TypeDefinitionClientCapabilities
_typeDefinition :: (Maybe Language.LSP.Protocol.Internal.Types.TypeDefinitionClientCapabilities.TypeDefinitionClientCapabilities)
  , {-|
  Capabilities specific to the `textDocument/implementation` request.

  @since 3.6.0
  -}
  TextDocumentClientCapabilities
-> Maybe ImplementationClientCapabilities
_implementation :: (Maybe Language.LSP.Protocol.Internal.Types.ImplementationClientCapabilities.ImplementationClientCapabilities)
  , {-|
  Capabilities specific to the `textDocument/references` request.
  -}
  TextDocumentClientCapabilities -> Maybe ReferenceClientCapabilities
_references :: (Maybe Language.LSP.Protocol.Internal.Types.ReferenceClientCapabilities.ReferenceClientCapabilities)
  , {-|
  Capabilities specific to the `textDocument/documentHighlight` request.
  -}
  TextDocumentClientCapabilities
-> Maybe DocumentHighlightClientCapabilities
_documentHighlight :: (Maybe Language.LSP.Protocol.Internal.Types.DocumentHighlightClientCapabilities.DocumentHighlightClientCapabilities)
  , {-|
  Capabilities specific to the `textDocument/documentSymbol` request.
  -}
  TextDocumentClientCapabilities
-> Maybe DocumentSymbolClientCapabilities
_documentSymbol :: (Maybe Language.LSP.Protocol.Internal.Types.DocumentSymbolClientCapabilities.DocumentSymbolClientCapabilities)
  , {-|
  Capabilities specific to the `textDocument/codeAction` request.
  -}
  TextDocumentClientCapabilities
-> Maybe CodeActionClientCapabilities
_codeAction :: (Maybe Language.LSP.Protocol.Internal.Types.CodeActionClientCapabilities.CodeActionClientCapabilities)
  , {-|
  Capabilities specific to the `textDocument/codeLens` request.
  -}
  TextDocumentClientCapabilities -> Maybe CodeLensClientCapabilities
_codeLens :: (Maybe Language.LSP.Protocol.Internal.Types.CodeLensClientCapabilities.CodeLensClientCapabilities)
  , {-|
  Capabilities specific to the `textDocument/documentLink` request.
  -}
  TextDocumentClientCapabilities
-> Maybe DocumentLinkClientCapabilities
_documentLink :: (Maybe Language.LSP.Protocol.Internal.Types.DocumentLinkClientCapabilities.DocumentLinkClientCapabilities)
  , {-|
  Capabilities specific to the `textDocument/documentColor` and the
  `textDocument/colorPresentation` request.

  @since 3.6.0
  -}
  TextDocumentClientCapabilities
-> Maybe DocumentColorClientCapabilities
_colorProvider :: (Maybe Language.LSP.Protocol.Internal.Types.DocumentColorClientCapabilities.DocumentColorClientCapabilities)
  , {-|
  Capabilities specific to the `textDocument/formatting` request.
  -}
  TextDocumentClientCapabilities
-> Maybe DocumentFormattingClientCapabilities
_formatting :: (Maybe Language.LSP.Protocol.Internal.Types.DocumentFormattingClientCapabilities.DocumentFormattingClientCapabilities)
  , {-|
  Capabilities specific to the `textDocument/rangeFormatting` request.
  -}
  TextDocumentClientCapabilities
-> Maybe DocumentRangeFormattingClientCapabilities
_rangeFormatting :: (Maybe Language.LSP.Protocol.Internal.Types.DocumentRangeFormattingClientCapabilities.DocumentRangeFormattingClientCapabilities)
  , {-|
  Capabilities specific to the `textDocument/onTypeFormatting` request.
  -}
  TextDocumentClientCapabilities
-> Maybe DocumentOnTypeFormattingClientCapabilities
_onTypeFormatting :: (Maybe Language.LSP.Protocol.Internal.Types.DocumentOnTypeFormattingClientCapabilities.DocumentOnTypeFormattingClientCapabilities)
  , {-|
  Capabilities specific to the `textDocument/rename` request.
  -}
  TextDocumentClientCapabilities -> Maybe RenameClientCapabilities
_rename :: (Maybe Language.LSP.Protocol.Internal.Types.RenameClientCapabilities.RenameClientCapabilities)
  , {-|
  Capabilities specific to the `textDocument/foldingRange` request.

  @since 3.10.0
  -}
  TextDocumentClientCapabilities
-> Maybe FoldingRangeClientCapabilities
_foldingRange :: (Maybe Language.LSP.Protocol.Internal.Types.FoldingRangeClientCapabilities.FoldingRangeClientCapabilities)
  , {-|
  Capabilities specific to the `textDocument/selectionRange` request.

  @since 3.15.0
  -}
  TextDocumentClientCapabilities
-> Maybe SelectionRangeClientCapabilities
_selectionRange :: (Maybe Language.LSP.Protocol.Internal.Types.SelectionRangeClientCapabilities.SelectionRangeClientCapabilities)
  , {-|
  Capabilities specific to the `textDocument/publishDiagnostics` notification.
  -}
  TextDocumentClientCapabilities
-> Maybe PublishDiagnosticsClientCapabilities
_publishDiagnostics :: (Maybe Language.LSP.Protocol.Internal.Types.PublishDiagnosticsClientCapabilities.PublishDiagnosticsClientCapabilities)
  , {-|
  Capabilities specific to the various call hierarchy requests.

  @since 3.16.0
  -}
  TextDocumentClientCapabilities
-> Maybe CallHierarchyClientCapabilities
_callHierarchy :: (Maybe Language.LSP.Protocol.Internal.Types.CallHierarchyClientCapabilities.CallHierarchyClientCapabilities)
  , {-|
  Capabilities specific to the various semantic token request.

  @since 3.16.0
  -}
  TextDocumentClientCapabilities
-> Maybe SemanticTokensClientCapabilities
_semanticTokens :: (Maybe Language.LSP.Protocol.Internal.Types.SemanticTokensClientCapabilities.SemanticTokensClientCapabilities)
  , {-|
  Capabilities specific to the `textDocument/linkedEditingRange` request.

  @since 3.16.0
  -}
  TextDocumentClientCapabilities
-> Maybe LinkedEditingRangeClientCapabilities
_linkedEditingRange :: (Maybe Language.LSP.Protocol.Internal.Types.LinkedEditingRangeClientCapabilities.LinkedEditingRangeClientCapabilities)
  , {-|
  Client capabilities specific to the `textDocument/moniker` request.

  @since 3.16.0
  -}
  TextDocumentClientCapabilities -> Maybe MonikerClientCapabilities
_moniker :: (Maybe Language.LSP.Protocol.Internal.Types.MonikerClientCapabilities.MonikerClientCapabilities)
  , {-|
  Capabilities specific to the various type hierarchy requests.

  @since 3.17.0
  -}
  TextDocumentClientCapabilities
-> Maybe TypeHierarchyClientCapabilities
_typeHierarchy :: (Maybe Language.LSP.Protocol.Internal.Types.TypeHierarchyClientCapabilities.TypeHierarchyClientCapabilities)
  , {-|
  Capabilities specific to the `textDocument/inlineValue` request.

  @since 3.17.0
  -}
  TextDocumentClientCapabilities
-> Maybe InlineValueClientCapabilities
_inlineValue :: (Maybe Language.LSP.Protocol.Internal.Types.InlineValueClientCapabilities.InlineValueClientCapabilities)
  , {-|
  Capabilities specific to the `textDocument/inlayHint` request.

  @since 3.17.0
  -}
  TextDocumentClientCapabilities -> Maybe InlayHintClientCapabilities
_inlayHint :: (Maybe Language.LSP.Protocol.Internal.Types.InlayHintClientCapabilities.InlayHintClientCapabilities)
  , {-|
  Capabilities specific to the diagnostic pull model.

  @since 3.17.0
  -}
  TextDocumentClientCapabilities
-> Maybe DiagnosticClientCapabilities
_diagnostic :: (Maybe Language.LSP.Protocol.Internal.Types.DiagnosticClientCapabilities.DiagnosticClientCapabilities)
  }
  deriving stock (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
$cshowsPrec :: Int -> TextDocumentClientCapabilities -> ShowS
showsPrec :: Int -> TextDocumentClientCapabilities -> ShowS
$cshow :: TextDocumentClientCapabilities -> String
show :: TextDocumentClientCapabilities -> String
$cshowList :: [TextDocumentClientCapabilities] -> ShowS
showList :: [TextDocumentClientCapabilities] -> ShowS
Show, TextDocumentClientCapabilities
-> TextDocumentClientCapabilities -> Bool
(TextDocumentClientCapabilities
 -> TextDocumentClientCapabilities -> Bool)
-> (TextDocumentClientCapabilities
    -> TextDocumentClientCapabilities -> Bool)
-> Eq TextDocumentClientCapabilities
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: TextDocumentClientCapabilities
-> TextDocumentClientCapabilities -> Bool
== :: TextDocumentClientCapabilities
-> TextDocumentClientCapabilities -> Bool
$c/= :: TextDocumentClientCapabilities
-> TextDocumentClientCapabilities -> Bool
/= :: TextDocumentClientCapabilities
-> TextDocumentClientCapabilities -> Bool
Eq, Eq TextDocumentClientCapabilities
Eq TextDocumentClientCapabilities =>
(TextDocumentClientCapabilities
 -> TextDocumentClientCapabilities -> Ordering)
-> (TextDocumentClientCapabilities
    -> TextDocumentClientCapabilities -> Bool)
-> (TextDocumentClientCapabilities
    -> TextDocumentClientCapabilities -> Bool)
-> (TextDocumentClientCapabilities
    -> TextDocumentClientCapabilities -> Bool)
-> (TextDocumentClientCapabilities
    -> TextDocumentClientCapabilities -> Bool)
-> (TextDocumentClientCapabilities
    -> TextDocumentClientCapabilities
    -> TextDocumentClientCapabilities)
-> (TextDocumentClientCapabilities
    -> TextDocumentClientCapabilities
    -> TextDocumentClientCapabilities)
-> Ord TextDocumentClientCapabilities
TextDocumentClientCapabilities
-> TextDocumentClientCapabilities -> Bool
TextDocumentClientCapabilities
-> TextDocumentClientCapabilities -> Ordering
TextDocumentClientCapabilities
-> TextDocumentClientCapabilities -> TextDocumentClientCapabilities
forall a.
Eq a =>
(a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
$ccompare :: TextDocumentClientCapabilities
-> TextDocumentClientCapabilities -> Ordering
compare :: TextDocumentClientCapabilities
-> TextDocumentClientCapabilities -> Ordering
$c< :: TextDocumentClientCapabilities
-> TextDocumentClientCapabilities -> Bool
< :: TextDocumentClientCapabilities
-> TextDocumentClientCapabilities -> Bool
$c<= :: TextDocumentClientCapabilities
-> TextDocumentClientCapabilities -> Bool
<= :: TextDocumentClientCapabilities
-> TextDocumentClientCapabilities -> Bool
$c> :: TextDocumentClientCapabilities
-> TextDocumentClientCapabilities -> Bool
> :: TextDocumentClientCapabilities
-> TextDocumentClientCapabilities -> Bool
$c>= :: TextDocumentClientCapabilities
-> TextDocumentClientCapabilities -> Bool
>= :: TextDocumentClientCapabilities
-> TextDocumentClientCapabilities -> Bool
$cmax :: TextDocumentClientCapabilities
-> TextDocumentClientCapabilities -> TextDocumentClientCapabilities
max :: TextDocumentClientCapabilities
-> TextDocumentClientCapabilities -> TextDocumentClientCapabilities
$cmin :: TextDocumentClientCapabilities
-> TextDocumentClientCapabilities -> TextDocumentClientCapabilities
min :: TextDocumentClientCapabilities
-> TextDocumentClientCapabilities -> TextDocumentClientCapabilities
Ord, (forall x.
 TextDocumentClientCapabilities
 -> Rep TextDocumentClientCapabilities x)
-> (forall x.
    Rep TextDocumentClientCapabilities x
    -> TextDocumentClientCapabilities)
-> Generic TextDocumentClientCapabilities
forall x.
Rep TextDocumentClientCapabilities x
-> TextDocumentClientCapabilities
forall x.
TextDocumentClientCapabilities
-> Rep TextDocumentClientCapabilities x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x.
TextDocumentClientCapabilities
-> Rep TextDocumentClientCapabilities x
from :: forall x.
TextDocumentClientCapabilities
-> Rep TextDocumentClientCapabilities x
$cto :: forall x.
Rep TextDocumentClientCapabilities x
-> TextDocumentClientCapabilities
to :: forall x.
Rep TextDocumentClientCapabilities x
-> TextDocumentClientCapabilities
Generic)
  deriving anyclass (TextDocumentClientCapabilities -> ()
(TextDocumentClientCapabilities -> ())
-> NFData TextDocumentClientCapabilities
forall a. (a -> ()) -> NFData a
$crnf :: TextDocumentClientCapabilities -> ()
rnf :: TextDocumentClientCapabilities -> ()
NFData, Eq TextDocumentClientCapabilities
Eq TextDocumentClientCapabilities =>
(Int -> TextDocumentClientCapabilities -> Int)
-> (TextDocumentClientCapabilities -> Int)
-> Hashable TextDocumentClientCapabilities
Int -> TextDocumentClientCapabilities -> Int
TextDocumentClientCapabilities -> Int
forall a. Eq a => (Int -> a -> Int) -> (a -> Int) -> Hashable a
$chashWithSalt :: Int -> TextDocumentClientCapabilities -> Int
hashWithSalt :: Int -> TextDocumentClientCapabilities -> Int
$chash :: TextDocumentClientCapabilities -> Int
hash :: TextDocumentClientCapabilities -> Int
Hashable)
  deriving (forall ann. TextDocumentClientCapabilities -> Doc ann)
-> (forall ann. [TextDocumentClientCapabilities] -> Doc ann)
-> Pretty TextDocumentClientCapabilities
forall ann. [TextDocumentClientCapabilities] -> Doc ann
forall ann. TextDocumentClientCapabilities -> Doc ann
forall a.
(forall ann. a -> Doc ann)
-> (forall ann. [a] -> Doc ann) -> Pretty a
$cpretty :: forall ann. TextDocumentClientCapabilities -> Doc ann
pretty :: forall ann. TextDocumentClientCapabilities -> Doc ann
$cprettyList :: forall ann. [TextDocumentClientCapabilities] -> Doc ann
prettyList :: forall ann. [TextDocumentClientCapabilities] -> Doc ann
Pretty via (ViaJSON TextDocumentClientCapabilities)

instance Aeson.ToJSON TextDocumentClientCapabilities where
  toJSON :: TextDocumentClientCapabilities -> Value
toJSON (TextDocumentClientCapabilities Maybe TextDocumentSyncClientCapabilities
arg0 Maybe CompletionClientCapabilities
arg1 Maybe HoverClientCapabilities
arg2 Maybe SignatureHelpClientCapabilities
arg3 Maybe DeclarationClientCapabilities
arg4 Maybe DefinitionClientCapabilities
arg5 Maybe TypeDefinitionClientCapabilities
arg6 Maybe ImplementationClientCapabilities
arg7 Maybe ReferenceClientCapabilities
arg8 Maybe DocumentHighlightClientCapabilities
arg9 Maybe DocumentSymbolClientCapabilities
arg10 Maybe CodeActionClientCapabilities
arg11 Maybe CodeLensClientCapabilities
arg12 Maybe DocumentLinkClientCapabilities
arg13 Maybe DocumentColorClientCapabilities
arg14 Maybe DocumentFormattingClientCapabilities
arg15 Maybe DocumentRangeFormattingClientCapabilities
arg16 Maybe DocumentOnTypeFormattingClientCapabilities
arg17 Maybe RenameClientCapabilities
arg18 Maybe FoldingRangeClientCapabilities
arg19 Maybe SelectionRangeClientCapabilities
arg20 Maybe PublishDiagnosticsClientCapabilities
arg21 Maybe CallHierarchyClientCapabilities
arg22 Maybe SemanticTokensClientCapabilities
arg23 Maybe LinkedEditingRangeClientCapabilities
arg24 Maybe MonikerClientCapabilities
arg25 Maybe TypeHierarchyClientCapabilities
arg26 Maybe InlineValueClientCapabilities
arg27 Maybe InlayHintClientCapabilities
arg28 Maybe DiagnosticClientCapabilities
arg29) = [Pair] -> Value
Aeson.object ([Pair] -> Value) -> [Pair] -> Value
forall a b. (a -> b) -> a -> b
$ [[Pair]] -> [Pair]
forall (t :: * -> *) a. Foldable t => t [a] -> [a]
concat ([[Pair]] -> [Pair]) -> [[Pair]] -> [Pair]
forall a b. (a -> b) -> a -> b
$  [String
"synchronization" String -> Maybe TextDocumentSyncClientCapabilities -> [Pair]
forall e kv v.
(KeyValue e kv, ToJSON v) =>
String -> Maybe v -> [kv]
Language.LSP.Protocol.Types.Common..=? Maybe TextDocumentSyncClientCapabilities
arg0
    ,String
"completion" String -> Maybe CompletionClientCapabilities -> [Pair]
forall e kv v.
(KeyValue e kv, ToJSON v) =>
String -> Maybe v -> [kv]
Language.LSP.Protocol.Types.Common..=? Maybe CompletionClientCapabilities
arg1
    ,String
"hover" String -> Maybe HoverClientCapabilities -> [Pair]
forall e kv v.
(KeyValue e kv, ToJSON v) =>
String -> Maybe v -> [kv]
Language.LSP.Protocol.Types.Common..=? Maybe HoverClientCapabilities
arg2
    ,String
"signatureHelp" String -> Maybe SignatureHelpClientCapabilities -> [Pair]
forall e kv v.
(KeyValue e kv, ToJSON v) =>
String -> Maybe v -> [kv]
Language.LSP.Protocol.Types.Common..=? Maybe SignatureHelpClientCapabilities
arg3
    ,String
"declaration" String -> Maybe DeclarationClientCapabilities -> [Pair]
forall e kv v.
(KeyValue e kv, ToJSON v) =>
String -> Maybe v -> [kv]
Language.LSP.Protocol.Types.Common..=? Maybe DeclarationClientCapabilities
arg4
    ,String
"definition" String -> Maybe DefinitionClientCapabilities -> [Pair]
forall e kv v.
(KeyValue e kv, ToJSON v) =>
String -> Maybe v -> [kv]
Language.LSP.Protocol.Types.Common..=? Maybe DefinitionClientCapabilities
arg5
    ,String
"typeDefinition" String -> Maybe TypeDefinitionClientCapabilities -> [Pair]
forall e kv v.
(KeyValue e kv, ToJSON v) =>
String -> Maybe v -> [kv]
Language.LSP.Protocol.Types.Common..=? Maybe TypeDefinitionClientCapabilities
arg6
    ,String
"implementation" String -> Maybe ImplementationClientCapabilities -> [Pair]
forall e kv v.
(KeyValue e kv, ToJSON v) =>
String -> Maybe v -> [kv]
Language.LSP.Protocol.Types.Common..=? Maybe ImplementationClientCapabilities
arg7
    ,String
"references" String -> Maybe ReferenceClientCapabilities -> [Pair]
forall e kv v.
(KeyValue e kv, ToJSON v) =>
String -> Maybe v -> [kv]
Language.LSP.Protocol.Types.Common..=? Maybe ReferenceClientCapabilities
arg8
    ,String
"documentHighlight" String -> Maybe DocumentHighlightClientCapabilities -> [Pair]
forall e kv v.
(KeyValue e kv, ToJSON v) =>
String -> Maybe v -> [kv]
Language.LSP.Protocol.Types.Common..=? Maybe DocumentHighlightClientCapabilities
arg9
    ,String
"documentSymbol" String -> Maybe DocumentSymbolClientCapabilities -> [Pair]
forall e kv v.
(KeyValue e kv, ToJSON v) =>
String -> Maybe v -> [kv]
Language.LSP.Protocol.Types.Common..=? Maybe DocumentSymbolClientCapabilities
arg10
    ,String
"codeAction" String -> Maybe CodeActionClientCapabilities -> [Pair]
forall e kv v.
(KeyValue e kv, ToJSON v) =>
String -> Maybe v -> [kv]
Language.LSP.Protocol.Types.Common..=? Maybe CodeActionClientCapabilities
arg11
    ,String
"codeLens" String -> Maybe CodeLensClientCapabilities -> [Pair]
forall e kv v.
(KeyValue e kv, ToJSON v) =>
String -> Maybe v -> [kv]
Language.LSP.Protocol.Types.Common..=? Maybe CodeLensClientCapabilities
arg12
    ,String
"documentLink" String -> Maybe DocumentLinkClientCapabilities -> [Pair]
forall e kv v.
(KeyValue e kv, ToJSON v) =>
String -> Maybe v -> [kv]
Language.LSP.Protocol.Types.Common..=? Maybe DocumentLinkClientCapabilities
arg13
    ,String
"colorProvider" String -> Maybe DocumentColorClientCapabilities -> [Pair]
forall e kv v.
(KeyValue e kv, ToJSON v) =>
String -> Maybe v -> [kv]
Language.LSP.Protocol.Types.Common..=? Maybe DocumentColorClientCapabilities
arg14
    ,String
"formatting" String -> Maybe DocumentFormattingClientCapabilities -> [Pair]
forall e kv v.
(KeyValue e kv, ToJSON v) =>
String -> Maybe v -> [kv]
Language.LSP.Protocol.Types.Common..=? Maybe DocumentFormattingClientCapabilities
arg15
    ,String
"rangeFormatting" String -> Maybe DocumentRangeFormattingClientCapabilities -> [Pair]
forall e kv v.
(KeyValue e kv, ToJSON v) =>
String -> Maybe v -> [kv]
Language.LSP.Protocol.Types.Common..=? Maybe DocumentRangeFormattingClientCapabilities
arg16
    ,String
"onTypeFormatting" String
-> Maybe DocumentOnTypeFormattingClientCapabilities -> [Pair]
forall e kv v.
(KeyValue e kv, ToJSON v) =>
String -> Maybe v -> [kv]
Language.LSP.Protocol.Types.Common..=? Maybe DocumentOnTypeFormattingClientCapabilities
arg17
    ,String
"rename" String -> Maybe RenameClientCapabilities -> [Pair]
forall e kv v.
(KeyValue e kv, ToJSON v) =>
String -> Maybe v -> [kv]
Language.LSP.Protocol.Types.Common..=? Maybe RenameClientCapabilities
arg18
    ,String
"foldingRange" String -> Maybe FoldingRangeClientCapabilities -> [Pair]
forall e kv v.
(KeyValue e kv, ToJSON v) =>
String -> Maybe v -> [kv]
Language.LSP.Protocol.Types.Common..=? Maybe FoldingRangeClientCapabilities
arg19
    ,String
"selectionRange" String -> Maybe SelectionRangeClientCapabilities -> [Pair]
forall e kv v.
(KeyValue e kv, ToJSON v) =>
String -> Maybe v -> [kv]
Language.LSP.Protocol.Types.Common..=? Maybe SelectionRangeClientCapabilities
arg20
    ,String
"publishDiagnostics" String -> Maybe PublishDiagnosticsClientCapabilities -> [Pair]
forall e kv v.
(KeyValue e kv, ToJSON v) =>
String -> Maybe v -> [kv]
Language.LSP.Protocol.Types.Common..=? Maybe PublishDiagnosticsClientCapabilities
arg21
    ,String
"callHierarchy" String -> Maybe CallHierarchyClientCapabilities -> [Pair]
forall e kv v.
(KeyValue e kv, ToJSON v) =>
String -> Maybe v -> [kv]
Language.LSP.Protocol.Types.Common..=? Maybe CallHierarchyClientCapabilities
arg22
    ,String
"semanticTokens" String -> Maybe SemanticTokensClientCapabilities -> [Pair]
forall e kv v.
(KeyValue e kv, ToJSON v) =>
String -> Maybe v -> [kv]
Language.LSP.Protocol.Types.Common..=? Maybe SemanticTokensClientCapabilities
arg23
    ,String
"linkedEditingRange" String -> Maybe LinkedEditingRangeClientCapabilities -> [Pair]
forall e kv v.
(KeyValue e kv, ToJSON v) =>
String -> Maybe v -> [kv]
Language.LSP.Protocol.Types.Common..=? Maybe LinkedEditingRangeClientCapabilities
arg24
    ,String
"moniker" String -> Maybe MonikerClientCapabilities -> [Pair]
forall e kv v.
(KeyValue e kv, ToJSON v) =>
String -> Maybe v -> [kv]
Language.LSP.Protocol.Types.Common..=? Maybe MonikerClientCapabilities
arg25
    ,String
"typeHierarchy" String -> Maybe TypeHierarchyClientCapabilities -> [Pair]
forall e kv v.
(KeyValue e kv, ToJSON v) =>
String -> Maybe v -> [kv]
Language.LSP.Protocol.Types.Common..=? Maybe TypeHierarchyClientCapabilities
arg26
    ,String
"inlineValue" String -> Maybe InlineValueClientCapabilities -> [Pair]
forall e kv v.
(KeyValue e kv, ToJSON v) =>
String -> Maybe v -> [kv]
Language.LSP.Protocol.Types.Common..=? Maybe InlineValueClientCapabilities
arg27
    ,String
"inlayHint" String -> Maybe InlayHintClientCapabilities -> [Pair]
forall e kv v.
(KeyValue e kv, ToJSON v) =>
String -> Maybe v -> [kv]
Language.LSP.Protocol.Types.Common..=? Maybe InlayHintClientCapabilities
arg28
    ,String
"diagnostic" String -> Maybe DiagnosticClientCapabilities -> [Pair]
forall e kv v.
(KeyValue e kv, ToJSON v) =>
String -> Maybe v -> [kv]
Language.LSP.Protocol.Types.Common..=? Maybe DiagnosticClientCapabilities
arg29]

instance Aeson.FromJSON TextDocumentClientCapabilities where
  parseJSON :: Value -> Parser TextDocumentClientCapabilities
parseJSON = String
-> (Object -> Parser TextDocumentClientCapabilities)
-> Value
-> Parser TextDocumentClientCapabilities
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Aeson.withObject String
"TextDocumentClientCapabilities" ((Object -> Parser TextDocumentClientCapabilities)
 -> Value -> Parser TextDocumentClientCapabilities)
-> (Object -> Parser TextDocumentClientCapabilities)
-> Value
-> Parser TextDocumentClientCapabilities
forall a b. (a -> b) -> a -> b
$ \Object
arg -> Maybe TextDocumentSyncClientCapabilities
-> Maybe CompletionClientCapabilities
-> Maybe HoverClientCapabilities
-> Maybe SignatureHelpClientCapabilities
-> Maybe DeclarationClientCapabilities
-> Maybe DefinitionClientCapabilities
-> Maybe TypeDefinitionClientCapabilities
-> Maybe ImplementationClientCapabilities
-> Maybe ReferenceClientCapabilities
-> Maybe DocumentHighlightClientCapabilities
-> Maybe DocumentSymbolClientCapabilities
-> Maybe CodeActionClientCapabilities
-> Maybe CodeLensClientCapabilities
-> Maybe DocumentLinkClientCapabilities
-> Maybe DocumentColorClientCapabilities
-> Maybe DocumentFormattingClientCapabilities
-> Maybe DocumentRangeFormattingClientCapabilities
-> Maybe DocumentOnTypeFormattingClientCapabilities
-> Maybe RenameClientCapabilities
-> Maybe FoldingRangeClientCapabilities
-> Maybe SelectionRangeClientCapabilities
-> Maybe PublishDiagnosticsClientCapabilities
-> Maybe CallHierarchyClientCapabilities
-> Maybe SemanticTokensClientCapabilities
-> Maybe LinkedEditingRangeClientCapabilities
-> Maybe MonikerClientCapabilities
-> Maybe TypeHierarchyClientCapabilities
-> Maybe InlineValueClientCapabilities
-> Maybe InlayHintClientCapabilities
-> Maybe DiagnosticClientCapabilities
-> TextDocumentClientCapabilities
TextDocumentClientCapabilities (Maybe TextDocumentSyncClientCapabilities
 -> Maybe CompletionClientCapabilities
 -> Maybe HoverClientCapabilities
 -> Maybe SignatureHelpClientCapabilities
 -> Maybe DeclarationClientCapabilities
 -> Maybe DefinitionClientCapabilities
 -> Maybe TypeDefinitionClientCapabilities
 -> Maybe ImplementationClientCapabilities
 -> Maybe ReferenceClientCapabilities
 -> Maybe DocumentHighlightClientCapabilities
 -> Maybe DocumentSymbolClientCapabilities
 -> Maybe CodeActionClientCapabilities
 -> Maybe CodeLensClientCapabilities
 -> Maybe DocumentLinkClientCapabilities
 -> Maybe DocumentColorClientCapabilities
 -> Maybe DocumentFormattingClientCapabilities
 -> Maybe DocumentRangeFormattingClientCapabilities
 -> Maybe DocumentOnTypeFormattingClientCapabilities
 -> Maybe RenameClientCapabilities
 -> Maybe FoldingRangeClientCapabilities
 -> Maybe SelectionRangeClientCapabilities
 -> Maybe PublishDiagnosticsClientCapabilities
 -> Maybe CallHierarchyClientCapabilities
 -> Maybe SemanticTokensClientCapabilities
 -> Maybe LinkedEditingRangeClientCapabilities
 -> Maybe MonikerClientCapabilities
 -> Maybe TypeHierarchyClientCapabilities
 -> Maybe InlineValueClientCapabilities
 -> Maybe InlayHintClientCapabilities
 -> Maybe DiagnosticClientCapabilities
 -> TextDocumentClientCapabilities)
-> Parser (Maybe TextDocumentSyncClientCapabilities)
-> Parser
     (Maybe CompletionClientCapabilities
      -> Maybe HoverClientCapabilities
      -> Maybe SignatureHelpClientCapabilities
      -> Maybe DeclarationClientCapabilities
      -> Maybe DefinitionClientCapabilities
      -> Maybe TypeDefinitionClientCapabilities
      -> Maybe ImplementationClientCapabilities
      -> Maybe ReferenceClientCapabilities
      -> Maybe DocumentHighlightClientCapabilities
      -> Maybe DocumentSymbolClientCapabilities
      -> Maybe CodeActionClientCapabilities
      -> Maybe CodeLensClientCapabilities
      -> Maybe DocumentLinkClientCapabilities
      -> Maybe DocumentColorClientCapabilities
      -> Maybe DocumentFormattingClientCapabilities
      -> Maybe DocumentRangeFormattingClientCapabilities
      -> Maybe DocumentOnTypeFormattingClientCapabilities
      -> Maybe RenameClientCapabilities
      -> Maybe FoldingRangeClientCapabilities
      -> Maybe SelectionRangeClientCapabilities
      -> Maybe PublishDiagnosticsClientCapabilities
      -> Maybe CallHierarchyClientCapabilities
      -> Maybe SemanticTokensClientCapabilities
      -> Maybe LinkedEditingRangeClientCapabilities
      -> Maybe MonikerClientCapabilities
      -> Maybe TypeHierarchyClientCapabilities
      -> Maybe InlineValueClientCapabilities
      -> Maybe InlayHintClientCapabilities
      -> Maybe DiagnosticClientCapabilities
      -> TextDocumentClientCapabilities)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
arg Object -> Key -> Parser (Maybe TextDocumentSyncClientCapabilities)
forall v. FromJSON v => Object -> Key -> Parser (Maybe v)
Language.LSP.Protocol.Types.Common..:!? Key
"synchronization" Parser
  (Maybe CompletionClientCapabilities
   -> Maybe HoverClientCapabilities
   -> Maybe SignatureHelpClientCapabilities
   -> Maybe DeclarationClientCapabilities
   -> Maybe DefinitionClientCapabilities
   -> Maybe TypeDefinitionClientCapabilities
   -> Maybe ImplementationClientCapabilities
   -> Maybe ReferenceClientCapabilities
   -> Maybe DocumentHighlightClientCapabilities
   -> Maybe DocumentSymbolClientCapabilities
   -> Maybe CodeActionClientCapabilities
   -> Maybe CodeLensClientCapabilities
   -> Maybe DocumentLinkClientCapabilities
   -> Maybe DocumentColorClientCapabilities
   -> Maybe DocumentFormattingClientCapabilities
   -> Maybe DocumentRangeFormattingClientCapabilities
   -> Maybe DocumentOnTypeFormattingClientCapabilities
   -> Maybe RenameClientCapabilities
   -> Maybe FoldingRangeClientCapabilities
   -> Maybe SelectionRangeClientCapabilities
   -> Maybe PublishDiagnosticsClientCapabilities
   -> Maybe CallHierarchyClientCapabilities
   -> Maybe SemanticTokensClientCapabilities
   -> Maybe LinkedEditingRangeClientCapabilities
   -> Maybe MonikerClientCapabilities
   -> Maybe TypeHierarchyClientCapabilities
   -> Maybe InlineValueClientCapabilities
   -> Maybe InlayHintClientCapabilities
   -> Maybe DiagnosticClientCapabilities
   -> TextDocumentClientCapabilities)
-> Parser (Maybe CompletionClientCapabilities)
-> Parser
     (Maybe HoverClientCapabilities
      -> Maybe SignatureHelpClientCapabilities
      -> Maybe DeclarationClientCapabilities
      -> Maybe DefinitionClientCapabilities
      -> Maybe TypeDefinitionClientCapabilities
      -> Maybe ImplementationClientCapabilities
      -> Maybe ReferenceClientCapabilities
      -> Maybe DocumentHighlightClientCapabilities
      -> Maybe DocumentSymbolClientCapabilities
      -> Maybe CodeActionClientCapabilities
      -> Maybe CodeLensClientCapabilities
      -> Maybe DocumentLinkClientCapabilities
      -> Maybe DocumentColorClientCapabilities
      -> Maybe DocumentFormattingClientCapabilities
      -> Maybe DocumentRangeFormattingClientCapabilities
      -> Maybe DocumentOnTypeFormattingClientCapabilities
      -> Maybe RenameClientCapabilities
      -> Maybe FoldingRangeClientCapabilities
      -> Maybe SelectionRangeClientCapabilities
      -> Maybe PublishDiagnosticsClientCapabilities
      -> Maybe CallHierarchyClientCapabilities
      -> Maybe SemanticTokensClientCapabilities
      -> Maybe LinkedEditingRangeClientCapabilities
      -> Maybe MonikerClientCapabilities
      -> Maybe TypeHierarchyClientCapabilities
      -> Maybe InlineValueClientCapabilities
      -> Maybe InlayHintClientCapabilities
      -> Maybe DiagnosticClientCapabilities
      -> TextDocumentClientCapabilities)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
arg Object -> Key -> Parser (Maybe CompletionClientCapabilities)
forall v. FromJSON v => Object -> Key -> Parser (Maybe v)
Language.LSP.Protocol.Types.Common..:!? Key
"completion" Parser
  (Maybe HoverClientCapabilities
   -> Maybe SignatureHelpClientCapabilities
   -> Maybe DeclarationClientCapabilities
   -> Maybe DefinitionClientCapabilities
   -> Maybe TypeDefinitionClientCapabilities
   -> Maybe ImplementationClientCapabilities
   -> Maybe ReferenceClientCapabilities
   -> Maybe DocumentHighlightClientCapabilities
   -> Maybe DocumentSymbolClientCapabilities
   -> Maybe CodeActionClientCapabilities
   -> Maybe CodeLensClientCapabilities
   -> Maybe DocumentLinkClientCapabilities
   -> Maybe DocumentColorClientCapabilities
   -> Maybe DocumentFormattingClientCapabilities
   -> Maybe DocumentRangeFormattingClientCapabilities
   -> Maybe DocumentOnTypeFormattingClientCapabilities
   -> Maybe RenameClientCapabilities
   -> Maybe FoldingRangeClientCapabilities
   -> Maybe SelectionRangeClientCapabilities
   -> Maybe PublishDiagnosticsClientCapabilities
   -> Maybe CallHierarchyClientCapabilities
   -> Maybe SemanticTokensClientCapabilities
   -> Maybe LinkedEditingRangeClientCapabilities
   -> Maybe MonikerClientCapabilities
   -> Maybe TypeHierarchyClientCapabilities
   -> Maybe InlineValueClientCapabilities
   -> Maybe InlayHintClientCapabilities
   -> Maybe DiagnosticClientCapabilities
   -> TextDocumentClientCapabilities)
-> Parser (Maybe HoverClientCapabilities)
-> Parser
     (Maybe SignatureHelpClientCapabilities
      -> Maybe DeclarationClientCapabilities
      -> Maybe DefinitionClientCapabilities
      -> Maybe TypeDefinitionClientCapabilities
      -> Maybe ImplementationClientCapabilities
      -> Maybe ReferenceClientCapabilities
      -> Maybe DocumentHighlightClientCapabilities
      -> Maybe DocumentSymbolClientCapabilities
      -> Maybe CodeActionClientCapabilities
      -> Maybe CodeLensClientCapabilities
      -> Maybe DocumentLinkClientCapabilities
      -> Maybe DocumentColorClientCapabilities
      -> Maybe DocumentFormattingClientCapabilities
      -> Maybe DocumentRangeFormattingClientCapabilities
      -> Maybe DocumentOnTypeFormattingClientCapabilities
      -> Maybe RenameClientCapabilities
      -> Maybe FoldingRangeClientCapabilities
      -> Maybe SelectionRangeClientCapabilities
      -> Maybe PublishDiagnosticsClientCapabilities
      -> Maybe CallHierarchyClientCapabilities
      -> Maybe SemanticTokensClientCapabilities
      -> Maybe LinkedEditingRangeClientCapabilities
      -> Maybe MonikerClientCapabilities
      -> Maybe TypeHierarchyClientCapabilities
      -> Maybe InlineValueClientCapabilities
      -> Maybe InlayHintClientCapabilities
      -> Maybe DiagnosticClientCapabilities
      -> TextDocumentClientCapabilities)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
arg Object -> Key -> Parser (Maybe HoverClientCapabilities)
forall v. FromJSON v => Object -> Key -> Parser (Maybe v)
Language.LSP.Protocol.Types.Common..:!? Key
"hover" Parser
  (Maybe SignatureHelpClientCapabilities
   -> Maybe DeclarationClientCapabilities
   -> Maybe DefinitionClientCapabilities
   -> Maybe TypeDefinitionClientCapabilities
   -> Maybe ImplementationClientCapabilities
   -> Maybe ReferenceClientCapabilities
   -> Maybe DocumentHighlightClientCapabilities
   -> Maybe DocumentSymbolClientCapabilities
   -> Maybe CodeActionClientCapabilities
   -> Maybe CodeLensClientCapabilities
   -> Maybe DocumentLinkClientCapabilities
   -> Maybe DocumentColorClientCapabilities
   -> Maybe DocumentFormattingClientCapabilities
   -> Maybe DocumentRangeFormattingClientCapabilities
   -> Maybe DocumentOnTypeFormattingClientCapabilities
   -> Maybe RenameClientCapabilities
   -> Maybe FoldingRangeClientCapabilities
   -> Maybe SelectionRangeClientCapabilities
   -> Maybe PublishDiagnosticsClientCapabilities
   -> Maybe CallHierarchyClientCapabilities
   -> Maybe SemanticTokensClientCapabilities
   -> Maybe LinkedEditingRangeClientCapabilities
   -> Maybe MonikerClientCapabilities
   -> Maybe TypeHierarchyClientCapabilities
   -> Maybe InlineValueClientCapabilities
   -> Maybe InlayHintClientCapabilities
   -> Maybe DiagnosticClientCapabilities
   -> TextDocumentClientCapabilities)
-> Parser (Maybe SignatureHelpClientCapabilities)
-> Parser
     (Maybe DeclarationClientCapabilities
      -> Maybe DefinitionClientCapabilities
      -> Maybe TypeDefinitionClientCapabilities
      -> Maybe ImplementationClientCapabilities
      -> Maybe ReferenceClientCapabilities
      -> Maybe DocumentHighlightClientCapabilities
      -> Maybe DocumentSymbolClientCapabilities
      -> Maybe CodeActionClientCapabilities
      -> Maybe CodeLensClientCapabilities
      -> Maybe DocumentLinkClientCapabilities
      -> Maybe DocumentColorClientCapabilities
      -> Maybe DocumentFormattingClientCapabilities
      -> Maybe DocumentRangeFormattingClientCapabilities
      -> Maybe DocumentOnTypeFormattingClientCapabilities
      -> Maybe RenameClientCapabilities
      -> Maybe FoldingRangeClientCapabilities
      -> Maybe SelectionRangeClientCapabilities
      -> Maybe PublishDiagnosticsClientCapabilities
      -> Maybe CallHierarchyClientCapabilities
      -> Maybe SemanticTokensClientCapabilities
      -> Maybe LinkedEditingRangeClientCapabilities
      -> Maybe MonikerClientCapabilities
      -> Maybe TypeHierarchyClientCapabilities
      -> Maybe InlineValueClientCapabilities
      -> Maybe InlayHintClientCapabilities
      -> Maybe DiagnosticClientCapabilities
      -> TextDocumentClientCapabilities)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
arg Object -> Key -> Parser (Maybe SignatureHelpClientCapabilities)
forall v. FromJSON v => Object -> Key -> Parser (Maybe v)
Language.LSP.Protocol.Types.Common..:!? Key
"signatureHelp" Parser
  (Maybe DeclarationClientCapabilities
   -> Maybe DefinitionClientCapabilities
   -> Maybe TypeDefinitionClientCapabilities
   -> Maybe ImplementationClientCapabilities
   -> Maybe ReferenceClientCapabilities
   -> Maybe DocumentHighlightClientCapabilities
   -> Maybe DocumentSymbolClientCapabilities
   -> Maybe CodeActionClientCapabilities
   -> Maybe CodeLensClientCapabilities
   -> Maybe DocumentLinkClientCapabilities
   -> Maybe DocumentColorClientCapabilities
   -> Maybe DocumentFormattingClientCapabilities
   -> Maybe DocumentRangeFormattingClientCapabilities
   -> Maybe DocumentOnTypeFormattingClientCapabilities
   -> Maybe RenameClientCapabilities
   -> Maybe FoldingRangeClientCapabilities
   -> Maybe SelectionRangeClientCapabilities
   -> Maybe PublishDiagnosticsClientCapabilities
   -> Maybe CallHierarchyClientCapabilities
   -> Maybe SemanticTokensClientCapabilities
   -> Maybe LinkedEditingRangeClientCapabilities
   -> Maybe MonikerClientCapabilities
   -> Maybe TypeHierarchyClientCapabilities
   -> Maybe InlineValueClientCapabilities
   -> Maybe InlayHintClientCapabilities
   -> Maybe DiagnosticClientCapabilities
   -> TextDocumentClientCapabilities)
-> Parser (Maybe DeclarationClientCapabilities)
-> Parser
     (Maybe DefinitionClientCapabilities
      -> Maybe TypeDefinitionClientCapabilities
      -> Maybe ImplementationClientCapabilities
      -> Maybe ReferenceClientCapabilities
      -> Maybe DocumentHighlightClientCapabilities
      -> Maybe DocumentSymbolClientCapabilities
      -> Maybe CodeActionClientCapabilities
      -> Maybe CodeLensClientCapabilities
      -> Maybe DocumentLinkClientCapabilities
      -> Maybe DocumentColorClientCapabilities
      -> Maybe DocumentFormattingClientCapabilities
      -> Maybe DocumentRangeFormattingClientCapabilities
      -> Maybe DocumentOnTypeFormattingClientCapabilities
      -> Maybe RenameClientCapabilities
      -> Maybe FoldingRangeClientCapabilities
      -> Maybe SelectionRangeClientCapabilities
      -> Maybe PublishDiagnosticsClientCapabilities
      -> Maybe CallHierarchyClientCapabilities
      -> Maybe SemanticTokensClientCapabilities
      -> Maybe LinkedEditingRangeClientCapabilities
      -> Maybe MonikerClientCapabilities
      -> Maybe TypeHierarchyClientCapabilities
      -> Maybe InlineValueClientCapabilities
      -> Maybe InlayHintClientCapabilities
      -> Maybe DiagnosticClientCapabilities
      -> TextDocumentClientCapabilities)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
arg Object -> Key -> Parser (Maybe DeclarationClientCapabilities)
forall v. FromJSON v => Object -> Key -> Parser (Maybe v)
Language.LSP.Protocol.Types.Common..:!? Key
"declaration" Parser
  (Maybe DefinitionClientCapabilities
   -> Maybe TypeDefinitionClientCapabilities
   -> Maybe ImplementationClientCapabilities
   -> Maybe ReferenceClientCapabilities
   -> Maybe DocumentHighlightClientCapabilities
   -> Maybe DocumentSymbolClientCapabilities
   -> Maybe CodeActionClientCapabilities
   -> Maybe CodeLensClientCapabilities
   -> Maybe DocumentLinkClientCapabilities
   -> Maybe DocumentColorClientCapabilities
   -> Maybe DocumentFormattingClientCapabilities
   -> Maybe DocumentRangeFormattingClientCapabilities
   -> Maybe DocumentOnTypeFormattingClientCapabilities
   -> Maybe RenameClientCapabilities
   -> Maybe FoldingRangeClientCapabilities
   -> Maybe SelectionRangeClientCapabilities
   -> Maybe PublishDiagnosticsClientCapabilities
   -> Maybe CallHierarchyClientCapabilities
   -> Maybe SemanticTokensClientCapabilities
   -> Maybe LinkedEditingRangeClientCapabilities
   -> Maybe MonikerClientCapabilities
   -> Maybe TypeHierarchyClientCapabilities
   -> Maybe InlineValueClientCapabilities
   -> Maybe InlayHintClientCapabilities
   -> Maybe DiagnosticClientCapabilities
   -> TextDocumentClientCapabilities)
-> Parser (Maybe DefinitionClientCapabilities)
-> Parser
     (Maybe TypeDefinitionClientCapabilities
      -> Maybe ImplementationClientCapabilities
      -> Maybe ReferenceClientCapabilities
      -> Maybe DocumentHighlightClientCapabilities
      -> Maybe DocumentSymbolClientCapabilities
      -> Maybe CodeActionClientCapabilities
      -> Maybe CodeLensClientCapabilities
      -> Maybe DocumentLinkClientCapabilities
      -> Maybe DocumentColorClientCapabilities
      -> Maybe DocumentFormattingClientCapabilities
      -> Maybe DocumentRangeFormattingClientCapabilities
      -> Maybe DocumentOnTypeFormattingClientCapabilities
      -> Maybe RenameClientCapabilities
      -> Maybe FoldingRangeClientCapabilities
      -> Maybe SelectionRangeClientCapabilities
      -> Maybe PublishDiagnosticsClientCapabilities
      -> Maybe CallHierarchyClientCapabilities
      -> Maybe SemanticTokensClientCapabilities
      -> Maybe LinkedEditingRangeClientCapabilities
      -> Maybe MonikerClientCapabilities
      -> Maybe TypeHierarchyClientCapabilities
      -> Maybe InlineValueClientCapabilities
      -> Maybe InlayHintClientCapabilities
      -> Maybe DiagnosticClientCapabilities
      -> TextDocumentClientCapabilities)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
arg Object -> Key -> Parser (Maybe DefinitionClientCapabilities)
forall v. FromJSON v => Object -> Key -> Parser (Maybe v)
Language.LSP.Protocol.Types.Common..:!? Key
"definition" Parser
  (Maybe TypeDefinitionClientCapabilities
   -> Maybe ImplementationClientCapabilities
   -> Maybe ReferenceClientCapabilities
   -> Maybe DocumentHighlightClientCapabilities
   -> Maybe DocumentSymbolClientCapabilities
   -> Maybe CodeActionClientCapabilities
   -> Maybe CodeLensClientCapabilities
   -> Maybe DocumentLinkClientCapabilities
   -> Maybe DocumentColorClientCapabilities
   -> Maybe DocumentFormattingClientCapabilities
   -> Maybe DocumentRangeFormattingClientCapabilities
   -> Maybe DocumentOnTypeFormattingClientCapabilities
   -> Maybe RenameClientCapabilities
   -> Maybe FoldingRangeClientCapabilities
   -> Maybe SelectionRangeClientCapabilities
   -> Maybe PublishDiagnosticsClientCapabilities
   -> Maybe CallHierarchyClientCapabilities
   -> Maybe SemanticTokensClientCapabilities
   -> Maybe LinkedEditingRangeClientCapabilities
   -> Maybe MonikerClientCapabilities
   -> Maybe TypeHierarchyClientCapabilities
   -> Maybe InlineValueClientCapabilities
   -> Maybe InlayHintClientCapabilities
   -> Maybe DiagnosticClientCapabilities
   -> TextDocumentClientCapabilities)
-> Parser (Maybe TypeDefinitionClientCapabilities)
-> Parser
     (Maybe ImplementationClientCapabilities
      -> Maybe ReferenceClientCapabilities
      -> Maybe DocumentHighlightClientCapabilities
      -> Maybe DocumentSymbolClientCapabilities
      -> Maybe CodeActionClientCapabilities
      -> Maybe CodeLensClientCapabilities
      -> Maybe DocumentLinkClientCapabilities
      -> Maybe DocumentColorClientCapabilities
      -> Maybe DocumentFormattingClientCapabilities
      -> Maybe DocumentRangeFormattingClientCapabilities
      -> Maybe DocumentOnTypeFormattingClientCapabilities
      -> Maybe RenameClientCapabilities
      -> Maybe FoldingRangeClientCapabilities
      -> Maybe SelectionRangeClientCapabilities
      -> Maybe PublishDiagnosticsClientCapabilities
      -> Maybe CallHierarchyClientCapabilities
      -> Maybe SemanticTokensClientCapabilities
      -> Maybe LinkedEditingRangeClientCapabilities
      -> Maybe MonikerClientCapabilities
      -> Maybe TypeHierarchyClientCapabilities
      -> Maybe InlineValueClientCapabilities
      -> Maybe InlayHintClientCapabilities
      -> Maybe DiagnosticClientCapabilities
      -> TextDocumentClientCapabilities)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
arg Object -> Key -> Parser (Maybe TypeDefinitionClientCapabilities)
forall v. FromJSON v => Object -> Key -> Parser (Maybe v)
Language.LSP.Protocol.Types.Common..:!? Key
"typeDefinition" Parser
  (Maybe ImplementationClientCapabilities
   -> Maybe ReferenceClientCapabilities
   -> Maybe DocumentHighlightClientCapabilities
   -> Maybe DocumentSymbolClientCapabilities
   -> Maybe CodeActionClientCapabilities
   -> Maybe CodeLensClientCapabilities
   -> Maybe DocumentLinkClientCapabilities
   -> Maybe DocumentColorClientCapabilities
   -> Maybe DocumentFormattingClientCapabilities
   -> Maybe DocumentRangeFormattingClientCapabilities
   -> Maybe DocumentOnTypeFormattingClientCapabilities
   -> Maybe RenameClientCapabilities
   -> Maybe FoldingRangeClientCapabilities
   -> Maybe SelectionRangeClientCapabilities
   -> Maybe PublishDiagnosticsClientCapabilities
   -> Maybe CallHierarchyClientCapabilities
   -> Maybe SemanticTokensClientCapabilities
   -> Maybe LinkedEditingRangeClientCapabilities
   -> Maybe MonikerClientCapabilities
   -> Maybe TypeHierarchyClientCapabilities
   -> Maybe InlineValueClientCapabilities
   -> Maybe InlayHintClientCapabilities
   -> Maybe DiagnosticClientCapabilities
   -> TextDocumentClientCapabilities)
-> Parser (Maybe ImplementationClientCapabilities)
-> Parser
     (Maybe ReferenceClientCapabilities
      -> Maybe DocumentHighlightClientCapabilities
      -> Maybe DocumentSymbolClientCapabilities
      -> Maybe CodeActionClientCapabilities
      -> Maybe CodeLensClientCapabilities
      -> Maybe DocumentLinkClientCapabilities
      -> Maybe DocumentColorClientCapabilities
      -> Maybe DocumentFormattingClientCapabilities
      -> Maybe DocumentRangeFormattingClientCapabilities
      -> Maybe DocumentOnTypeFormattingClientCapabilities
      -> Maybe RenameClientCapabilities
      -> Maybe FoldingRangeClientCapabilities
      -> Maybe SelectionRangeClientCapabilities
      -> Maybe PublishDiagnosticsClientCapabilities
      -> Maybe CallHierarchyClientCapabilities
      -> Maybe SemanticTokensClientCapabilities
      -> Maybe LinkedEditingRangeClientCapabilities
      -> Maybe MonikerClientCapabilities
      -> Maybe TypeHierarchyClientCapabilities
      -> Maybe InlineValueClientCapabilities
      -> Maybe InlayHintClientCapabilities
      -> Maybe DiagnosticClientCapabilities
      -> TextDocumentClientCapabilities)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
arg Object -> Key -> Parser (Maybe ImplementationClientCapabilities)
forall v. FromJSON v => Object -> Key -> Parser (Maybe v)
Language.LSP.Protocol.Types.Common..:!? Key
"implementation" Parser
  (Maybe ReferenceClientCapabilities
   -> Maybe DocumentHighlightClientCapabilities
   -> Maybe DocumentSymbolClientCapabilities
   -> Maybe CodeActionClientCapabilities
   -> Maybe CodeLensClientCapabilities
   -> Maybe DocumentLinkClientCapabilities
   -> Maybe DocumentColorClientCapabilities
   -> Maybe DocumentFormattingClientCapabilities
   -> Maybe DocumentRangeFormattingClientCapabilities
   -> Maybe DocumentOnTypeFormattingClientCapabilities
   -> Maybe RenameClientCapabilities
   -> Maybe FoldingRangeClientCapabilities
   -> Maybe SelectionRangeClientCapabilities
   -> Maybe PublishDiagnosticsClientCapabilities
   -> Maybe CallHierarchyClientCapabilities
   -> Maybe SemanticTokensClientCapabilities
   -> Maybe LinkedEditingRangeClientCapabilities
   -> Maybe MonikerClientCapabilities
   -> Maybe TypeHierarchyClientCapabilities
   -> Maybe InlineValueClientCapabilities
   -> Maybe InlayHintClientCapabilities
   -> Maybe DiagnosticClientCapabilities
   -> TextDocumentClientCapabilities)
-> Parser (Maybe ReferenceClientCapabilities)
-> Parser
     (Maybe DocumentHighlightClientCapabilities
      -> Maybe DocumentSymbolClientCapabilities
      -> Maybe CodeActionClientCapabilities
      -> Maybe CodeLensClientCapabilities
      -> Maybe DocumentLinkClientCapabilities
      -> Maybe DocumentColorClientCapabilities
      -> Maybe DocumentFormattingClientCapabilities
      -> Maybe DocumentRangeFormattingClientCapabilities
      -> Maybe DocumentOnTypeFormattingClientCapabilities
      -> Maybe RenameClientCapabilities
      -> Maybe FoldingRangeClientCapabilities
      -> Maybe SelectionRangeClientCapabilities
      -> Maybe PublishDiagnosticsClientCapabilities
      -> Maybe CallHierarchyClientCapabilities
      -> Maybe SemanticTokensClientCapabilities
      -> Maybe LinkedEditingRangeClientCapabilities
      -> Maybe MonikerClientCapabilities
      -> Maybe TypeHierarchyClientCapabilities
      -> Maybe InlineValueClientCapabilities
      -> Maybe InlayHintClientCapabilities
      -> Maybe DiagnosticClientCapabilities
      -> TextDocumentClientCapabilities)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
arg Object -> Key -> Parser (Maybe ReferenceClientCapabilities)
forall v. FromJSON v => Object -> Key -> Parser (Maybe v)
Language.LSP.Protocol.Types.Common..:!? Key
"references" Parser
  (Maybe DocumentHighlightClientCapabilities
   -> Maybe DocumentSymbolClientCapabilities
   -> Maybe CodeActionClientCapabilities
   -> Maybe CodeLensClientCapabilities
   -> Maybe DocumentLinkClientCapabilities
   -> Maybe DocumentColorClientCapabilities
   -> Maybe DocumentFormattingClientCapabilities
   -> Maybe DocumentRangeFormattingClientCapabilities
   -> Maybe DocumentOnTypeFormattingClientCapabilities
   -> Maybe RenameClientCapabilities
   -> Maybe FoldingRangeClientCapabilities
   -> Maybe SelectionRangeClientCapabilities
   -> Maybe PublishDiagnosticsClientCapabilities
   -> Maybe CallHierarchyClientCapabilities
   -> Maybe SemanticTokensClientCapabilities
   -> Maybe LinkedEditingRangeClientCapabilities
   -> Maybe MonikerClientCapabilities
   -> Maybe TypeHierarchyClientCapabilities
   -> Maybe InlineValueClientCapabilities
   -> Maybe InlayHintClientCapabilities
   -> Maybe DiagnosticClientCapabilities
   -> TextDocumentClientCapabilities)
-> Parser (Maybe DocumentHighlightClientCapabilities)
-> Parser
     (Maybe DocumentSymbolClientCapabilities
      -> Maybe CodeActionClientCapabilities
      -> Maybe CodeLensClientCapabilities
      -> Maybe DocumentLinkClientCapabilities
      -> Maybe DocumentColorClientCapabilities
      -> Maybe DocumentFormattingClientCapabilities
      -> Maybe DocumentRangeFormattingClientCapabilities
      -> Maybe DocumentOnTypeFormattingClientCapabilities
      -> Maybe RenameClientCapabilities
      -> Maybe FoldingRangeClientCapabilities
      -> Maybe SelectionRangeClientCapabilities
      -> Maybe PublishDiagnosticsClientCapabilities
      -> Maybe CallHierarchyClientCapabilities
      -> Maybe SemanticTokensClientCapabilities
      -> Maybe LinkedEditingRangeClientCapabilities
      -> Maybe MonikerClientCapabilities
      -> Maybe TypeHierarchyClientCapabilities
      -> Maybe InlineValueClientCapabilities
      -> Maybe InlayHintClientCapabilities
      -> Maybe DiagnosticClientCapabilities
      -> TextDocumentClientCapabilities)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
arg Object -> Key -> Parser (Maybe DocumentHighlightClientCapabilities)
forall v. FromJSON v => Object -> Key -> Parser (Maybe v)
Language.LSP.Protocol.Types.Common..:!? Key
"documentHighlight" Parser
  (Maybe DocumentSymbolClientCapabilities
   -> Maybe CodeActionClientCapabilities
   -> Maybe CodeLensClientCapabilities
   -> Maybe DocumentLinkClientCapabilities
   -> Maybe DocumentColorClientCapabilities
   -> Maybe DocumentFormattingClientCapabilities
   -> Maybe DocumentRangeFormattingClientCapabilities
   -> Maybe DocumentOnTypeFormattingClientCapabilities
   -> Maybe RenameClientCapabilities
   -> Maybe FoldingRangeClientCapabilities
   -> Maybe SelectionRangeClientCapabilities
   -> Maybe PublishDiagnosticsClientCapabilities
   -> Maybe CallHierarchyClientCapabilities
   -> Maybe SemanticTokensClientCapabilities
   -> Maybe LinkedEditingRangeClientCapabilities
   -> Maybe MonikerClientCapabilities
   -> Maybe TypeHierarchyClientCapabilities
   -> Maybe InlineValueClientCapabilities
   -> Maybe InlayHintClientCapabilities
   -> Maybe DiagnosticClientCapabilities
   -> TextDocumentClientCapabilities)
-> Parser (Maybe DocumentSymbolClientCapabilities)
-> Parser
     (Maybe CodeActionClientCapabilities
      -> Maybe CodeLensClientCapabilities
      -> Maybe DocumentLinkClientCapabilities
      -> Maybe DocumentColorClientCapabilities
      -> Maybe DocumentFormattingClientCapabilities
      -> Maybe DocumentRangeFormattingClientCapabilities
      -> Maybe DocumentOnTypeFormattingClientCapabilities
      -> Maybe RenameClientCapabilities
      -> Maybe FoldingRangeClientCapabilities
      -> Maybe SelectionRangeClientCapabilities
      -> Maybe PublishDiagnosticsClientCapabilities
      -> Maybe CallHierarchyClientCapabilities
      -> Maybe SemanticTokensClientCapabilities
      -> Maybe LinkedEditingRangeClientCapabilities
      -> Maybe MonikerClientCapabilities
      -> Maybe TypeHierarchyClientCapabilities
      -> Maybe InlineValueClientCapabilities
      -> Maybe InlayHintClientCapabilities
      -> Maybe DiagnosticClientCapabilities
      -> TextDocumentClientCapabilities)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
arg Object -> Key -> Parser (Maybe DocumentSymbolClientCapabilities)
forall v. FromJSON v => Object -> Key -> Parser (Maybe v)
Language.LSP.Protocol.Types.Common..:!? Key
"documentSymbol" Parser
  (Maybe CodeActionClientCapabilities
   -> Maybe CodeLensClientCapabilities
   -> Maybe DocumentLinkClientCapabilities
   -> Maybe DocumentColorClientCapabilities
   -> Maybe DocumentFormattingClientCapabilities
   -> Maybe DocumentRangeFormattingClientCapabilities
   -> Maybe DocumentOnTypeFormattingClientCapabilities
   -> Maybe RenameClientCapabilities
   -> Maybe FoldingRangeClientCapabilities
   -> Maybe SelectionRangeClientCapabilities
   -> Maybe PublishDiagnosticsClientCapabilities
   -> Maybe CallHierarchyClientCapabilities
   -> Maybe SemanticTokensClientCapabilities
   -> Maybe LinkedEditingRangeClientCapabilities
   -> Maybe MonikerClientCapabilities
   -> Maybe TypeHierarchyClientCapabilities
   -> Maybe InlineValueClientCapabilities
   -> Maybe InlayHintClientCapabilities
   -> Maybe DiagnosticClientCapabilities
   -> TextDocumentClientCapabilities)
-> Parser (Maybe CodeActionClientCapabilities)
-> Parser
     (Maybe CodeLensClientCapabilities
      -> Maybe DocumentLinkClientCapabilities
      -> Maybe DocumentColorClientCapabilities
      -> Maybe DocumentFormattingClientCapabilities
      -> Maybe DocumentRangeFormattingClientCapabilities
      -> Maybe DocumentOnTypeFormattingClientCapabilities
      -> Maybe RenameClientCapabilities
      -> Maybe FoldingRangeClientCapabilities
      -> Maybe SelectionRangeClientCapabilities
      -> Maybe PublishDiagnosticsClientCapabilities
      -> Maybe CallHierarchyClientCapabilities
      -> Maybe SemanticTokensClientCapabilities
      -> Maybe LinkedEditingRangeClientCapabilities
      -> Maybe MonikerClientCapabilities
      -> Maybe TypeHierarchyClientCapabilities
      -> Maybe InlineValueClientCapabilities
      -> Maybe InlayHintClientCapabilities
      -> Maybe DiagnosticClientCapabilities
      -> TextDocumentClientCapabilities)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
arg Object -> Key -> Parser (Maybe CodeActionClientCapabilities)
forall v. FromJSON v => Object -> Key -> Parser (Maybe v)
Language.LSP.Protocol.Types.Common..:!? Key
"codeAction" Parser
  (Maybe CodeLensClientCapabilities
   -> Maybe DocumentLinkClientCapabilities
   -> Maybe DocumentColorClientCapabilities
   -> Maybe DocumentFormattingClientCapabilities
   -> Maybe DocumentRangeFormattingClientCapabilities
   -> Maybe DocumentOnTypeFormattingClientCapabilities
   -> Maybe RenameClientCapabilities
   -> Maybe FoldingRangeClientCapabilities
   -> Maybe SelectionRangeClientCapabilities
   -> Maybe PublishDiagnosticsClientCapabilities
   -> Maybe CallHierarchyClientCapabilities
   -> Maybe SemanticTokensClientCapabilities
   -> Maybe LinkedEditingRangeClientCapabilities
   -> Maybe MonikerClientCapabilities
   -> Maybe TypeHierarchyClientCapabilities
   -> Maybe InlineValueClientCapabilities
   -> Maybe InlayHintClientCapabilities
   -> Maybe DiagnosticClientCapabilities
   -> TextDocumentClientCapabilities)
-> Parser (Maybe CodeLensClientCapabilities)
-> Parser
     (Maybe DocumentLinkClientCapabilities
      -> Maybe DocumentColorClientCapabilities
      -> Maybe DocumentFormattingClientCapabilities
      -> Maybe DocumentRangeFormattingClientCapabilities
      -> Maybe DocumentOnTypeFormattingClientCapabilities
      -> Maybe RenameClientCapabilities
      -> Maybe FoldingRangeClientCapabilities
      -> Maybe SelectionRangeClientCapabilities
      -> Maybe PublishDiagnosticsClientCapabilities
      -> Maybe CallHierarchyClientCapabilities
      -> Maybe SemanticTokensClientCapabilities
      -> Maybe LinkedEditingRangeClientCapabilities
      -> Maybe MonikerClientCapabilities
      -> Maybe TypeHierarchyClientCapabilities
      -> Maybe InlineValueClientCapabilities
      -> Maybe InlayHintClientCapabilities
      -> Maybe DiagnosticClientCapabilities
      -> TextDocumentClientCapabilities)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
arg Object -> Key -> Parser (Maybe CodeLensClientCapabilities)
forall v. FromJSON v => Object -> Key -> Parser (Maybe v)
Language.LSP.Protocol.Types.Common..:!? Key
"codeLens" Parser
  (Maybe DocumentLinkClientCapabilities
   -> Maybe DocumentColorClientCapabilities
   -> Maybe DocumentFormattingClientCapabilities
   -> Maybe DocumentRangeFormattingClientCapabilities
   -> Maybe DocumentOnTypeFormattingClientCapabilities
   -> Maybe RenameClientCapabilities
   -> Maybe FoldingRangeClientCapabilities
   -> Maybe SelectionRangeClientCapabilities
   -> Maybe PublishDiagnosticsClientCapabilities
   -> Maybe CallHierarchyClientCapabilities
   -> Maybe SemanticTokensClientCapabilities
   -> Maybe LinkedEditingRangeClientCapabilities
   -> Maybe MonikerClientCapabilities
   -> Maybe TypeHierarchyClientCapabilities
   -> Maybe InlineValueClientCapabilities
   -> Maybe InlayHintClientCapabilities
   -> Maybe DiagnosticClientCapabilities
   -> TextDocumentClientCapabilities)
-> Parser (Maybe DocumentLinkClientCapabilities)
-> Parser
     (Maybe DocumentColorClientCapabilities
      -> Maybe DocumentFormattingClientCapabilities
      -> Maybe DocumentRangeFormattingClientCapabilities
      -> Maybe DocumentOnTypeFormattingClientCapabilities
      -> Maybe RenameClientCapabilities
      -> Maybe FoldingRangeClientCapabilities
      -> Maybe SelectionRangeClientCapabilities
      -> Maybe PublishDiagnosticsClientCapabilities
      -> Maybe CallHierarchyClientCapabilities
      -> Maybe SemanticTokensClientCapabilities
      -> Maybe LinkedEditingRangeClientCapabilities
      -> Maybe MonikerClientCapabilities
      -> Maybe TypeHierarchyClientCapabilities
      -> Maybe InlineValueClientCapabilities
      -> Maybe InlayHintClientCapabilities
      -> Maybe DiagnosticClientCapabilities
      -> TextDocumentClientCapabilities)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
arg Object -> Key -> Parser (Maybe DocumentLinkClientCapabilities)
forall v. FromJSON v => Object -> Key -> Parser (Maybe v)
Language.LSP.Protocol.Types.Common..:!? Key
"documentLink" Parser
  (Maybe DocumentColorClientCapabilities
   -> Maybe DocumentFormattingClientCapabilities
   -> Maybe DocumentRangeFormattingClientCapabilities
   -> Maybe DocumentOnTypeFormattingClientCapabilities
   -> Maybe RenameClientCapabilities
   -> Maybe FoldingRangeClientCapabilities
   -> Maybe SelectionRangeClientCapabilities
   -> Maybe PublishDiagnosticsClientCapabilities
   -> Maybe CallHierarchyClientCapabilities
   -> Maybe SemanticTokensClientCapabilities
   -> Maybe LinkedEditingRangeClientCapabilities
   -> Maybe MonikerClientCapabilities
   -> Maybe TypeHierarchyClientCapabilities
   -> Maybe InlineValueClientCapabilities
   -> Maybe InlayHintClientCapabilities
   -> Maybe DiagnosticClientCapabilities
   -> TextDocumentClientCapabilities)
-> Parser (Maybe DocumentColorClientCapabilities)
-> Parser
     (Maybe DocumentFormattingClientCapabilities
      -> Maybe DocumentRangeFormattingClientCapabilities
      -> Maybe DocumentOnTypeFormattingClientCapabilities
      -> Maybe RenameClientCapabilities
      -> Maybe FoldingRangeClientCapabilities
      -> Maybe SelectionRangeClientCapabilities
      -> Maybe PublishDiagnosticsClientCapabilities
      -> Maybe CallHierarchyClientCapabilities
      -> Maybe SemanticTokensClientCapabilities
      -> Maybe LinkedEditingRangeClientCapabilities
      -> Maybe MonikerClientCapabilities
      -> Maybe TypeHierarchyClientCapabilities
      -> Maybe InlineValueClientCapabilities
      -> Maybe InlayHintClientCapabilities
      -> Maybe DiagnosticClientCapabilities
      -> TextDocumentClientCapabilities)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
arg Object -> Key -> Parser (Maybe DocumentColorClientCapabilities)
forall v. FromJSON v => Object -> Key -> Parser (Maybe v)
Language.LSP.Protocol.Types.Common..:!? Key
"colorProvider" Parser
  (Maybe DocumentFormattingClientCapabilities
   -> Maybe DocumentRangeFormattingClientCapabilities
   -> Maybe DocumentOnTypeFormattingClientCapabilities
   -> Maybe RenameClientCapabilities
   -> Maybe FoldingRangeClientCapabilities
   -> Maybe SelectionRangeClientCapabilities
   -> Maybe PublishDiagnosticsClientCapabilities
   -> Maybe CallHierarchyClientCapabilities
   -> Maybe SemanticTokensClientCapabilities
   -> Maybe LinkedEditingRangeClientCapabilities
   -> Maybe MonikerClientCapabilities
   -> Maybe TypeHierarchyClientCapabilities
   -> Maybe InlineValueClientCapabilities
   -> Maybe InlayHintClientCapabilities
   -> Maybe DiagnosticClientCapabilities
   -> TextDocumentClientCapabilities)
-> Parser (Maybe DocumentFormattingClientCapabilities)
-> Parser
     (Maybe DocumentRangeFormattingClientCapabilities
      -> Maybe DocumentOnTypeFormattingClientCapabilities
      -> Maybe RenameClientCapabilities
      -> Maybe FoldingRangeClientCapabilities
      -> Maybe SelectionRangeClientCapabilities
      -> Maybe PublishDiagnosticsClientCapabilities
      -> Maybe CallHierarchyClientCapabilities
      -> Maybe SemanticTokensClientCapabilities
      -> Maybe LinkedEditingRangeClientCapabilities
      -> Maybe MonikerClientCapabilities
      -> Maybe TypeHierarchyClientCapabilities
      -> Maybe InlineValueClientCapabilities
      -> Maybe InlayHintClientCapabilities
      -> Maybe DiagnosticClientCapabilities
      -> TextDocumentClientCapabilities)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
arg Object
-> Key -> Parser (Maybe DocumentFormattingClientCapabilities)
forall v. FromJSON v => Object -> Key -> Parser (Maybe v)
Language.LSP.Protocol.Types.Common..:!? Key
"formatting" Parser
  (Maybe DocumentRangeFormattingClientCapabilities
   -> Maybe DocumentOnTypeFormattingClientCapabilities
   -> Maybe RenameClientCapabilities
   -> Maybe FoldingRangeClientCapabilities
   -> Maybe SelectionRangeClientCapabilities
   -> Maybe PublishDiagnosticsClientCapabilities
   -> Maybe CallHierarchyClientCapabilities
   -> Maybe SemanticTokensClientCapabilities
   -> Maybe LinkedEditingRangeClientCapabilities
   -> Maybe MonikerClientCapabilities
   -> Maybe TypeHierarchyClientCapabilities
   -> Maybe InlineValueClientCapabilities
   -> Maybe InlayHintClientCapabilities
   -> Maybe DiagnosticClientCapabilities
   -> TextDocumentClientCapabilities)
-> Parser (Maybe DocumentRangeFormattingClientCapabilities)
-> Parser
     (Maybe DocumentOnTypeFormattingClientCapabilities
      -> Maybe RenameClientCapabilities
      -> Maybe FoldingRangeClientCapabilities
      -> Maybe SelectionRangeClientCapabilities
      -> Maybe PublishDiagnosticsClientCapabilities
      -> Maybe CallHierarchyClientCapabilities
      -> Maybe SemanticTokensClientCapabilities
      -> Maybe LinkedEditingRangeClientCapabilities
      -> Maybe MonikerClientCapabilities
      -> Maybe TypeHierarchyClientCapabilities
      -> Maybe InlineValueClientCapabilities
      -> Maybe InlayHintClientCapabilities
      -> Maybe DiagnosticClientCapabilities
      -> TextDocumentClientCapabilities)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
arg Object
-> Key -> Parser (Maybe DocumentRangeFormattingClientCapabilities)
forall v. FromJSON v => Object -> Key -> Parser (Maybe v)
Language.LSP.Protocol.Types.Common..:!? Key
"rangeFormatting" Parser
  (Maybe DocumentOnTypeFormattingClientCapabilities
   -> Maybe RenameClientCapabilities
   -> Maybe FoldingRangeClientCapabilities
   -> Maybe SelectionRangeClientCapabilities
   -> Maybe PublishDiagnosticsClientCapabilities
   -> Maybe CallHierarchyClientCapabilities
   -> Maybe SemanticTokensClientCapabilities
   -> Maybe LinkedEditingRangeClientCapabilities
   -> Maybe MonikerClientCapabilities
   -> Maybe TypeHierarchyClientCapabilities
   -> Maybe InlineValueClientCapabilities
   -> Maybe InlayHintClientCapabilities
   -> Maybe DiagnosticClientCapabilities
   -> TextDocumentClientCapabilities)
-> Parser (Maybe DocumentOnTypeFormattingClientCapabilities)
-> Parser
     (Maybe RenameClientCapabilities
      -> Maybe FoldingRangeClientCapabilities
      -> Maybe SelectionRangeClientCapabilities
      -> Maybe PublishDiagnosticsClientCapabilities
      -> Maybe CallHierarchyClientCapabilities
      -> Maybe SemanticTokensClientCapabilities
      -> Maybe LinkedEditingRangeClientCapabilities
      -> Maybe MonikerClientCapabilities
      -> Maybe TypeHierarchyClientCapabilities
      -> Maybe InlineValueClientCapabilities
      -> Maybe InlayHintClientCapabilities
      -> Maybe DiagnosticClientCapabilities
      -> TextDocumentClientCapabilities)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
arg Object
-> Key -> Parser (Maybe DocumentOnTypeFormattingClientCapabilities)
forall v. FromJSON v => Object -> Key -> Parser (Maybe v)
Language.LSP.Protocol.Types.Common..:!? Key
"onTypeFormatting" Parser
  (Maybe RenameClientCapabilities
   -> Maybe FoldingRangeClientCapabilities
   -> Maybe SelectionRangeClientCapabilities
   -> Maybe PublishDiagnosticsClientCapabilities
   -> Maybe CallHierarchyClientCapabilities
   -> Maybe SemanticTokensClientCapabilities
   -> Maybe LinkedEditingRangeClientCapabilities
   -> Maybe MonikerClientCapabilities
   -> Maybe TypeHierarchyClientCapabilities
   -> Maybe InlineValueClientCapabilities
   -> Maybe InlayHintClientCapabilities
   -> Maybe DiagnosticClientCapabilities
   -> TextDocumentClientCapabilities)
-> Parser (Maybe RenameClientCapabilities)
-> Parser
     (Maybe FoldingRangeClientCapabilities
      -> Maybe SelectionRangeClientCapabilities
      -> Maybe PublishDiagnosticsClientCapabilities
      -> Maybe CallHierarchyClientCapabilities
      -> Maybe SemanticTokensClientCapabilities
      -> Maybe LinkedEditingRangeClientCapabilities
      -> Maybe MonikerClientCapabilities
      -> Maybe TypeHierarchyClientCapabilities
      -> Maybe InlineValueClientCapabilities
      -> Maybe InlayHintClientCapabilities
      -> Maybe DiagnosticClientCapabilities
      -> TextDocumentClientCapabilities)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
arg Object -> Key -> Parser (Maybe RenameClientCapabilities)
forall v. FromJSON v => Object -> Key -> Parser (Maybe v)
Language.LSP.Protocol.Types.Common..:!? Key
"rename" Parser
  (Maybe FoldingRangeClientCapabilities
   -> Maybe SelectionRangeClientCapabilities
   -> Maybe PublishDiagnosticsClientCapabilities
   -> Maybe CallHierarchyClientCapabilities
   -> Maybe SemanticTokensClientCapabilities
   -> Maybe LinkedEditingRangeClientCapabilities
   -> Maybe MonikerClientCapabilities
   -> Maybe TypeHierarchyClientCapabilities
   -> Maybe InlineValueClientCapabilities
   -> Maybe InlayHintClientCapabilities
   -> Maybe DiagnosticClientCapabilities
   -> TextDocumentClientCapabilities)
-> Parser (Maybe FoldingRangeClientCapabilities)
-> Parser
     (Maybe SelectionRangeClientCapabilities
      -> Maybe PublishDiagnosticsClientCapabilities
      -> Maybe CallHierarchyClientCapabilities
      -> Maybe SemanticTokensClientCapabilities
      -> Maybe LinkedEditingRangeClientCapabilities
      -> Maybe MonikerClientCapabilities
      -> Maybe TypeHierarchyClientCapabilities
      -> Maybe InlineValueClientCapabilities
      -> Maybe InlayHintClientCapabilities
      -> Maybe DiagnosticClientCapabilities
      -> TextDocumentClientCapabilities)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
arg Object -> Key -> Parser (Maybe FoldingRangeClientCapabilities)
forall v. FromJSON v => Object -> Key -> Parser (Maybe v)
Language.LSP.Protocol.Types.Common..:!? Key
"foldingRange" Parser
  (Maybe SelectionRangeClientCapabilities
   -> Maybe PublishDiagnosticsClientCapabilities
   -> Maybe CallHierarchyClientCapabilities
   -> Maybe SemanticTokensClientCapabilities
   -> Maybe LinkedEditingRangeClientCapabilities
   -> Maybe MonikerClientCapabilities
   -> Maybe TypeHierarchyClientCapabilities
   -> Maybe InlineValueClientCapabilities
   -> Maybe InlayHintClientCapabilities
   -> Maybe DiagnosticClientCapabilities
   -> TextDocumentClientCapabilities)
-> Parser (Maybe SelectionRangeClientCapabilities)
-> Parser
     (Maybe PublishDiagnosticsClientCapabilities
      -> Maybe CallHierarchyClientCapabilities
      -> Maybe SemanticTokensClientCapabilities
      -> Maybe LinkedEditingRangeClientCapabilities
      -> Maybe MonikerClientCapabilities
      -> Maybe TypeHierarchyClientCapabilities
      -> Maybe InlineValueClientCapabilities
      -> Maybe InlayHintClientCapabilities
      -> Maybe DiagnosticClientCapabilities
      -> TextDocumentClientCapabilities)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
arg Object -> Key -> Parser (Maybe SelectionRangeClientCapabilities)
forall v. FromJSON v => Object -> Key -> Parser (Maybe v)
Language.LSP.Protocol.Types.Common..:!? Key
"selectionRange" Parser
  (Maybe PublishDiagnosticsClientCapabilities
   -> Maybe CallHierarchyClientCapabilities
   -> Maybe SemanticTokensClientCapabilities
   -> Maybe LinkedEditingRangeClientCapabilities
   -> Maybe MonikerClientCapabilities
   -> Maybe TypeHierarchyClientCapabilities
   -> Maybe InlineValueClientCapabilities
   -> Maybe InlayHintClientCapabilities
   -> Maybe DiagnosticClientCapabilities
   -> TextDocumentClientCapabilities)
-> Parser (Maybe PublishDiagnosticsClientCapabilities)
-> Parser
     (Maybe CallHierarchyClientCapabilities
      -> Maybe SemanticTokensClientCapabilities
      -> Maybe LinkedEditingRangeClientCapabilities
      -> Maybe MonikerClientCapabilities
      -> Maybe TypeHierarchyClientCapabilities
      -> Maybe InlineValueClientCapabilities
      -> Maybe InlayHintClientCapabilities
      -> Maybe DiagnosticClientCapabilities
      -> TextDocumentClientCapabilities)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
arg Object
-> Key -> Parser (Maybe PublishDiagnosticsClientCapabilities)
forall v. FromJSON v => Object -> Key -> Parser (Maybe v)
Language.LSP.Protocol.Types.Common..:!? Key
"publishDiagnostics" Parser
  (Maybe CallHierarchyClientCapabilities
   -> Maybe SemanticTokensClientCapabilities
   -> Maybe LinkedEditingRangeClientCapabilities
   -> Maybe MonikerClientCapabilities
   -> Maybe TypeHierarchyClientCapabilities
   -> Maybe InlineValueClientCapabilities
   -> Maybe InlayHintClientCapabilities
   -> Maybe DiagnosticClientCapabilities
   -> TextDocumentClientCapabilities)
-> Parser (Maybe CallHierarchyClientCapabilities)
-> Parser
     (Maybe SemanticTokensClientCapabilities
      -> Maybe LinkedEditingRangeClientCapabilities
      -> Maybe MonikerClientCapabilities
      -> Maybe TypeHierarchyClientCapabilities
      -> Maybe InlineValueClientCapabilities
      -> Maybe InlayHintClientCapabilities
      -> Maybe DiagnosticClientCapabilities
      -> TextDocumentClientCapabilities)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
arg Object -> Key -> Parser (Maybe CallHierarchyClientCapabilities)
forall v. FromJSON v => Object -> Key -> Parser (Maybe v)
Language.LSP.Protocol.Types.Common..:!? Key
"callHierarchy" Parser
  (Maybe SemanticTokensClientCapabilities
   -> Maybe LinkedEditingRangeClientCapabilities
   -> Maybe MonikerClientCapabilities
   -> Maybe TypeHierarchyClientCapabilities
   -> Maybe InlineValueClientCapabilities
   -> Maybe InlayHintClientCapabilities
   -> Maybe DiagnosticClientCapabilities
   -> TextDocumentClientCapabilities)
-> Parser (Maybe SemanticTokensClientCapabilities)
-> Parser
     (Maybe LinkedEditingRangeClientCapabilities
      -> Maybe MonikerClientCapabilities
      -> Maybe TypeHierarchyClientCapabilities
      -> Maybe InlineValueClientCapabilities
      -> Maybe InlayHintClientCapabilities
      -> Maybe DiagnosticClientCapabilities
      -> TextDocumentClientCapabilities)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
arg Object -> Key -> Parser (Maybe SemanticTokensClientCapabilities)
forall v. FromJSON v => Object -> Key -> Parser (Maybe v)
Language.LSP.Protocol.Types.Common..:!? Key
"semanticTokens" Parser
  (Maybe LinkedEditingRangeClientCapabilities
   -> Maybe MonikerClientCapabilities
   -> Maybe TypeHierarchyClientCapabilities
   -> Maybe InlineValueClientCapabilities
   -> Maybe InlayHintClientCapabilities
   -> Maybe DiagnosticClientCapabilities
   -> TextDocumentClientCapabilities)
-> Parser (Maybe LinkedEditingRangeClientCapabilities)
-> Parser
     (Maybe MonikerClientCapabilities
      -> Maybe TypeHierarchyClientCapabilities
      -> Maybe InlineValueClientCapabilities
      -> Maybe InlayHintClientCapabilities
      -> Maybe DiagnosticClientCapabilities
      -> TextDocumentClientCapabilities)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
arg Object
-> Key -> Parser (Maybe LinkedEditingRangeClientCapabilities)
forall v. FromJSON v => Object -> Key -> Parser (Maybe v)
Language.LSP.Protocol.Types.Common..:!? Key
"linkedEditingRange" Parser
  (Maybe MonikerClientCapabilities
   -> Maybe TypeHierarchyClientCapabilities
   -> Maybe InlineValueClientCapabilities
   -> Maybe InlayHintClientCapabilities
   -> Maybe DiagnosticClientCapabilities
   -> TextDocumentClientCapabilities)
-> Parser (Maybe MonikerClientCapabilities)
-> Parser
     (Maybe TypeHierarchyClientCapabilities
      -> Maybe InlineValueClientCapabilities
      -> Maybe InlayHintClientCapabilities
      -> Maybe DiagnosticClientCapabilities
      -> TextDocumentClientCapabilities)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
arg Object -> Key -> Parser (Maybe MonikerClientCapabilities)
forall v. FromJSON v => Object -> Key -> Parser (Maybe v)
Language.LSP.Protocol.Types.Common..:!? Key
"moniker" Parser
  (Maybe TypeHierarchyClientCapabilities
   -> Maybe InlineValueClientCapabilities
   -> Maybe InlayHintClientCapabilities
   -> Maybe DiagnosticClientCapabilities
   -> TextDocumentClientCapabilities)
-> Parser (Maybe TypeHierarchyClientCapabilities)
-> Parser
     (Maybe InlineValueClientCapabilities
      -> Maybe InlayHintClientCapabilities
      -> Maybe DiagnosticClientCapabilities
      -> TextDocumentClientCapabilities)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
arg Object -> Key -> Parser (Maybe TypeHierarchyClientCapabilities)
forall v. FromJSON v => Object -> Key -> Parser (Maybe v)
Language.LSP.Protocol.Types.Common..:!? Key
"typeHierarchy" Parser
  (Maybe InlineValueClientCapabilities
   -> Maybe InlayHintClientCapabilities
   -> Maybe DiagnosticClientCapabilities
   -> TextDocumentClientCapabilities)
-> Parser (Maybe InlineValueClientCapabilities)
-> Parser
     (Maybe InlayHintClientCapabilities
      -> Maybe DiagnosticClientCapabilities
      -> TextDocumentClientCapabilities)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
arg Object -> Key -> Parser (Maybe InlineValueClientCapabilities)
forall v. FromJSON v => Object -> Key -> Parser (Maybe v)
Language.LSP.Protocol.Types.Common..:!? Key
"inlineValue" Parser
  (Maybe InlayHintClientCapabilities
   -> Maybe DiagnosticClientCapabilities
   -> TextDocumentClientCapabilities)
-> Parser (Maybe InlayHintClientCapabilities)
-> Parser
     (Maybe DiagnosticClientCapabilities
      -> TextDocumentClientCapabilities)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
arg Object -> Key -> Parser (Maybe InlayHintClientCapabilities)
forall v. FromJSON v => Object -> Key -> Parser (Maybe v)
Language.LSP.Protocol.Types.Common..:!? Key
"inlayHint" Parser
  (Maybe DiagnosticClientCapabilities
   -> TextDocumentClientCapabilities)
-> Parser (Maybe DiagnosticClientCapabilities)
-> Parser TextDocumentClientCapabilities
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
arg Object -> Key -> Parser (Maybe DiagnosticClientCapabilities)
forall v. FromJSON v => Object -> Key -> Parser (Maybe v)
Language.LSP.Protocol.Types.Common..:!? Key
"diagnostic"