{- 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.WorkspaceClientCapabilities 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.CodeLensWorkspaceClientCapabilities
import qualified Language.LSP.Protocol.Internal.Types.DiagnosticWorkspaceClientCapabilities
import qualified Language.LSP.Protocol.Internal.Types.DidChangeConfigurationClientCapabilities
import qualified Language.LSP.Protocol.Internal.Types.DidChangeWatchedFilesClientCapabilities
import qualified Language.LSP.Protocol.Internal.Types.ExecuteCommandClientCapabilities
import qualified Language.LSP.Protocol.Internal.Types.FileOperationClientCapabilities
import qualified Language.LSP.Protocol.Internal.Types.InlayHintWorkspaceClientCapabilities
import qualified Language.LSP.Protocol.Internal.Types.InlineValueWorkspaceClientCapabilities
import qualified Language.LSP.Protocol.Internal.Types.SemanticTokensWorkspaceClientCapabilities
import qualified Language.LSP.Protocol.Internal.Types.WorkspaceEditClientCapabilities
import qualified Language.LSP.Protocol.Internal.Types.WorkspaceSymbolClientCapabilities
import qualified Language.LSP.Protocol.Types.Common

{-|
Workspace specific client capabilities.
-}
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 Language.LSP.Protocol.Internal.Types.WorkspaceEditClientCapabilities.WorkspaceEditClientCapabilities)
  , {-|
  Capabilities specific to the `workspace/didChangeConfiguration` notification.
  -}
  WorkspaceClientCapabilities
-> Maybe DidChangeConfigurationClientCapabilities
_didChangeConfiguration :: (Maybe Language.LSP.Protocol.Internal.Types.DidChangeConfigurationClientCapabilities.DidChangeConfigurationClientCapabilities)
  , {-|
  Capabilities specific to the `workspace/didChangeWatchedFiles` notification.
  -}
  WorkspaceClientCapabilities
-> Maybe DidChangeWatchedFilesClientCapabilities
_didChangeWatchedFiles :: (Maybe Language.LSP.Protocol.Internal.Types.DidChangeWatchedFilesClientCapabilities.DidChangeWatchedFilesClientCapabilities)
  , {-|
  Capabilities specific to the `workspace/symbol` request.
  -}
  WorkspaceClientCapabilities
-> Maybe WorkspaceSymbolClientCapabilities
_symbol :: (Maybe Language.LSP.Protocol.Internal.Types.WorkspaceSymbolClientCapabilities.WorkspaceSymbolClientCapabilities)
  , {-|
  Capabilities specific to the `workspace/executeCommand` request.
  -}
  WorkspaceClientCapabilities
-> Maybe ExecuteCommandClientCapabilities
_executeCommand :: (Maybe Language.LSP.Protocol.Internal.Types.ExecuteCommandClientCapabilities.ExecuteCommandClientCapabilities)
  , {-|
  The client has support for workspace folders.

  @since 3.6.0
  -}
  WorkspaceClientCapabilities -> Maybe Bool
_workspaceFolders :: (Maybe Bool)
  , {-|
  The client supports `workspace/configuration` requests.

  @since 3.6.0
  -}
  WorkspaceClientCapabilities -> Maybe Bool
_configuration :: (Maybe Bool)
  , {-|
  Capabilities specific to the semantic token requests scoped to the
  workspace.

  @since 3.16.0.
  -}
  WorkspaceClientCapabilities
-> Maybe SemanticTokensWorkspaceClientCapabilities
_semanticTokens :: (Maybe Language.LSP.Protocol.Internal.Types.SemanticTokensWorkspaceClientCapabilities.SemanticTokensWorkspaceClientCapabilities)
  , {-|
  Capabilities specific to the code lens requests scoped to the
  workspace.

  @since 3.16.0.
  -}
  WorkspaceClientCapabilities
-> Maybe CodeLensWorkspaceClientCapabilities
_codeLens :: (Maybe Language.LSP.Protocol.Internal.Types.CodeLensWorkspaceClientCapabilities.CodeLensWorkspaceClientCapabilities)
  , {-|
  The client has support for file notifications/requests for user operations on files.

  Since 3.16.0
  -}
  WorkspaceClientCapabilities
