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

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