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

{-|
Symbol tags are extra annotations that tweak the rendering of a symbol.

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

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