{- 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.ShowMessageRequestClientCapabilities 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 as Row
import qualified Data.Row.Aeson as Aeson
import qualified Data.Row.Hashable as Hashable
import qualified Language.LSP.Protocol.Types.Common

{-|
Show message request client capabilities
-}
data ShowMessageRequestClientCapabilities = ShowMessageRequestClientCapabilities 
  { {-|
  Capabilities specific to the `MessageActionItem` type.
  -}
  ShowMessageRequestClientCapabilities
-> Maybe
     (Rec (("additionalPropertiesSupport" .== Maybe Bool) .+ Empty))
_messageActionItem :: (Maybe (Row.Rec ("additionalPropertiesSupport" Row..== (Maybe Bool) Row..+ Row.Empty)))
  }
  deriving stock (Int -> ShowMessageRequestClientCapabilities -> ShowS
[ShowMessageRequestClientCapabilities] -> ShowS
ShowMessageRequestClientCapabilities -> String
(Int -> ShowMessageRequestClientCapabilities -> ShowS)
-> (ShowMessageRequestClientCapabilities -> String)
-> ([ShowMessageRequestClientCapabilities] -> ShowS)
-> Show ShowMessageRequestClientCapabilities
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> ShowMessageRequestClientCapabilities -> ShowS
showsPrec :: Int -> ShowMessageRequestClientCapabilities -> ShowS
$cshow :: ShowMessageRequestClientCapabilities -> String
show :: ShowMessageRequestClientCapabilities -> String
$cshowList :: [ShowMessageRequestClientCapabilities] -> ShowS
showList :: [ShowMessageRequestClientCapabilities] -> ShowS
Show, ShowMessageRequestClientCapabilities
-> ShowMessageRequestClientCapabilities -> Bool
(ShowMessageRequestClientCapabilities
 -> ShowMessageRequestClientCapabilities -> Bool)
-> (ShowMessageRequestClientCapabilities
    -> ShowMessageRequestClientCapabilities -> Bool)
-> Eq ShowMessageRequestClientCapabilities
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: ShowMessageRequestClientCapabilities
-> ShowMessageRequestClientCapabilities -> Bool
== :: ShowMessageRequestClientCapabilities
-> ShowMessageRequestClientCapabilities -> Bool
$c/= :: ShowMessageRequestClientCapabilities
-> ShowMessageRequestClientCapabilities -> Bool
/= :: ShowMessageRequestClientCapabilities
-> ShowMessageRequestClientCapabilities -> Bool
Eq, Eq ShowMessageRequestClientCapabilities
Eq ShowMessageRequestClientCapabilities =>
(ShowMessageRequestClientCapabilities
 -> ShowMessageRequestClientCapabilities -> Ordering)
-> (ShowMessageRequestClientCapabilities
    -> ShowMessageRequestClientCapabilities -> Bool)
-> (ShowMessageRequestClientCapabilities
    -> ShowMessageRequestClientCapabilities -> Bool)
-> (ShowMessageRequestClientCapabilities
    -> ShowMessageRequestClientCapabilities -> Bool)
-> (ShowMessageRequestClientCapabilities
    -> ShowMessageRequestClientCapabilities -> Bool)
-> (ShowMessageRequestClientCapabilities
    -> ShowMessageRequestClientCapabilities
    -> ShowMessageRequestClientCapabilities)
-> (ShowMessageRequestClientCapabilities
    -> ShowMessageRequestClientCapabilities
    -> ShowMessageRequestClientCapabilities)
-> Ord ShowMessageRequestClientCapabilities
ShowMessageRequestClientCapabilities
-> ShowMessageRequestClientCapabilities -> Bool
ShowMessageRequestClientCapabilities
-> ShowMessageRequestClientCapabilities -> Ordering
ShowMessageRequestClientCapabilities
-> ShowMessageRequestClientCapabilities
-> ShowMessageRequestClientCapabilities
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 :: ShowMessageRequestClientCapabilities
-> ShowMessageRequestClientCapabilities -> Ordering
compare :: ShowMessageRequestClientCapabilities
-> ShowMessageRequestClientCapabilities -> Ordering
$c< :: ShowMessageRequestClientCapabilities
-> ShowMessageRequestClientCapabilities -> Bool
< :: ShowMessageRequestClientCapabilities
-> ShowMessageRequestClientCapabilities -> Bool
$c<= :: ShowMessageRequestClientCapabilities
-> ShowMessageRequestClientCapabilities -> Bool
<= :: ShowMessageRequestClientCapabilities
-> ShowMessageRequestClientCapabilities -> Bool
$c> :: ShowMessageRequestClientCapabilities
-> ShowMessageRequestClientCapabilities -> Bool
> :: ShowMessageRequestClientCapabilities
-> ShowMessageRequestClientCapabilities -> Bool
$c>= :: ShowMessageRequestClientCapabilities
-> ShowMessageRequestClientCapabilities -> Bool
>= :: ShowMessageRequestClientCapabilities
-> ShowMessageRequestClientCapabilities -> Bool
$cmax :: ShowMessageRequestClientCapabilities
-> ShowMessageRequestClientCapabilities
-> ShowMessageRequestClientCapabilities
max :: ShowMessageRequestClientCapabilities
-> ShowMessageRequestClientCapabilities
-> ShowMessageRequestClientCapabilities
$cmin :: ShowMessageRequestClientCapabilities
-> ShowMessageRequestClientCapabilities
-> ShowMessageRequestClientCapabilities
min :: ShowMessageRequestClientCapabilities
-> ShowMessageRequestClientCapabilities
-> ShowMessageRequestClientCapabilities
Ord, (forall x.
 ShowMessageRequestClientCapabilities
 -> Rep ShowMessageRequestClientCapabilities x)
-> (forall x.
    Rep ShowMessageRequestClientCapabilities x
    -> ShowMessageRequestClientCapabilities)
-> Generic ShowMessageRequestClientCapabilities
forall x.
Rep ShowMessageRequestClientCapabilities x
-> ShowMessageRequestClientCapabilities
forall x.
ShowMessageRequestClientCapabilities
-> Rep ShowMessageRequestClientCapabilities x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x.
ShowMessageRequestClientCapabilities
-> Rep ShowMessageRequestClientCapabilities x
from :: forall x.
ShowMessageRequestClientCapabilities
-> Rep ShowMessageRequestClientCapabilities x
$cto :: forall x.
Rep ShowMessageRequestClientCapabilities x
-> ShowMessageRequestClientCapabilities
to :: forall x.
Rep ShowMessageRequestClientCapabilities x
-> ShowMessageRequestClientCapabilities
Generic)
  deriving anyclass (ShowMessageRequestClientCapabilities -> ()
(ShowMessageRequestClientCapabilities -> ())
-> NFData ShowMessageRequestClientCapabilities
forall a. (a -> ()) -> NFData a
$crnf :: ShowMessageRequestClientCapabilities -> ()
rnf :: ShowMessageRequestClientCapabilities -> ()
NFData, Eq ShowMessageRequestClientCapabilities
Eq ShowMessageRequestClientCapabilities =>
(Int -> ShowMessageRequestClientCapabilities -> Int)
-> (ShowMessageRequestClientCapabilities -> Int)
-> Hashable ShowMessageRequestClientCapabilities
Int -> ShowMessageRequestClientCapabilities -> Int
ShowMessageRequestClientCapabilities -> Int
forall a. Eq a => (Int -> a -> Int) -> (a -> Int) -> Hashable a
$chashWithSalt :: Int -> ShowMessageRequestClientCapabilities -> Int
hashWithSalt :: Int -> ShowMessageRequestClientCapabilities -> Int
$chash :: ShowMessageRequestClientCapabilities -> Int
hash :: ShowMessageRequestClientCapabilities -> Int
Hashable)
  deriving (forall ann. ShowMessageRequestClientCapabilities -> Doc ann)
-> (forall ann. [ShowMessageRequestClientCapabilities] -> Doc ann)
-> Pretty ShowMessageRequestClientCapabilities
forall ann. [ShowMessageRequestClientCapabilities] -> Doc ann
forall ann. ShowMessageRequestClientCapabilities -> Doc ann
forall a.
(forall ann. a -> Doc ann)
-> (forall ann. [a] -> Doc ann) -> Pretty a
$cpretty :: forall ann. ShowMessageRequestClientCapabilities -> Doc ann
pretty :: forall ann. ShowMessageRequestClientCapabilities -> Doc ann
$cprettyList :: forall ann. [ShowMessageRequestClientCapabilities] -> Doc ann
prettyList :: forall ann. [ShowMessageRequestClientCapabilities] -> Doc ann
Pretty via (ViaJSON ShowMessageRequestClientCapabilities)

instance Aeson.ToJSON ShowMessageRequestClientCapabilities where
  toJSON :: ShowMessageRequestClientCapabilities -> Value
toJSON (ShowMessageRequestClientCapabilities Maybe
  (Rec (("additionalPropertiesSupport" .== Maybe Bool) .+ Empty))
arg0) = [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
"messageActionItem" String
-> Maybe
     (Rec ('R '["additionalPropertiesSupport" ':-> Maybe Bool]))
-> [Pair]
forall e kv v.
(KeyValue e kv, ToJSON v) =>
String -> Maybe v -> [kv]
Language.LSP.Protocol.Types.Common..=? Maybe
  (Rec (("additionalPropertiesSupport" .== Maybe Bool) .+ Empty))
Maybe (Rec ('R '["additionalPropertiesSupport" ':-> Maybe Bool]))
arg0]

instance Aeson.FromJSON ShowMessageRequestClientCapabilities where
  parseJSON :: Value -> Parser ShowMessageRequestClientCapabilities
parseJSON = String
-> (Object -> Parser ShowMessageRequestClientCapabilities)
-> Value
-> Parser ShowMessageRequestClientCapabilities
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Aeson.withObject String
"ShowMessageRequestClientCapabilities" ((Object -> Parser ShowMessageRequestClientCapabilities)
 -> Value -> Parser ShowMessageRequestClientCapabilities)
-> (Object -> Parser ShowMessageRequestClientCapabilities)
-> Value
-> Parser ShowMessageRequestClientCapabilities
forall a b. (a -> b) -> a -> b
$ \Object
arg -> Maybe
  (Rec (("additionalPropertiesSupport" .== Maybe Bool) .+ Empty))
-> ShowMessageRequestClientCapabilities
Maybe (Rec ('R '["additionalPropertiesSupport" ':-> Maybe Bool]))
-> ShowMessageRequestClientCapabilities
ShowMessageRequestClientCapabilities (Maybe (Rec ('R '["additionalPropertiesSupport" ':-> Maybe Bool]))
 -> ShowMessageRequestClientCapabilities)
-> Parser
     (Maybe (Rec ('R '["additionalPropertiesSupport" ':-> Maybe Bool])))
-> Parser ShowMessageRequestClientCapabilities
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
arg Object
-> Key
-> Parser
     (Maybe (Rec ('R '["additionalPropertiesSupport" ':-> Maybe Bool])))
forall v. FromJSON v => Object -> Key -> Parser (Maybe v)
Language.LSP.Protocol.Types.Common..:!? Key
"messageActionItem"