{- 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.SemanticTokenModifiers 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 Data.Text
import qualified Language.LSP.Protocol.Types.LspEnum

{-|
A set of predefined token modifiers. This set is not fixed
an clients can specify additional token types via the
corresponding client capabilities.

@since 3.16.0
-}
data SemanticTokenModifiers = 
    {-|

  -}
  SemanticTokenModifiers_Declaration
  | {-|

  -}
  SemanticTokenModifiers_Definition
  | {-|

  -}
  SemanticTokenModifiers_Readonly
  | {-|

  -}
  SemanticTokenModifiers_Static
  | {-|

  -}
  SemanticTokenModifiers_Deprecated
  | {-|

  -}
  SemanticTokenModifiers_Abstract
  | {-|

  -}
  SemanticTokenModifiers_Async
  | {-|

  -}
  SemanticTokenModifiers_Modification
  | {-|

  -}
  SemanticTokenModifiers_Documentation
  | {-|

  -}
  SemanticTokenModifiers_DefaultLibrary
  | SemanticTokenModifiers_Custom Data.Text.Text
  deriving stock (Int -> SemanticTokenModifiers -> ShowS
[SemanticTokenModifiers] -> ShowS
SemanticTokenModifiers -> String
(Int -> SemanticTokenModifiers -> ShowS)
-> (SemanticTokenModifiers -> String)
-> ([SemanticTokenModifiers] -> ShowS)
-> Show SemanticTokenModifiers
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> SemanticTokenModifiers -> ShowS
showsPrec :: Int -> SemanticTokenModifiers -> ShowS
$cshow :: SemanticTokenModifiers -> String
show :: SemanticTokenModifiers -> String
$cshowList :: [SemanticTokenModifiers] -> ShowS
showList :: [SemanticTokenModifiers] -> ShowS
Show, SemanticTokenModifiers -> SemanticTokenModifiers -> Bool
(SemanticTokenModifiers -> SemanticTokenModifiers -> Bool)
-> (SemanticTokenModifiers -> SemanticTokenModifiers -> Bool)
-> Eq SemanticTokenModifiers
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: SemanticTokenModifiers -> SemanticTokenModifiers -> Bool
== :: SemanticTokenModifiers -> SemanticTokenModifiers -> Bool
$c/= :: SemanticTokenModifiers -> SemanticTokenModifiers -> Bool
/= :: SemanticTokenModifiers -> SemanticTokenModifiers -> Bool
Eq, Eq SemanticTokenModifiers
Eq SemanticTokenModifiers =>
(SemanticTokenModifiers -> SemanticTokenModifiers -> Ordering)
-> (SemanticTokenModifiers -> SemanticTokenModifiers -> Bool)
-> (SemanticTokenModifiers -> SemanticTokenModifiers -> Bool)
-> (SemanticTokenModifiers -> SemanticTokenModifiers -> Bool)
-> (SemanticTokenModifiers -> SemanticTokenModifiers -> Bool)
-> (SemanticTokenModifiers
    -> SemanticTokenModifiers -> SemanticTokenModifiers)
-> (SemanticTokenModifiers
    -> SemanticTokenModifiers -> SemanticTokenModifiers)
-> Ord SemanticTokenModifiers
SemanticTokenModifiers -> SemanticTokenModifiers -> Bool
SemanticTokenModifiers -> SemanticTokenModifiers -> Ordering
SemanticTokenModifiers
-> SemanticTokenModifiers -> SemanticTokenModifiers
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 :: SemanticTokenModifiers -> SemanticTokenModifiers -> Ordering
compare :: SemanticTokenModifiers -> SemanticTokenModifiers -> Ordering
$c< :: SemanticTokenModifiers -> SemanticTokenModifiers -> Bool
< :: SemanticTokenModifiers -> SemanticTokenModifiers -> Bool
$c<= :: SemanticTokenModifiers -> SemanticTokenModifiers -> Bool
<= :: SemanticTokenModifiers -> SemanticTokenModifiers -> Bool
$c> :: SemanticTokenModifiers -> SemanticTokenModifiers -> Bool
> :: SemanticTokenModifiers -> SemanticTokenModifiers -> Bool
$c>= :: SemanticTokenModifiers -> SemanticTokenModifiers -> Bool
>= :: SemanticTokenModifiers -> SemanticTokenModifiers -> Bool
$cmax :: SemanticTokenModifiers
-> SemanticTokenModifiers -> SemanticTokenModifiers
max :: SemanticTokenModifiers
-> SemanticTokenModifiers -> SemanticTokenModifiers
$cmin :: SemanticTokenModifiers
-> SemanticTokenModifiers -> SemanticTokenModifiers
min :: SemanticTokenModifiers
-> SemanticTokenModifiers -> SemanticTokenModifiers
Ord, (forall x. SemanticTokenModifiers -> Rep SemanticTokenModifiers x)
-> (forall x.
    Rep SemanticTokenModifiers x -> SemanticTokenModifiers)
-> Generic SemanticTokenModifiers
forall x. Rep SemanticTokenModifiers x -> SemanticTokenModifiers
forall x. SemanticTokenModifiers -> Rep SemanticTokenModifiers x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. SemanticTokenModifiers -> Rep SemanticTokenModifiers x
from :: forall x. SemanticTokenModifiers -> Rep SemanticTokenModifiers x
$cto :: forall x. Rep SemanticTokenModifiers x -> SemanticTokenModifiers
to :: forall x. Rep SemanticTokenModifiers x -> SemanticTokenModifiers
Generic)
  deriving anyclass (SemanticTokenModifiers -> ()
(SemanticTokenModifiers -> ()) -> NFData SemanticTokenModifiers
forall a. (a -> ()) -> NFData a
$crnf :: SemanticTokenModifiers -> ()
rnf :: SemanticTokenModifiers -> ()
NFData, Eq SemanticTokenModifiers
Eq SemanticTokenModifiers =>
(Int -> SemanticTokenModifiers -> Int)
-> (SemanticTokenModifiers -> Int)
-> Hashable SemanticTokenModifiers
Int -> SemanticTokenModifiers -> Int
SemanticTokenModifiers -> Int
forall a. Eq a => (Int -> a -> Int) -> (a -> Int) -> Hashable a
$chashWithSalt :: Int -> SemanticTokenModifiers -> Int
hashWithSalt :: Int -> SemanticTokenModifiers -> Int
$chash :: SemanticTokenModifiers -> Int
hash :: SemanticTokenModifiers -> Int
Hashable)
  deriving ( [SemanticTokenModifiers] -> Value
[SemanticTokenModifiers] -> Encoding
SemanticTokenModifiers -> Bool
SemanticTokenModifiers -> Value
SemanticTokenModifiers -> Encoding
(SemanticTokenModifiers -> Value)
-> (SemanticTokenModifiers -> Encoding)
-> ([SemanticTokenModifiers] -> Value)
-> ([SemanticTokenModifiers] -> Encoding)
-> (SemanticTokenModifiers -> Bool)
-> ToJSON SemanticTokenModifiers
forall a.
(a -> Value)
-> (a -> Encoding)
-> ([a] -> Value)
-> ([a] -> Encoding)
-> (a -> Bool)
-> ToJSON a
$ctoJSON :: SemanticTokenModifiers -> Value
toJSON :: SemanticTokenModifiers -> Value
$ctoEncoding :: SemanticTokenModifiers -> Encoding
toEncoding :: SemanticTokenModifiers -> Encoding
$ctoJSONList :: [SemanticTokenModifiers] -> Value
toJSONList :: [SemanticTokenModifiers] -> Value
$ctoEncodingList :: [SemanticTokenModifiers] -> Encoding
toEncodingList :: [SemanticTokenModifiers] -> Encoding
$comitField :: SemanticTokenModifiers -> Bool
omitField :: SemanticTokenModifiers -> Bool
Aeson.ToJSON
  , Maybe SemanticTokenModifiers
Value -> Parser [SemanticTokenModifiers]
Value -> Parser SemanticTokenModifiers
(Value -> Parser SemanticTokenModifiers)
-> (Value -> Parser [SemanticTokenModifiers])
-> Maybe SemanticTokenModifiers
-> FromJSON SemanticTokenModifiers
forall a.
(Value -> Parser a)
-> (Value -> Parser [a]) -> Maybe a -> FromJSON a
$cparseJSON :: Value -> Parser SemanticTokenModifiers
parseJSON :: Value -> Parser SemanticTokenModifiers
$cparseJSONList :: Value -> Parser [SemanticTokenModifiers]
parseJSONList :: Value -> Parser [SemanticTokenModifiers]
$comittedField :: Maybe SemanticTokenModifiers
omittedField :: Maybe SemanticTokenModifiers
Aeson.FromJSON
  , String -> SemanticTokenModifiers
(String -> SemanticTokenModifiers)
-> IsString SemanticTokenModifiers
forall a. (String -> a) -> IsString a
$cfromString :: String -> SemanticTokenModifiers
fromString :: String -> SemanticTokenModifiers
Data.String.IsString ) via (Language.LSP.Protocol.Types.LspEnum.AsLspEnum SemanticTokenModifiers)
  deriving (forall ann. SemanticTokenModifiers -> Doc ann)
-> (forall ann. [SemanticTokenModifiers] -> Doc ann)
-> Pretty SemanticTokenModifiers
forall ann. [SemanticTokenModifiers] -> Doc ann
forall ann. SemanticTokenModifiers -> Doc ann
forall a.
(forall ann. a -> Doc ann)
-> (forall ann. [a] -> Doc ann) -> Pretty a
$cpretty :: forall ann. SemanticTokenModifiers -> Doc ann
pretty :: forall ann. SemanticTokenModifiers -> Doc ann
$cprettyList :: forall ann. [SemanticTokenModifiers] -> Doc ann
prettyList :: forall ann. [SemanticTokenModifiers] -> Doc ann
Pretty via (ViaJSON SemanticTokenModifiers)

instance Language.LSP.Protocol.Types.LspEnum.LspEnum SemanticTokenModifiers where
  knownValues :: Set SemanticTokenModifiers
knownValues = [SemanticTokenModifiers] -> Set SemanticTokenModifiers
forall a. Ord a => [a] -> Set a
Data.Set.fromList [SemanticTokenModifiers
SemanticTokenModifiers_Declaration
    ,SemanticTokenModifiers
SemanticTokenModifiers_Definition
    ,SemanticTokenModifiers
SemanticTokenModifiers_Readonly
    ,SemanticTokenModifiers
SemanticTokenModifiers_Static
    ,SemanticTokenModifiers
SemanticTokenModifiers_Deprecated
    ,SemanticTokenModifiers
SemanticTokenModifiers_Abstract
    ,SemanticTokenModifiers
SemanticTokenModifiers_Async
    ,SemanticTokenModifiers
SemanticTokenModifiers_Modification
    ,SemanticTokenModifiers
SemanticTokenModifiers_Documentation
    ,SemanticTokenModifiers
SemanticTokenModifiers_DefaultLibrary]
  type EnumBaseType SemanticTokenModifiers = Data.Text.Text
  toEnumBaseType :: SemanticTokenModifiers -> EnumBaseType SemanticTokenModifiers
toEnumBaseType SemanticTokenModifiers
SemanticTokenModifiers_Declaration = Text
EnumBaseType SemanticTokenModifiers
"declaration"
  toEnumBaseType SemanticTokenModifiers
SemanticTokenModifiers_Definition = Text
EnumBaseType SemanticTokenModifiers
"definition"
  toEnumBaseType SemanticTokenModifiers
SemanticTokenModifiers_Readonly = Text
EnumBaseType SemanticTokenModifiers
"readonly"
  toEnumBaseType SemanticTokenModifiers
SemanticTokenModifiers_Static = Text
EnumBaseType SemanticTokenModifiers
"static"
  toEnumBaseType SemanticTokenModifiers
SemanticTokenModifiers_Deprecated = Text
EnumBaseType SemanticTokenModifiers
"deprecated"
  toEnumBaseType SemanticTokenModifiers
SemanticTokenModifiers_Abstract = Text
EnumBaseType SemanticTokenModifiers
"abstract"
  toEnumBaseType SemanticTokenModifiers
SemanticTokenModifiers_Async = Text
EnumBaseType SemanticTokenModifiers
"async"
  toEnumBaseType SemanticTokenModifiers
SemanticTokenModifiers_Modification = Text
EnumBaseType SemanticTokenModifiers
"modification"
  toEnumBaseType SemanticTokenModifiers
SemanticTokenModifiers_Documentation = Text
EnumBaseType SemanticTokenModifiers
"documentation"
  toEnumBaseType SemanticTokenModifiers
SemanticTokenModifiers_DefaultLibrary = Text
EnumBaseType SemanticTokenModifiers
"defaultLibrary"
  toEnumBaseType (SemanticTokenModifiers_Custom Text
arg) = Text
EnumBaseType SemanticTokenModifiers
arg

instance Language.LSP.Protocol.Types.LspEnum.LspOpenEnum SemanticTokenModifiers where
  fromOpenEnumBaseType :: EnumBaseType SemanticTokenModifiers -> SemanticTokenModifiers
fromOpenEnumBaseType EnumBaseType SemanticTokenModifiers
"declaration" = SemanticTokenModifiers
SemanticTokenModifiers_Declaration
  fromOpenEnumBaseType EnumBaseType SemanticTokenModifiers
"definition" = SemanticTokenModifiers
SemanticTokenModifiers_Definition
  fromOpenEnumBaseType EnumBaseType SemanticTokenModifiers
"readonly" = SemanticTokenModifiers
SemanticTokenModifiers_Readonly
  fromOpenEnumBaseType EnumBaseType SemanticTokenModifiers
"static" = SemanticTokenModifiers
SemanticTokenModifiers_Static
  fromOpenEnumBaseType EnumBaseType SemanticTokenModifiers
"deprecated" = SemanticTokenModifiers
SemanticTokenModifiers_Deprecated
  fromOpenEnumBaseType EnumBaseType SemanticTokenModifiers
"abstract" = SemanticTokenModifiers
SemanticTokenModifiers_Abstract
  fromOpenEnumBaseType EnumBaseType SemanticTokenModifiers
"async" = SemanticTokenModifiers
SemanticTokenModifiers_Async
  fromOpenEnumBaseType EnumBaseType SemanticTokenModifiers
"modification" = SemanticTokenModifiers
SemanticTokenModifiers_Modification
  fromOpenEnumBaseType EnumBaseType SemanticTokenModifiers
"documentation" = SemanticTokenModifiers
SemanticTokenModifiers_Documentation
  fromOpenEnumBaseType EnumBaseType SemanticTokenModifiers
"defaultLibrary" = SemanticTokenModifiers
SemanticTokenModifiers_DefaultLibrary
  fromOpenEnumBaseType EnumBaseType SemanticTokenModifiers
arg = Text -> SemanticTokenModifiers
SemanticTokenModifiers_Custom Text
EnumBaseType SemanticTokenModifiers
arg