-> Maybe FileOperationClientCapabilities
_fileOperations :: (Maybe Language.LSP.Protocol.Internal.Types.FileOperationClientCapabilities.FileOperationClientCapabilities)
  , {-|
  Capabilities specific to the inline values requests scoped to the
  workspace.

  @since 3.17.0.
  -}
  WorkspaceClientCapabilities
-> Maybe InlineValueWorkspaceClientCapabilities
_inlineValue :: (Maybe Language.LSP.Protocol.Internal.Types.InlineValueWorkspaceClientCapabilities.InlineValueWorkspaceClientCapabilities)
  , {-|
  Capabilities specific to the inlay hint requests scoped to the
  workspace.

  @since 3.17.0.
  -}
  WorkspaceClientCapabilities
-> Maybe InlayHintWorkspaceClientCapabilities
_inlayHint :: (Maybe Language.LSP.Protocol.Internal.Types.InlayHintWorkspaceClientCapabilities.InlayHintWorkspaceClientCapabilities)
  , {-|
  Capabilities specific to the diagnostic requests scoped to the
  workspace.

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

instance Aeson.ToJSON WorkspaceClientCapabilities where
  toJSON :: WorkspaceClientCapabilities -> Value
toJSON (WorkspaceClientCapabilities Maybe Bool
arg0 Maybe WorkspaceEditClientCapabilities
arg1 Maybe DidChangeConfigurationClientCapabilities
arg2 Maybe DidChangeWatchedFilesClientCapabilities
arg3 Maybe WorkspaceSymbolClientCapabilities
arg4 Maybe ExecuteCommandClientCapabilities
arg5 Maybe Bool
arg6 Maybe Bool
arg7 Maybe SemanticTokensWorkspaceClientCapabilities
arg8 Maybe CodeLensWorkspaceClientCapabilities
arg9 Maybe FileOperationClientCapabilities
arg10 Maybe InlineValueWorkspaceClientCapabilities
arg11 Maybe InlayHintWorkspaceClientCapabilities
arg12 Maybe DiagnosticWorkspaceClientCapabilities
arg13) = [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
"applyEdit" String -> Maybe Bool -> [Pair]
forall e kv v.
(KeyValue e kv, ToJSON v) =>
String -> Maybe v -> [kv]
Language.LSP.Protocol.Types.Common..=? Maybe Bool
arg0
    ,String
"workspaceEdit" String -> Maybe WorkspaceEditClientCapabilities -> [Pair]
forall e kv v.
(KeyValue e kv, ToJSON v) =>
String -> Maybe v -> [kv]
Language.LSP.Protocol.Types.Common..=? Maybe WorkspaceEditClientCapabilities
arg1
    ,String
"didChangeConfiguration" String -> Maybe DidChangeConfigurationClientCapabilities -> [Pair]
forall e kv v.
(KeyValue e kv, ToJSON v) =>
String -> Maybe v -> [kv]
Language.LSP.Protocol.Types.Common..=? Maybe DidChangeConfigurationClientCapabilities
arg2
    ,String
"didChangeWatchedFiles" String -> Maybe DidChangeWatchedFilesClientCapabilities -> [Pair]
forall e kv v.
(KeyValue e kv, ToJSON v) =>
String -> Maybe v -> [kv]
Language.LSP.Protocol.Types.Common..=? Maybe DidChangeWatchedFilesClientCapabilities
arg3
    ,String
"symbol" String -> Maybe WorkspaceSymbolClientCapabilities -> [Pair]
forall e kv v.
(KeyValue e kv, ToJSON v) =>
String -> Maybe v -> [kv]
Language.LSP.Protocol.Types.Common..=? Maybe WorkspaceSymbolClientCapabilities
arg4
    ,String
"executeCommand" String -> Maybe ExecuteCommandClientCapabilities -> [Pair]
forall e kv v.
(KeyValue e kv, ToJSON v) =>
String -> Maybe v -> [kv]
Language.LSP.Protocol.Types.Common..=? Maybe ExecuteCommandClientCapabilities
arg5
    ,String
"workspaceFolders" String -> Maybe Bool -> [Pair]
forall e kv v.
(KeyValue e kv, ToJSON v) =>
String -> Maybe v -> [kv]
Language.LSP.Protocol.Types.Common..=? Maybe Bool
arg6
    ,String
"configuration" String -> Maybe Bool -> [Pair]
forall e kv v.
(KeyValue e kv, ToJSON v) =>
String -> Maybe v -> [kv]
Language.LSP.Protocol.Types.Common..=? Maybe Bool
arg7
    ,String
"semanticTokens" String -> Maybe SemanticTokensWorkspaceClientCapabilities -> [Pair]
forall e kv v.
(KeyValue e kv, ToJSON v) =>
String -> Maybe v -> [kv]
Language.LSP.Protocol.Types.Common..=? Maybe SemanticTokensWorkspaceClientCapabilities
arg8
    ,String
"codeLens" String -> Maybe CodeLensWorkspaceClientCapabilities -> [Pair]
forall e kv v.
(KeyValue e kv, ToJSON v) =>
String -> Maybe v -> [kv]
Language.LSP.Protocol.Types.Common..=? Maybe CodeLensWorkspaceClientCapabilities
arg9
    ,String
"fileOperations" String -> Maybe FileOperationClientCapabilities -> [Pair]
forall e kv v.
(KeyValue e kv, ToJSON v) =>
String -> Maybe v -> [kv]
Language.LSP.Protocol.Types.Common..=? Maybe FileOperationClientCapabilities
arg10
    ,String
"inlineValue" String -> Maybe InlineValueWorkspaceClientCapabilities -> [Pair]
forall e kv v.
(KeyValue e kv, ToJSON v) =>
String -> Maybe v -> [kv]
Language.LSP.Protocol.Types.Common..=? Maybe InlineValueWorkspaceClientCapabilities
arg11
    ,String
"inlayHint" String -> Maybe InlayHintWorkspaceClientCapabilities -> [Pair]
forall e kv v.
(KeyValue e kv, ToJSON v) =>
String -> Maybe v -> [kv]
Language.LSP.Protocol.Types.Common..=? Maybe InlayHintWorkspaceClientCapabilities
arg12
    ,String
"diagnostics" String -> Maybe DiagnosticWorkspaceClientCapabilities -> [Pair]
forall e kv v.
(KeyValue e kv, ToJSON v) =>
String -> Maybe v -> [kv]
Language.LSP.Protocol.Types.Common..=? Maybe DiagnosticWorkspaceClientCapabilities
arg13]

instance Aeson.FromJSON WorkspaceClientCapabilities where
  parseJSON :: Value -> Parser WorkspaceClientCapabilities
parseJSON = String
-> (Object -> Parser WorkspaceClientCapabilities)
-> Value
-> Parser WorkspaceClientCapabilities
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Aeson.withObject String
"WorkspaceClientCapabilities" ((Object -> Parser WorkspaceClientCapabilities)
 -> Value -> Parser WorkspaceClientCapabilities)
-> (Object -> Parser WorkspaceClientCapabilities)
-> Value
-> Parser WorkspaceClientCapabilities
forall a b. (a -> b) -> a -> b
$ \Object
arg -> Maybe Bool
-> Maybe WorkspaceEditClientCapabilities
-> Maybe DidChangeConfigurationClientCapabilities
-> Maybe DidChangeWatchedFilesClientCapabilities
-> Maybe WorkspaceSymbolClientCapabilities
-> Maybe ExecuteCommandClientCapabilities
-> Maybe Bool
-> Maybe Bool
-> Maybe SemanticTokensWorkspaceClientCapabilities
-> Maybe CodeLensWorkspaceClientCapabilities
-> Maybe FileOperationClientCapabilities
-> Maybe InlineValueWorkspaceClientCapabilities
-> Maybe InlayHintWorkspaceClientCapabilities
-> Maybe DiagnosticWorkspaceClientCapabilities
-> WorkspaceClientCapabilities
WorkspaceClientCapabilities (Maybe Bool
 -> Maybe WorkspaceEditClientCapabilities
 -> Maybe DidChangeConfigurationClientCapabilities
 -> Maybe DidChangeWatchedFilesClientCapabilities
 -> Maybe WorkspaceSymbolClientCapabilities
 -> Maybe ExecuteCommandClientCapabilities
 -> Maybe Bool
 -> Maybe Bool
 -> Maybe SemanticTokensWorkspaceClientCapabilities
 -> Maybe CodeLensWorkspaceClientCapabilities
 -> Maybe FileOperationClientCapabilities
 -> Maybe InlineValueWorkspaceClientCapabilities
 -> Maybe InlayHintWorkspaceClientCapabilities
 -> Maybe DiagnosticWorkspaceClientCapabilities
 -> WorkspaceClientCapabilities)
-> Parser (Maybe Bool)
-> Parser
     (Maybe WorkspaceEditClientCapabilities
      -> Maybe DidChangeConfigurationClientCapabilities
      -> Maybe DidChangeWatchedFilesClientCapabilities
      -> Maybe WorkspaceSymbolClientCapabilities
      -> Maybe ExecuteCommandClientCapabilities
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe SemanticTokensWorkspaceClientCapabilities
      -> Maybe CodeLensWorkspaceClientCapabilities
      -> Maybe FileOperationClientCapabilities
      -> Maybe InlineValueWorkspaceClientCapabilities
      -> Maybe InlayHintWorkspaceClientCapabilities
      -> Maybe DiagnosticWorkspaceClientCapabilities
      -> WorkspaceClientCapabilities)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
arg Object -> Key -> Parser (Maybe Bool)
forall v. FromJSON v => Object -> Key -> Parser (Maybe v)
Language.LSP.Protocol.Types.Common..:!? Key
"applyEdit" Parser
  (Maybe WorkspaceEditClientCapabilities
   -> Maybe DidChangeConfigurationClientCapabilities
   -> Maybe DidChangeWatchedFilesClientCapabilities
   -> Maybe WorkspaceSymbolClientCapabilities
   -> Maybe ExecuteCommandClientCapabilities
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe SemanticTokensWorkspaceClientCapabilities
   -> Maybe CodeLensWorkspaceClientCapabilities
   -> Maybe FileOperationClientCapabilities
   -> Maybe InlineValueWorkspaceClientCapabilities
   -> Maybe InlayHintWorkspaceClientCapabilities
   -> Maybe DiagnosticWorkspaceClientCapabilities
   -> WorkspaceClientCapabilities)
-> Parser (Maybe WorkspaceEditClientCapabilities)
-> Parser
     (Maybe DidChangeConfigurationClientCapabilities
      -> Maybe DidChangeWatchedFilesClientCapabilities
      -> Maybe WorkspaceSymbolClientCapabilities
      -> Maybe ExecuteCommandClientCapabilities
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe SemanticTokensWorkspaceClientCapabilities
      -> Maybe CodeLensWorkspaceClientCapabilities
      -> Maybe FileOperationClientCapabilities
      -> Maybe InlineValueWorkspaceClientCapabilities
      -> Maybe InlayHintWorkspaceClientCapabilities
      -> Maybe DiagnosticWorkspaceClientCapabilities
      -> WorkspaceClientCapabilities)
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 WorkspaceEditClientCapabilities)
forall v. FromJSON v => Object -> Key -> Parser (Maybe v)
Language.LSP.Protocol.Types.Common..:!? Key
"workspaceEdit" Parser
  (Maybe DidChangeConfigurationClientCapabilities
   -> Maybe DidChangeWatchedFilesClientCapabilities
   -> Maybe WorkspaceSymbolClientCapabilities
   -> Maybe ExecuteCommandClientCapabilities
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe SemanticTokensWorkspaceClientCapabilities
   -> Maybe CodeLensWorkspaceClientCapabilities
   -> Maybe FileOperationClientCapabilities
   -> Maybe InlineValueWorkspaceClientCapabilities
   -> Maybe InlayHintWorkspaceClientCapabilities
   -> Maybe DiagnosticWorkspaceClientCapabilities
   -> WorkspaceClientCapabilities)
