-- 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.CompletionParams where import Control.DeepSeq import Data.Hashable import GHC.Generics 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.CompletionContext import qualified Language.LSP.Protocol.Internal.Types.Position import qualified Language.LSP.Protocol.Internal.Types.ProgressToken import qualified Language.LSP.Protocol.Internal.Types.TextDocumentIdentifier import qualified Language.LSP.Protocol.Types.Common {-| Completion parameters -} data CompletionParams = CompletionParams { {-| The text document. -} _textDocument :: Language.LSP.Protocol.Internal.Types.TextDocumentIdentifier.TextDocumentIdentifier , {-| The position inside the text document. -} _position :: Language.LSP.Protocol.Internal.Types.Position.Position , {-| An optional token that a server can use to report work done progress. -} _workDoneToken :: (Maybe Language.LSP.Protocol.Internal.Types.ProgressToken.ProgressToken) , {-| An optional token that a server can use to report partial results (e.g. streaming) to the client. -} _partialResultToken :: (Maybe Language.LSP.Protocol.Internal.Types.ProgressToken.ProgressToken) , {-| The completion context. This is only available it the client specifies to send this using the client capability `textDocument.completion.contextSupport === true` -} _context :: (Maybe Language.LSP.Protocol.Internal.Types.CompletionContext.CompletionContext) } deriving stock (Show, Eq, Ord, Generic) deriving anyclass (NFData, Hashable) instance Aeson.ToJSON CompletionParams where toJSON (CompletionParams arg0 arg1 arg2 arg3 arg4) = Aeson.object $ concat $ [["textDocument" Aeson..= arg0] ,["position" Aeson..= arg1] ,"workDoneToken" Language.LSP.Protocol.Types.Common..=? arg2 ,"partialResultToken" Language.LSP.Protocol.Types.Common..=? arg3 ,"context" Language.LSP.Protocol.Types.Common..=? arg4] instance Aeson.FromJSON CompletionParams where parseJSON = Aeson.withObject "CompletionParams" $ \arg -> CompletionParams <$> arg Aeson..: "textDocument" <*> arg Aeson..: "position" <*> arg Aeson..:! "workDoneToken" <*> arg Aeson..:! "partialResultToken" <*> arg Aeson..:! "context"