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

{-|
Completion item tags are extra annotations that tweak the rendering of a completion
item.

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

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