-> Parser (Maybe DidChangeConfigurationClientCapabilities)
-> Parser
     (Maybe DidChangeWatchedFilesClientCapabilities
      -> Maybe WorkspaceSymbolClientCapabilities
      -> Maybe ExecuteCommandClientCapabilities
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe SemanticTokensWorkspaceClientCapabilities
      -> Maybe CodeLensWorkspaceClientCapabilities
      -> Maybe FileOperationClientCapabilities
      -> Maybe InlineValueWorkspaceClientCapabilities
      -> Maybe InlayHintWorkspaceClientCapabilities
      -> Maybe DiagnosticWorkspaceClientCapabilities
      -> WorkspaceClientCapabilities)
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 DidChangeConfigurationClientCapabilities)
forall v. FromJSON v => Object -> Key -> Parser (Maybe v)
Language.LSP.Protocol.Types.Common..:!? Key
"didChangeConfiguration" Parser
  (Maybe DidChangeWatchedFilesClientCapabilities
   -> Maybe WorkspaceSymbolClientCapabilities
   -> Maybe ExecuteCommandClientCapabilities
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe SemanticTokensWorkspaceClientCapabilities
   -> Maybe CodeLensWorkspaceClientCapabilities
   -> Maybe FileOperationClientCapabilities
   -> Maybe InlineValueWorkspaceClientCapabilities
   -> Maybe InlayHintWorkspaceClientCapabilities
   -> Maybe DiagnosticWorkspaceClientCapabilities
   -> WorkspaceClientCapabilities)
