haskell-lsp-types 0.16.0.0 → 0.17.0.0
raw patch · 16 files changed
+276/−163 lines, 16 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
- Language.Haskell.LSP.Types: ProgressCancelParams :: Text -> ProgressCancelParams
- Language.Haskell.LSP.Types: ProgressDoneParams :: Text -> ProgressDoneParams
- Language.Haskell.LSP.Types: ProgressReportParams :: Text -> Maybe Text -> Maybe Double -> ProgressReportParams
- Language.Haskell.LSP.Types: ProgressStartParams :: Text -> Text -> Maybe Bool -> Maybe Text -> Maybe Double -> ProgressStartParams
- Language.Haskell.LSP.Types: WindowProgressCancel :: ClientMethod
- Language.Haskell.LSP.Types: WindowProgressDone :: ServerMethod
- Language.Haskell.LSP.Types: WindowProgressReport :: ServerMethod
- Language.Haskell.LSP.Types: WindowProgressStart :: ServerMethod
- Language.Haskell.LSP.Types: [$sel:_cancellable:ProgressStartParams] :: ProgressStartParams -> Maybe Bool
- Language.Haskell.LSP.Types: [$sel:_id:ProgressCancelParams] :: ProgressCancelParams -> Text
- Language.Haskell.LSP.Types: [$sel:_id:ProgressDoneParams] :: ProgressDoneParams -> Text
- Language.Haskell.LSP.Types: [$sel:_id:ProgressReportParams] :: ProgressReportParams -> Text
- Language.Haskell.LSP.Types: [$sel:_id:ProgressStartParams] :: ProgressStartParams -> Text
- Language.Haskell.LSP.Types: [$sel:_message:ProgressReportParams] :: ProgressReportParams -> Maybe Text
- Language.Haskell.LSP.Types: [$sel:_message:ProgressStartParams] :: ProgressStartParams -> Maybe Text
- Language.Haskell.LSP.Types: [$sel:_percentage:ProgressReportParams] :: ProgressReportParams -> Maybe Double
- Language.Haskell.LSP.Types: [$sel:_percentage:ProgressStartParams] :: ProgressStartParams -> Maybe Double
- Language.Haskell.LSP.Types: [$sel:_title:ProgressStartParams] :: ProgressStartParams -> Text
- Language.Haskell.LSP.Types: data ProgressCancelParams
- Language.Haskell.LSP.Types: data ProgressDoneParams
- Language.Haskell.LSP.Types: data ProgressReportParams
- Language.Haskell.LSP.Types: data ProgressStartParams
- Language.Haskell.LSP.Types: type ProgressCancelNotification = NotificationMessage ClientMethod ProgressCancelParams
- Language.Haskell.LSP.Types: type ProgressDoneNotification = NotificationMessage ServerMethod ProgressDoneParams
- Language.Haskell.LSP.Types: type ProgressReportNotification = NotificationMessage ServerMethod ProgressReportParams
- Language.Haskell.LSP.Types: type ProgressStartNotification = NotificationMessage ServerMethod ProgressStartParams
- Language.Haskell.LSP.Types.Capabilities: [$sel:_progress:WindowClientCapabilities] :: WindowClientCapabilities -> Maybe Bool
- Language.Haskell.LSP.Types.Lens: instance Language.Haskell.LSP.Types.Lens.HasCancellable Language.Haskell.LSP.Types.Window.ProgressStartParams (GHC.Maybe.Maybe GHC.Types.Bool)
- Language.Haskell.LSP.Types.Lens: instance Language.Haskell.LSP.Types.Lens.HasId Language.Haskell.LSP.Types.Window.ProgressCancelParams Data.Text.Internal.Text
- Language.Haskell.LSP.Types.Lens: instance Language.Haskell.LSP.Types.Lens.HasId Language.Haskell.LSP.Types.Window.ProgressDoneParams Data.Text.Internal.Text
- Language.Haskell.LSP.Types.Lens: instance Language.Haskell.LSP.Types.Lens.HasId Language.Haskell.LSP.Types.Window.ProgressReportParams Data.Text.Internal.Text
- Language.Haskell.LSP.Types.Lens: instance Language.Haskell.LSP.Types.Lens.HasId Language.Haskell.LSP.Types.Window.ProgressStartParams Data.Text.Internal.Text
- Language.Haskell.LSP.Types.Lens: instance Language.Haskell.LSP.Types.Lens.HasMessage Language.Haskell.LSP.Types.Window.ProgressReportParams (GHC.Maybe.Maybe Data.Text.Internal.Text)
- Language.Haskell.LSP.Types.Lens: instance Language.Haskell.LSP.Types.Lens.HasMessage Language.Haskell.LSP.Types.Window.ProgressStartParams (GHC.Maybe.Maybe Data.Text.Internal.Text)
- Language.Haskell.LSP.Types.Lens: instance Language.Haskell.LSP.Types.Lens.HasPercentage Language.Haskell.LSP.Types.Window.ProgressReportParams (GHC.Maybe.Maybe GHC.Types.Double)
- Language.Haskell.LSP.Types.Lens: instance Language.Haskell.LSP.Types.Lens.HasPercentage Language.Haskell.LSP.Types.Window.ProgressStartParams (GHC.Maybe.Maybe GHC.Types.Double)
- Language.Haskell.LSP.Types.Lens: instance Language.Haskell.LSP.Types.Lens.HasTitle Language.Haskell.LSP.Types.Window.ProgressStartParams Data.Text.Internal.Text
- Language.Haskell.LSP.Types.MessageFuncs: fmServerProgressDoneNotification :: ProgressDoneParams -> ProgressDoneNotification
- Language.Haskell.LSP.Types.MessageFuncs: fmServerProgressReportNotification :: ProgressReportParams -> ProgressReportNotification
- Language.Haskell.LSP.Types.MessageFuncs: fmServerProgressStartNotification :: ProgressStartParams -> ProgressStartNotification
+ Language.Haskell.LSP.Types: Progress :: ServerMethod
+ Language.Haskell.LSP.Types: ProgressNumericToken :: Int -> ProgressToken
+ Language.Haskell.LSP.Types: ProgressParams :: ProgressToken -> t -> ProgressParams t
+ Language.Haskell.LSP.Types: ProgressTextToken :: Text -> ProgressToken
+ Language.Haskell.LSP.Types: WindowWorkDoneProgressCreate :: ServerMethod
+ Language.Haskell.LSP.Types: WorkDoneProgressBeginParams :: Text -> Maybe Bool -> Maybe Text -> Maybe Double -> WorkDoneProgressBeginParams
+ Language.Haskell.LSP.Types: WorkDoneProgressCancel :: ClientMethod
+ Language.Haskell.LSP.Types: WorkDoneProgressCancelParams :: ProgressToken -> WorkDoneProgressCancelParams
+ Language.Haskell.LSP.Types: WorkDoneProgressCreateParams :: ProgressToken -> WorkDoneProgressCreateParams
+ Language.Haskell.LSP.Types: WorkDoneProgressEndParams :: Maybe Text -> WorkDoneProgressEndParams
+ Language.Haskell.LSP.Types: WorkDoneProgressReportParams :: Maybe Bool -> Maybe Text -> Maybe Double -> WorkDoneProgressReportParams
+ Language.Haskell.LSP.Types: [$sel:_cancellable:WorkDoneProgressBeginParams] :: WorkDoneProgressBeginParams -> Maybe Bool
+ Language.Haskell.LSP.Types: [$sel:_cancellable:WorkDoneProgressReportParams] :: WorkDoneProgressReportParams -> Maybe Bool
+ Language.Haskell.LSP.Types: [$sel:_message:WorkDoneProgressBeginParams] :: WorkDoneProgressBeginParams -> Maybe Text
+ Language.Haskell.LSP.Types: [$sel:_message:WorkDoneProgressEndParams] :: WorkDoneProgressEndParams -> Maybe Text
+ Language.Haskell.LSP.Types: [$sel:_message:WorkDoneProgressReportParams] :: WorkDoneProgressReportParams -> Maybe Text
+ Language.Haskell.LSP.Types: [$sel:_percentage:WorkDoneProgressBeginParams] :: WorkDoneProgressBeginParams -> Maybe Double
+ Language.Haskell.LSP.Types: [$sel:_percentage:WorkDoneProgressReportParams] :: WorkDoneProgressReportParams -> Maybe Double
+ Language.Haskell.LSP.Types: [$sel:_title:WorkDoneProgressBeginParams] :: WorkDoneProgressBeginParams -> Text
+ Language.Haskell.LSP.Types: [$sel:_token:ProgressParams] :: ProgressParams t -> ProgressToken
+ Language.Haskell.LSP.Types: [$sel:_token:WorkDoneProgressCancelParams] :: WorkDoneProgressCancelParams -> ProgressToken
+ Language.Haskell.LSP.Types: [$sel:_token:WorkDoneProgressCreateParams] :: WorkDoneProgressCreateParams -> ProgressToken
+ Language.Haskell.LSP.Types: [$sel:_value:ProgressParams] :: ProgressParams t -> t
+ Language.Haskell.LSP.Types: [$sel:_workDoneToken:CodeActionParams] :: CodeActionParams -> Maybe ProgressToken
+ Language.Haskell.LSP.Types: [$sel:_workDoneToken:CodeLensParams] :: CodeLensParams -> Maybe ProgressToken
+ Language.Haskell.LSP.Types: [$sel:_workDoneToken:ColorPresentationParams] :: ColorPresentationParams -> Maybe ProgressToken
+ Language.Haskell.LSP.Types: [$sel:_workDoneToken:CompletionParams] :: CompletionParams -> Maybe ProgressToken
+ Language.Haskell.LSP.Types: [$sel:_workDoneToken:DocumentColorParams] :: DocumentColorParams -> Maybe ProgressToken
+ Language.Haskell.LSP.Types: [$sel:_workDoneToken:DocumentFormattingParams] :: DocumentFormattingParams -> Maybe ProgressToken
+ Language.Haskell.LSP.Types: [$sel:_workDoneToken:DocumentLinkParams] :: DocumentLinkParams -> Maybe ProgressToken
+ Language.Haskell.LSP.Types: [$sel:_workDoneToken:DocumentRangeFormattingParams] :: DocumentRangeFormattingParams -> Maybe ProgressToken
+ Language.Haskell.LSP.Types: [$sel:_workDoneToken:DocumentSymbolParams] :: DocumentSymbolParams -> Maybe ProgressToken
+ Language.Haskell.LSP.Types: [$sel:_workDoneToken:ExecuteCommandParams] :: ExecuteCommandParams -> Maybe ProgressToken
+ Language.Haskell.LSP.Types: [$sel:_workDoneToken:ReferenceParams] :: ReferenceParams -> Maybe ProgressToken
+ Language.Haskell.LSP.Types: [$sel:_workDoneToken:RenameParams] :: RenameParams -> Maybe ProgressToken
+ Language.Haskell.LSP.Types: [$sel:_workDoneToken:TextDocumentPositionParams] :: TextDocumentPositionParams -> Maybe ProgressToken
+ Language.Haskell.LSP.Types: [$sel:_workDoneToken:WorkspaceSymbolParams] :: WorkspaceSymbolParams -> Maybe ProgressToken
+ Language.Haskell.LSP.Types: [_workDoneToken] :: FoldingRangeParams -> Maybe ProgressToken
+ Language.Haskell.LSP.Types: data ProgressParams t
+ Language.Haskell.LSP.Types: data ProgressToken
+ Language.Haskell.LSP.Types: data WorkDoneProgressBeginParams
+ Language.Haskell.LSP.Types: data WorkDoneProgressCancelParams
+ Language.Haskell.LSP.Types: data WorkDoneProgressCreateParams
+ Language.Haskell.LSP.Types: data WorkDoneProgressEndParams
+ Language.Haskell.LSP.Types: data WorkDoneProgressReportParams
+ Language.Haskell.LSP.Types: type WorkDoneProgressBeginNotification = NotificationMessage ServerMethod (ProgressParams WorkDoneProgressBeginParams)
+ Language.Haskell.LSP.Types: type WorkDoneProgressCancelNotification = NotificationMessage ClientMethod WorkDoneProgressCancelParams
+ Language.Haskell.LSP.Types: type WorkDoneProgressCreateRequest = RequestMessage ServerMethod WorkDoneProgressCreateParams ()
+ Language.Haskell.LSP.Types: type WorkDoneProgressEndNotification = NotificationMessage ServerMethod (ProgressParams WorkDoneProgressEndParams)
+ Language.Haskell.LSP.Types: type WorkDoneProgressReportNotification = NotificationMessage ServerMethod (ProgressParams WorkDoneProgressReportParams)
+ Language.Haskell.LSP.Types.Capabilities: [$sel:_workDoneProgress:WindowClientCapabilities] :: WindowClientCapabilities -> Maybe Bool
+ Language.Haskell.LSP.Types.Lens: class HasToken s a | s -> a
+ Language.Haskell.LSP.Types.Lens: class HasWorkDoneToken s a | s -> a
+ Language.Haskell.LSP.Types.Lens: instance Language.Haskell.LSP.Types.Lens.HasCancellable Language.Haskell.LSP.Types.Window.WorkDoneProgressBeginParams (GHC.Maybe.Maybe GHC.Types.Bool)
+ Language.Haskell.LSP.Types.Lens: instance Language.Haskell.LSP.Types.Lens.HasCancellable Language.Haskell.LSP.Types.Window.WorkDoneProgressReportParams (GHC.Maybe.Maybe GHC.Types.Bool)
+ Language.Haskell.LSP.Types.Lens: instance Language.Haskell.LSP.Types.Lens.HasMessage Language.Haskell.LSP.Types.Window.WorkDoneProgressBeginParams (GHC.Maybe.Maybe Data.Text.Internal.Text)
+ Language.Haskell.LSP.Types.Lens: instance Language.Haskell.LSP.Types.Lens.HasMessage Language.Haskell.LSP.Types.Window.WorkDoneProgressEndParams (GHC.Maybe.Maybe Data.Text.Internal.Text)
+ Language.Haskell.LSP.Types.Lens: instance Language.Haskell.LSP.Types.Lens.HasMessage Language.Haskell.LSP.Types.Window.WorkDoneProgressReportParams (GHC.Maybe.Maybe Data.Text.Internal.Text)
+ Language.Haskell.LSP.Types.Lens: instance Language.Haskell.LSP.Types.Lens.HasPercentage Language.Haskell.LSP.Types.Window.WorkDoneProgressBeginParams (GHC.Maybe.Maybe GHC.Types.Double)
+ Language.Haskell.LSP.Types.Lens: instance Language.Haskell.LSP.Types.Lens.HasPercentage Language.Haskell.LSP.Types.Window.WorkDoneProgressReportParams (GHC.Maybe.Maybe GHC.Types.Double)
+ Language.Haskell.LSP.Types.Lens: instance Language.Haskell.LSP.Types.Lens.HasTitle Language.Haskell.LSP.Types.Window.WorkDoneProgressBeginParams Data.Text.Internal.Text
+ Language.Haskell.LSP.Types.Lens: instance Language.Haskell.LSP.Types.Lens.HasToken (Language.Haskell.LSP.Types.Window.ProgressParams t) Language.Haskell.LSP.Types.Progress.ProgressToken
+ Language.Haskell.LSP.Types.Lens: instance Language.Haskell.LSP.Types.Lens.HasValue (Language.Haskell.LSP.Types.Window.ProgressParams t) t
+ Language.Haskell.LSP.Types.Lens: instance Language.Haskell.LSP.Types.Lens.HasWorkDoneToken Language.Haskell.LSP.Types.CodeAction.CodeActionParams (GHC.Maybe.Maybe Language.Haskell.LSP.Types.Progress.ProgressToken)
+ Language.Haskell.LSP.Types.Lens: instance Language.Haskell.LSP.Types.Lens.HasWorkDoneToken Language.Haskell.LSP.Types.Color.ColorPresentationParams (GHC.Maybe.Maybe Language.Haskell.LSP.Types.Progress.ProgressToken)
+ Language.Haskell.LSP.Types.Lens: instance Language.Haskell.LSP.Types.Lens.HasWorkDoneToken Language.Haskell.LSP.Types.Color.DocumentColorParams (GHC.Maybe.Maybe Language.Haskell.LSP.Types.Progress.ProgressToken)
+ Language.Haskell.LSP.Types.Lens: instance Language.Haskell.LSP.Types.Lens.HasWorkDoneToken Language.Haskell.LSP.Types.Completion.CompletionParams (GHC.Maybe.Maybe Language.Haskell.LSP.Types.Progress.ProgressToken)
+ Language.Haskell.LSP.Types.Lens: instance Language.Haskell.LSP.Types.Lens.HasWorkDoneToken Language.Haskell.LSP.Types.DataTypesJSON.CodeLensParams (GHC.Maybe.Maybe Language.Haskell.LSP.Types.Progress.ProgressToken)
+ Language.Haskell.LSP.Types.Lens: instance Language.Haskell.LSP.Types.Lens.HasWorkDoneToken Language.Haskell.LSP.Types.DataTypesJSON.DocumentFormattingParams (GHC.Maybe.Maybe Language.Haskell.LSP.Types.Progress.ProgressToken)
+ Language.Haskell.LSP.Types.Lens: instance Language.Haskell.LSP.Types.Lens.HasWorkDoneToken Language.Haskell.LSP.Types.DataTypesJSON.DocumentLinkParams (GHC.Maybe.Maybe Language.Haskell.LSP.Types.Progress.ProgressToken)
+ Language.Haskell.LSP.Types.Lens: instance Language.Haskell.LSP.Types.Lens.HasWorkDoneToken Language.Haskell.LSP.Types.DataTypesJSON.DocumentRangeFormattingParams (GHC.Maybe.Maybe Language.Haskell.LSP.Types.Progress.ProgressToken)
+ Language.Haskell.LSP.Types.Lens: instance Language.Haskell.LSP.Types.Lens.HasWorkDoneToken Language.Haskell.LSP.Types.DataTypesJSON.ExecuteCommandParams (GHC.Maybe.Maybe Language.Haskell.LSP.Types.Progress.ProgressToken)
+ Language.Haskell.LSP.Types.Lens: instance Language.Haskell.LSP.Types.Lens.HasWorkDoneToken Language.Haskell.LSP.Types.DataTypesJSON.ReferenceParams (GHC.Maybe.Maybe Language.Haskell.LSP.Types.Progress.ProgressToken)
+ Language.Haskell.LSP.Types.Lens: instance Language.Haskell.LSP.Types.Lens.HasWorkDoneToken Language.Haskell.LSP.Types.DataTypesJSON.RenameParams (GHC.Maybe.Maybe Language.Haskell.LSP.Types.Progress.ProgressToken)
+ Language.Haskell.LSP.Types.Lens: instance Language.Haskell.LSP.Types.Lens.HasWorkDoneToken Language.Haskell.LSP.Types.DataTypesJSON.WorkspaceSymbolParams (GHC.Maybe.Maybe Language.Haskell.LSP.Types.Progress.ProgressToken)
+ Language.Haskell.LSP.Types.Lens: instance Language.Haskell.LSP.Types.Lens.HasWorkDoneToken Language.Haskell.LSP.Types.FoldingRange.FoldingRangeParams (GHC.Maybe.Maybe Language.Haskell.LSP.Types.Progress.ProgressToken)
+ Language.Haskell.LSP.Types.Lens: instance Language.Haskell.LSP.Types.Lens.HasWorkDoneToken Language.Haskell.LSP.Types.Symbol.DocumentSymbolParams (GHC.Maybe.Maybe Language.Haskell.LSP.Types.Progress.ProgressToken)
+ Language.Haskell.LSP.Types.Lens: instance Language.Haskell.LSP.Types.Lens.HasWorkDoneToken Language.Haskell.LSP.Types.TextDocument.TextDocumentPositionParams (GHC.Maybe.Maybe Language.Haskell.LSP.Types.Progress.ProgressToken)
+ Language.Haskell.LSP.Types.Lens: token :: HasToken s a => Lens' s a
+ Language.Haskell.LSP.Types.Lens: workDoneToken :: HasWorkDoneToken s a => Lens' s a
+ Language.Haskell.LSP.Types.MessageFuncs: fmServerWorkDoneProgressBeginNotification :: ProgressParams WorkDoneProgressBeginParams -> WorkDoneProgressBeginNotification
+ Language.Haskell.LSP.Types.MessageFuncs: fmServerWorkDoneProgressCreateRequest :: LspId -> WorkDoneProgressCreateParams -> WorkDoneProgressCreateRequest
+ Language.Haskell.LSP.Types.MessageFuncs: fmServerWorkDoneProgressEndNotification :: ProgressParams WorkDoneProgressEndParams -> WorkDoneProgressEndNotification
+ Language.Haskell.LSP.Types.MessageFuncs: fmServerWorkDoneProgressReportNotification :: ProgressParams WorkDoneProgressReportParams -> WorkDoneProgressReportNotification
- Language.Haskell.LSP.Types: CodeActionParams :: TextDocumentIdentifier -> Range -> CodeActionContext -> CodeActionParams
+ Language.Haskell.LSP.Types: CodeActionParams :: TextDocumentIdentifier -> Range -> CodeActionContext -> Maybe ProgressToken -> CodeActionParams
- Language.Haskell.LSP.Types: CodeLensParams :: TextDocumentIdentifier -> CodeLensParams
+ Language.Haskell.LSP.Types: CodeLensParams :: TextDocumentIdentifier -> Maybe ProgressToken -> CodeLensParams
- Language.Haskell.LSP.Types: ColorPresentationParams :: TextDocumentIdentifier -> Color -> Range -> ColorPresentationParams
+ Language.Haskell.LSP.Types: ColorPresentationParams :: TextDocumentIdentifier -> Color -> Range -> Maybe ProgressToken -> ColorPresentationParams
- Language.Haskell.LSP.Types: CompletionParams :: TextDocumentIdentifier -> Position -> Maybe CompletionContext -> CompletionParams
+ Language.Haskell.LSP.Types: CompletionParams :: TextDocumentIdentifier -> Position -> Maybe CompletionContext -> Maybe ProgressToken -> CompletionParams
- Language.Haskell.LSP.Types: DocumentColorParams :: TextDocumentIdentifier -> DocumentColorParams
+ Language.Haskell.LSP.Types: DocumentColorParams :: TextDocumentIdentifier -> Maybe ProgressToken -> DocumentColorParams
- Language.Haskell.LSP.Types: DocumentFormattingParams :: TextDocumentIdentifier -> FormattingOptions -> DocumentFormattingParams
+ Language.Haskell.LSP.Types: DocumentFormattingParams :: TextDocumentIdentifier -> FormattingOptions -> Maybe ProgressToken -> DocumentFormattingParams
- Language.Haskell.LSP.Types: DocumentLinkParams :: TextDocumentIdentifier -> DocumentLinkParams
+ Language.Haskell.LSP.Types: DocumentLinkParams :: TextDocumentIdentifier -> Maybe ProgressToken -> DocumentLinkParams
- Language.Haskell.LSP.Types: DocumentRangeFormattingParams :: TextDocumentIdentifier -> Range -> FormattingOptions -> DocumentRangeFormattingParams
+ Language.Haskell.LSP.Types: DocumentRangeFormattingParams :: TextDocumentIdentifier -> Range -> FormattingOptions -> Maybe ProgressToken -> DocumentRangeFormattingParams
- Language.Haskell.LSP.Types: DocumentSymbolParams :: TextDocumentIdentifier -> DocumentSymbolParams
+ Language.Haskell.LSP.Types: DocumentSymbolParams :: TextDocumentIdentifier -> Maybe ProgressToken -> DocumentSymbolParams
- Language.Haskell.LSP.Types: ExecuteCommandParams :: Text -> Maybe (List Value) -> ExecuteCommandParams
+ Language.Haskell.LSP.Types: ExecuteCommandParams :: Text -> Maybe (List Value) -> Maybe ProgressToken -> ExecuteCommandParams
- Language.Haskell.LSP.Types: FoldingRangeParams :: TextDocumentIdentifier -> FoldingRangeParams
+ Language.Haskell.LSP.Types: FoldingRangeParams :: TextDocumentIdentifier -> Maybe ProgressToken -> FoldingRangeParams
- Language.Haskell.LSP.Types: ReferenceParams :: TextDocumentIdentifier -> Position -> ReferenceContext -> ReferenceParams
+ Language.Haskell.LSP.Types: ReferenceParams :: TextDocumentIdentifier -> Position -> ReferenceContext -> Maybe ProgressToken -> ReferenceParams
- Language.Haskell.LSP.Types: RenameParams :: TextDocumentIdentifier -> Position -> Text -> RenameParams
+ Language.Haskell.LSP.Types: RenameParams :: TextDocumentIdentifier -> Position -> Text -> Maybe ProgressToken -> RenameParams
- Language.Haskell.LSP.Types: TextDocumentPositionParams :: TextDocumentIdentifier -> Position -> TextDocumentPositionParams
+ Language.Haskell.LSP.Types: TextDocumentPositionParams :: TextDocumentIdentifier -> Position -> Maybe ProgressToken -> TextDocumentPositionParams
- Language.Haskell.LSP.Types: WorkspaceSymbolParams :: Text -> WorkspaceSymbolParams
+ Language.Haskell.LSP.Types: WorkspaceSymbolParams :: Text -> Maybe ProgressToken -> WorkspaceSymbolParams
Files
- ChangeLog.md +5/−0
- haskell-lsp-types.cabal +2/−1
- src/Language/Haskell/LSP/Types.hs +2/−0
- src/Language/Haskell/LSP/Types/ClientCapabilities.hs +1/−1
- src/Language/Haskell/LSP/Types/CodeAction.hs +2/−1
- src/Language/Haskell/LSP/Types/Color.hs +3/−0
- src/Language/Haskell/LSP/Types/Completion.hs +2/−0
- src/Language/Haskell/LSP/Types/DataTypesJSON.hs +15/−6
- src/Language/Haskell/LSP/Types/FoldingRange.hs +2/−0
- src/Language/Haskell/LSP/Types/Lens.hs +4/−4
- src/Language/Haskell/LSP/Types/Message.hs +19/−14
- src/Language/Haskell/LSP/Types/MessageFuncs.hs +17/−12
- src/Language/Haskell/LSP/Types/Progress.hs +21/−0
- src/Language/Haskell/LSP/Types/Symbol.hs +2/−0
- src/Language/Haskell/LSP/Types/TextDocument.hs +2/−0
- src/Language/Haskell/LSP/Types/Window.hs +177/−124
ChangeLog.md view
@@ -1,5 +1,10 @@ # Revision history for haskell-lsp-types +## 0.17.0.0 -- 2019-10-18++* Update progress reporting to match the LSP 3.15 specification (@cocreature)+* Ensure ResponseMessage has either a result or an error (@cocreature)+ ## 0.16.0.0 -- 2019-09-07 * Add support for CodeActionOptions (@thomasjm)
haskell-lsp-types.cabal view
@@ -1,5 +1,5 @@ name: haskell-lsp-types-version: 0.16.0.0+version: 0.17.0.0 synopsis: Haskell library for the Microsoft Language Server Protocol, data types description: An implementation of the types to allow language implementors to@@ -36,6 +36,7 @@ , Language.Haskell.LSP.Types.Location , Language.Haskell.LSP.Types.MarkupContent , Language.Haskell.LSP.Types.Message+ , Language.Haskell.LSP.Types.Progress , Language.Haskell.LSP.Types.Symbol , Language.Haskell.LSP.Types.TextDocument , Language.Haskell.LSP.Types.Uri
src/Language/Haskell/LSP/Types.hs view
@@ -11,6 +11,7 @@ , module Language.Haskell.LSP.Types.Location , module Language.Haskell.LSP.Types.MarkupContent , module Language.Haskell.LSP.Types.Message+ , module Language.Haskell.LSP.Types.Progress , module Language.Haskell.LSP.Types.Symbol , module Language.Haskell.LSP.Types.TextDocument , module Language.Haskell.LSP.Types.Uri@@ -32,6 +33,7 @@ import Language.Haskell.LSP.Types.Location import Language.Haskell.LSP.Types.MarkupContent import Language.Haskell.LSP.Types.Message+import Language.Haskell.LSP.Types.Progress import Language.Haskell.LSP.Types.Symbol import Language.Haskell.LSP.Types.TextDocument import Language.Haskell.LSP.Types.Uri
src/Language/Haskell/LSP/Types/ClientCapabilities.hs view
@@ -1018,7 +1018,7 @@ data WindowClientCapabilities = WindowClientCapabilities { -- | Whether client supports handling progress notifications.- _progress :: Maybe Bool+ _workDoneProgress :: Maybe Bool } deriving (Show, Read, Eq) $(deriveJSON lspOptions ''WindowClientCapabilities)
src/Language/Haskell/LSP/Types/CodeAction.hs view
@@ -4,7 +4,6 @@ module Language.Haskell.LSP.Types.CodeAction where import Control.Applicative-import qualified Data.Aeson as A import Data.Aeson.TH import Data.Aeson.Types import Data.Text ( Text )@@ -14,6 +13,7 @@ import Language.Haskell.LSP.Types.List import Language.Haskell.LSP.Types.Location import Language.Haskell.LSP.Types.Message+import Language.Haskell.LSP.Types.Progress import Language.Haskell.LSP.Types.TextDocument import Language.Haskell.LSP.Types.WorkspaceEdit @@ -256,6 +256,7 @@ { _textDocument :: TextDocumentIdentifier , _range :: Range , _context :: CodeActionContext+ , _workDoneToken :: Maybe ProgressToken -- ^ An optional token that a server can use to report work done progress. } deriving (Read,Show,Eq) deriveJSON lspOptions ''CodeActionParams
src/Language/Haskell/LSP/Types/Color.hs view
@@ -8,6 +8,7 @@ import Language.Haskell.LSP.Types.List import Language.Haskell.LSP.Types.Location import Language.Haskell.LSP.Types.Message+import Language.Haskell.LSP.Types.Progress import Language.Haskell.LSP.Types.TextDocument import Language.Haskell.LSP.Types.WorkspaceEdit @@ -99,6 +100,7 @@ data DocumentColorParams = DocumentColorParams { _textDocument :: TextDocumentIdentifier -- ^ The text document.+ , _workDoneToken :: Maybe ProgressToken -- ^ An optional token that a server can use to report work done progress. } deriving (Read, Show, Eq) deriveJSON lspOptions ''DocumentColorParams@@ -173,6 +175,7 @@ -- | The range where the color would be inserted. -- Serves as a context. , _range :: Range+ , _workDoneToken :: Maybe ProgressToken -- ^ An optional token that a server can use to report work done progress. } deriving (Read, Show, Eq) deriveJSON lspOptions ''ColorPresentationParams
src/Language/Haskell/LSP/Types/Completion.hs view
@@ -15,6 +15,7 @@ import Language.Haskell.LSP.Types.Location import Language.Haskell.LSP.Types.MarkupContent import Language.Haskell.LSP.Types.Message+import Language.Haskell.LSP.Types.Progress import Language.Haskell.LSP.Types.TextDocument import Language.Haskell.LSP.Types.Utils import Language.Haskell.LSP.Types.WorkspaceEdit@@ -435,6 +436,7 @@ , _context :: Maybe CompletionContext -- ^ The completion context. This is only available if the client specifies -- to send this using `ClientCapabilities.textDocument.completion.contextSupport === true`+ , _workDoneToken :: Maybe ProgressToken -- ^ An optional token that a server can use to report work done progress. } deriving (Read, Show, Eq)
src/Language/Haskell/LSP/Types/DataTypesJSON.hs view
@@ -27,6 +27,7 @@ import Language.Haskell.LSP.Types.Location import Language.Haskell.LSP.Types.MarkupContent import Language.Haskell.LSP.Types.Message+import Language.Haskell.LSP.Types.Progress import Language.Haskell.LSP.Types.Symbol import Language.Haskell.LSP.Types.TextDocument import Language.Haskell.LSP.Types.Uri@@ -2008,9 +2009,10 @@ data ReferenceParams = ReferenceParams- { _textDocument :: TextDocumentIdentifier- , _position :: Position- , _context :: ReferenceContext+ { _textDocument :: TextDocumentIdentifier+ , _position :: Position+ , _context :: ReferenceContext+ , _workDoneToken :: Maybe ProgressToken -- ^ An optional token that a server can use to report work done progress. } deriving (Read,Show,Eq) deriveJSON lspOptions ''ReferenceParams@@ -2151,7 +2153,8 @@ data WorkspaceSymbolParams = WorkspaceSymbolParams- { _query :: Text+ { _query :: Text -- ^ A query string to filter symbols by. Clients may send an empty string here to request all symbols.+ , _workDoneToken :: Maybe ProgressToken -- ^ An optional token that a server can use to report work done progress. } deriving (Read,Show,Eq) deriveJSON lspOptions ''WorkspaceSymbolParams@@ -2216,6 +2219,7 @@ data CodeLensParams = CodeLensParams { _textDocument :: TextDocumentIdentifier+ , _workDoneToken :: Maybe ProgressToken -- ^ An optional token that a server can use to report work done progress. } deriving (Read,Show,Eq) deriveJSON lspOptions ''CodeLensParams@@ -2338,6 +2342,7 @@ data DocumentLinkParams = DocumentLinkParams { _textDocument :: TextDocumentIdentifier+ , _workDoneToken :: Maybe ProgressToken -- ^ An optional token that a server can use to report work done progress. } deriving (Read,Show,Eq) deriveJSON lspOptions ''DocumentLinkParams@@ -2446,6 +2451,7 @@ DocumentFormattingParams { _textDocument :: TextDocumentIdentifier , _options :: FormattingOptions+ , _workDoneToken :: Maybe ProgressToken -- ^ An optional token that a server can use to report work done progress. } deriving (Show,Read,Eq) deriveJSON lspOptions ''DocumentFormattingParams@@ -2497,6 +2503,7 @@ { _textDocument :: TextDocumentIdentifier , _range :: Range , _options :: FormattingOptions+ , _workDoneToken :: Maybe ProgressToken -- ^ An optional token that a server can use to report work done progress. } deriving (Read,Show,Eq) deriveJSON lspOptions ''DocumentRangeFormattingParams@@ -2628,6 +2635,7 @@ { _textDocument :: TextDocumentIdentifier , _position :: Position , _newName :: Text+ , _workDoneToken :: Maybe ProgressToken -- ^ An optional token that a server can use to report work done progress. } deriving (Show, Read, Eq) deriveJSON lspOptions ''RenameParams@@ -2736,8 +2744,9 @@ data ExecuteCommandParams = ExecuteCommandParams- { _command :: Text- , _arguments :: Maybe (List A.Value)+ { _command :: Text -- ^ The identifier of the actual command handler.+ , _arguments :: Maybe (List A.Value) -- ^ Arguments that the command should be invoked with.+ , _workDoneToken :: Maybe ProgressToken -- ^ An optional token that a server can use to report work done progress. } deriving (Show, Read, Eq) deriveJSON lspOptions ''ExecuteCommandParams
src/Language/Haskell/LSP/Types/FoldingRange.hs view
@@ -7,12 +7,14 @@ import Data.Text (Text) import Language.Haskell.LSP.Types.Constants import Language.Haskell.LSP.Types.List+import Language.Haskell.LSP.Types.Progress import Language.Haskell.LSP.Types.TextDocument import Language.Haskell.LSP.Types.Message data FoldingRangeParams = FoldingRangeParams { _textDocument :: TextDocumentIdentifier -- ^ The text document.+ , _workDoneToken :: Maybe ProgressToken -- ^ An optional token that a server can use to report work done progress. } deriving (Read, Show, Eq)
src/Language/Haskell/LSP/Types/Lens.hs view
@@ -193,7 +193,7 @@ makeFieldsNoPrefix ''MessageActionItem makeFieldsNoPrefix ''ShowMessageRequestParams makeFieldsNoPrefix ''LogMessageParams-makeFieldsNoPrefix ''ProgressStartParams-makeFieldsNoPrefix ''ProgressReportParams-makeFieldsNoPrefix ''ProgressDoneParams-makeFieldsNoPrefix ''ProgressCancelParams+makeFieldsNoPrefix ''ProgressParams+makeFieldsNoPrefix ''WorkDoneProgressBeginParams+makeFieldsNoPrefix ''WorkDoneProgressReportParams+makeFieldsNoPrefix ''WorkDoneProgressEndParams
src/Language/Haskell/LSP/Types/Message.hs view
@@ -3,10 +3,12 @@ {-# LANGUAGE TemplateHaskell #-} module Language.Haskell.LSP.Types.Message where +import Control.Monad import qualified Data.Aeson as A import Data.Aeson.TH import Data.Aeson.Types import Data.Hashable+import Data.Maybe -- For <= 8.2.2 import Data.Text (Text) import Language.Haskell.LSP.Types.Constants@@ -83,7 +85,7 @@ | WorkspaceSymbol | WorkspaceExecuteCommand -- Progress- | WindowProgressCancel+ | WorkDoneProgressCancel -- Document | TextDocumentDidOpen | TextDocumentDidChange@@ -161,7 +163,7 @@ parseJSON (A.String "textDocument/rename") = return TextDocumentRename parseJSON (A.String "textDocument/prepareRename") = return TextDocumentPrepareRename parseJSON (A.String "textDocument/foldingRange") = return TextDocumentFoldingRange- parseJSON (A.String "window/progress/cancel") = return WindowProgressCancel+ parseJSON (A.String "window/workDoneProgress/cancel") = return WorkDoneProgressCancel parseJSON (A.String x) = return (CustomClientMethod x) parseJSON _ = mempty @@ -208,7 +210,7 @@ toJSON TextDocumentFoldingRange = A.String "textDocument/foldingRange" toJSON TextDocumentDocumentLink = A.String "textDocument/documentLink" toJSON DocumentLinkResolve = A.String "documentLink/resolve"- toJSON WindowProgressCancel = A.String "window/progress/cancel"+ toJSON WorkDoneProgressCancel = A.String "window/workDoneProgress/cancel" toJSON (CustomClientMethod xs) = A.String xs data ServerMethod =@@ -216,9 +218,8 @@ WindowShowMessage | WindowShowMessageRequest | WindowLogMessage- | WindowProgressStart- | WindowProgressReport- | WindowProgressDone+ | WindowWorkDoneProgressCreate+ | Progress | TelemetryEvent -- Client | ClientRegisterCapability@@ -239,9 +240,8 @@ parseJSON (A.String "window/showMessage") = return WindowShowMessage parseJSON (A.String "window/showMessageRequest") = return WindowShowMessageRequest parseJSON (A.String "window/logMessage") = return WindowLogMessage- parseJSON (A.String "window/progress/start") = return WindowProgressStart- parseJSON (A.String "window/progress/report") = return WindowProgressReport- parseJSON (A.String "window/progress/done") = return WindowProgressDone+ parseJSON (A.String "window/workDoneProgress/create") = return WindowWorkDoneProgressCreate+ parseJSON (A.String "$/progress") = return Progress parseJSON (A.String "telemetry/event") = return TelemetryEvent -- Client parseJSON (A.String "client/registerCapability") = return ClientRegisterCapability@@ -262,9 +262,8 @@ toJSON WindowShowMessage = A.String "window/showMessage" toJSON WindowShowMessageRequest = A.String "window/showMessageRequest" toJSON WindowLogMessage = A.String "window/logMessage"- toJSON WindowProgressStart = A.String "window/progress/start"- toJSON WindowProgressReport = A.String "window/progress/report"- toJSON WindowProgressDone = A.String "window/progress/done"+ toJSON WindowWorkDoneProgressCreate = A.String "window/workDoneProgress/create"+ toJSON Progress = A.String "$/progress" toJSON TelemetryEvent = A.String "telemetry/event" -- Client toJSON ClientRegisterCapability = A.String "client/registerCapability"@@ -377,6 +376,7 @@ -- --------------------------------------------------------------------- +-- | Either result or error must be Just. data ResponseMessage a = ResponseMessage { _jsonrpc :: Text@@ -388,13 +388,18 @@ deriveToJSON lspOptions ''ResponseMessage instance FromJSON a => FromJSON (ResponseMessage a) where- parseJSON = withObject "Response" $ \o ->- ResponseMessage+ parseJSON = withObject "Response" $ \o -> do+ rsp <- ResponseMessage <$> o .: "jsonrpc" <*> o .: "id" -- It is important to use .:! so that result = null gets decoded as Just Nothing <*> o .:! "result" <*> o .:! "error"+ -- We make sure that one of them is present. Without this check we can end up+ -- parsing a Request as a ResponseMessage.+ unless (isJust (_result rsp) || isJust (_error rsp)) $+ fail "ResponseMessage must either have a result or an error"+ pure rsp type ErrorResponse = ResponseMessage ()
src/Language/Haskell/LSP/Types/MessageFuncs.hs view
@@ -17,9 +17,10 @@ , fmServerShowMessageNotification , fmServerShowMessageRequest , fmServerLogMessageNotification- , fmServerProgressStartNotification- , fmServerProgressReportNotification- , fmServerProgressDoneNotification+ , fmServerWorkDoneProgressBeginNotification+ , fmServerWorkDoneProgressReportNotification+ , fmServerWorkDoneProgressEndNotification+ , fmServerWorkDoneProgressCreateRequest , fmServerTelemetryNotification -- * Client@@ -133,21 +134,25 @@ -- ---------------------------------------------------------------------- -fmServerProgressStartNotification :: J.ProgressStartParams -> J.ProgressStartNotification-fmServerProgressStartNotification params- = J.NotificationMessage "2.0" J.WindowProgressStart params+fmServerWorkDoneProgressBeginNotification :: J.ProgressParams J.WorkDoneProgressBeginParams -> J.WorkDoneProgressBeginNotification+fmServerWorkDoneProgressBeginNotification params+ = J.NotificationMessage "2.0" J.Progress params -- ---------------------------------------------------------------------- -fmServerProgressReportNotification :: J.ProgressReportParams -> J.ProgressReportNotification-fmServerProgressReportNotification params- = J.NotificationMessage "2.0" J.WindowProgressReport params+fmServerWorkDoneProgressReportNotification :: J.ProgressParams J.WorkDoneProgressReportParams -> J.WorkDoneProgressReportNotification+fmServerWorkDoneProgressReportNotification params+ = J.NotificationMessage "2.0" J.Progress params -- ---------------------------------------------------------------------- -fmServerProgressDoneNotification :: J.ProgressDoneParams -> J.ProgressDoneNotification-fmServerProgressDoneNotification params- = J.NotificationMessage "2.0" J.WindowProgressDone params+fmServerWorkDoneProgressEndNotification :: J.ProgressParams J.WorkDoneProgressEndParams -> J.WorkDoneProgressEndNotification+fmServerWorkDoneProgressEndNotification params+ = J.NotificationMessage "2.0" J.Progress params++fmServerWorkDoneProgressCreateRequest :: J.LspId -> J.WorkDoneProgressCreateParams -> J.WorkDoneProgressCreateRequest+fmServerWorkDoneProgressCreateRequest rid params+ = J.RequestMessage "2.0" rid J.WindowWorkDoneProgressCreate params -- ---------------------------------------------------------------------- -- * :arrow_left: [telemetry/event](#telemetry_event)
+ src/Language/Haskell/LSP/Types/Progress.hs view
@@ -0,0 +1,21 @@+module Language.Haskell.LSP.Types.Progress where++import qualified Data.Aeson as A+import Data.Text (Text)++-- | A token used to report progress back or return partial results for a+-- specific request.+-- @since 0.17.0.0+data ProgressToken+ = ProgressNumericToken Int+ | ProgressTextToken Text+ deriving (Show, Read, Eq, Ord)++instance A.ToJSON ProgressToken where+ toJSON (ProgressNumericToken i) = A.toJSON i+ toJSON (ProgressTextToken t) = A.toJSON t++instance A.FromJSON ProgressToken where+ parseJSON (A.String t) = pure $ ProgressTextToken t+ parseJSON (A.Number i) = ProgressNumericToken <$> A.parseJSON (A.Number i)+ parseJSON v = fail $ "Invalid progress token: " ++ show v
src/Language/Haskell/LSP/Types/Symbol.hs view
@@ -12,6 +12,7 @@ import Language.Haskell.LSP.Types.List import Language.Haskell.LSP.Types.Location import Language.Haskell.LSP.Types.Message+import Language.Haskell.LSP.Types.Progress -- --------------------------------------------------------------------- {-@@ -102,6 +103,7 @@ data DocumentSymbolParams = DocumentSymbolParams { _textDocument :: TextDocumentIdentifier+ , _workDoneToken :: Maybe ProgressToken -- ^ An optional token that a server can use to report work done progress. } deriving (Read,Show,Eq) deriveJSON lspOptions ''DocumentSymbolParams
src/Language/Haskell/LSP/Types/TextDocument.hs view
@@ -6,6 +6,7 @@ import Data.Text ( Text ) import Language.Haskell.LSP.Types.Constants import Language.Haskell.LSP.Types.Location+import Language.Haskell.LSP.Types.Progress import Language.Haskell.LSP.Types.Uri -- ---------------------------------------------------------------------@@ -98,6 +99,7 @@ TextDocumentPositionParams { _textDocument :: TextDocumentIdentifier , _position :: Position+ , _workDoneToken :: Maybe ProgressToken -- ^ An optional token that a server can use to report work done progress. } deriving (Show, Read, Eq) deriveJSON lspOptions ''TextDocumentPositionParams
src/Language/Haskell/LSP/Types/Window.hs view
@@ -1,12 +1,17 @@+{-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE RecordWildCards #-} {-# LANGUAGE TemplateHaskell #-} module Language.Haskell.LSP.Types.Window where +import Control.Monad (unless) import qualified Data.Aeson as A import Data.Aeson.TH+import Data.Maybe (catMaybes) import Data.Text (Text) import Language.Haskell.LSP.Types.Constants import Language.Haskell.LSP.Types.Message+import Language.Haskell.LSP.Types.Progress -- --------------------------------------------------------------------- {-@@ -195,72 +200,68 @@ type LogMessageNotification = NotificationMessage ServerMethod LogMessageParams --- --------------------------------------------------------------------- {--Progress Start Notification--The window/progress/start notification is sent from the server to the client to ask the client to start progress.+Progress Begin Notification -Notification:+To start progress reporting a $/progress notification with the following payload must be sent: -method: 'window/progress/start'-params: ProgressStartParams defined as follows:-export interface ProgressStartParams {+export interface WorkDoneProgressBegin { - /**- * A unique identifier to associate multiple progress notifications with- * the same progress.- */- id: string;+ kind: 'begin'; - /**- * Mandatory title of the progress operation. Used to briefly inform about- * the kind of operation being performed.- *- * Examples: "Indexing" or "Linking dependencies".- */- title: string;+ /**+ * Mandatory title of the progress operation. Used to briefly inform about+ * the kind of operation being performed.+ *+ * Examples: "Indexing" or "Linking dependencies".+ */+ title: string; - /**- * Controls if a cancel button should show to allow the user to cancel the- * long running operation. Clients that don't support cancellation are allowed- * to ignore the setting.- */- cancellable?: boolean;+ /**+ * Controls if a cancel button should show to allow the user to cancel the+ * long running operation. Clients that don't support cancellation are allowed+ * to ignore the setting.+ */+ cancellable?: boolean; - /**- * Optional, more detailed associated progress message. Contains- * complementary information to the '_title'.- *- * Examples: "3/25 files", "project/src/module2", "node_modules/some_dep".- * If unset, the previous progress message (if any) is still valid.- */- message?: string;+ /**+ * Optional, more detailed associated progress message. Contains+ * complementary information to the `title`.+ *+ * Examples: "3/25 files", "project/src/module2", "node_modules/some_dep".+ * If unset, the previous progress message (if any) is still valid.+ */+ message?: string; - /**- * Optional progress percentage to display (value 100 is considered 100%).- * If not provided infinite progress is assumed and clients are allowed- * to ignore the '_percentage' value in subsequent in report notifications.- *- * The value should be steadily rising. Clients are free to ignore values- * that are not following this rule.- */- percentage?: number;-}+ /**+ * Optional progress percentage to display (value 100 is considered 100%).+ * If not provided infinite progress is assumed and clients are allowed+ * to ignore the `percentage` value in subsequent in report notifications.+ *+ * The value should be steadily rising. Clients are free to ignore values+ * that are not following this rule.+ */+ percentage?: number; -} --- | Parameters for 'ProgressStartNotification'.+-- | Parameters for a $/progress notification.+data ProgressParams t =+ ProgressParams {+ _token :: ProgressToken+ , _value :: t+ } deriving (Show, Read, Eq)++deriveJSON lspOptions{ fieldLabelModifier = customModifier } ''ProgressParams++-- | Parameters for 'WorkDoneProgressBeginNotification'. -- -- @since 0.10.0.0-data ProgressStartParams =- ProgressStartParams {- -- | A unique identifier to associate multiple progress- -- notifications with the same progress.- _id :: Text+data WorkDoneProgressBeginParams =+ WorkDoneProgressBeginParams { -- | Mandatory title of the progress operation. -- Used to briefly inform about the kind of operation being -- performed. Examples: "Indexing" or "Linking dependencies".- , _title :: Text+ _title :: Text -- | Controls if a cancel button should show to allow the user to cancel the -- long running operation. Clients that don't support cancellation are allowed -- to ignore the setting.@@ -281,59 +282,77 @@ , _percentage :: Maybe Double } deriving (Show, Read, Eq) -deriveJSON lspOptions{ fieldLabelModifier = customModifier } ''ProgressStartParams+instance A.ToJSON WorkDoneProgressBeginParams where+ toJSON WorkDoneProgressBeginParams{..} =+ A.object $ catMaybes+ [ Just $ "kind" A..= ("begin" :: Text)+ , Just $ "title" A..= _title+ , ("cancellable" A..=) <$> _cancellable+ , ("message" A..=) <$> _message+ , ("percentage" A..=) <$> _percentage+ ] --- | The window/progress/start notification is sent from the server to the+instance A.FromJSON WorkDoneProgressBeginParams where+ parseJSON = A.withObject "WorkDoneProgressBegin" $ \o -> do+ kind <- o A..: "kind"+ unless (kind == ("begin" :: Text)) $ fail $ "Expected kind \"begin\" but got " ++ show kind+ _title <- o A..: "title"+ _cancellable <- o A..:? "cancellable"+ _message <- o A..:? "message"+ _percentage <- o A..:? "percentage"+ pure WorkDoneProgressBeginParams{..}++-- | The $/progress begin notification is sent from the server to the -- client to ask the client to start progress. -- -- @since 0.10.0.0-type ProgressStartNotification = NotificationMessage ServerMethod ProgressStartParams-+type WorkDoneProgressBeginNotification = NotificationMessage ServerMethod (ProgressParams WorkDoneProgressBeginParams) {- Progress Report Notification -The window/progress/report notification is sent from the server to the client to report progress for a previously started progress.+Reporting progress is done using the following payload: -Notification:+export interface WorkDoneProgressReport { -method: 'window/progress/report'-params: ProgressReportParams defined as follows:-export interface ProgressReportParams {+ kind: 'report'; - /**- * A unique identifier to associate multiple progress notifications with the same progress.- */- id: string;+ /**+ * Controls enablement state of a cancel button. This property is only valid if a cancel+ * button got requested in the `WorkDoneProgressStart` payload.+ *+ * Clients that don't support cancellation or don't support control the button's+ * enablement state are allowed to ignore the setting.+ */+ cancellable?: boolean; - /**- * Optional, more detailed associated progress message. Contains- * complementary information to the '_title'.- *- * Examples: "3/25 files", "project/src/module2", "node_modules/some_dep".- * If unset, the previous progress message (if any) is still valid.- */- message?: string;+ /**+ * Optional, more detailed associated progress message. Contains+ * complementary information to the `title`.+ *+ * Examples: "3/25 files", "project/src/module2", "node_modules/some_dep".+ * If unset, the previous progress message (if any) is still valid.+ */+ message?: string; - /**- * Optional progress percentage to display (value 100 is considered 100%).- * If infinite progress was indicated in the start notification client- * are allowed to ignore the value. In addition the value should be steadily- * rising. Clients are free to ignore values that are not following this rule.- */- percentage?: number;+ /**+ * Optional progress percentage to display (value 100 is considered 100%).+ * If not provided infinite progress is assumed and clients are allowed+ * to ignore the `percentage` value in subsequent in report notifications.+ *+ * The value should be steadily rising. Clients are free to ignore values+ * that are not following this rule.+ */+ percentage?: number; }- -} --- | Parameters for 'ProgressReportNotification'+-- | Parameters for 'WorkDoneProgressReportNotification' -- -- @since 0.10.0.0-data ProgressReportParams =- ProgressReportParams {- -- | A unique identifier to associate multiple progress- -- notifications with the same progress.- _id :: Text+data WorkDoneProgressReportParams =+ WorkDoneProgressReportParams {+ _cancellable :: Maybe Bool -- | Optional, more detailed associated progress -- message. Contains complementary information to the -- '_title'. Examples: "3/25 files",@@ -348,82 +367,116 @@ , _percentage :: Maybe Double } deriving (Show, Read, Eq) -deriveJSON lspOptions{ fieldLabelModifier = customModifier } ''ProgressReportParams+instance A.ToJSON WorkDoneProgressReportParams where+ toJSON WorkDoneProgressReportParams{..} =+ A.object $ catMaybes+ [ Just $ "kind" A..= ("report" :: Text)+ , ("cancellable" A..=) <$> _cancellable+ , ("message" A..=) <$> _message+ , ("percentage" A..=) <$> _percentage+ ] --- | The window/progress/report notification is sent from the server to the+instance A.FromJSON WorkDoneProgressReportParams where+ parseJSON = A.withObject "WorkDoneProgressReport" $ \o -> do+ kind <- o A..: "kind"+ unless (kind == ("report" :: Text)) $ fail $ "Expected kind \"report\" but got " ++ show kind+ _cancellable <- o A..:? "cancellable"+ _message <- o A..:? "message"+ _percentage <- o A..:? "percentage"+ pure WorkDoneProgressReportParams{..}++-- | The workdone $/progress report notification is sent from the server to the -- client to report progress for a previously started progress. -- -- @since 0.10.0.0-type ProgressReportNotification = NotificationMessage ServerMethod ProgressReportParams+type WorkDoneProgressReportNotification = NotificationMessage ServerMethod (ProgressParams WorkDoneProgressReportParams) {--Progress Done Notification+Progress End Notification -The window/progress/done notification is sent from the server to the client to stop a previously started progress.+Signaling the end of a progress reporting is done using the following payload: -Notification:+export interface WorkDoneProgressEnd { -method: 'window/progress/done'-params: ProgressDoneParams defined as follows:-export interface ProgressDoneParams {- /**- * A unique identifier to associate multiple progress notifications with the same progress.- */- id: string;+ kind: 'end';++ /**+ * Optional, a final message indicating to for example indicate the outcome+ * of the operation.+ */+ message?: string; } -} --- | Parameters for 'ProgressDoneNotification'.+-- | Parameters for 'WorkDoneProgressEndNotification'. -- -- @since 0.10.0.0-data ProgressDoneParams =- ProgressDoneParams {- -- | A unique identifier to associate multiple progress- -- notifications with the same progress.- _id :: Text+data WorkDoneProgressEndParams =+ WorkDoneProgressEndParams {+ _message :: Maybe Text } deriving (Show, Read, Eq) -deriveJSON lspOptions{ fieldLabelModifier = customModifier } ''ProgressDoneParams+instance A.ToJSON WorkDoneProgressEndParams where+ toJSON WorkDoneProgressEndParams{..} =+ A.object $ catMaybes+ [ Just $ "kind" A..= ("end" :: Text)+ , ("message" A..=) <$> _message+ ] --- | The window/progress/done notification is sent from the server to the+instance A.FromJSON WorkDoneProgressEndParams where+ parseJSON = A.withObject "WorkDoneProgressEnd" $ \o -> do+ kind <- o A..: "kind"+ unless (kind == ("end" :: Text)) $ fail $ "Expected kind \"end\" but got " ++ show kind+ _message <- o A..:? "message"+ pure WorkDoneProgressEndParams{..}++-- | The $/progress end notification is sent from the server to the -- client to stop a previously started progress. -- -- @since 0.10.0.0-type ProgressDoneNotification = NotificationMessage ServerMethod ProgressDoneParams+type WorkDoneProgressEndNotification = NotificationMessage ServerMethod (ProgressParams WorkDoneProgressEndParams) {- Progress Cancel Notification -The window/progress/cancel notification is sent from the client to the server to inform the server that the user has pressed the cancel button on the progress UX. A server receiving a cancel request must still close a progress using the done notification.+The window/workDoneProgress/cancel notification is sent from the client to the server to inform the server that the user has pressed the cancel button on the progress UX. A server receiving a cancel request must still close a progress using the done notification. Notification: -method: 'window/progress/cancel'-params: ProgressCancelParams defined as follows:-export interface ProgressCancelParams {- /**- * A unique identifier to associate multiple progress notifications with the same progress.- */- id: string;+method: 'window/workDoneProgress/cancel'+params: WorkDoneProgressCancelParams defined as follows:+export interface WorkDoneProgressCancelParams {+ /**+ * The token to be used to report progress.+ */+ token: ProgressToken; }- -} --- | Parameters for 'ProgressCancelNotification'.+-- | Parameters for 'WorkDoneProgressCancelNotification'. -- -- @since 0.10.0.0-data ProgressCancelParams =- ProgressCancelParams {+data WorkDoneProgressCancelParams =+ WorkDoneProgressCancelParams { -- | A unique identifier to associate multiple progress -- notifications with the same progress.- _id :: Text+ _token :: ProgressToken } deriving (Show, Read, Eq) -deriveJSON lspOptions{ fieldLabelModifier = customModifier } ''ProgressCancelParams+deriveJSON lspOptions{ fieldLabelModifier = customModifier } ''WorkDoneProgressCancelParams --- | The window/progress/cancel notification is sent from the client to the server+-- | The window/workDoneProgress/cancel notification is sent from the client to the server -- to inform the server that the user has pressed the cancel button on the progress UX. -- A server receiving a cancel request must still close a progress using the done notification. -- -- @since 0.10.0.0-type ProgressCancelNotification = NotificationMessage ClientMethod ProgressCancelParams+type WorkDoneProgressCancelNotification = NotificationMessage ClientMethod WorkDoneProgressCancelParams++data WorkDoneProgressCreateParams =+ WorkDoneProgressCreateParams {+ _token :: ProgressToken+ } deriving (Show, Read, Eq)++deriveJSON lspOptions{ fieldLabelModifier = customModifier } ''WorkDoneProgressCreateParams++type WorkDoneProgressCreateRequest = RequestMessage ServerMethod WorkDoneProgressCreateParams ()