{- 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.CodeActionTriggerKind 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

{-|
The reason why code actions were requested.

@since 3.17.0
-}
data CodeActionTriggerKind = 
    {-|
  Code actions were explicitly requested by the user or by an extension.
  -}
  CodeActionTriggerKind_Invoked
  | {-|
  Code actions were requested automatically.

  This typically happens when current selection in a file changes, but can
  also be triggered when file content changes.
  -}
  CodeActionTriggerKind_Automatic
  deriving stock (Int -> CodeActionTriggerKind -> ShowS
[CodeActionTriggerKind] -> ShowS
CodeActionTriggerKind -> String
(Int -> CodeActionTriggerKind -> ShowS)
-> (CodeActionTriggerKind -> String)
-> ([CodeActionTriggerKind] -> ShowS)
-> Show CodeActionTriggerKind
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> CodeActionTriggerKind -> ShowS
showsPrec :: Int -> CodeActionTriggerKind -> ShowS
$cshow :: CodeActionTriggerKind -> String
show :: CodeActionTriggerKind -> String
$cshowList :: [CodeActionTriggerKind] -> ShowS
showList :: [CodeActionTriggerKind] -> ShowS
Show, CodeActionTriggerKind -> CodeActionTriggerKind -> Bool
(CodeActionTriggerKind -> CodeActionTriggerKind -> Bool)
-> (CodeActionTriggerKind -> CodeActionTriggerKind -> Bool)
-> Eq CodeActionTriggerKind
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: CodeActionTriggerKind -> CodeActionTriggerKind -> Bool
== :: CodeActionTriggerKind -> CodeActionTriggerKind -> Bool
$c/= :: CodeActionTriggerKind -> CodeActionTriggerKind -> Bool
/= :: CodeActionTriggerKind -> CodeActionTriggerKind -> Bool
Eq, Eq CodeActionTriggerKind
Eq CodeActionTriggerKind =>
(CodeActionTriggerKind -> CodeActionTriggerKind -> Ordering)
-> (CodeActionTriggerKind -> CodeActionTriggerKind -> Bool)
-> (CodeActionTriggerKind -> CodeActionTriggerKind -> Bool)
-> (CodeActionTriggerKind -> CodeActionTriggerKind -> Bool)
-> (CodeActionTriggerKind -> CodeActionTriggerKind -> Bool)
-> (CodeActionTriggerKind
    -> CodeActionTriggerKind -> CodeActionTriggerKind)
-> (CodeActionTriggerKind
    -> CodeActionTriggerKind -> CodeActionTriggerKind)
-> Ord CodeActionTriggerKind
CodeActionTriggerKind -> CodeActionTriggerKind -> Bool
CodeActionTriggerKind -> CodeActionTriggerKind -> Ordering
CodeActionTriggerKind
-> CodeActionTriggerKind -> CodeActionTriggerKind
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 :: CodeActionTriggerKind -> CodeActionTriggerKind -> Ordering
compare :: CodeActionTriggerKind -> CodeActionTriggerKind -> Ordering
$c< :: CodeActionTriggerKind -> CodeActionTriggerKind -> Bool
< :: CodeActionTriggerKind -> CodeActionTriggerKind -> Bool
$c<= :: CodeActionTriggerKind -> CodeActionTriggerKind -> Bool
<= :: CodeActionTriggerKind -> CodeActionTriggerKind -> Bool
$c> :: CodeActionTriggerKind -> CodeActionTriggerKind -> Bool
> :: CodeActionTriggerKind -> CodeActionTriggerKind -> Bool
$c>= :: CodeActionTriggerKind -> CodeActionTriggerKind -> Bool
>= :: CodeActionTriggerKind -> CodeActionTriggerKind -> Bool
$cmax :: CodeActionTriggerKind
-> CodeActionTriggerKind -> CodeActionTriggerKind
max :: CodeActionTriggerKind
-> CodeActionTriggerKind -> CodeActionTriggerKind
$cmin :: CodeActionTriggerKind
-> CodeActionTriggerKind -> CodeActionTriggerKind
min :: CodeActionTriggerKind
-> CodeActionTriggerKind -> CodeActionTriggerKind
Ord, (forall x. CodeActionTriggerKind -> Rep CodeActionTriggerKind x)
-> (forall x. Rep CodeActionTriggerKind x -> CodeActionTriggerKind)
-> Generic CodeActionTriggerKind
forall x. Rep CodeActionTriggerKind x -> CodeActionTriggerKind
forall x. CodeActionTriggerKind -> Rep CodeActionTriggerKind x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. CodeActionTriggerKind -> Rep CodeActionTriggerKind x
from :: forall x. CodeActionTriggerKind -> Rep CodeActionTriggerKind x
$cto :: forall x. Rep CodeActionTriggerKind x -> CodeActionTriggerKind
to :: forall x. Rep CodeActionTriggerKind x -> CodeActionTriggerKind
Generic)
  deriving anyclass (CodeActionTriggerKind -> ()
(CodeActionTriggerKind -> ()) -> NFData CodeActionTriggerKind
forall a. (a -> ()) -> NFData a
$crnf :: CodeActionTriggerKind -> ()
rnf :: CodeActionTriggerKind -> ()
NFData, Eq CodeActionTriggerKind
Eq CodeActionTriggerKind =>
(Int -> CodeActionTriggerKind -> Int)
-> (CodeActionTriggerKind -> Int) -> Hashable CodeActionTriggerKind
Int -> CodeActionTriggerKind -> Int
CodeActionTriggerKind -> Int
forall a. Eq a => (Int -> a -> Int) -> (a -> Int) -> Hashable a
$chashWithSalt :: Int -> CodeActionTriggerKind -> Int
hashWithSalt :: Int -> CodeActionTriggerKind -> Int
$chash :: CodeActionTriggerKind -> Int
hash :: CodeActionTriggerKind -> Int
Hashable)
  deriving ( [CodeActionTriggerKind] -> Value
[CodeActionTriggerKind] -> Encoding
CodeActionTriggerKind -> Bool
CodeActionTriggerKind -> Value
CodeActionTriggerKind -> Encoding
(CodeActionTriggerKind -> Value)
-> (CodeActionTriggerKind -> Encoding)
-> ([CodeActionTriggerKind] -> Value)
-> ([CodeActionTriggerKind] -> Encoding)
-> (CodeActionTriggerKind -> Bool)
-> ToJSON CodeActionTriggerKind
forall a.
(a -> Value)
-> (a -> Encoding)
-> ([a] -> Value)
-> ([a] -> Encoding)
-> (a -> Bool)
-> ToJSON a
$ctoJSON :: CodeActionTriggerKind -> Value
toJSON :: CodeActionTriggerKind -> Value
$ctoEncoding :: CodeActionTriggerKind -> Encoding
toEncoding :: CodeActionTriggerKind -> Encoding
$ctoJSONList :: [CodeActionTriggerKind] -> Value
toJSONList :: [CodeActionTriggerKind] -> Value
$ctoEncodingList :: [CodeActionTriggerKind] -> Encoding
toEncodingList :: [CodeActionTriggerKind] -> Encoding
$comitField :: CodeActionTriggerKind -> Bool
omitField :: CodeActionTriggerKind -> Bool
Aeson.ToJSON
  , Maybe CodeActionTriggerKind
Value -> Parser [CodeActionTriggerKind]
Value -> Parser CodeActionTriggerKind
(Value -> Parser CodeActionTriggerKind)
-> (Value -> Parser [CodeActionTriggerKind])
-> Maybe CodeActionTriggerKind
-> FromJSON CodeActionTriggerKind
forall a.
(Value -> Parser a)
-> (Value -> Parser [a]) -> Maybe a -> FromJSON a
$cparseJSON :: Value -> Parser CodeActionTriggerKind
parseJSON :: Value -> Parser CodeActionTriggerKind
$cparseJSONList :: Value -> Parser [CodeActionTriggerKind]
parseJSONList :: Value -> Parser [CodeActionTriggerKind]
$comittedField :: Maybe CodeActionTriggerKind
omittedField :: Maybe CodeActionTriggerKind
Aeson.FromJSON ) via (Language.LSP.Protocol.Types.LspEnum.AsLspEnum CodeActionTriggerKind)
  deriving (forall ann. CodeActionTriggerKind -> Doc ann)
-> (forall ann. [CodeActionTriggerKind] -> Doc ann)
-> Pretty CodeActionTriggerKind
forall ann. [CodeActionTriggerKind] -> Doc ann
forall ann. CodeActionTriggerKind -> Doc ann
forall a.
(forall ann. a -> Doc ann)
-> (forall ann. [a] -> Doc ann) -> Pretty a
$cpretty :: forall ann. CodeActionTriggerKind -> Doc ann
pretty :: forall ann. CodeActionTriggerKind -> Doc ann
$cprettyList :: forall ann. [CodeActionTriggerKind] -> Doc ann
prettyList :: forall ann. [CodeActionTriggerKind] -> Doc ann
Pretty via (ViaJSON CodeActionTriggerKind)

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