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

instance Language.LSP.Protocol.Types.LspEnum.LspEnum SymbolTag where
  knownValues :: Set SymbolTag
knownValues = 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 = UInt
1
  fromEnumBaseType :: EnumBaseType SymbolTag -> Maybe SymbolTag
fromEnumBaseType EnumBaseType SymbolTag
1 = forall (f :: * -> *) a. Applicative f => a -> f a
pure SymbolTag
SymbolTag_Deprecated
  fromEnumBaseType EnumBaseType SymbolTag
_ = forall a. Maybe a
Nothing