{- 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.TextDocumentContentChangeEvent 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 as Row
import qualified Data.Row.Aeson as Aeson
import qualified Data.Row.Hashable as Hashable
import qualified Data.Text
import qualified Language.LSP.Protocol.Internal.Types.Range
import qualified Language.LSP.Protocol.Types.Common

{-|
An event describing a change to a text document. If only a text is provided
it is considered to be the full content of the document.
-}
newtype TextDocumentContentChangeEvent = TextDocumentContentChangeEvent ((Row.Rec ("range" Row..== Language.LSP.Protocol.Internal.Types.Range.Range Row..+ ("rangeLength" Row..== (Maybe Language.LSP.Protocol.Types.Common.UInt) Row..+ ("text" Row..== Data.Text.Text Row..+ Row.Empty)))) Language.LSP.Protocol.Types.Common.|? (Row.Rec ("text" Row..== Data.Text.Text Row..+ Row.Empty)))
  deriving newtype ([TextDocumentContentChangeEvent] -> Value
[TextDocumentContentChangeEvent] -> Encoding
TextDocumentContentChangeEvent -> Bool
TextDocumentContentChangeEvent -> Value
TextDocumentContentChangeEvent -> Encoding
(TextDocumentContentChangeEvent -> Value)
-> (TextDocumentContentChangeEvent -> Encoding)
-> ([TextDocumentContentChangeEvent] -> Value)
-> ([TextDocumentContentChangeEvent] -> Encoding)
-> (TextDocumentContentChangeEvent -> Bool)
-> ToJSON TextDocumentContentChangeEvent
forall a.
(a -> Value)
-> (a -> Encoding)
-> ([a] -> Value)
-> ([a] -> Encoding)
-> (a -> Bool)
-> ToJSON a
$ctoJSON :: TextDocumentContentChangeEvent -> Value
toJSON :: TextDocumentContentChangeEvent -> Value
$ctoEncoding :: TextDocumentContentChangeEvent -> Encoding
toEncoding :: TextDocumentContentChangeEvent -> Encoding
$ctoJSONList :: [TextDocumentContentChangeEvent] -> Value
toJSONList :: [TextDocumentContentChangeEvent] -> Value
$ctoEncodingList :: [TextDocumentContentChangeEvent] -> Encoding
toEncodingList :: [TextDocumentContentChangeEvent] -> Encoding
$comitField :: TextDocumentContentChangeEvent -> Bool
omitField :: TextDocumentContentChangeEvent -> Bool
Aeson.ToJSON, Maybe TextDocumentContentChangeEvent
Value -> Parser [TextDocumentContentChangeEvent]
Value -> Parser TextDocumentContentChangeEvent
(Value -> Parser TextDocumentContentChangeEvent)
-> (Value -> Parser [TextDocumentContentChangeEvent])
-> Maybe TextDocumentContentChangeEvent
-> FromJSON TextDocumentContentChangeEvent
forall a.
(Value -> Parser a)
-> (Value -> Parser [a]) -> Maybe a -> FromJSON a
$cparseJSON :: Value -> Parser TextDocumentContentChangeEvent
parseJSON :: Value -> Parser TextDocumentContentChangeEvent
$cparseJSONList :: Value -> Parser [TextDocumentContentChangeEvent]
parseJSONList :: Value -> Parser [TextDocumentContentChangeEvent]
$comittedField :: Maybe TextDocumentContentChangeEvent
omittedField :: Maybe TextDocumentContentChangeEvent
Aeson.FromJSON)
  deriving stock (Int -> TextDocumentContentChangeEvent -> ShowS
[TextDocumentContentChangeEvent] -> ShowS
TextDocumentContentChangeEvent -> String
(Int -> TextDocumentContentChangeEvent -> ShowS)
-> (TextDocumentContentChangeEvent -> String)
-> ([TextDocumentContentChangeEvent] -> ShowS)
-> Show TextDocumentContentChangeEvent
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> TextDocumentContentChangeEvent -> ShowS
showsPrec :: Int -> TextDocumentContentChangeEvent -> ShowS
$cshow :: TextDocumentContentChangeEvent -> String
show :: TextDocumentContentChangeEvent -> String
$cshowList :: [TextDocumentContentChangeEvent] -> ShowS
showList :: [TextDocumentContentChangeEvent] -> ShowS
Show, TextDocumentContentChangeEvent
-> TextDocumentContentChangeEvent -> Bool
(TextDocumentContentChangeEvent
 -> TextDocumentContentChangeEvent -> Bool)
-> (TextDocumentContentChangeEvent
    -> TextDocumentContentChangeEvent -> Bool)
-> Eq TextDocumentContentChangeEvent
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: TextDocumentContentChangeEvent
-> TextDocumentContentChangeEvent -> Bool
== :: TextDocumentContentChangeEvent
-> TextDocumentContentChangeEvent -> Bool
$c/= :: TextDocumentContentChangeEvent
-> TextDocumentContentChangeEvent -> Bool
/= :: TextDocumentContentChangeEvent
-> TextDocumentContentChangeEvent -> Bool
Eq, Eq TextDocumentContentChangeEvent
Eq TextDocumentContentChangeEvent =>
(TextDocumentContentChangeEvent
 -> TextDocumentContentChangeEvent -> Ordering)
-> (TextDocumentContentChangeEvent
    -> TextDocumentContentChangeEvent -> Bool)
-> (TextDocumentContentChangeEvent
    -> TextDocumentContentChangeEvent -> Bool)
-> (TextDocumentContentChangeEvent
    -> TextDocumentContentChangeEvent -> Bool)
-> (TextDocumentContentChangeEvent
    -> TextDocumentContentChangeEvent -> Bool)
-> (TextDocumentContentChangeEvent
    -> TextDocumentContentChangeEvent
    -> TextDocumentContentChangeEvent)
-> (TextDocumentContentChangeEvent
    -> TextDocumentContentChangeEvent
    -> TextDocumentContentChangeEvent)
-> Ord TextDocumentContentChangeEvent
TextDocumentContentChangeEvent
-> TextDocumentContentChangeEvent -> Bool
TextDocumentContentChangeEvent
-> TextDocumentContentChangeEvent -> Ordering
TextDocumentContentChangeEvent
-> TextDocumentContentChangeEvent -> TextDocumentContentChangeEvent
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 :: TextDocumentContentChangeEvent
-> TextDocumentContentChangeEvent -> Ordering
compare :: TextDocumentContentChangeEvent
-> TextDocumentContentChangeEvent -> Ordering
$c< :: TextDocumentContentChangeEvent
-> TextDocumentContentChangeEvent -> Bool
< :: TextDocumentContentChangeEvent
-> TextDocumentContentChangeEvent -> Bool
$c<= :: TextDocumentContentChangeEvent
-> TextDocumentContentChangeEvent -> Bool
<= :: TextDocumentContentChangeEvent
-> TextDocumentContentChangeEvent -> Bool
$c> :: TextDocumentContentChangeEvent
-> TextDocumentContentChangeEvent -> Bool
> :: TextDocumentContentChangeEvent
-> TextDocumentContentChangeEvent -> Bool
$c>= :: TextDocumentContentChangeEvent
-> TextDocumentContentChangeEvent -> Bool
>= :: TextDocumentContentChangeEvent
-> TextDocumentContentChangeEvent -> Bool
$cmax :: TextDocumentContentChangeEvent
-> TextDocumentContentChangeEvent -> TextDocumentContentChangeEvent
max :: TextDocumentContentChangeEvent
-> TextDocumentContentChangeEvent -> TextDocumentContentChangeEvent
$cmin :: TextDocumentContentChangeEvent
-> TextDocumentContentChangeEvent -> TextDocumentContentChangeEvent
min :: TextDocumentContentChangeEvent
-> TextDocumentContentChangeEvent -> TextDocumentContentChangeEvent
Ord, (forall x.
 TextDocumentContentChangeEvent
 -> Rep TextDocumentContentChangeEvent x)
-> (forall x.
    Rep TextDocumentContentChangeEvent x
    -> TextDocumentContentChangeEvent)
-> Generic TextDocumentContentChangeEvent
forall x.
Rep TextDocumentContentChangeEvent x
-> TextDocumentContentChangeEvent
forall x.
TextDocumentContentChangeEvent
-> Rep TextDocumentContentChangeEvent x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x.
TextDocumentContentChangeEvent
-> Rep TextDocumentContentChangeEvent x
from :: forall x.
TextDocumentContentChangeEvent
-> Rep TextDocumentContentChangeEvent x
$cto :: forall x.
Rep TextDocumentContentChangeEvent x
-> TextDocumentContentChangeEvent
to :: forall x.
Rep TextDocumentContentChangeEvent x
-> TextDocumentContentChangeEvent
Generic)
  deriving anyclass (TextDocumentContentChangeEvent -> ()
(TextDocumentContentChangeEvent -> ())
-> NFData TextDocumentContentChangeEvent
forall a. (a -> ()) -> NFData a
$crnf :: TextDocumentContentChangeEvent -> ()
rnf :: TextDocumentContentChangeEvent -> ()
NFData, Eq TextDocumentContentChangeEvent
Eq TextDocumentContentChangeEvent =>
(Int -> TextDocumentContentChangeEvent -> Int)
-> (TextDocumentContentChangeEvent -> Int)
-> Hashable TextDocumentContentChangeEvent
Int -> TextDocumentContentChangeEvent -> Int
TextDocumentContentChangeEvent -> Int
forall a. Eq a => (Int -> a -> Int) -> (a -> Int) -> Hashable a
$chashWithSalt :: Int -> TextDocumentContentChangeEvent -> Int
hashWithSalt :: Int -> TextDocumentContentChangeEvent -> Int
$chash :: TextDocumentContentChangeEvent -> Int
hash :: TextDocumentContentChangeEvent -> Int
Hashable)
  deriving (forall ann. TextDocumentContentChangeEvent -> Doc ann)
-> (forall ann. [TextDocumentContentChangeEvent] -> Doc ann)
-> Pretty TextDocumentContentChangeEvent
forall ann. [TextDocumentContentChangeEvent] -> Doc ann
forall ann. TextDocumentContentChangeEvent -> Doc ann
forall a.
(forall ann. a -> Doc ann)
-> (forall ann. [a] -> Doc ann) -> Pretty a
$cpretty :: forall ann. TextDocumentContentChangeEvent -> Doc ann
pretty :: forall ann. TextDocumentContentChangeEvent -> Doc ann
$cprettyList :: forall ann. [TextDocumentContentChangeEvent] -> Doc ann
prettyList :: forall ann. [TextDocumentContentChangeEvent] -> Doc ann
Pretty via (ViaJSON TextDocumentContentChangeEvent)