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