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

{-|
A document highlight kind.
-}
data DocumentHighlightKind = 
    {-|
  A textual occurrence.
  -}
  DocumentHighlightKind_Text
  | {-|
  Read-access of a symbol, like reading a variable.
  -}
  DocumentHighlightKind_Read
  | {-|
  Write-access of a symbol, like writing to a variable.
  -}
  DocumentHighlightKind_Write
  deriving stock (Int -> DocumentHighlightKind -> ShowS
[DocumentHighlightKind] -> ShowS
DocumentHighlightKind -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DocumentHighlightKind] -> ShowS
$cshowList :: [DocumentHighlightKind] -> ShowS
show :: DocumentHighlightKind -> String
$cshow :: DocumentHighlightKind -> String
showsPrec :: Int -> DocumentHighlightKind -> ShowS
$cshowsPrec :: Int -> DocumentHighlightKind -> ShowS
Show, DocumentHighlightKind -> DocumentHighlightKind -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DocumentHighlightKind -> DocumentHighlightKind -> Bool
$c/= :: DocumentHighlightKind -> DocumentHighlightKind -> Bool
== :: DocumentHighlightKind -> DocumentHighlightKind -> Bool
$c== :: DocumentHighlightKind -> DocumentHighlightKind -> Bool
Eq, Eq DocumentHighlightKind
DocumentHighlightKind -> DocumentHighlightKind -> Bool
DocumentHighlightKind -> DocumentHighlightKind -> Ordering
DocumentHighlightKind
-> DocumentHighlightKind -> DocumentHighlightKind
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 :: DocumentHighlightKind
-> DocumentHighlightKind -> DocumentHighlightKind
$cmin :: DocumentHighlightKind
-> DocumentHighlightKind -> DocumentHighlightKind
max :: DocumentHighlightKind
-> DocumentHighlightKind -> DocumentHighlightKind
$cmax :: DocumentHighlightKind
-> DocumentHighlightKind -> DocumentHighlightKind
>= :: DocumentHighlightKind -> DocumentHighlightKind -> Bool
$c>= :: DocumentHighlightKind -> DocumentHighlightKind -> Bool
> :: DocumentHighlightKind -> DocumentHighlightKind -> Bool
$c> :: DocumentHighlightKind -> DocumentHighlightKind -> Bool
<= :: DocumentHighlightKind -> DocumentHighlightKind -> Bool
$c<= :: DocumentHighlightKind -> DocumentHighlightKind -> Bool
< :: DocumentHighlightKind -> DocumentHighlightKind -> Bool
$c< :: DocumentHighlightKind -> DocumentHighlightKind -> Bool
compare :: DocumentHighlightKind -> DocumentHighlightKind -> Ordering
$ccompare :: DocumentHighlightKind -> DocumentHighlightKind -> Ordering
Ord, forall x. Rep DocumentHighlightKind x -> DocumentHighlightKind
forall x. DocumentHighlightKind -> Rep DocumentHighlightKind x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep DocumentHighlightKind x -> DocumentHighlightKind
$cfrom :: forall x. DocumentHighlightKind -> Rep DocumentHighlightKind x
Generic)
  deriving anyclass (DocumentHighlightKind -> ()
forall a. (a -> ()) -> NFData a
rnf :: DocumentHighlightKind -> ()
$crnf :: DocumentHighlightKind -> ()
NFData, Eq DocumentHighlightKind
Int -> DocumentHighlightKind -> Int
DocumentHighlightKind -> Int
forall a. Eq a -> (Int -> a -> Int) -> (a -> Int) -> Hashable a
hash :: DocumentHighlightKind -> Int
$chash :: DocumentHighlightKind -> Int
hashWithSalt :: Int -> DocumentHighlightKind -> Int
$chashWithSalt :: Int -> DocumentHighlightKind -> Int
Hashable)
  deriving ( [DocumentHighlightKind] -> Encoding
[DocumentHighlightKind] -> Value
DocumentHighlightKind -> Encoding
DocumentHighlightKind -> Value
forall a.
(a -> Value)
-> (a -> Encoding)
-> ([a] -> Value)
-> ([a] -> Encoding)
-> ToJSON a
toEncodingList :: [DocumentHighlightKind] -> Encoding
$ctoEncodingList :: [DocumentHighlightKind] -> Encoding
toJSONList :: [DocumentHighlightKind] -> Value
$ctoJSONList :: [DocumentHighlightKind] -> Value
toEncoding :: DocumentHighlightKind -> Encoding
$ctoEncoding :: DocumentHighlightKind -> Encoding
toJSON :: DocumentHighlightKind -> Value
$ctoJSON :: DocumentHighlightKind -> Value
Aeson.ToJSON
  , Value -> Parser [DocumentHighlightKind]
Value -> Parser DocumentHighlightKind
forall a.
(Value -> Parser a) -> (Value -> Parser [a]) -> FromJSON a
parseJSONList :: Value -> Parser [DocumentHighlightKind]
$cparseJSONList :: Value -> Parser [DocumentHighlightKind]
parseJSON :: Value -> Parser DocumentHighlightKind
$cparseJSON :: Value -> Parser DocumentHighlightKind
Aeson.FromJSON ) via (Language.LSP.Protocol.Types.LspEnum.AsLspEnum DocumentHighlightKind Language.LSP.Protocol.Types.Common.UInt)
  deriving forall ann. [DocumentHighlightKind] -> Doc ann
forall ann. DocumentHighlightKind -> Doc ann
forall a.
(forall ann. a -> Doc ann)
-> (forall ann. [a] -> Doc ann) -> Pretty a
prettyList :: forall ann. [DocumentHighlightKind] -> Doc ann
$cprettyList :: forall ann. [DocumentHighlightKind] -> Doc ann
pretty :: forall ann. DocumentHighlightKind -> Doc ann
$cpretty :: forall ann. DocumentHighlightKind -> Doc ann
Pretty via (ViaJSON DocumentHighlightKind)

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