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