-> Parser (Maybe DidChangeWatchedFilesClientCapabilities)
-> Parser
     (Maybe WorkspaceSymbolClientCapabilities
      -> Maybe ExecuteCommandClientCapabilities
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe SemanticTokensWorkspaceClientCapabilities
      -> Maybe CodeLensWorkspaceClientCapabilities
      -> Maybe FileOperationClientCapabilities
      -> Maybe InlineValueWorkspaceClientCapabilities
      -> Maybe InlayHintWorkspaceClientCapabilities
      -> Maybe DiagnosticWorkspaceClientCapabilities
      -> WorkspaceClientCapabilities)
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 DidChangeWatchedFilesClientCapabilities)
forall v. FromJSON v => Object -> Key -> Parser (Maybe v)
Language.LSP.Protocol.Types.Common..:!? Key
"didChangeWatchedFiles" Parser
  (Maybe WorkspaceSymbolClientCapabilities
   -> Maybe ExecuteCommandClientCapabilities
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe SemanticTokensWorkspaceClientCapabilities
   -> Maybe CodeLensWorkspaceClientCapabilities
   -> Maybe FileOperationClientCapabilities
   -> Maybe InlineValueWorkspaceClientCapabilities
   -> Maybe InlayHintWorkspaceClientCapabilities
   -> Maybe DiagnosticWorkspaceClientCapabilities
   -> WorkspaceClientCapabilities)
