{- 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.GeneralClientCapabilities 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 Language.LSP.Protocol.Internal.Types.MarkdownClientCapabilities import qualified Language.LSP.Protocol.Internal.Types.PositionEncodingKind import qualified Language.LSP.Protocol.Internal.Types.RegularExpressionsClientCapabilities import qualified Language.LSP.Protocol.Internal.Types.StaleRequestSupportOptions import qualified Language.LSP.Protocol.Types.Common {-| General client capabilities. @since 3.16.0 -} data GeneralClientCapabilities = GeneralClientCapabilities { {-| Client capability that signals how the client handles stale requests (e.g. a request for which the client will not process the response anymore since the information is outdated). @since 3.17.0 -} _staleRequestSupport :: (Maybe Language.LSP.Protocol.Internal.Types.StaleRequestSupportOptions.StaleRequestSupportOptions) , {-| Client capabilities specific to regular expressions. @since 3.16.0 -} _regularExpressions :: (Maybe Language.LSP.Protocol.Internal.Types.RegularExpressionsClientCapabilities.RegularExpressionsClientCapabilities) , {-| Client capabilities specific to the client's markdown parser. @since 3.16.0 -} _markdown :: (Maybe Language.LSP.Protocol.Internal.Types.MarkdownClientCapabilities.MarkdownClientCapabilities) , {-| The position encodings supported by the client. Client and server have to agree on the same position encoding to ensure that offsets (e.g. character position in a line) are interpreted the same on both sides. To keep the protocol backwards compatible the following applies: if the value 'utf-16' is missing from the array of position encodings servers can assume that the client supports UTF-16. UTF-16 is therefore a mandatory encoding. If omitted it defaults to ['utf-16']. Implementation considerations: since the conversion from one encoding into another requires the content of the file / line the conversion is best done where the file is read which is usually on the server side. @since 3.17.0 -} _positionEncodings :: (Maybe [Language.LSP.Protocol.Internal.Types.PositionEncodingKind.PositionEncodingKind]) } deriving stock (Show, Eq, Ord, Generic) deriving anyclass (NFData, Hashable) deriving Pretty via (ViaJSON GeneralClientCapabilities) instance Aeson.ToJSON GeneralClientCapabilities where toJSON (GeneralClientCapabilities arg0 arg1 arg2 arg3) = Aeson.object $ concat $ ["staleRequestSupport" Language.LSP.Protocol.Types.Common..=? arg0 ,"regularExpressions" Language.LSP.Protocol.Types.Common..=? arg1 ,"markdown" Language.LSP.Protocol.Types.Common..=? arg2 ,"positionEncodings" Language.LSP.Protocol.Types.Common..=? arg3] instance Aeson.FromJSON GeneralClientCapabilities where parseJSON = Aeson.withObject "GeneralClientCapabilities" $ \arg -> GeneralClientCapabilities <$> arg Language.LSP.Protocol.Types.Common..:!? "staleRequestSupport" <*> arg Language.LSP.Protocol.Types.Common..:!? "regularExpressions" <*> arg Language.LSP.Protocol.Types.Common..:!? "markdown" <*> arg Language.LSP.Protocol.Types.Common..:!? "positionEncodings"