{-# OPTIONS_GHC -Wno-unused-imports #-}
{-# OPTIONS_GHC -Wno-unused-matches #-}
{-# OPTIONS_GHC -Wno-deprecations #-}
module Language.LSP.Protocol.Internal.Types.InitializeParams where
import Control.DeepSeq
import Data.Hashable
import GHC.Generics
import Language.LSP.Protocol.Utils.Misc
import Prettyprinter
import qualified Data.Aeson
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 Data.Text
import qualified Language.LSP.Protocol.Internal.Types.ClientCapabilities
import qualified Language.LSP.Protocol.Internal.Types.ProgressToken
import qualified Language.LSP.Protocol.Internal.Types.TraceValues
import qualified Language.LSP.Protocol.Internal.Types.WorkspaceFolder
import qualified Language.LSP.Protocol.Types.Common
import qualified Language.LSP.Protocol.Types.Uri
data InitializeParams = InitializeParams
{
InitializeParams -> Maybe ProgressToken
_workDoneToken :: (Maybe Language.LSP.Protocol.Internal.Types.ProgressToken.ProgressToken)
,
InitializeParams -> Int32 |? Null
_processId :: (Language.LSP.Protocol.Types.Common.Int32 Language.LSP.Protocol.Types.Common.|? Language.LSP.Protocol.Types.Common.Null)
,
InitializeParams
-> Maybe
(Rec (("name" .== Text) .+ (("version" .== Maybe Text) .+ Empty)))
_clientInfo :: (Maybe (Row.Rec ("name" Row..== Data.Text.Text Row..+ ("version" Row..== (Maybe Data.Text.Text) Row..+ Row.Empty))))
,
InitializeParams -> Maybe Text
_locale :: (Maybe Data.Text.Text)
,
InitializeParams -> Maybe (Text |? Null)
_rootPath :: (Maybe (Data.Text.Text Language.LSP.Protocol.Types.Common.|? Language.LSP.Protocol.Types.Common.Null))
,
InitializeParams -> Uri |? Null
_rootUri :: (Language.LSP.Protocol.Types.Uri.Uri Language.LSP.Protocol.Types.Common.|? Language.LSP.Protocol.Types.Common.Null)
,
InitializeParams -> ClientCapabilities
_capabilities :: Language.LSP.Protocol.Internal.Types.ClientCapabilities.ClientCapabilities
,
InitializeParams -> Maybe Value
_initializationOptions :: (Maybe Data.Aeson.Value)
,
InitializeParams -> Maybe TraceValues
_trace :: (Maybe Language.LSP.Protocol.Internal.Types.TraceValues.TraceValues)
,
InitializeParams -> Maybe ([WorkspaceFolder] |? Null)
_workspaceFolders :: (Maybe ([Language.LSP.Protocol.Internal.Types.WorkspaceFolder.WorkspaceFolder] Language.LSP.Protocol.Types.Common.|? Language.LSP.Protocol.Types.Common.Null))
}
deriving stock (Int -> InitializeParams -> ShowS
[InitializeParams] -> ShowS
InitializeParams -> String
(Int -> InitializeParams -> ShowS)
-> (InitializeParams -> String)
-> ([InitializeParams] -> ShowS)
-> Show InitializeParams
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> InitializeParams -> ShowS
showsPrec :: Int -> InitializeParams -> ShowS
$cshow :: InitializeParams -> String
show :: InitializeParams -> String
$cshowList :: [InitializeParams] -> ShowS
showList :: [InitializeParams] -> ShowS
Show, InitializeParams -> InitializeParams -> Bool
(InitializeParams -> InitializeParams -> Bool)
-> (InitializeParams -> InitializeParams -> Bool)
-> Eq InitializeParams
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: InitializeParams -> InitializeParams -> Bool
== :: InitializeParams -> InitializeParams -> Bool
$c/= :: InitializeParams -> InitializeParams -> Bool
/= :: InitializeParams -> InitializeParams -> Bool
Eq, Eq InitializeParams
Eq InitializeParams =>
(InitializeParams -> InitializeParams -> Ordering)
-> (InitializeParams -> InitializeParams -> Bool)
-> (InitializeParams -> InitializeParams -> Bool)
-> (InitializeParams -> InitializeParams -> Bool)
-> (InitializeParams -> InitializeParams -> Bool)
-> (InitializeParams -> InitializeParams -> InitializeParams)
-> (InitializeParams -> InitializeParams -> InitializeParams)
-> Ord InitializeParams
InitializeParams -> InitializeParams -> Bool
InitializeParams -> InitializeParams -> Ordering
InitializeParams -> InitializeParams -> InitializeParams
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 :: InitializeParams -> InitializeParams -> Ordering
compare :: InitializeParams -> InitializeParams -> Ordering
$c< :: InitializeParams -> InitializeParams -> Bool
< :: InitializeParams -> InitializeParams -> Bool
$c<= :: InitializeParams -> InitializeParams -> Bool
<= :: InitializeParams -> InitializeParams -> Bool
$c> :: InitializeParams -> InitializeParams -> Bool
> :: InitializeParams -> InitializeParams -> Bool
$c>= :: InitializeParams -> InitializeParams -> Bool
>= :: InitializeParams -> InitializeParams -> Bool
$cmax :: InitializeParams -> InitializeParams -> InitializeParams
max :: InitializeParams -> InitializeParams -> InitializeParams
$cmin :: InitializeParams -> InitializeParams -> InitializeParams
min :: InitializeParams -> InitializeParams -> InitializeParams
Ord, (forall x. InitializeParams -> Rep InitializeParams x)
-> (forall x. Rep InitializeParams x -> InitializeParams)
-> Generic InitializeParams
forall x. Rep InitializeParams x -> InitializeParams
forall x. InitializeParams -> Rep InitializeParams x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. InitializeParams -> Rep InitializeParams x
from :: forall x. InitializeParams -> Rep InitializeParams x
$cto :: forall x. Rep InitializeParams x -> InitializeParams
to :: forall x. Rep InitializeParams x -> InitializeParams
Generic)
deriving anyclass (InitializeParams -> ()
(InitializeParams -> ()) -> NFData InitializeParams
forall a. (a -> ()) -> NFData a
$crnf :: InitializeParams -> ()
rnf :: InitializeParams -> ()
NFData, Eq InitializeParams
Eq InitializeParams =>
(Int -> InitializeParams -> Int)
-> (InitializeParams -> Int) -> Hashable InitializeParams
Int -> InitializeParams -> Int
InitializeParams -> Int
forall a. Eq a => (Int -> a -> Int) -> (a -> Int) -> Hashable a
$chashWithSalt :: Int -> InitializeParams -> Int
hashWithSalt :: Int -> InitializeParams -> Int
$chash :: InitializeParams -> Int
hash :: InitializeParams -> Int
Hashable)
deriving (forall ann. InitializeParams -> Doc ann)
-> (forall ann. [InitializeParams] -> Doc ann)
-> Pretty InitializeParams
forall ann. [InitializeParams] -> Doc ann
forall ann. InitializeParams -> Doc ann
forall a.
(forall ann. a -> Doc ann)
-> (forall ann. [a] -> Doc ann) -> Pretty a
$cpretty :: forall ann. InitializeParams -> Doc ann
pretty :: forall ann. InitializeParams -> Doc ann
$cprettyList :: forall ann. [InitializeParams] -> Doc ann
prettyList :: forall ann. [InitializeParams] -> Doc ann
Pretty via (ViaJSON InitializeParams)
instance Aeson.ToJSON InitializeParams where
toJSON :: InitializeParams -> Value
toJSON (InitializeParams Maybe ProgressToken
arg0 Int32 |? Null
arg1 Maybe
(Rec (("name" .== Text) .+ (("version" .== Maybe Text) .+ Empty)))
arg2 Maybe Text
arg3 Maybe (Text |? Null)
arg4 Uri |? Null
arg5 ClientCapabilities
arg6 Maybe Value
arg7 Maybe TraceValues
arg8 Maybe ([WorkspaceFolder] |? Null)
arg9) = [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
"workDoneToken" String -> Maybe ProgressToken -> [Pair]
forall e kv v.
(KeyValue e kv, ToJSON v) =>
String -> Maybe v -> [kv]
Language.LSP.Protocol.Types.Common..=? Maybe ProgressToken
arg0
,[Key
"processId" Key -> (Int32 |? Null) -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
Aeson..= Int32 |? Null
arg1]
,String
"clientInfo" String
-> Maybe (Rec ('R '["name" ':-> Text, "version" ':-> Maybe Text]))
-> [Pair]
forall e kv v.
(KeyValue e kv, ToJSON v) =>
String -> Maybe v -> [kv]
Language.LSP.Protocol.Types.Common..=? Maybe
(Rec (("name" .== Text) .+ (("version" .== Maybe Text) .+ Empty)))
Maybe (Rec ('R '["name" ':-> Text, "version" ':-> Maybe Text]))
arg2
,String
"locale" String -> Maybe Text -> [Pair]
forall e kv v.
(KeyValue e kv, ToJSON v) =>
String -> Maybe v -> [kv]
Language.LSP.Protocol.Types.Common..=? Maybe Text
arg3
,String
"rootPath" String -> Maybe (Text |? Null) -> [Pair]
forall e kv v.
(KeyValue e kv, ToJSON v) =>
String -> Maybe v -> [kv]
Language.LSP.Protocol.Types.Common..=? Maybe (Text |? Null)
arg4
,[Key
"rootUri" Key -> (Uri |? Null) -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
Aeson..= Uri |? Null
arg5]
,[Key
"capabilities" Key -> ClientCapabilities -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
Aeson..= ClientCapabilities
arg6]
,String
"initializationOptions" String -> Maybe Value -> [Pair]
forall e kv v.
(KeyValue e kv, ToJSON v) =>
String -> Maybe v -> [kv]
Language.LSP.Protocol.Types.Common..=? Maybe Value
arg7
,String
"trace" String -> Maybe TraceValues -> [Pair]
forall e kv v.
(KeyValue e kv, ToJSON v) =>
String -> Maybe v -> [kv]
Language.LSP.Protocol.Types.Common..=? Maybe TraceValues
arg8
,String
"workspaceFolders" String -> Maybe ([WorkspaceFolder] |? Null) -> [Pair]
forall e kv v.
(KeyValue e kv, ToJSON v) =>
String -> Maybe v -> [kv]
Language.LSP.Protocol.Types.Common..=? Maybe ([WorkspaceFolder] |? Null)
arg9]
instance Aeson.FromJSON InitializeParams where
parseJSON :: Value -> Parser InitializeParams
parseJSON = String
-> (Object -> Parser InitializeParams)
-> Value
-> Parser InitializeParams
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Aeson.withObject String
"InitializeParams" ((Object -> Parser InitializeParams)
-> Value -> Parser InitializeParams)
-> (Object -> Parser InitializeParams)
-> Value
-> Parser InitializeParams
forall a b. (a -> b) -> a -> b
$ \Object
arg -> Maybe ProgressToken
-> (Int32 |? Null)
-> Maybe
(Rec (("name" .== Text) .+ (("version" .== Maybe Text) .+ Empty)))
-> Maybe Text
-> Maybe (Text |? Null)
-> (Uri |? Null)
-> ClientCapabilities
-> Maybe Value
-> Maybe TraceValues
-> Maybe ([WorkspaceFolder] |? Null)
-> InitializeParams
Maybe ProgressToken
-> (Int32 |? Null)
-> Maybe (Rec ('R '["name" ':-> Text, "version" ':-> Maybe Text]))
-> Maybe Text
-> Maybe (Text |? Null)
-> (Uri |? Null)
-> ClientCapabilities
-> Maybe Value
-> Maybe TraceValues
-> Maybe ([WorkspaceFolder] |? Null)
-> InitializeParams
InitializeParams (Maybe ProgressToken
-> (Int32 |? Null)
-> Maybe (Rec ('R '["name" ':-> Text, "version" ':-> Maybe Text]))
-> Maybe Text
-> Maybe (Text |? Null)
-> (Uri |? Null)
-> ClientCapabilities
-> Maybe Value
-> Maybe TraceValues
-> Maybe ([WorkspaceFolder] |? Null)
-> InitializeParams)
-> Parser (Maybe ProgressToken)
-> Parser
((Int32 |? Null)
-> Maybe (Rec ('R '["name" ':-> Text, "version" ':-> Maybe Text]))
-> Maybe Text
-> Maybe (Text |? Null)
-> (Uri |? Null)
-> ClientCapabilities
-> Maybe Value
-> Maybe TraceValues
-> Maybe ([WorkspaceFolder] |? Null)
-> InitializeParams)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
arg Object -> Key -> Parser (Maybe ProgressToken)
forall v. FromJSON v => Object -> Key -> Parser (Maybe v)
Language.LSP.Protocol.Types.Common..:!? Key
"workDoneToken" Parser
((Int32 |? Null)
-> Maybe (Rec ('R '["name" ':-> Text, "version" ':-> Maybe Text]))
-> Maybe Text
-> Maybe (Text |? Null)
-> (Uri |? Null)
-> ClientCapabilities
-> Maybe Value
-> Maybe TraceValues
-> Maybe ([WorkspaceFolder] |? Null)
-> InitializeParams)
-> Parser (Int32 |? Null)
-> Parser
(Maybe (Rec ('R '["name" ':-> Text, "version" ':-> Maybe Text]))
-> Maybe Text
-> Maybe (Text |? Null)
-> (Uri |? Null)
-> ClientCapabilities
-> Maybe Value
-> Maybe TraceValues
-> Maybe ([WorkspaceFolder] |? Null)
-> InitializeParams)
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 (Int32 |? Null)
forall a. FromJSON a => Object -> Key -> Parser a
Aeson..: Key
"processId" Parser
(Maybe (Rec ('R '["name" ':-> Text, "version" ':-> Maybe Text]))
-> Maybe Text
-> Maybe (Text |? Null)
-> (Uri |? Null)
-> ClientCapabilities
-> Maybe Value
-> Maybe TraceValues
-> Maybe ([WorkspaceFolder] |? Null)
-> InitializeParams)
-> Parser
(Maybe (Rec ('R '["name" ':-> Text, "version" ':-> Maybe Text])))
-> Parser
(Maybe Text
-> Maybe (Text |? Null)
-> (Uri |? Null)
-> ClientCapabilities
-> Maybe Value
-> Maybe TraceValues
-> Maybe ([WorkspaceFolder] |? Null)
-> InitializeParams)
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 (Rec ('R '["name" ':-> Text, "version" ':-> Maybe Text])))
forall v. FromJSON v => Object -> Key -> Parser (Maybe v)
Language.LSP.Protocol.Types.Common..:!? Key
"clientInfo" Parser
(Maybe Text
-> Maybe (Text |? Null)
-> (Uri |? Null)
-> ClientCapabilities
-> Maybe Value
-> Maybe TraceValues
-> Maybe ([WorkspaceFolder] |? Null)
-> InitializeParams)
-> Parser (Maybe Text)
-> Parser
(Maybe (Text |? Null)
-> (Uri |? Null)
-> ClientCapabilities
-> Maybe Value
-> Maybe TraceValues
-> Maybe ([WorkspaceFolder] |? Null)
-> InitializeParams)
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 Text)
forall v. FromJSON v => Object -> Key -> Parser (Maybe v)
Language.LSP.Protocol.Types.Common..:!? Key
"locale" Parser
(Maybe (Text |? Null)
-> (Uri |? Null)
-> ClientCapabilities
-> Maybe Value
-> Maybe TraceValues
-> Maybe ([WorkspaceFolder] |? Null)
-> InitializeParams)
-> Parser (Maybe (Text |? Null))
-> Parser
((Uri |? Null)
-> ClientCapabilities
-> Maybe Value
-> Maybe TraceValues
-> Maybe ([WorkspaceFolder] |? Null)
-> InitializeParams)
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 (Text |? Null))
forall v. FromJSON v => Object -> Key -> Parser (Maybe v)
Language.LSP.Protocol.Types.Common..:!? Key
"rootPath" Parser
((Uri |? Null)
-> ClientCapabilities
-> Maybe Value
-> Maybe TraceValues
-> Maybe ([WorkspaceFolder] |? Null)
-> InitializeParams)
-> Parser (Uri |? Null)
-> Parser
(ClientCapabilities
-> Maybe Value
-> Maybe TraceValues
-> Maybe ([WorkspaceFolder] |? Null)
-> InitializeParams)
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 (Uri |? Null)
forall a. FromJSON a => Object -> Key -> Parser a
Aeson..: Key
"rootUri" Parser
(ClientCapabilities
-> Maybe Value
-> Maybe TraceValues
-> Maybe ([WorkspaceFolder] |? Null)
-> InitializeParams)
-> Parser ClientCapabilities
-> Parser
(Maybe Value
-> Maybe TraceValues
-> Maybe ([WorkspaceFolder] |? Null)
-> InitializeParams)
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 ClientCapabilities
forall a. FromJSON a => Object -> Key -> Parser a
Aeson..: Key
"capabilities" Parser
(Maybe Value
-> Maybe TraceValues
-> Maybe ([WorkspaceFolder] |? Null)
-> InitializeParams)
-> Parser (Maybe Value)
-> Parser
(Maybe TraceValues
-> Maybe ([WorkspaceFolder] |? Null) -> InitializeParams)
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 Value)
forall v. FromJSON v => Object -> Key -> Parser (Maybe v)
Language.LSP.Protocol.Types.Common..:!? Key
"initializationOptions" Parser
(Maybe TraceValues
-> Maybe ([WorkspaceFolder] |? Null) -> InitializeParams)
-> Parser (Maybe TraceValues)
-> Parser (Maybe ([WorkspaceFolder] |? Null) -> InitializeParams)
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 TraceValues)
forall v. FromJSON v => Object -> Key -> Parser (Maybe v)
Language.LSP.Protocol.Types.Common..:!? Key
"trace" Parser (Maybe ([WorkspaceFolder] |? Null) -> InitializeParams)
-> Parser (Maybe ([WorkspaceFolder] |? Null))
-> Parser InitializeParams
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 ([WorkspaceFolder] |? Null))
forall v. FromJSON v => Object -> Key -> Parser (Maybe v)
Language.LSP.Protocol.Types.Common..:!? Key
"workspaceFolders"