-> Parser (Maybe WorkspaceSymbolClientCapabilities)
-> Parser
     (Maybe ExecuteCommandClientCapabilities
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe SemanticTokensWorkspaceClientCapabilities
      -> Maybe CodeLensWorkspaceClientCapabilities
      -> Maybe FileOperationClientCapabilities
      -> Maybe InlineValueWorkspaceClientCapabilities
      -> Maybe InlayHintWorkspaceClientCapabilities
      -> Maybe DiagnosticWorkspaceClientCapabilities
      -> WorkspaceClientCapabilities)
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 WorkspaceSymbolClientCapabilities)
forall v. FromJSON v => Object -> Key -> Parser (Maybe v)
Language.LSP.Protocol.Types.Common..:!? Key
"symbol" Parser
  (Maybe ExecuteCommandClientCapabilities
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe SemanticTokensWorkspaceClientCapabilities
   -> Maybe CodeLensWorkspaceClientCapabilities
   -> Maybe FileOperationClientCapabilities
   -> Maybe InlineValueWorkspaceClientCapabilities
   -> Maybe InlayHintWorkspaceClientCapabilities
   -> Maybe DiagnosticWorkspaceClientCapabilities
   -> WorkspaceClientCapabilities)
-> Parser (Maybe ExecuteCommandClientCapabilities)
-> Parser
     (Maybe Bool
      -> Maybe Bool
      -> Maybe SemanticTokensWorkspaceClientCapabilities
      -> Maybe CodeLensWorkspaceClientCapabilities
      -> Maybe FileOperationClientCapabilities
      -> Maybe InlineValueWorkspaceClientCapabilities
      -> Maybe InlayHintWorkspaceClientCapabilities
      -> Maybe DiagnosticWorkspaceClientCapabilities
      -> WorkspaceClientCapabilities)
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 ExecuteCommandClientCapabilities)
forall v. FromJSON v => Object -> Key -> Parser (Maybe v)
Language.LSP.Protocol.Types.Common..:!? Key
"executeCommand" Parser
  (Maybe Bool
   -> Maybe Bool
   -> Maybe SemanticTokensWorkspaceClientCapabilities
   -> Maybe CodeLensWorkspaceClientCapabilities
   -> Maybe FileOperationClientCapabilities
   -> Maybe InlineValueWorkspaceClientCapabilities
   -> Maybe InlayHintWorkspaceClientCapabilities
   -> Maybe DiagnosticWorkspaceClientCapabilities
   -> WorkspaceClientCapabilities)
