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