{-# OPTIONS_GHC -Wno-unused-imports #-}
{-# OPTIONS_GHC -Wno-unused-matches #-}
{-# OPTIONS_GHC -Wno-deprecations #-}
module Language.LSP.Protocol.Internal.Types.TypeDefinitionClientCapabilities 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.Types.Common
data TypeDefinitionClientCapabilities = TypeDefinitionClientCapabilities
{
TypeDefinitionClientCapabilities -> Maybe Bool
_dynamicRegistration :: (Maybe Bool)
,
TypeDefinitionClientCapabilities -> Maybe Bool
_linkSupport :: (Maybe Bool)
}
deriving stock (Int -> TypeDefinitionClientCapabilities -> ShowS
[TypeDefinitionClientCapabilities] -> ShowS
TypeDefinitionClientCapabilities -> String
(Int -> TypeDefinitionClientCapabilities -> ShowS)
-> (TypeDefinitionClientCapabilities -> String)
-> ([TypeDefinitionClientCapabilities] -> ShowS)
-> Show TypeDefinitionClientCapabilities
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> TypeDefinitionClientCapabilities -> ShowS
showsPrec :: Int -> TypeDefinitionClientCapabilities -> ShowS
$cshow :: TypeDefinitionClientCapabilities -> String
show :: TypeDefinitionClientCapabilities -> String
$cshowList :: [TypeDefinitionClientCapabilities] -> ShowS
showList :: [TypeDefinitionClientCapabilities] -> ShowS
Show, TypeDefinitionClientCapabilities
-> TypeDefinitionClientCapabilities -> Bool
(TypeDefinitionClientCapabilities
-> TypeDefinitionClientCapabilities -> Bool)
-> (TypeDefinitionClientCapabilities
-> TypeDefinitionClientCapabilities -> Bool)
-> Eq TypeDefinitionClientCapabilities
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: TypeDefinitionClientCapabilities
-> TypeDefinitionClientCapabilities -> Bool
== :: TypeDefinitionClientCapabilities
-> TypeDefinitionClientCapabilities -> Bool
$c/= :: TypeDefinitionClientCapabilities
-> TypeDefinitionClientCapabilities -> Bool
/= :: TypeDefinitionClientCapabilities
-> TypeDefinitionClientCapabilities -> Bool
Eq, Eq TypeDefinitionClientCapabilities
Eq TypeDefinitionClientCapabilities =>
(TypeDefinitionClientCapabilities
-> TypeDefinitionClientCapabilities -> Ordering)
-> (TypeDefinitionClientCapabilities
-> TypeDefinitionClientCapabilities -> Bool)
-> (TypeDefinitionClientCapabilities
-> TypeDefinitionClientCapabilities -> Bool)
-> (TypeDefinitionClientCapabilities
-> TypeDefinitionClientCapabilities -> Bool)
-> (TypeDefinitionClientCapabilities
-> TypeDefinitionClientCapabilities -> Bool)
-> (TypeDefinitionClientCapabilities
-> TypeDefinitionClientCapabilities
-> TypeDefinitionClientCapabilities)
-> (TypeDefinitionClientCapabilities
-> TypeDefinitionClientCapabilities
-> TypeDefinitionClientCapabilities)
-> Ord TypeDefinitionClientCapabilities
TypeDefinitionClientCapabilities
-> TypeDefinitionClientCapabilities -> Bool
TypeDefinitionClientCapabilities
-> TypeDefinitionClientCapabilities -> Ordering
TypeDefinitionClientCapabilities
-> TypeDefinitionClientCapabilities
-> TypeDefinitionClientCapabilities
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 :: TypeDefinitionClientCapabilities
-> TypeDefinitionClientCapabilities -> Ordering
compare :: TypeDefinitionClientCapabilities
-> TypeDefinitionClientCapabilities -> Ordering
$c< :: TypeDefinitionClientCapabilities
-> TypeDefinitionClientCapabilities -> Bool
< :: TypeDefinitionClientCapabilities
-> TypeDefinitionClientCapabilities -> Bool
$c<= :: TypeDefinitionClientCapabilities
-> TypeDefinitionClientCapabilities -> Bool
<= :: TypeDefinitionClientCapabilities
-> TypeDefinitionClientCapabilities -> Bool
$c> :: TypeDefinitionClientCapabilities
-> TypeDefinitionClientCapabilities -> Bool
> :: TypeDefinitionClientCapabilities
-> TypeDefinitionClientCapabilities -> Bool
$c>= :: TypeDefinitionClientCapabilities
-> TypeDefinitionClientCapabilities -> Bool
>= :: TypeDefinitionClientCapabilities
-> TypeDefinitionClientCapabilities -> Bool
$cmax :: TypeDefinitionClientCapabilities
-> TypeDefinitionClientCapabilities
-> TypeDefinitionClientCapabilities
max :: TypeDefinitionClientCapabilities
-> TypeDefinitionClientCapabilities
-> TypeDefinitionClientCapabilities
$cmin :: TypeDefinitionClientCapabilities
-> TypeDefinitionClientCapabilities
-> TypeDefinitionClientCapabilities
min :: TypeDefinitionClientCapabilities
-> TypeDefinitionClientCapabilities
-> TypeDefinitionClientCapabilities
Ord, (forall x.
TypeDefinitionClientCapabilities
-> Rep TypeDefinitionClientCapabilities x)
-> (forall x.
Rep TypeDefinitionClientCapabilities x
-> TypeDefinitionClientCapabilities)
-> Generic TypeDefinitionClientCapabilities
forall x.
Rep TypeDefinitionClientCapabilities x
-> TypeDefinitionClientCapabilities
forall x.
TypeDefinitionClientCapabilities
-> Rep TypeDefinitionClientCapabilities x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x.
TypeDefinitionClientCapabilities
-> Rep TypeDefinitionClientCapabilities x
from :: forall x.
TypeDefinitionClientCapabilities
-> Rep TypeDefinitionClientCapabilities x
$cto :: forall x.
Rep TypeDefinitionClientCapabilities x
-> TypeDefinitionClientCapabilities
to :: forall x.
Rep TypeDefinitionClientCapabilities x
-> TypeDefinitionClientCapabilities
Generic)
deriving anyclass (TypeDefinitionClientCapabilities -> ()
(TypeDefinitionClientCapabilities -> ())
-> NFData TypeDefinitionClientCapabilities
forall a. (a -> ()) -> NFData a
$crnf :: TypeDefinitionClientCapabilities -> ()
rnf :: TypeDefinitionClientCapabilities -> ()
NFData, Eq TypeDefinitionClientCapabilities
Eq TypeDefinitionClientCapabilities =>
(Int -> TypeDefinitionClientCapabilities -> Int)
-> (TypeDefinitionClientCapabilities -> Int)
-> Hashable TypeDefinitionClientCapabilities
Int -> TypeDefinitionClientCapabilities -> Int
TypeDefinitionClientCapabilities -> Int
forall a. Eq a => (Int -> a -> Int) -> (a -> Int) -> Hashable a
$chashWithSalt :: Int -> TypeDefinitionClientCapabilities -> Int
hashWithSalt :: Int -> TypeDefinitionClientCapabilities -> Int
$chash :: TypeDefinitionClientCapabilities -> Int
hash :: TypeDefinitionClientCapabilities -> Int
Hashable)
deriving (forall ann. TypeDefinitionClientCapabilities -> Doc ann)
-> (forall ann. [TypeDefinitionClientCapabilities] -> Doc ann)
-> Pretty TypeDefinitionClientCapabilities
forall ann. [TypeDefinitionClientCapabilities] -> Doc ann
forall ann. TypeDefinitionClientCapabilities -> Doc ann
forall a.
(forall ann. a -> Doc ann)
-> (forall ann. [a] -> Doc ann) -> Pretty a
$cpretty :: forall ann. TypeDefinitionClientCapabilities -> Doc ann
pretty :: forall ann. TypeDefinitionClientCapabilities -> Doc ann
$cprettyList :: forall ann. [TypeDefinitionClientCapabilities] -> Doc ann
prettyList :: forall ann. [TypeDefinitionClientCapabilities] -> Doc ann
Pretty via (ViaJSON TypeDefinitionClientCapabilities)
instance Aeson.ToJSON TypeDefinitionClientCapabilities where
toJSON :: TypeDefinitionClientCapabilities -> Value
toJSON (TypeDefinitionClientCapabilities Maybe Bool
arg0 Maybe Bool
arg1) = [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
"dynamicRegistration" 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
"linkSupport" String -> Maybe Bool -> [Pair]
forall e kv v.
(KeyValue e kv, ToJSON v) =>
String -> Maybe v -> [kv]
Language.LSP.Protocol.Types.Common..=? Maybe Bool
arg1]
instance Aeson.FromJSON TypeDefinitionClientCapabilities where
parseJSON :: Value -> Parser TypeDefinitionClientCapabilities
parseJSON = String
-> (Object -> Parser TypeDefinitionClientCapabilities)
-> Value
-> Parser TypeDefinitionClientCapabilities
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Aeson.withObject String
"TypeDefinitionClientCapabilities" ((Object -> Parser TypeDefinitionClientCapabilities)
-> Value -> Parser TypeDefinitionClientCapabilities)
-> (Object -> Parser TypeDefinitionClientCapabilities)
-> Value
-> Parser TypeDefinitionClientCapabilities
forall a b. (a -> b) -> a -> b
$ \Object
arg -> Maybe Bool -> Maybe Bool -> TypeDefinitionClientCapabilities
TypeDefinitionClientCapabilities (Maybe Bool -> Maybe Bool -> TypeDefinitionClientCapabilities)
-> Parser (Maybe Bool)
-> Parser (Maybe Bool -> TypeDefinitionClientCapabilities)
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
"dynamicRegistration" Parser (Maybe Bool -> TypeDefinitionClientCapabilities)
-> Parser (Maybe Bool) -> Parser TypeDefinitionClientCapabilities
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
"linkSupport"