-> Parser (Maybe Bool)
-> Parser
     (Maybe Bool
      -> Maybe SemanticTokensWorkspaceClientCapabilities
      -> Maybe CodeLensWorkspaceClientCapabilities
      -> Maybe FileOperationClientCapabilities
      -> Maybe InlineValueWorkspaceClientCapabilities
      -> Maybe InlayHintWorkspaceClientCapabilities
      -> Maybe DiagnosticWorkspaceClientCapabilities
      -> WorkspaceClientCapabilities)
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 Bool)
forall v. FromJSON v => Object -> Key -> Parser (Maybe v)
Language.LSP.Protocol.Types.Common..:!? Key
"workspaceFolders" Parser
  (Maybe Bool
   -> Maybe SemanticTokensWorkspaceClientCapabilities
   -> Maybe CodeLensWorkspaceClientCapabilities
   -> Maybe FileOperationClientCapabilities
   -> Maybe InlineValueWorkspaceClientCapabilities
   -> Maybe InlayHintWorkspaceClientCapabilities
   -> Maybe DiagnosticWorkspaceClientCapabilities
   -> WorkspaceClientCapabilities)
-> Parser (Maybe Bool)
-> Parser
     (Maybe SemanticTokensWorkspaceClientCapabilities
      -> Maybe CodeLensWorkspaceClientCapabilities
      -> Maybe FileOperationClientCapabilities
      -> Maybe InlineValueWorkspaceClientCapabilities
      -> Maybe InlayHintWorkspaceClientCapabilities
      -> Maybe DiagnosticWorkspaceClientCapabilities
      -> WorkspaceClientCapabilities)
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 Bool)
forall v. FromJSON v => Object -> Key -> Parser (Maybe v)
Language.LSP.Protocol.Types.Common..:!? Key
"configuration" Parser
  (Maybe SemanticTokensWorkspaceClientCapabilities
   -> Maybe CodeLensWorkspaceClientCapabilities
   -> Maybe FileOperationClientCapabilities
   -> Maybe InlineValueWorkspaceClientCapabilities
   -> Maybe InlayHintWorkspaceClientCapabilities
   -> Maybe DiagnosticWorkspaceClientCapabilities
   -> WorkspaceClientCapabilities)
