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