{- ORMOLU_DISABLE -}
{- HLINT ignore -}
-- THIS IS A GENERATED FILE, DO NOT EDIT

{-# OPTIONS_GHC -Wno-unused-imports #-}
{-# OPTIONS_GHC -Wno-unused-matches #-}
{-# OPTIONS_GHC -Wno-deprecations #-}
module Language.LSP.Protocol.Internal.Types.CompletionTriggerKind 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 Data.Set
import qualified Data.String
import qualified Language.LSP.Protocol.Types.Common
import qualified Language.LSP.Protocol.Types.LspEnum

{-|
How a completion was triggered
-}
data CompletionTriggerKind = 
    {-|
  Completion was triggered by typing an identifier (24x7 code
  complete), manual invocation (e.g Ctrl+Space) or via API.
  -}
  CompletionTriggerKind_Invoked
  | {-|
  Completion was triggered by a trigger character specified by
  the `triggerCharacters` properties of the `CompletionRegistrationOptions`.
  -}
  CompletionTriggerKind_TriggerCharacter
  | {-|
  Completion was re-triggered as current completion list is incomplete
  -}
  CompletionTriggerKind_TriggerForIncompleteCompletions
  deriving stock (Int -> CompletionTriggerKind -> ShowS
[CompletionTriggerKind] -> ShowS
CompletionTriggerKind -> String
(Int -> CompletionTriggerKind -> ShowS)
-> (CompletionTriggerKind -> String)
-> ([CompletionTriggerKind] -> ShowS)
-> Show CompletionTriggerKind
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> CompletionTriggerKind -> ShowS
showsPrec :: Int -> CompletionTriggerKind -> ShowS
$cshow :: CompletionTriggerKind -> String
show :: CompletionTriggerKind -> String
$cshowList :: [CompletionTriggerKind] -> ShowS
showList :: [CompletionTriggerKind] -> ShowS
Show, CompletionTriggerKind -> CompletionTriggerKind -> Bool
(CompletionTriggerKind -> CompletionTriggerKind -> Bool)
-> (CompletionTriggerKind -> CompletionTriggerKind -> Bool)
-> Eq CompletionTriggerKind
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: CompletionTriggerKind -> CompletionTriggerKind -> Bool
== :: CompletionTriggerKind -> CompletionTriggerKind -> Bool
$c/= :: CompletionTriggerKind -> CompletionTriggerKind -> Bool
/= :: CompletionTriggerKind -> CompletionTriggerKind -> Bool
Eq, Eq CompletionTriggerKind
Eq CompletionTriggerKind =>
(CompletionTriggerKind -> CompletionTriggerKind -> Ordering)
-> (CompletionTriggerKind -> CompletionTriggerKind -> Bool)
-> (CompletionTriggerKind -> CompletionTriggerKind -> Bool)
-> (CompletionTriggerKind -> CompletionTriggerKind -> Bool)
-> (CompletionTriggerKind -> CompletionTriggerKind -> Bool)
-> (CompletionTriggerKind
    -> CompletionTriggerKind -> CompletionTriggerKind)
-> (CompletionTriggerKind
    -> CompletionTriggerKind -> CompletionTriggerKind)
-> Ord CompletionTriggerKind
CompletionTriggerKind -> CompletionTriggerKind -> Bool
CompletionTriggerKind -> CompletionTriggerKind -> Ordering
CompletionTriggerKind
-> CompletionTriggerKind -> CompletionTriggerKind
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 :: CompletionTriggerKind -> CompletionTriggerKind -> Ordering
compare :: CompletionTriggerKind -> CompletionTriggerKind -> Ordering
$c< :: CompletionTriggerKind -> CompletionTriggerKind -> Bool
< :: CompletionTriggerKind -> CompletionTriggerKind -> Bool
$c<= :: CompletionTriggerKind -> CompletionTriggerKind -> Bool
<= :: CompletionTriggerKind -> CompletionTriggerKind -> Bool
$c> :: CompletionTriggerKind -> CompletionTriggerKind -> Bool
> :: CompletionTriggerKind -> CompletionTriggerKind -> Bool
$c>= :: CompletionTriggerKind -> CompletionTriggerKind -> Bool
>= :: CompletionTriggerKind -> CompletionTriggerKind -> Bool
$cmax :: CompletionTriggerKind
-> CompletionTriggerKind -> CompletionTriggerKind
max :: CompletionTriggerKind
-> CompletionTriggerKind -> CompletionTriggerKind
$cmin :: CompletionTriggerKind
-> CompletionTriggerKind -> CompletionTriggerKind
min :: CompletionTriggerKind
-> CompletionTriggerKind -> CompletionTriggerKind
Ord, (forall x. CompletionTriggerKind -> Rep CompletionTriggerKind x)
-> (forall x. Rep CompletionTriggerKind x -> CompletionTriggerKind)
-> Generic CompletionTriggerKind
forall x. Rep CompletionTriggerKind x -> CompletionTriggerKind
forall x. CompletionTriggerKind -> Rep CompletionTriggerKind x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. CompletionTriggerKind -> Rep CompletionTriggerKind x
from :: forall x. CompletionTriggerKind -> Rep CompletionTriggerKind x
$cto :: forall x. Rep CompletionTriggerKind x -> CompletionTriggerKind
to :: forall x. Rep CompletionTriggerKind x -> CompletionTriggerKind
Generic)
  deriving anyclass (CompletionTriggerKind -> ()
(CompletionTriggerKind -> ()) -> NFData CompletionTriggerKind
forall a. (a -> ()) -> NFData a
$crnf :: CompletionTriggerKind -> ()
rnf :: CompletionTriggerKind -> ()
NFData, Eq CompletionTriggerKind
Eq CompletionTriggerKind =>
(Int -> CompletionTriggerKind -> Int)
-> (CompletionTriggerKind -> Int) -> Hashable CompletionTriggerKind
Int -> CompletionTriggerKind -> Int
CompletionTriggerKind -> Int
forall a. Eq a => (Int -> a -> Int) -> (a -> Int) -> Hashable a
$chashWithSalt :: Int -> CompletionTriggerKind -> Int
hashWithSalt :: Int -> CompletionTriggerKind -> Int
$chash :: CompletionTriggerKind -> Int
hash :: CompletionTriggerKind -> Int
Hashable)
  deriving ( [CompletionTriggerKind] -> Value
[CompletionTriggerKind] -> Encoding
CompletionTriggerKind -> Bool
CompletionTriggerKind -> Value
CompletionTriggerKind -> Encoding
(CompletionTriggerKind -> Value)
-> (CompletionTriggerKind -> Encoding)
-> ([CompletionTriggerKind] -> Value)
-> ([CompletionTriggerKind] -> Encoding)
-> (CompletionTriggerKind -> Bool)
-> ToJSON CompletionTriggerKind
forall a.
(a -> Value)
-> (a -> Encoding)
-> ([a] -> Value)
-> ([a] -> Encoding)
-> (a -> Bool)
-> ToJSON a
$ctoJSON :: CompletionTriggerKind -> Value
toJSON :: CompletionTriggerKind -> Value
$ctoEncoding :: CompletionTriggerKind -> Encoding
toEncoding :: CompletionTriggerKind -> Encoding
$ctoJSONList :: [CompletionTriggerKind] -> Value
toJSONList :: [CompletionTriggerKind] -> Value
$ctoEncodingList :: [CompletionTriggerKind] -> Encoding
toEncodingList :: [CompletionTriggerKind] -> Encoding
$comitField :: CompletionTriggerKind -> Bool
omitField :: CompletionTriggerKind -> Bool
Aeson.ToJSON
  , Maybe CompletionTriggerKind
Value -> Parser [CompletionTriggerKind]
Value -> Parser CompletionTriggerKind
(Value -> Parser CompletionTriggerKind)
-> (Value -> Parser [CompletionTriggerKind])
-> Maybe CompletionTriggerKind
-> FromJSON CompletionTriggerKind
forall a.
(Value -> Parser a)
-> (Value -> Parser [a]) -> Maybe a -> FromJSON a
$cparseJSON :: Value -> Parser CompletionTriggerKind
parseJSON :: Value -> Parser CompletionTriggerKind
$cparseJSONList :: Value -> Parser [CompletionTriggerKind]
parseJSONList :: Value -> Parser [CompletionTriggerKind]
$comittedField :: Maybe CompletionTriggerKind
omittedField :: Maybe CompletionTriggerKind
Aeson.FromJSON ) via (Language.LSP.Protocol.Types.LspEnum.AsLspEnum CompletionTriggerKind)
  deriving (forall ann. CompletionTriggerKind -> Doc ann)
-> (forall ann. [CompletionTriggerKind] -> Doc ann)
-> Pretty CompletionTriggerKind
forall ann. [CompletionTriggerKind] -> Doc ann
forall ann. CompletionTriggerKind -> Doc ann
forall a.
(forall ann. a -> Doc ann)
-> (forall ann. [a] -> Doc ann) -> Pretty a
$cpretty :: forall ann. CompletionTriggerKind -> Doc ann
pretty :: forall ann. CompletionTriggerKind -> Doc ann
$cprettyList :: forall ann. [CompletionTriggerKind] -> Doc ann
prettyList :: forall ann. [CompletionTriggerKind] -> Doc ann
Pretty via (ViaJSON CompletionTriggerKind)

instance Language.LSP.Protocol.Types.LspEnum.LspEnum CompletionTriggerKind where
  knownValues :: Set CompletionTriggerKind
knownValues = [CompletionTriggerKind] -> Set CompletionTriggerKind
forall a. Ord a => [a] -> Set a
Data.Set.fromList [CompletionTriggerKind
CompletionTriggerKind_Invoked
    ,CompletionTriggerKind
CompletionTriggerKind_TriggerCharacter
    ,CompletionTriggerKind
CompletionTriggerKind_TriggerForIncompleteCompletions]
  type EnumBaseType CompletionTriggerKind = Language.LSP.Protocol.Types.Common.UInt
  toEnumBaseType :: CompletionTriggerKind -> EnumBaseType CompletionTriggerKind
toEnumBaseType CompletionTriggerKind
CompletionTriggerKind_Invoked = EnumBaseType CompletionTriggerKind
UInt
1
  toEnumBaseType CompletionTriggerKind
CompletionTriggerKind_TriggerCharacter = EnumBaseType CompletionTriggerKind
UInt
2
  toEnumBaseType CompletionTriggerKind
CompletionTriggerKind_TriggerForIncompleteCompletions = EnumBaseType CompletionTriggerKind
UInt
3
  fromEnumBaseType :: EnumBaseType CompletionTriggerKind -> Maybe CompletionTriggerKind
fromEnumBaseType EnumBaseType CompletionTriggerKind
1 = CompletionTriggerKind -> Maybe CompletionTriggerKind
forall a. a -> Maybe a
forall (f :: * -> *) a. Applicative f => a -> f a
pure CompletionTriggerKind
CompletionTriggerKind_Invoked
  fromEnumBaseType EnumBaseType CompletionTriggerKind
2 = CompletionTriggerKind -> Maybe CompletionTriggerKind
forall a. a -> Maybe a
forall (f :: * -> *) a. Applicative f => a -> f a
pure CompletionTriggerKind
CompletionTriggerKind_TriggerCharacter
  fromEnumBaseType EnumBaseType CompletionTriggerKind
3 = CompletionTriggerKind -> Maybe CompletionTriggerKind
forall a. a -> Maybe a
forall (f :: * -> *) a. Applicative f => a -> f a
pure CompletionTriggerKind
CompletionTriggerKind_TriggerForIncompleteCompletions
  fromEnumBaseType EnumBaseType CompletionTriggerKind
_ = Maybe CompletionTriggerKind
forall a. Maybe a
Nothing