-> Parser (Maybe SemanticTokensWorkspaceClientCapabilities)
-> Parser
     (Maybe CodeLensWorkspaceClientCapabilities
      -> Maybe FileOperationClientCapabilities
      -> Maybe InlineValueWorkspaceClientCapabilities
      -> Maybe InlayHintWorkspaceClientCapabilities
      -> Maybe DiagnosticWorkspaceClientCapabilities
      -> WorkspaceClientCapabilities)
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 SemanticTokensWorkspaceClientCapabilities)
forall v. FromJSON v => Object -> Key -> Parser (Maybe v)
Language.LSP.Protocol.Types.Common..:!? Key
"semanticTokens" Parser
  (Maybe CodeLensWorkspaceClientCapabilities
   -> Maybe FileOperationClientCapabilities
   -> Maybe InlineValueWorkspaceClientCapabilities
   -> Maybe InlayHintWorkspaceClientCapabilities
   -> Maybe DiagnosticWorkspaceClientCapabilities
   -> WorkspaceClientCapabilities)
-> Parser (Maybe CodeLensWorkspaceClientCapabilities)
-> Parser
     (Maybe FileOperationClientCapabilities
      -> Maybe InlineValueWorkspaceClientCapabilities
      -> Maybe InlayHintWorkspaceClientCapabilities
      -> Maybe DiagnosticWorkspaceClientCapabilities
      -> WorkspaceClientCapabilities)
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 CodeLensWorkspaceClientCapabilities)
forall v. FromJSON v => Object -> Key -> Parser (Maybe v)
Language.LSP.Protocol.Types.Common..:!? Key
"codeLens" Parser
  (Maybe FileOperationClientCapabilities
   -> Maybe InlineValueWorkspaceClientCapabilities
   -> Maybe InlayHintWorkspaceClientCapabilities
   -> Maybe DiagnosticWorkspaceClientCapabilities
   -> WorkspaceClientCapabilities)
-> Parser (Maybe FileOperationClientCapabilities)
-> Parser
     (Maybe InlineValueWorkspaceClientCapabilities
      -> Maybe InlayHintWorkspaceClientCapabilities
      -> Maybe DiagnosticWorkspaceClientCapabilities
      -> WorkspaceClientCapabilities)
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 FileOperationClientCapabilities)
forall v. FromJSON v => Object -> Key -> Parser (Maybe v)
Language.LSP.Protocol.Types.Common..:!? Key
"fileOperations" Parser
  (Maybe InlineValueWorkspaceClientCapabilities
   -> Maybe InlayHintWorkspaceClientCapabilities
   -> Maybe DiagnosticWorkspaceClientCapabilities
   -> WorkspaceClientCapabilities)
-> Parser (Maybe InlineValueWorkspaceClientCapabilities)
-> Parser
     (Maybe InlayHintWorkspaceClientCapabilities
      -> Maybe DiagnosticWorkspaceClientCapabilities
      -> WorkspaceClientCapabilities)
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 InlineValueWorkspaceClientCapabilities)
forall v. FromJSON v => Object -> Key -> Parser (Maybe v)
Language.LSP.Protocol.Types.Common..:!? Key
"inlineValue" Parser
  (Maybe InlayHintWorkspaceClientCapabilities
   -> Maybe DiagnosticWorkspaceClientCapabilities
   -> WorkspaceClientCapabilities)
-> Parser (Maybe InlayHintWorkspaceClientCapabilities)
-> Parser
     (Maybe DiagnosticWorkspaceClientCapabilities
      -> WorkspaceClientCapabilities)
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 InlayHintWorkspaceClientCapabilities)
forall v. FromJSON v => Object -> Key -> Parser (Maybe v)
Language.LSP.Protocol.Types.Common..:!? Key
"inlayHint" Parser
  (Maybe DiagnosticWorkspaceClientCapabilities
   -> WorkspaceClientCapabilities)
-> Parser (Maybe DiagnosticWorkspaceClientCapabilities)
-> Parser WorkspaceClientCapabilities
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 DiagnosticWorkspaceClientCapabilities)
forall v. FromJSON v => Object -> Key -> Parser (Maybe v)
Language.LSP.Protocol.Types.Common..:!? Key
"diagnostics"