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

instance Language.LSP.Protocol.Types.LspEnum.LspEnum SemanticTokenModifiers where
  knownValues :: Set SemanticTokenModifiers
knownValues = 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
"declaration"
  toEnumBaseType SemanticTokenModifiers
SemanticTokenModifiers_Definition = Text
"definition"
  toEnumBaseType SemanticTokenModifiers
SemanticTokenModifiers_Readonly = Text
"readonly"
  toEnumBaseType SemanticTokenModifiers
SemanticTokenModifiers_Static = Text
"static"
  toEnumBaseType SemanticTokenModifiers
SemanticTokenModifiers_Deprecated = Text
"deprecated"
  toEnumBaseType SemanticTokenModifiers
SemanticTokenModifiers_Abstract = Text
"abstract"
  toEnumBaseType SemanticTokenModifiers
SemanticTokenModifiers_Async = Text
"async"
  toEnumBaseType SemanticTokenModifiers
SemanticTokenModifiers_Modification = Text
"modification"
  toEnumBaseType SemanticTokenModifiers
SemanticTokenModifiers_Documentation = Text
"documentation"
  toEnumBaseType SemanticTokenModifiers
SemanticTokenModifiers_DefaultLibrary = Text
"defaultLibrary"
  toEnumBaseType (SemanticTokenModifiers_Custom Text
arg) = Text
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 EnumBaseType SemanticTokenModifiers
arg