haskell-lsp-types 0.4.0.0 → 0.5.0.0
raw patch · 14 files changed
+1185/−604 lines, 14 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
- Language.Haskell.LSP.TH.ClientCapabilities: CodeActionKindValueSet :: List CodeActionKind -> CodeActionKindValueSet
- Language.Haskell.LSP.TH.ClientCapabilities: [$sel:_valueSet:CodeActionKindValueSet] :: CodeActionKindValueSet -> List CodeActionKind
- Language.Haskell.LSP.TH.ClientCapabilities: data CodeActionKindValueSet
- Language.Haskell.LSP.TH.ClientCapabilities: instance Data.Aeson.Types.FromJSON.FromJSON Language.Haskell.LSP.TH.ClientCapabilities.CodeActionKindValueSet
- Language.Haskell.LSP.TH.ClientCapabilities: instance Data.Aeson.Types.ToJSON.ToJSON Language.Haskell.LSP.TH.ClientCapabilities.CodeActionKindValueSet
- Language.Haskell.LSP.TH.ClientCapabilities: instance Data.Default.Class.Default Language.Haskell.LSP.TH.ClientCapabilities.CodeActionKindValueSet
- Language.Haskell.LSP.TH.ClientCapabilities: instance GHC.Classes.Eq Language.Haskell.LSP.TH.ClientCapabilities.CodeActionKindValueSet
- Language.Haskell.LSP.TH.ClientCapabilities: instance GHC.Read.Read Language.Haskell.LSP.TH.ClientCapabilities.CodeActionKindValueSet
- Language.Haskell.LSP.TH.ClientCapabilities: instance GHC.Show.Show Language.Haskell.LSP.TH.ClientCapabilities.CodeActionKindValueSet
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_language:DocumentFilter] :: DocumentFilter -> Text
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_pattern:DocumentFilter] :: DocumentFilter -> Maybe Text
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_scheme:DocumentFilter] :: DocumentFilter -> Text
- Language.Haskell.LSP.TH.DataTypesJSON: data DefinitionResponseParams
- Language.Haskell.LSP.TH.DataTypesJSON: instance Data.Aeson.Types.FromJSON.FromJSON Language.Haskell.LSP.TH.DataTypesJSON.CompletionItem
- Language.Haskell.LSP.TH.DataTypesJSON: instance Data.Aeson.Types.FromJSON.FromJSON Language.Haskell.LSP.TH.DataTypesJSON.CompletionItemKind
- Language.Haskell.LSP.TH.DataTypesJSON: instance Data.Aeson.Types.FromJSON.FromJSON Language.Haskell.LSP.TH.DataTypesJSON.CompletionListType
- Language.Haskell.LSP.TH.DataTypesJSON: instance Data.Aeson.Types.FromJSON.FromJSON Language.Haskell.LSP.TH.DataTypesJSON.CompletionRegistrationOptions
- Language.Haskell.LSP.TH.DataTypesJSON: instance Data.Aeson.Types.FromJSON.FromJSON Language.Haskell.LSP.TH.DataTypesJSON.CompletionResponseResult
- Language.Haskell.LSP.TH.DataTypesJSON: instance Data.Aeson.Types.FromJSON.FromJSON Language.Haskell.LSP.TH.DataTypesJSON.DefinitionResponseParams
- Language.Haskell.LSP.TH.DataTypesJSON: instance Data.Aeson.Types.FromJSON.FromJSON Language.Haskell.LSP.TH.DataTypesJSON.DocumentFilter
- Language.Haskell.LSP.TH.DataTypesJSON: instance Data.Aeson.Types.FromJSON.FromJSON Language.Haskell.LSP.TH.DataTypesJSON.InsertTextFormat
- Language.Haskell.LSP.TH.DataTypesJSON: instance Data.Aeson.Types.FromJSON.FromJSON Language.Haskell.LSP.TH.DataTypesJSON.TextDocumentItem
- Language.Haskell.LSP.TH.DataTypesJSON: instance Data.Aeson.Types.FromJSON.FromJSON Language.Haskell.LSP.TH.DataTypesJSON.TextDocumentPositionParams
- Language.Haskell.LSP.TH.DataTypesJSON: instance Data.Aeson.Types.ToJSON.ToJSON Language.Haskell.LSP.TH.DataTypesJSON.CompletionItem
- Language.Haskell.LSP.TH.DataTypesJSON: instance Data.Aeson.Types.ToJSON.ToJSON Language.Haskell.LSP.TH.DataTypesJSON.CompletionItemKind
- Language.Haskell.LSP.TH.DataTypesJSON: instance Data.Aeson.Types.ToJSON.ToJSON Language.Haskell.LSP.TH.DataTypesJSON.CompletionListType
- Language.Haskell.LSP.TH.DataTypesJSON: instance Data.Aeson.Types.ToJSON.ToJSON Language.Haskell.LSP.TH.DataTypesJSON.CompletionRegistrationOptions
- Language.Haskell.LSP.TH.DataTypesJSON: instance Data.Aeson.Types.ToJSON.ToJSON Language.Haskell.LSP.TH.DataTypesJSON.CompletionResponseResult
- Language.Haskell.LSP.TH.DataTypesJSON: instance Data.Aeson.Types.ToJSON.ToJSON Language.Haskell.LSP.TH.DataTypesJSON.DefinitionResponseParams
- Language.Haskell.LSP.TH.DataTypesJSON: instance Data.Aeson.Types.ToJSON.ToJSON Language.Haskell.LSP.TH.DataTypesJSON.DocumentFilter
- Language.Haskell.LSP.TH.DataTypesJSON: instance Data.Aeson.Types.ToJSON.ToJSON Language.Haskell.LSP.TH.DataTypesJSON.InsertTextFormat
- Language.Haskell.LSP.TH.DataTypesJSON: instance Data.Aeson.Types.ToJSON.ToJSON Language.Haskell.LSP.TH.DataTypesJSON.TextDocumentItem
- Language.Haskell.LSP.TH.DataTypesJSON: instance Data.Aeson.Types.ToJSON.ToJSON Language.Haskell.LSP.TH.DataTypesJSON.TextDocumentPositionParams
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Classes.Eq Language.Haskell.LSP.TH.DataTypesJSON.CompletionItem
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Classes.Eq Language.Haskell.LSP.TH.DataTypesJSON.CompletionItemKind
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Classes.Eq Language.Haskell.LSP.TH.DataTypesJSON.CompletionListType
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Classes.Eq Language.Haskell.LSP.TH.DataTypesJSON.CompletionRegistrationOptions
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Classes.Eq Language.Haskell.LSP.TH.DataTypesJSON.CompletionResponseResult
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Classes.Eq Language.Haskell.LSP.TH.DataTypesJSON.DefinitionResponseParams
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Classes.Eq Language.Haskell.LSP.TH.DataTypesJSON.DocumentFilter
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Classes.Eq Language.Haskell.LSP.TH.DataTypesJSON.InsertTextFormat
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Classes.Eq Language.Haskell.LSP.TH.DataTypesJSON.TextDocumentItem
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Classes.Eq Language.Haskell.LSP.TH.DataTypesJSON.TextDocumentPositionParams
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Classes.Ord Language.Haskell.LSP.TH.DataTypesJSON.CompletionItemKind
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Read.Read Language.Haskell.LSP.TH.DataTypesJSON.CompletionItem
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Read.Read Language.Haskell.LSP.TH.DataTypesJSON.CompletionItemKind
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Read.Read Language.Haskell.LSP.TH.DataTypesJSON.CompletionListType
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Read.Read Language.Haskell.LSP.TH.DataTypesJSON.CompletionRegistrationOptions
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Read.Read Language.Haskell.LSP.TH.DataTypesJSON.CompletionResponseResult
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Read.Read Language.Haskell.LSP.TH.DataTypesJSON.DefinitionResponseParams
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Read.Read Language.Haskell.LSP.TH.DataTypesJSON.DocumentFilter
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Read.Read Language.Haskell.LSP.TH.DataTypesJSON.InsertTextFormat
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Read.Read Language.Haskell.LSP.TH.DataTypesJSON.TextDocumentItem
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Read.Read Language.Haskell.LSP.TH.DataTypesJSON.TextDocumentPositionParams
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Show.Show Language.Haskell.LSP.TH.DataTypesJSON.CompletionItem
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Show.Show Language.Haskell.LSP.TH.DataTypesJSON.CompletionItemKind
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Show.Show Language.Haskell.LSP.TH.DataTypesJSON.CompletionListType
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Show.Show Language.Haskell.LSP.TH.DataTypesJSON.CompletionRegistrationOptions
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Show.Show Language.Haskell.LSP.TH.DataTypesJSON.CompletionResponseResult
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Show.Show Language.Haskell.LSP.TH.DataTypesJSON.DefinitionResponseParams
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Show.Show Language.Haskell.LSP.TH.DataTypesJSON.DocumentFilter
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Show.Show Language.Haskell.LSP.TH.DataTypesJSON.InsertTextFormat
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Show.Show Language.Haskell.LSP.TH.DataTypesJSON.TextDocumentItem
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Show.Show Language.Haskell.LSP.TH.DataTypesJSON.TextDocumentPositionParams
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasAdditionalTextEdits Language.Haskell.LSP.TH.DataTypesJSON.CompletionItem (GHC.Base.Maybe (Language.Haskell.LSP.TH.List.List Language.Haskell.LSP.TH.WorkspaceEdit.TextEdit))
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasArguments Language.Haskell.LSP.TH.Command.Command (GHC.Base.Maybe Data.Aeson.Types.Internal.Value)
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasCommand Language.Haskell.LSP.TH.DataTypesJSON.CompletionItem (GHC.Base.Maybe Language.Haskell.LSP.TH.Command.Command)
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasDetail Language.Haskell.LSP.TH.DataTypesJSON.CompletionItem (GHC.Base.Maybe Data.Text.Internal.Text)
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasDocumentSelector Language.Haskell.LSP.TH.DataTypesJSON.CodeLensRegistrationOptions (GHC.Base.Maybe Language.Haskell.LSP.TH.DataTypesJSON.DocumentSelector)
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasDocumentSelector Language.Haskell.LSP.TH.DataTypesJSON.CompletionRegistrationOptions (GHC.Base.Maybe Language.Haskell.LSP.TH.DataTypesJSON.DocumentSelector)
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasDocumentSelector Language.Haskell.LSP.TH.DataTypesJSON.SignatureHelpRegistrationOptions (GHC.Base.Maybe Language.Haskell.LSP.TH.DataTypesJSON.DocumentSelector)
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasDocumentSelector Language.Haskell.LSP.TH.DataTypesJSON.TextDocumentChangeRegistrationOptions (GHC.Base.Maybe Language.Haskell.LSP.TH.DataTypesJSON.DocumentSelector)
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasDocumentSelector Language.Haskell.LSP.TH.DataTypesJSON.TextDocumentRegistrationOptions (GHC.Base.Maybe Language.Haskell.LSP.TH.DataTypesJSON.DocumentSelector)
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasDocumentation Language.Haskell.LSP.TH.DataTypesJSON.CompletionItem (GHC.Base.Maybe Data.Text.Internal.Text)
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasFilterText Language.Haskell.LSP.TH.DataTypesJSON.CompletionItem (GHC.Base.Maybe Data.Text.Internal.Text)
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasInsertText Language.Haskell.LSP.TH.DataTypesJSON.CompletionItem (GHC.Base.Maybe Data.Text.Internal.Text)
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasInsertTextFormat Language.Haskell.LSP.TH.DataTypesJSON.CompletionItem (GHC.Base.Maybe Language.Haskell.LSP.TH.DataTypesJSON.InsertTextFormat)
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasIsIncomplete Language.Haskell.LSP.TH.DataTypesJSON.CompletionListType GHC.Types.Bool
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasItems Language.Haskell.LSP.TH.DataTypesJSON.CompletionListType (Language.Haskell.LSP.TH.List.List Language.Haskell.LSP.TH.DataTypesJSON.CompletionItem)
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasKind Language.Haskell.LSP.TH.DataTypesJSON.CompletionItem (GHC.Base.Maybe Language.Haskell.LSP.TH.DataTypesJSON.CompletionItemKind)
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasLabel Language.Haskell.LSP.TH.DataTypesJSON.CompletionItem Data.Text.Internal.Text
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasLanguage Language.Haskell.LSP.TH.DataTypesJSON.DocumentFilter Data.Text.Internal.Text
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasLanguageId Language.Haskell.LSP.TH.DataTypesJSON.TextDocumentItem Data.Text.Internal.Text
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasPattern Language.Haskell.LSP.TH.DataTypesJSON.DocumentFilter (GHC.Base.Maybe Data.Text.Internal.Text)
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasPosition Language.Haskell.LSP.TH.DataTypesJSON.TextDocumentPositionParams Language.Haskell.LSP.TH.Location.Position
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasResolveProvider Language.Haskell.LSP.TH.DataTypesJSON.CompletionRegistrationOptions (GHC.Base.Maybe GHC.Types.Bool)
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasScheme Language.Haskell.LSP.TH.DataTypesJSON.DocumentFilter Data.Text.Internal.Text
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasSortText Language.Haskell.LSP.TH.DataTypesJSON.CompletionItem (GHC.Base.Maybe Data.Text.Internal.Text)
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasText Language.Haskell.LSP.TH.DataTypesJSON.TextDocumentItem Data.Text.Internal.Text
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasTextDocument Language.Haskell.LSP.TH.CodeAction.CodeActionParams Language.Haskell.LSP.TH.TextDocumentIdentifier.TextDocumentIdentifier
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasTextDocument Language.Haskell.LSP.TH.DataTypesJSON.CodeLensParams Language.Haskell.LSP.TH.TextDocumentIdentifier.TextDocumentIdentifier
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasTextDocument Language.Haskell.LSP.TH.DataTypesJSON.DidCloseTextDocumentParams Language.Haskell.LSP.TH.TextDocumentIdentifier.TextDocumentIdentifier
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasTextDocument Language.Haskell.LSP.TH.DataTypesJSON.DidOpenTextDocumentParams Language.Haskell.LSP.TH.DataTypesJSON.TextDocumentItem
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasTextDocument Language.Haskell.LSP.TH.DataTypesJSON.DidSaveTextDocumentParams Language.Haskell.LSP.TH.TextDocumentIdentifier.TextDocumentIdentifier
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasTextDocument Language.Haskell.LSP.TH.DataTypesJSON.DocumentFormattingParams Language.Haskell.LSP.TH.TextDocumentIdentifier.TextDocumentIdentifier
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasTextDocument Language.Haskell.LSP.TH.DataTypesJSON.DocumentLinkParams Language.Haskell.LSP.TH.TextDocumentIdentifier.TextDocumentIdentifier
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasTextDocument Language.Haskell.LSP.TH.DataTypesJSON.DocumentOnTypeFormattingParams Language.Haskell.LSP.TH.TextDocumentIdentifier.TextDocumentIdentifier
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasTextDocument Language.Haskell.LSP.TH.DataTypesJSON.DocumentRangeFormattingParams Language.Haskell.LSP.TH.TextDocumentIdentifier.TextDocumentIdentifier
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasTextDocument Language.Haskell.LSP.TH.DataTypesJSON.ReferenceParams Language.Haskell.LSP.TH.TextDocumentIdentifier.TextDocumentIdentifier
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasTextDocument Language.Haskell.LSP.TH.DataTypesJSON.RenameParams Language.Haskell.LSP.TH.TextDocumentIdentifier.TextDocumentIdentifier
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasTextDocument Language.Haskell.LSP.TH.DataTypesJSON.TextDocumentPositionParams Language.Haskell.LSP.TH.TextDocumentIdentifier.TextDocumentIdentifier
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasTextDocument Language.Haskell.LSP.TH.DataTypesJSON.WillSaveTextDocumentParams Language.Haskell.LSP.TH.TextDocumentIdentifier.TextDocumentIdentifier
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasTextDocument Language.Haskell.LSP.TH.Symbol.DocumentSymbolParams Language.Haskell.LSP.TH.TextDocumentIdentifier.TextDocumentIdentifier
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasTextEdit Language.Haskell.LSP.TH.DataTypesJSON.CompletionItem (GHC.Base.Maybe Language.Haskell.LSP.TH.WorkspaceEdit.TextEdit)
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasTriggerCharacters Language.Haskell.LSP.TH.DataTypesJSON.CompletionRegistrationOptions (GHC.Base.Maybe (Language.Haskell.LSP.TH.List.List GHC.Base.String))
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasUri Language.Haskell.LSP.TH.DataTypesJSON.TextDocumentItem Language.Haskell.LSP.TH.Uri.Uri
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasUri Language.Haskell.LSP.TH.TextDocumentIdentifier.TextDocumentIdentifier Language.Haskell.LSP.TH.Uri.Uri
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasVersion Language.Haskell.LSP.TH.DataTypesJSON.TextDocumentItem GHC.Types.Int
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasXdata Language.Haskell.LSP.TH.DataTypesJSON.CompletionItem (GHC.Base.Maybe Data.Aeson.Types.Internal.Value)
+ Language.Haskell.LSP.TH.ClientCapabilities: CodeActionKindClientCapabilities :: List CodeActionKind -> CodeActionKindClientCapabilities
+ Language.Haskell.LSP.TH.ClientCapabilities: ColorProviderClientCapabilities :: Maybe Bool -> ColorProviderClientCapabilities
+ Language.Haskell.LSP.TH.ClientCapabilities: CompletionItemKindClientCapabilities :: Maybe (List CompletionItemKind) -> CompletionItemKindClientCapabilities
+ Language.Haskell.LSP.TH.ClientCapabilities: DocumentSymbolKindClientCapabilities :: Maybe (List SymbolKind) -> DocumentSymbolKindClientCapabilities
+ Language.Haskell.LSP.TH.ClientCapabilities: ImplementationClientCapabilities :: Maybe Bool -> ImplementationClientCapabilities
+ Language.Haskell.LSP.TH.ClientCapabilities: PublishDiagnosticsClientCapabilities :: Maybe Bool -> PublishDiagnosticsClientCapabilities
+ Language.Haskell.LSP.TH.ClientCapabilities: SignatureInformationClientCapabilities :: Maybe (List MarkupKind) -> SignatureInformationClientCapabilities
+ Language.Haskell.LSP.TH.ClientCapabilities: SymbolKindClientCapabilities :: Maybe (List SymbolKind) -> SymbolKindClientCapabilities
+ Language.Haskell.LSP.TH.ClientCapabilities: TypeDefinitionClientCapabilities :: Maybe Bool -> TypeDefinitionClientCapabilities
+ Language.Haskell.LSP.TH.ClientCapabilities: [$sel:_colorProvider:TextDocumentClientCapabilities] :: TextDocumentClientCapabilities -> Maybe ColorProviderClientCapabilities
+ Language.Haskell.LSP.TH.ClientCapabilities: [$sel:_commitCharactersSupport:CompletionItemClientCapabilities] :: CompletionItemClientCapabilities -> Maybe Bool
+ Language.Haskell.LSP.TH.ClientCapabilities: [$sel:_completionItemKind:CompletionClientCapabilities] :: CompletionClientCapabilities -> Maybe CompletionItemKindClientCapabilities
+ Language.Haskell.LSP.TH.ClientCapabilities: [$sel:_configuration:WorkspaceClientCapabilities] :: WorkspaceClientCapabilities -> Maybe Bool
+ Language.Haskell.LSP.TH.ClientCapabilities: [$sel:_contentFormat:HoverClientCapabilities] :: HoverClientCapabilities -> Maybe (List MarkupKind)
+ Language.Haskell.LSP.TH.ClientCapabilities: [$sel:_contextSupport:CompletionClientCapabilities] :: CompletionClientCapabilities -> Maybe Bool
+ Language.Haskell.LSP.TH.ClientCapabilities: [$sel:_deprecatedSupport:CompletionItemClientCapabilities] :: CompletionItemClientCapabilities -> Maybe Bool
+ Language.Haskell.LSP.TH.ClientCapabilities: [$sel:_documentationFormat:CompletionItemClientCapabilities] :: CompletionItemClientCapabilities -> Maybe (List MarkupKind)
+ Language.Haskell.LSP.TH.ClientCapabilities: [$sel:_dynamicRegistration:ColorProviderClientCapabilities] :: ColorProviderClientCapabilities -> Maybe Bool
+ Language.Haskell.LSP.TH.ClientCapabilities: [$sel:_dynamicRegistration:ImplementationClientCapabilities] :: ImplementationClientCapabilities -> Maybe Bool
+ Language.Haskell.LSP.TH.ClientCapabilities: [$sel:_dynamicRegistration:TypeDefinitionClientCapabilities] :: TypeDefinitionClientCapabilities -> Maybe Bool
+ Language.Haskell.LSP.TH.ClientCapabilities: [$sel:_implementation:TextDocumentClientCapabilities] :: TextDocumentClientCapabilities -> Maybe ImplementationClientCapabilities
+ Language.Haskell.LSP.TH.ClientCapabilities: [$sel:_preselectSupport:CompletionItemClientCapabilities] :: CompletionItemClientCapabilities -> Maybe Bool
+ Language.Haskell.LSP.TH.ClientCapabilities: [$sel:_publishDiagnostics:TextDocumentClientCapabilities] :: TextDocumentClientCapabilities -> Maybe PublishDiagnosticsClientCapabilities
+ Language.Haskell.LSP.TH.ClientCapabilities: [$sel:_relatedInformation:PublishDiagnosticsClientCapabilities] :: PublishDiagnosticsClientCapabilities -> Maybe Bool
+ Language.Haskell.LSP.TH.ClientCapabilities: [$sel:_signatureInformation:SignatureHelpClientCapabilities] :: SignatureHelpClientCapabilities -> Maybe SignatureInformationClientCapabilities
+ Language.Haskell.LSP.TH.ClientCapabilities: [$sel:_symbolKind:DocumentSymbolClientCapabilities] :: DocumentSymbolClientCapabilities -> Maybe DocumentSymbolKindClientCapabilities
+ Language.Haskell.LSP.TH.ClientCapabilities: [$sel:_symbolKind:SymbolClientCapabilities] :: SymbolClientCapabilities -> Maybe SymbolKindClientCapabilities
+ Language.Haskell.LSP.TH.ClientCapabilities: [$sel:_typeDefinition:TextDocumentClientCapabilities] :: TextDocumentClientCapabilities -> Maybe TypeDefinitionClientCapabilities
+ Language.Haskell.LSP.TH.ClientCapabilities: [$sel:_valueSet:CodeActionKindClientCapabilities] :: CodeActionKindClientCapabilities -> List CodeActionKind
+ Language.Haskell.LSP.TH.ClientCapabilities: [$sel:_valueSet:CompletionItemKindClientCapabilities] :: CompletionItemKindClientCapabilities -> Maybe (List CompletionItemKind)
+ Language.Haskell.LSP.TH.ClientCapabilities: [$sel:_valueSet:DocumentSymbolKindClientCapabilities] :: DocumentSymbolKindClientCapabilities -> Maybe (List SymbolKind)
+ Language.Haskell.LSP.TH.ClientCapabilities: [$sel:_valueSet:SymbolKindClientCapabilities] :: SymbolKindClientCapabilities -> Maybe (List SymbolKind)
+ Language.Haskell.LSP.TH.ClientCapabilities: [$sel:_workspaceFolders:WorkspaceClientCapabilities] :: WorkspaceClientCapabilities -> Maybe Bool
+ Language.Haskell.LSP.TH.ClientCapabilities: [$sel:documentationFormat:SignatureInformationClientCapabilities] :: SignatureInformationClientCapabilities -> Maybe (List MarkupKind)
+ Language.Haskell.LSP.TH.ClientCapabilities: data CodeActionKindClientCapabilities
+ Language.Haskell.LSP.TH.ClientCapabilities: data ColorProviderClientCapabilities
+ Language.Haskell.LSP.TH.ClientCapabilities: data CompletionItemKindClientCapabilities
+ Language.Haskell.LSP.TH.ClientCapabilities: data DocumentSymbolKindClientCapabilities
+ Language.Haskell.LSP.TH.ClientCapabilities: data ImplementationClientCapabilities
+ Language.Haskell.LSP.TH.ClientCapabilities: data PublishDiagnosticsClientCapabilities
+ Language.Haskell.LSP.TH.ClientCapabilities: data SignatureInformationClientCapabilities
+ Language.Haskell.LSP.TH.ClientCapabilities: data SymbolKindClientCapabilities
+ Language.Haskell.LSP.TH.ClientCapabilities: data TypeDefinitionClientCapabilities
+ Language.Haskell.LSP.TH.ClientCapabilities: instance Data.Aeson.Types.FromJSON.FromJSON Language.Haskell.LSP.TH.ClientCapabilities.CodeActionKindClientCapabilities
+ Language.Haskell.LSP.TH.ClientCapabilities: instance Data.Aeson.Types.FromJSON.FromJSON Language.Haskell.LSP.TH.ClientCapabilities.ColorProviderClientCapabilities
+ Language.Haskell.LSP.TH.ClientCapabilities: instance Data.Aeson.Types.FromJSON.FromJSON Language.Haskell.LSP.TH.ClientCapabilities.CompletionItemKindClientCapabilities
+ Language.Haskell.LSP.TH.ClientCapabilities: instance Data.Aeson.Types.FromJSON.FromJSON Language.Haskell.LSP.TH.ClientCapabilities.DocumentSymbolKindClientCapabilities
+ Language.Haskell.LSP.TH.ClientCapabilities: instance Data.Aeson.Types.FromJSON.FromJSON Language.Haskell.LSP.TH.ClientCapabilities.ImplementationClientCapabilities
+ Language.Haskell.LSP.TH.ClientCapabilities: instance Data.Aeson.Types.FromJSON.FromJSON Language.Haskell.LSP.TH.ClientCapabilities.PublishDiagnosticsClientCapabilities
+ Language.Haskell.LSP.TH.ClientCapabilities: instance Data.Aeson.Types.FromJSON.FromJSON Language.Haskell.LSP.TH.ClientCapabilities.SignatureInformationClientCapabilities
+ Language.Haskell.LSP.TH.ClientCapabilities: instance Data.Aeson.Types.FromJSON.FromJSON Language.Haskell.LSP.TH.ClientCapabilities.SymbolKindClientCapabilities
+ Language.Haskell.LSP.TH.ClientCapabilities: instance Data.Aeson.Types.FromJSON.FromJSON Language.Haskell.LSP.TH.ClientCapabilities.TypeDefinitionClientCapabilities
+ Language.Haskell.LSP.TH.ClientCapabilities: instance Data.Aeson.Types.ToJSON.ToJSON Language.Haskell.LSP.TH.ClientCapabilities.CodeActionKindClientCapabilities
+ Language.Haskell.LSP.TH.ClientCapabilities: instance Data.Aeson.Types.ToJSON.ToJSON Language.Haskell.LSP.TH.ClientCapabilities.ColorProviderClientCapabilities
+ Language.Haskell.LSP.TH.ClientCapabilities: instance Data.Aeson.Types.ToJSON.ToJSON Language.Haskell.LSP.TH.ClientCapabilities.CompletionItemKindClientCapabilities
+ Language.Haskell.LSP.TH.ClientCapabilities: instance Data.Aeson.Types.ToJSON.ToJSON Language.Haskell.LSP.TH.ClientCapabilities.DocumentSymbolKindClientCapabilities
+ Language.Haskell.LSP.TH.ClientCapabilities: instance Data.Aeson.Types.ToJSON.ToJSON Language.Haskell.LSP.TH.ClientCapabilities.ImplementationClientCapabilities
+ Language.Haskell.LSP.TH.ClientCapabilities: instance Data.Aeson.Types.ToJSON.ToJSON Language.Haskell.LSP.TH.ClientCapabilities.PublishDiagnosticsClientCapabilities
+ Language.Haskell.LSP.TH.ClientCapabilities: instance Data.Aeson.Types.ToJSON.ToJSON Language.Haskell.LSP.TH.ClientCapabilities.SignatureInformationClientCapabilities
+ Language.Haskell.LSP.TH.ClientCapabilities: instance Data.Aeson.Types.ToJSON.ToJSON Language.Haskell.LSP.TH.ClientCapabilities.SymbolKindClientCapabilities
+ Language.Haskell.LSP.TH.ClientCapabilities: instance Data.Aeson.Types.ToJSON.ToJSON Language.Haskell.LSP.TH.ClientCapabilities.TypeDefinitionClientCapabilities
+ Language.Haskell.LSP.TH.ClientCapabilities: instance Data.Default.Class.Default Language.Haskell.LSP.TH.ClientCapabilities.CodeActionKindClientCapabilities
+ Language.Haskell.LSP.TH.ClientCapabilities: instance Data.Default.Class.Default Language.Haskell.LSP.TH.ClientCapabilities.SymbolKindClientCapabilities
+ Language.Haskell.LSP.TH.ClientCapabilities: instance GHC.Classes.Eq Language.Haskell.LSP.TH.ClientCapabilities.CodeActionKindClientCapabilities
+ Language.Haskell.LSP.TH.ClientCapabilities: instance GHC.Classes.Eq Language.Haskell.LSP.TH.ClientCapabilities.ColorProviderClientCapabilities
+ Language.Haskell.LSP.TH.ClientCapabilities: instance GHC.Classes.Eq Language.Haskell.LSP.TH.ClientCapabilities.CompletionItemKindClientCapabilities
+ Language.Haskell.LSP.TH.ClientCapabilities: instance GHC.Classes.Eq Language.Haskell.LSP.TH.ClientCapabilities.DocumentSymbolKindClientCapabilities
+ Language.Haskell.LSP.TH.ClientCapabilities: instance GHC.Classes.Eq Language.Haskell.LSP.TH.ClientCapabilities.ImplementationClientCapabilities
+ Language.Haskell.LSP.TH.ClientCapabilities: instance GHC.Classes.Eq Language.Haskell.LSP.TH.ClientCapabilities.PublishDiagnosticsClientCapabilities
+ Language.Haskell.LSP.TH.ClientCapabilities: instance GHC.Classes.Eq Language.Haskell.LSP.TH.ClientCapabilities.SignatureInformationClientCapabilities
+ Language.Haskell.LSP.TH.ClientCapabilities: instance GHC.Classes.Eq Language.Haskell.LSP.TH.ClientCapabilities.SymbolKindClientCapabilities
+ Language.Haskell.LSP.TH.ClientCapabilities: instance GHC.Classes.Eq Language.Haskell.LSP.TH.ClientCapabilities.TypeDefinitionClientCapabilities
+ Language.Haskell.LSP.TH.ClientCapabilities: instance GHC.Read.Read Language.Haskell.LSP.TH.ClientCapabilities.CodeActionKindClientCapabilities
+ Language.Haskell.LSP.TH.ClientCapabilities: instance GHC.Read.Read Language.Haskell.LSP.TH.ClientCapabilities.ColorProviderClientCapabilities
+ Language.Haskell.LSP.TH.ClientCapabilities: instance GHC.Read.Read Language.Haskell.LSP.TH.ClientCapabilities.CompletionItemKindClientCapabilities
+ Language.Haskell.LSP.TH.ClientCapabilities: instance GHC.Read.Read Language.Haskell.LSP.TH.ClientCapabilities.DocumentSymbolKindClientCapabilities
+ Language.Haskell.LSP.TH.ClientCapabilities: instance GHC.Read.Read Language.Haskell.LSP.TH.ClientCapabilities.ImplementationClientCapabilities
+ Language.Haskell.LSP.TH.ClientCapabilities: instance GHC.Read.Read Language.Haskell.LSP.TH.ClientCapabilities.PublishDiagnosticsClientCapabilities
+ Language.Haskell.LSP.TH.ClientCapabilities: instance GHC.Read.Read Language.Haskell.LSP.TH.ClientCapabilities.SignatureInformationClientCapabilities
+ Language.Haskell.LSP.TH.ClientCapabilities: instance GHC.Read.Read Language.Haskell.LSP.TH.ClientCapabilities.SymbolKindClientCapabilities
+ Language.Haskell.LSP.TH.ClientCapabilities: instance GHC.Read.Read Language.Haskell.LSP.TH.ClientCapabilities.TypeDefinitionClientCapabilities
+ Language.Haskell.LSP.TH.ClientCapabilities: instance GHC.Show.Show Language.Haskell.LSP.TH.ClientCapabilities.CodeActionKindClientCapabilities
+ Language.Haskell.LSP.TH.ClientCapabilities: instance GHC.Show.Show Language.Haskell.LSP.TH.ClientCapabilities.ColorProviderClientCapabilities
+ Language.Haskell.LSP.TH.ClientCapabilities: instance GHC.Show.Show Language.Haskell.LSP.TH.ClientCapabilities.CompletionItemKindClientCapabilities
+ Language.Haskell.LSP.TH.ClientCapabilities: instance GHC.Show.Show Language.Haskell.LSP.TH.ClientCapabilities.DocumentSymbolKindClientCapabilities
+ Language.Haskell.LSP.TH.ClientCapabilities: instance GHC.Show.Show Language.Haskell.LSP.TH.ClientCapabilities.ImplementationClientCapabilities
+ Language.Haskell.LSP.TH.ClientCapabilities: instance GHC.Show.Show Language.Haskell.LSP.TH.ClientCapabilities.PublishDiagnosticsClientCapabilities
+ Language.Haskell.LSP.TH.ClientCapabilities: instance GHC.Show.Show Language.Haskell.LSP.TH.ClientCapabilities.SignatureInformationClientCapabilities
+ Language.Haskell.LSP.TH.ClientCapabilities: instance GHC.Show.Show Language.Haskell.LSP.TH.ClientCapabilities.SymbolKindClientCapabilities
+ Language.Haskell.LSP.TH.ClientCapabilities: instance GHC.Show.Show Language.Haskell.LSP.TH.ClientCapabilities.TypeDefinitionClientCapabilities
+ Language.Haskell.LSP.TH.DataTypesJSON: CiConstant :: CompletionItemKind
+ Language.Haskell.LSP.TH.DataTypesJSON: CiEnumMember :: CompletionItemKind
+ Language.Haskell.LSP.TH.DataTypesJSON: CiEvent :: CompletionItemKind
+ Language.Haskell.LSP.TH.DataTypesJSON: CiFolder :: CompletionItemKind
+ Language.Haskell.LSP.TH.DataTypesJSON: CiOperator :: CompletionItemKind
+ Language.Haskell.LSP.TH.DataTypesJSON: CiStruct :: CompletionItemKind
+ Language.Haskell.LSP.TH.DataTypesJSON: CiTypeParameter :: CompletionItemKind
+ Language.Haskell.LSP.TH.DataTypesJSON: MarkupContent :: MarkupKind -> Text -> MarkupContent
+ Language.Haskell.LSP.TH.DataTypesJSON: MkMarkdown :: MarkupKind
+ Language.Haskell.LSP.TH.DataTypesJSON: MkPlainText :: MarkupKind
+ Language.Haskell.LSP.TH.DataTypesJSON: SkEnumMember :: SymbolKind
+ Language.Haskell.LSP.TH.DataTypesJSON: SkEvent :: SymbolKind
+ Language.Haskell.LSP.TH.DataTypesJSON: SkKey :: SymbolKind
+ Language.Haskell.LSP.TH.DataTypesJSON: SkNull :: SymbolKind
+ Language.Haskell.LSP.TH.DataTypesJSON: SkObject :: SymbolKind
+ Language.Haskell.LSP.TH.DataTypesJSON: SkOperator :: SymbolKind
+ Language.Haskell.LSP.TH.DataTypesJSON: SkStruct :: SymbolKind
+ Language.Haskell.LSP.TH.DataTypesJSON: SkTypeParameter :: SymbolKind
+ Language.Haskell.LSP.TH.DataTypesJSON: TextDocumentImplementation :: ClientMethod
+ Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_kind:MarkupContent] :: MarkupContent -> MarkupKind
+ Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_value:MarkupContent] :: MarkupContent -> Text
+ Language.Haskell.LSP.TH.DataTypesJSON: [_language] :: DocumentFilter -> Text
+ Language.Haskell.LSP.TH.DataTypesJSON: [_pattern] :: DocumentFilter -> Maybe Text
+ Language.Haskell.LSP.TH.DataTypesJSON: [_scheme] :: DocumentFilter -> Text
+ Language.Haskell.LSP.TH.DataTypesJSON: data LocationResponseParams
+ Language.Haskell.LSP.TH.DataTypesJSON: data MarkupContent
+ Language.Haskell.LSP.TH.DataTypesJSON: data MarkupKind
+ Language.Haskell.LSP.TH.DataTypesJSON: instance Data.Aeson.Types.FromJSON.FromJSON Language.Haskell.LSP.TH.DataTypesJSON.LocationResponseParams
+ Language.Haskell.LSP.TH.DataTypesJSON: instance Data.Aeson.Types.ToJSON.ToJSON Language.Haskell.LSP.TH.DataTypesJSON.LocationResponseParams
+ Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Classes.Eq Language.Haskell.LSP.TH.DataTypesJSON.LocationResponseParams
+ Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Read.Read Language.Haskell.LSP.TH.DataTypesJSON.LocationResponseParams
+ Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Show.Show Language.Haskell.LSP.TH.DataTypesJSON.LocationResponseParams
+ Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasAdditionalTextEdits Language.Haskell.LSP.TH.Completion.CompletionItem (GHC.Base.Maybe (Language.Haskell.LSP.TH.List.List Language.Haskell.LSP.TH.WorkspaceEdit.TextEdit))
+ Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasArguments Language.Haskell.LSP.TH.Command.Command (GHC.Base.Maybe (Language.Haskell.LSP.TH.List.List Data.Aeson.Types.Internal.Value))
+ Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasCommand Language.Haskell.LSP.TH.Completion.CompletionItem (GHC.Base.Maybe Language.Haskell.LSP.TH.Command.Command)
+ Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasDetail Language.Haskell.LSP.TH.Completion.CompletionItem (GHC.Base.Maybe Data.Text.Internal.Text)
+ Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasDocumentSelector Language.Haskell.LSP.TH.Completion.CompletionRegistrationOptions (GHC.Base.Maybe Language.Haskell.LSP.TH.DocumentFilter.DocumentSelector)
+ Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasDocumentSelector Language.Haskell.LSP.TH.DataTypesJSON.CodeLensRegistrationOptions (GHC.Base.Maybe Language.Haskell.LSP.TH.DocumentFilter.DocumentSelector)
+ Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasDocumentSelector Language.Haskell.LSP.TH.DataTypesJSON.SignatureHelpRegistrationOptions (GHC.Base.Maybe Language.Haskell.LSP.TH.DocumentFilter.DocumentSelector)
+ Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasDocumentSelector Language.Haskell.LSP.TH.DataTypesJSON.TextDocumentChangeRegistrationOptions (GHC.Base.Maybe Language.Haskell.LSP.TH.DocumentFilter.DocumentSelector)
+ Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasDocumentSelector Language.Haskell.LSP.TH.DataTypesJSON.TextDocumentRegistrationOptions (GHC.Base.Maybe Language.Haskell.LSP.TH.DocumentFilter.DocumentSelector)
+ Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasDocumentation Language.Haskell.LSP.TH.Completion.CompletionItem (GHC.Base.Maybe Data.Text.Internal.Text)
+ Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasFilterText Language.Haskell.LSP.TH.Completion.CompletionItem (GHC.Base.Maybe Data.Text.Internal.Text)
+ Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasInsertText Language.Haskell.LSP.TH.Completion.CompletionItem (GHC.Base.Maybe Data.Text.Internal.Text)
+ Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasInsertTextFormat Language.Haskell.LSP.TH.Completion.CompletionItem (GHC.Base.Maybe Language.Haskell.LSP.TH.Completion.InsertTextFormat)
+ Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasIsIncomplete Language.Haskell.LSP.TH.Completion.CompletionListType GHC.Types.Bool
+ Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasItems Language.Haskell.LSP.TH.Completion.CompletionListType (Language.Haskell.LSP.TH.List.List Language.Haskell.LSP.TH.Completion.CompletionItem)
+ Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasKind Language.Haskell.LSP.TH.Completion.CompletionItem (GHC.Base.Maybe Language.Haskell.LSP.TH.Completion.CompletionItemKind)
+ Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasLabel Language.Haskell.LSP.TH.Completion.CompletionItem Data.Text.Internal.Text
+ Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasLanguage Language.Haskell.LSP.TH.DocumentFilter.DocumentFilter Data.Text.Internal.Text
+ Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasLanguageId Language.Haskell.LSP.TH.TextDocument.TextDocumentItem Data.Text.Internal.Text
+ Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasPattern Language.Haskell.LSP.TH.DocumentFilter.DocumentFilter (GHC.Base.Maybe Data.Text.Internal.Text)
+ Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasPosition Language.Haskell.LSP.TH.TextDocument.TextDocumentPositionParams Language.Haskell.LSP.TH.Location.Position
+ Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasResolveProvider Language.Haskell.LSP.TH.Completion.CompletionRegistrationOptions (GHC.Base.Maybe GHC.Types.Bool)
+ Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasScheme Language.Haskell.LSP.TH.DocumentFilter.DocumentFilter Data.Text.Internal.Text
+ Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasSortText Language.Haskell.LSP.TH.Completion.CompletionItem (GHC.Base.Maybe Data.Text.Internal.Text)
+ Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasText Language.Haskell.LSP.TH.TextDocument.TextDocumentItem Data.Text.Internal.Text
+ Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasTextDocument Language.Haskell.LSP.TH.CodeAction.CodeActionParams Language.Haskell.LSP.TH.TextDocument.TextDocumentIdentifier
+ Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasTextDocument Language.Haskell.LSP.TH.DataTypesJSON.CodeLensParams Language.Haskell.LSP.TH.TextDocument.TextDocumentIdentifier
+ Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasTextDocument Language.Haskell.LSP.TH.DataTypesJSON.DidCloseTextDocumentParams Language.Haskell.LSP.TH.TextDocument.TextDocumentIdentifier
+ Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasTextDocument Language.Haskell.LSP.TH.DataTypesJSON.DidOpenTextDocumentParams Language.Haskell.LSP.TH.TextDocument.TextDocumentItem
+ Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasTextDocument Language.Haskell.LSP.TH.DataTypesJSON.DidSaveTextDocumentParams Language.Haskell.LSP.TH.TextDocument.TextDocumentIdentifier
+ Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasTextDocument Language.Haskell.LSP.TH.DataTypesJSON.DocumentFormattingParams Language.Haskell.LSP.TH.TextDocument.TextDocumentIdentifier
+ Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasTextDocument Language.Haskell.LSP.TH.DataTypesJSON.DocumentLinkParams Language.Haskell.LSP.TH.TextDocument.TextDocumentIdentifier
+ Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasTextDocument Language.Haskell.LSP.TH.DataTypesJSON.DocumentOnTypeFormattingParams Language.Haskell.LSP.TH.TextDocument.TextDocumentIdentifier
+ Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasTextDocument Language.Haskell.LSP.TH.DataTypesJSON.DocumentRangeFormattingParams Language.Haskell.LSP.TH.TextDocument.TextDocumentIdentifier
+ Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasTextDocument Language.Haskell.LSP.TH.DataTypesJSON.ReferenceParams Language.Haskell.LSP.TH.TextDocument.TextDocumentIdentifier
+ Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasTextDocument Language.Haskell.LSP.TH.DataTypesJSON.RenameParams Language.Haskell.LSP.TH.TextDocument.TextDocumentIdentifier
+ Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasTextDocument Language.Haskell.LSP.TH.DataTypesJSON.WillSaveTextDocumentParams Language.Haskell.LSP.TH.TextDocument.TextDocumentIdentifier
+ Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasTextDocument Language.Haskell.LSP.TH.Symbol.DocumentSymbolParams Language.Haskell.LSP.TH.TextDocument.TextDocumentIdentifier
+ Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasTextDocument Language.Haskell.LSP.TH.TextDocument.TextDocumentPositionParams Language.Haskell.LSP.TH.TextDocument.TextDocumentIdentifier
+ Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasTextEdit Language.Haskell.LSP.TH.Completion.CompletionItem (GHC.Base.Maybe Language.Haskell.LSP.TH.WorkspaceEdit.TextEdit)
+ Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasTriggerCharacters Language.Haskell.LSP.TH.Completion.CompletionRegistrationOptions (GHC.Base.Maybe (Language.Haskell.LSP.TH.List.List GHC.Base.String))
+ Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasUri Language.Haskell.LSP.TH.TextDocument.TextDocumentIdentifier Language.Haskell.LSP.TH.Uri.Uri
+ Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasUri Language.Haskell.LSP.TH.TextDocument.TextDocumentItem Language.Haskell.LSP.TH.Uri.Uri
+ Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasVersion Language.Haskell.LSP.TH.TextDocument.TextDocumentItem GHC.Types.Int
+ Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasXdata Language.Haskell.LSP.TH.Completion.CompletionItem (GHC.Base.Maybe Data.Aeson.Types.Internal.Value)
+ Language.Haskell.LSP.TH.DataTypesJSON: type ImplementationRequest = RequestMessage ClientMethod TextDocumentPositionParams LocationResponseParams
+ Language.Haskell.LSP.TH.DataTypesJSON: type ImplementationResponse = ResponseMessage LocationResponseParams
- Language.Haskell.LSP.TH.ClientCapabilities: CodeActionLiteralSupport :: CodeActionKindValueSet -> CodeActionLiteralSupport
+ Language.Haskell.LSP.TH.ClientCapabilities: CodeActionLiteralSupport :: CodeActionKindClientCapabilities -> CodeActionLiteralSupport
- Language.Haskell.LSP.TH.ClientCapabilities: CompletionClientCapabilities :: Maybe Bool -> Maybe CompletionItemClientCapabilities -> CompletionClientCapabilities
+ Language.Haskell.LSP.TH.ClientCapabilities: CompletionClientCapabilities :: Maybe Bool -> Maybe CompletionItemClientCapabilities -> Maybe CompletionItemKindClientCapabilities -> Maybe Bool -> CompletionClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: CompletionItemClientCapabilities :: Maybe Bool -> CompletionItemClientCapabilities
+ Language.Haskell.LSP.TH.ClientCapabilities: CompletionItemClientCapabilities :: Maybe Bool -> Maybe Bool -> Maybe (List MarkupKind) -> Maybe Bool -> Maybe Bool -> CompletionItemClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: DocumentSymbolClientCapabilities :: Maybe Bool -> DocumentSymbolClientCapabilities
+ Language.Haskell.LSP.TH.ClientCapabilities: DocumentSymbolClientCapabilities :: Maybe Bool -> Maybe DocumentSymbolKindClientCapabilities -> DocumentSymbolClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: HoverClientCapabilities :: Maybe Bool -> HoverClientCapabilities
+ Language.Haskell.LSP.TH.ClientCapabilities: HoverClientCapabilities :: Maybe Bool -> Maybe (List MarkupKind) -> HoverClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: SignatureHelpClientCapabilities :: Maybe Bool -> SignatureHelpClientCapabilities
+ Language.Haskell.LSP.TH.ClientCapabilities: SignatureHelpClientCapabilities :: Maybe Bool -> Maybe SignatureInformationClientCapabilities -> SignatureHelpClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: SymbolClientCapabilities :: Maybe Bool -> SymbolClientCapabilities
+ Language.Haskell.LSP.TH.ClientCapabilities: SymbolClientCapabilities :: Maybe Bool -> Maybe SymbolKindClientCapabilities -> SymbolClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: TextDocumentClientCapabilities :: Maybe SynchronizationTextDocumentClientCapabilities -> Maybe CompletionClientCapabilities -> Maybe HoverClientCapabilities -> Maybe SignatureHelpClientCapabilities -> Maybe ReferencesClientCapabilities -> Maybe DocumentHighlightClientCapabilities -> Maybe DocumentSymbolClientCapabilities -> Maybe FormattingClientCapabilities -> Maybe RangeFormattingClientCapabilities -> Maybe OnTypeFormattingClientCapabilities -> Maybe DefinitionClientCapabilities -> Maybe CodeActionClientCapabilities -> Maybe CodeLensClientCapabilities -> Maybe DocumentLinkClientCapabilities -> Maybe RenameClientCapabilities -> TextDocumentClientCapabilities
+ Language.Haskell.LSP.TH.ClientCapabilities: TextDocumentClientCapabilities :: Maybe SynchronizationTextDocumentClientCapabilities -> Maybe CompletionClientCapabilities -> Maybe HoverClientCapabilities -> Maybe SignatureHelpClientCapabilities -> Maybe ReferencesClientCapabilities -> Maybe DocumentHighlightClientCapabilities -> Maybe DocumentSymbolClientCapabilities -> Maybe FormattingClientCapabilities -> Maybe RangeFormattingClientCapabilities -> Maybe OnTypeFormattingClientCapabilities -> Maybe DefinitionClientCapabilities -> Maybe TypeDefinitionClientCapabilities -> Maybe ImplementationClientCapabilities -> Maybe CodeActionClientCapabilities -> Maybe CodeLensClientCapabilities -> Maybe DocumentLinkClientCapabilities -> Maybe ColorProviderClientCapabilities -> Maybe RenameClientCapabilities -> Maybe PublishDiagnosticsClientCapabilities -> TextDocumentClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: WorkspaceClientCapabilities :: Maybe Bool -> Maybe WorkspaceEditClientCapabilities -> Maybe DidChangeConfigurationClientCapabilities -> Maybe DidChangeWatchedFilesClientCapabilities -> Maybe SymbolClientCapabilities -> Maybe ExecuteClientCapabilities -> WorkspaceClientCapabilities
+ Language.Haskell.LSP.TH.ClientCapabilities: WorkspaceClientCapabilities :: Maybe Bool -> Maybe WorkspaceEditClientCapabilities -> Maybe DidChangeConfigurationClientCapabilities -> Maybe DidChangeWatchedFilesClientCapabilities -> Maybe SymbolClientCapabilities -> Maybe ExecuteClientCapabilities -> Maybe Bool -> Maybe Bool -> WorkspaceClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: [$sel:_codeActionKind:CodeActionLiteralSupport] :: CodeActionLiteralSupport -> CodeActionKindValueSet
+ Language.Haskell.LSP.TH.ClientCapabilities: [$sel:_codeActionKind:CodeActionLiteralSupport] :: CodeActionLiteralSupport -> CodeActionKindClientCapabilities
- Language.Haskell.LSP.TH.DataTypesJSON: Command :: Text -> Text -> Maybe Value -> Command
+ Language.Haskell.LSP.TH.DataTypesJSON: Command :: Text -> Text -> Maybe (List Value) -> Command
- Language.Haskell.LSP.TH.DataTypesJSON: MultiLoc :: [Location] -> DefinitionResponseParams
+ Language.Haskell.LSP.TH.DataTypesJSON: MultiLoc :: [Location] -> LocationResponseParams
- Language.Haskell.LSP.TH.DataTypesJSON: SingleLoc :: Location -> DefinitionResponseParams
+ Language.Haskell.LSP.TH.DataTypesJSON: SingleLoc :: Location -> LocationResponseParams
- Language.Haskell.LSP.TH.DataTypesJSON: [_arguments] :: Command -> Maybe Value
+ Language.Haskell.LSP.TH.DataTypesJSON: [_arguments] :: Command -> Maybe (List Value)
- Language.Haskell.LSP.TH.DataTypesJSON: type DefinitionRequest = RequestMessage ClientMethod TextDocumentPositionParams DefinitionResponseParams
+ Language.Haskell.LSP.TH.DataTypesJSON: type DefinitionRequest = RequestMessage ClientMethod TextDocumentPositionParams LocationResponseParams
- Language.Haskell.LSP.TH.DataTypesJSON: type DefinitionResponse = ResponseMessage DefinitionResponseParams
+ Language.Haskell.LSP.TH.DataTypesJSON: type DefinitionResponse = ResponseMessage LocationResponseParams
Files
- ChangeLog.md +9/−0
- haskell-lsp-types.cabal +7/−4
- src/Language/Haskell/LSP/TH/ClientCapabilities.hs +370/−23
- src/Language/Haskell/LSP/TH/CodeAction.hs +1/−1
- src/Language/Haskell/LSP/TH/Command.hs +2/−1
- src/Language/Haskell/LSP/TH/Completion.hs +421/−0
- src/Language/Haskell/LSP/TH/DataTypesJSON.hs +47/−525
- src/Language/Haskell/LSP/TH/DocumentFilter.hs +55/−0
- src/Language/Haskell/LSP/TH/MarkupContent.hs +122/−0
- src/Language/Haskell/LSP/TH/Message.hs +3/−0
- src/Language/Haskell/LSP/TH/Symbol.hs +44/−19
- src/Language/Haskell/LSP/TH/TextDocument.hs +103/−0
- src/Language/Haskell/LSP/TH/TextDocumentIdentifier.hs +0/−30
- src/Language/Haskell/LSP/TH/Uri.hs +1/−1
ChangeLog.md view
@@ -1,5 +1,14 @@ # Revision history for haskell-lsp-types +## 0.5.0.0 -- 2018-08-03++* Update Command.arguments to match specification+* Update ClientCapabilities to v3.10+* Add MarkupContent+* Add new CompletionKinds+* Add new SymbolKinds+* Add preset version capabilities+ ## 0.4.0.0 -- 2018-07-10 * CodeAction support as per v3.8 of the specification, by @Bubba
haskell-lsp-types.cabal view
@@ -1,5 +1,5 @@ name: haskell-lsp-types-version: 0.4.0.0+version: 0.5.0.0 synopsis: Haskell library for the Microsoft Language Server Protocol, data types description: An implementation of the types to allow language implementors to@@ -22,14 +22,17 @@ , Language.Haskell.LSP.TH.DataTypesJSON , Language.Haskell.LSP.TH.MessageFuncs , Language.Haskell.LSP.TH.Utils- other-modules: Language.Haskell.LSP.TH.Command- , Language.Haskell.LSP.TH.CodeAction+ other-modules: Language.Haskell.LSP.TH.CodeAction+ , Language.Haskell.LSP.TH.Command+ , Language.Haskell.LSP.TH.Completion , Language.Haskell.LSP.TH.Diagnostic+ , Language.Haskell.LSP.TH.DocumentFilter , Language.Haskell.LSP.TH.List , Language.Haskell.LSP.TH.Location+ , Language.Haskell.LSP.TH.MarkupContent , Language.Haskell.LSP.TH.Message , Language.Haskell.LSP.TH.Symbol- , Language.Haskell.LSP.TH.TextDocumentIdentifier+ , Language.Haskell.LSP.TH.TextDocument , Language.Haskell.LSP.TH.Uri , Language.Haskell.LSP.TH.WorkspaceEdit -- other-extensions:
src/Language/Haskell/LSP/TH/ClientCapabilities.hs view
@@ -7,7 +7,10 @@ import qualified Data.Aeson as A import Language.Haskell.LSP.TH.Constants import Language.Haskell.LSP.TH.CodeAction+import Language.Haskell.LSP.TH.Completion import Language.Haskell.LSP.TH.List+import Language.Haskell.LSP.TH.MarkupContent+import Language.Haskell.LSP.TH.Symbol import Data.Default -- ---------------------------------------------------------------------@@ -15,9 +18,6 @@ New in 3.0 ---------- -WorkspaceClientCapabilities--define capabilities the editor / tool provides on the workspace: /** * Workspace specific client capabilities. */@@ -66,6 +66,23 @@ * Symbol request supports dynamic registration. */ dynamicRegistration?: boolean;++ /**+ * Specific capabilities for the `SymbolKind` in the `workspace/symbol` request.+ */+ symbolKind?: {+ /**+ * The symbol kind values the client supports. When this+ * property exists the client also guarantees that it will+ * handle values outside its set gracefully and falls back+ * to a default value when unknown.+ *+ * If this property is not present the client only supports+ * the symbol kinds from `File` to `Array` as defined in+ * the initial version of the protocol.+ */+ valueSet?: SymbolKind[];+ } }; /**@@ -77,6 +94,20 @@ */ dynamicRegistration?: boolean; };++ /**+ * The client has support for workspace folders.+ *+ * Since 3.6.0+ */+ workspaceFolders?: boolean;++ /**+ * The client supports `workspace/configuration` requests.+ *+ * Since 3.6.0+ */+ configuration?: boolean; } -} @@ -114,10 +145,48 @@ -- ------------------------------------- +data SymbolKindClientCapabilities =+ SymbolKindClientCapabilities+ { -- | The symbol kind values the client supports. When this+ -- property exists the client also guarantees that it will+ -- handle values outside its set gracefully and falls back+ -- to a default value when unknown.+ -- + -- If this property is not present the client only supports+ -- the symbol kinds from `File` to `Array` as defined in+ -- the initial version of the protocol. + _valueSet :: Maybe (List SymbolKind)+ } deriving (Show, Read, Eq)++$(deriveJSON lspOptions ''SymbolKindClientCapabilities)++instance Default SymbolKindClientCapabilities where+ def = SymbolKindClientCapabilities (Just $ List allKinds)+ where allKinds = [ SkFile+ , SkModule+ , SkNamespace+ , SkPackage+ , SkClass+ , SkMethod+ , SkProperty+ , SkField+ , SkConstructor+ , SkEnum+ , SkInterface+ , SkFunction+ , SkVariable+ , SkConstant+ , SkString+ , SkNumber+ , SkBoolean+ , SkArray+ ]+ data SymbolClientCapabilities = SymbolClientCapabilities { _dynamicRegistration :: Maybe Bool -- ^Symbol request supports dynamic -- registration.+ , _symbolKind :: Maybe SymbolKindClientCapabilities -- ^ Specific capabilities for the `SymbolKind`. } deriving (Show, Read, Eq) $(deriveJSON lspOptions ''SymbolClientCapabilities)@@ -154,21 +223,23 @@ -- | Capabilities specific to the `workspace/executeCommand` request. , _executeCommand :: Maybe ExecuteClientCapabilities++ -- | The client has support for workspace folders.+ , _workspaceFolders :: Maybe Bool++ -- | The client supports `workspace/configuration` requests.+ , _configuration :: Maybe Bool } deriving (Show, Read, Eq) $(deriveJSON lspOptions ''WorkspaceClientCapabilities) instance Default WorkspaceClientCapabilities where- def = WorkspaceClientCapabilities def def def def def def+ def = WorkspaceClientCapabilities def def def def def def def def -- --------------------------------------------------------------------- {- New in 3.0 ------------TextDocumentClientCapabilities- define capabilities the editor / tool provides on text documents.- /** * Text document specific client capabilities. */@@ -221,7 +292,48 @@ * that is typing in one will update others too. */ snippetSupport?: boolean;++ /**+ * Client supports commit characters on a completion item.+ */+ commitCharactersSupport?: boolean++ /**+ * Client supports the follow content formats for the documentation+ * property. The order describes the preferred format of the client.+ */+ documentationFormat?: MarkupKind[];++ /**+ * Client supports the deprecated property on a completion item.+ */+ deprecatedSupport?: boolean;++ /**+ * Client supports the preselect property on a completion item.+ */+ preselectSupport?: boolean; }++ completionItemKind?: {+ /**+ * The completion item kind values the client supports. When this+ * property exists the client also guarantees that it will+ * handle values outside its set gracefully and falls back+ * to a default value when unknown.+ *+ * If this property is not present the client only supports+ * the completion items kinds from `Text` to `Reference` as defined in+ * the initial version of the protocol.+ */+ valueSet?: CompletionItemKind[];+ },++ /**+ * The client supports to send additional context information for a+ * `textDocument/completion` request.+ */+ contextSupport?: boolean; }; /**@@ -232,6 +344,12 @@ * Whether hover supports dynamic registration. */ dynamicRegistration?: boolean;++ /**+ * Client supports the follow content formats for the content+ * property. The order describes the preferred format of the client.+ */+ contentFormat?: MarkupKind[]; }; /**@@ -242,6 +360,18 @@ * Whether signature help supports dynamic registration. */ dynamicRegistration?: boolean;++ /**+ * The client supports the following `SignatureInformation`+ * specific properties.+ */+ signatureInformation?: {+ /**+ * Client supports the follow content formats for the documentation+ * property. The order describes the preferred format of the client.+ */+ documentationFormat?: MarkupKind[];+ }; }; /**@@ -272,6 +402,23 @@ * Whether document symbol supports dynamic registration. */ dynamicRegistration?: boolean;++ /**+ * Specific capabilities for the `SymbolKind`.+ */+ symbolKind?: {+ /**+ * The symbol kind values the client supports. When this+ * property exists the client also guarantees that it will+ * handle values outside its set gracefully and falls back+ * to a default value when unknown.+ *+ * If this property is not present the client only supports+ * the symbol kinds from `File` to `Array` as defined in+ * the initial version of the protocol.+ */+ valueSet?: SymbolKind[];+ } }; /**@@ -315,6 +462,34 @@ }; /**+ * Capabilities specific to the `textDocument/typeDefinition`+ *+ * Since 3.6.0+ */+ typeDefinition?: {+ /**+ * Whether typeDefinition supports dynamic registration. If this is set to `true`+ * the client supports the new `(TextDocumentRegistrationOptions & StaticRegistrationOptions)`+ * return value for the corresponding server capability as well.+ */+ dynamicRegistration?: boolean;+ };++ /**+ * Capabilities specific to the `textDocument/implementation`.+ *+ * Since 3.6.0+ */+ implementation?: {+ /**+ * Whether implementation supports dynamic registration. If this is set to `true`+ * the client supports the new `(TextDocumentRegistrationOptions & StaticRegistrationOptions)`+ * return value for the corresponding server capability as well.+ */+ dynamicRegistration?: boolean;+ };++ /** * Capabilities specific to the `textDocument/codeAction` */ codeAction?: {@@ -322,6 +497,28 @@ * Whether code action supports dynamic registration. */ dynamicRegistration?: boolean;+ /**+ * The client support code action literals as a valid+ * response of the `textDocument/codeAction` request.+ *+ * Since 3.8.0+ */+ codeActionLiteralSupport?: {+ /**+ * The code action kind is support with the following value+ * set.+ */+ codeActionKind: {++ /**+ * The code action kind values the client supports. When this+ * property exists the client also guarantees that it will+ * handle values outside its set gracefully and falls back+ * to a default value when unknown.+ */+ valueSet: CodeActionKind[];+ };+ }; }; /**@@ -345,6 +542,21 @@ }; /**+ * Capabilities specific to the `textDocument/documentColor` and the+ * `textDocument/colorPresentation` request.+ *+ * Since 3.6.0+ */+ colorProvider?: {+ /**+ * Whether colorProvider supports dynamic registration. If this is set to `true`+ * the client supports the new `(ColorProviderOptions & TextDocumentRegistrationOptions & StaticRegistrationOptions)`+ * return value for the corresponding server capability as well.+ */+ dynamicRegistration?: boolean;+ }++ /** * Capabilities specific to the `textDocument/rename` */ rename?: {@@ -353,6 +565,16 @@ */ dynamicRegistration?: boolean; };++ /**+ * Capabilities specific to `textDocument/publishDiagnostics`.+ */+ publishDiagnostics?: {+ /**+ * Whether the clients accepts diagnostics with related information.+ */+ relatedInformation?: boolean;+ }; } -}@@ -386,23 +608,49 @@ data CompletionItemClientCapabilities = CompletionItemClientCapabilities- {- -- | Client supports snippets as insert text.+ { -- | Client supports snippets as insert text. -- -- A snippet can define tab stops and placeholders with `$1`, `$2` and -- `${3:foo}`. `$0` defines the final tab stop, it defaults to the end of -- the snippet. Placeholders with equal identifiers are linked, that is -- typing in one will update others too. _snippetSupport :: Maybe Bool++ -- | Client supports commit characters on a completion item.+ , _commitCharactersSupport :: Maybe Bool++ -- | Client supports the follow content formats for the documentation+ -- property. The order describes the preferred format of the client.+ , _documentationFormat :: Maybe (List MarkupKind)++ -- | Client supports the deprecated property on a completion item.+ , _deprecatedSupport :: Maybe Bool++ -- | Client supports the preselect property on a completion item.+ , _preselectSupport :: Maybe Bool } deriving (Show, Read, Eq) $(deriveJSON lspOptions ''CompletionItemClientCapabilities) +data CompletionItemKindClientCapabilities =+ CompletionItemKindClientCapabilities+ { -- | The completion item kind values the client supports. When this+ -- property exists the client also guarantees that it will+ -- handle values outside its set gracefully and falls back+ -- to a default value when unknown.+ _valueSet :: Maybe (List CompletionItemKind)+ }+ deriving (Show, Read, Eq)++$(deriveJSON lspOptions ''CompletionItemKindClientCapabilities)+ data CompletionClientCapabilities = CompletionClientCapabilities { _dynamicRegistration :: Maybe Bool -- ^Whether completion supports dynamic -- registration. , _completionItem :: Maybe CompletionItemClientCapabilities+ , _completionItemKind :: Maybe CompletionItemKindClientCapabilities+ , _contextSupport :: Maybe Bool } deriving (Show, Read, Eq) $(deriveJSON lspOptions ''CompletionClientCapabilities)@@ -412,15 +660,31 @@ data HoverClientCapabilities = HoverClientCapabilities { _dynamicRegistration :: Maybe Bool+ , _contentFormat :: Maybe (List MarkupKind) } deriving (Show, Read, Eq) $(deriveJSON lspOptions ''HoverClientCapabilities) -- ------------------------------------- +data SignatureInformationClientCapabilities = + SignatureInformationClientCapabilities+ { -- | Client supports the follow content formats for the documentation+ -- property. The order describes the preferred format of the client.+ documentationFormat :: Maybe (List MarkupKind)+ }+ deriving (Show, Read, Eq)++$(deriveJSON lspOptions ''SignatureInformationClientCapabilities)+ data SignatureHelpClientCapabilities = SignatureHelpClientCapabilities- { _dynamicRegistration :: Maybe Bool+ { -- | Whether signature help supports dynamic registration.+ _dynamicRegistration :: Maybe Bool+ + -- | The client supports the following `SignatureInformation`+ -- specific properties.+ , _signatureInformation :: Maybe SignatureInformationClientCapabilities } deriving (Show, Read, Eq) $(deriveJSON lspOptions ''SignatureHelpClientCapabilities)@@ -445,9 +709,28 @@ -- ------------------------------------- +data DocumentSymbolKindClientCapabilities =+ DocumentSymbolKindClientCapabilities+ { -- | The symbol kind values the client supports. When this+ -- property exists the client also guarantees that it will+ -- handle values outside its set gracefully and falls back+ -- to a default value when unknown.+ -- + -- If this property is not present the client only supports+ -- the symbol kinds from `File` to `Array` as defined in+ -- the initial version of the protocol.+ _valueSet :: Maybe (List SymbolKind)+ }+ deriving (Show, Read, Eq)++$(deriveJSON lspOptions ''DocumentSymbolKindClientCapabilities)+ data DocumentSymbolClientCapabilities = DocumentSymbolClientCapabilities- { _dynamicRegistration :: Maybe Bool+ { -- | Whether document symbol supports dynamic registration.+ _dynamicRegistration :: Maybe Bool+ -- | Specific capabilities for the `SymbolKind`.+ , _symbolKind :: Maybe DocumentSymbolKindClientCapabilities } deriving (Show, Read, Eq) $(deriveJSON lspOptions ''DocumentSymbolClientCapabilities)@@ -490,13 +773,43 @@ -- ------------------------------------- -data CodeActionKindValueSet =- CodeActionKindValueSet- { _valueSet :: List CodeActionKind+data TypeDefinitionClientCapabilities =+ TypeDefinitionClientCapabilities+ { -- | Whether typeDefinition supports dynamic registration. If this is set to `true`+ -- the client supports the new `(TextDocumentRegistrationOptions & StaticRegistrationOptions)`+ -- return value for the corresponding server capability as well.+ _dynamicRegistration :: Maybe Bool+ } deriving (Show, Read, Eq)++$(deriveJSON lspOptions ''TypeDefinitionClientCapabilities)++-- -------------------------------------+--+data ImplementationClientCapabilities =+ ImplementationClientCapabilities+ { -- | Whether implementation supports dynamic registration. If this is set to `true`+ -- the client supports the new `(TextDocumentRegistrationOptions & StaticRegistrationOptions)`+ -- return value for the corresponding server capability as well.+ _dynamicRegistration :: Maybe Bool+ } deriving (Show, Read, Eq)++$(deriveJSON lspOptions ''ImplementationClientCapabilities)++-- -------------------------------------++data CodeActionKindClientCapabilities =+ CodeActionKindClientCapabilities+ { -- | The code action kind values the client supports. When this+ -- property exists the client also guarantees that it will+ -- handle values outside its set gracefully and falls back+ -- to a default value when unknown.+ _valueSet :: List CodeActionKind } deriving (Show, Read, Eq) -instance Default CodeActionKindValueSet where- def = CodeActionKindValueSet (List allKinds)+$(deriveJSON lspOptions ''CodeActionKindClientCapabilities)++instance Default CodeActionKindClientCapabilities where+ def = CodeActionKindClientCapabilities (List allKinds) where allKinds = [ CodeActionQuickFix , CodeActionRefactor , CodeActionRefactorExtract@@ -506,11 +819,9 @@ , CodeActionSourceOrganizeImports ] -$(deriveJSON lspOptions ''CodeActionKindValueSet)- data CodeActionLiteralSupport = CodeActionLiteralSupport- { _codeActionKind :: CodeActionKindValueSet -- ^ The code action kind is support with the following value set.+ { _codeActionKind :: CodeActionKindClientCapabilities -- ^ The code action kind is support with the following value set. } deriving (Show, Read, Eq) $(deriveJSON lspOptions ''CodeActionLiteralSupport)@@ -519,8 +830,8 @@ CodeActionClientCapabilities { _dynamicRegistration :: Maybe Bool -- ^ Whether code action supports dynamic registration. , _codeActionLiteralSupport :: Maybe CodeActionLiteralSupport -- ^ The client support code action literals as a valid response- -- of the `textDocument/codeAction` request.- -- Since 3.8.0+ -- of the `textDocument/codeAction` request.+ -- Since 3.8.0 } deriving (Show, Read, Eq) $(deriveJSON lspOptions ''CodeActionClientCapabilities)@@ -545,6 +856,18 @@ -- ------------------------------------- +data ColorProviderClientCapabilities =+ ColorProviderClientCapabilities+ { -- | Whether colorProvider supports dynamic registration. If this is set to `true`+ -- the client supports the new `(ColorProviderOptions & TextDocumentRegistrationOptions & StaticRegistrationOptions)`+ -- return value for the corresponding server capability as well.+ _dynamicRegistration :: Maybe Bool+ } deriving (Show, Read, Eq)++$(deriveJSON lspOptions ''ColorProviderClientCapabilities)++-- -------------------------------------+ data RenameClientCapabilities = RenameClientCapabilities { _dynamicRegistration :: Maybe Bool@@ -554,6 +877,16 @@ -- ------------------------------------- +data PublishDiagnosticsClientCapabilities =+ PublishDiagnosticsClientCapabilities+ { -- | Whether the clients accepts diagnostics with related information.+ _relatedInformation :: Maybe Bool+ } deriving (Show, Read, Eq)++$(deriveJSON lspOptions ''PublishDiagnosticsClientCapabilities)++-- -------------------------------------+ data TextDocumentClientCapabilities = TextDocumentClientCapabilities { _synchronization :: Maybe SynchronizationTextDocumentClientCapabilities@@ -588,6 +921,12 @@ -- | Capabilities specific to the `textDocument/definition` , _definition :: Maybe DefinitionClientCapabilities + -- | Capabilities specific to the `textDocument/typeDefinition`+ , _typeDefinition :: Maybe TypeDefinitionClientCapabilities++ -- | Capabilities specific to the `textDocument/implementation`+ , _implementation :: Maybe ImplementationClientCapabilities+ -- | Capabilities specific to the `textDocument/codeAction` , _codeAction :: Maybe CodeActionClientCapabilities @@ -597,15 +936,23 @@ -- | Capabilities specific to the `textDocument/documentLink` , _documentLink :: Maybe DocumentLinkClientCapabilities + -- | Capabilities specific to the `textDocument/documentColor` and the+ -- `textDocument/colorPresentation` request+ , _colorProvider :: Maybe ColorProviderClientCapabilities+ -- | Capabilities specific to the `textDocument/rename` , _rename :: Maybe RenameClientCapabilities++ -- | Capabilities specific to `textDocument/publishDiagnostics`+ , _publishDiagnostics :: Maybe PublishDiagnosticsClientCapabilities } deriving (Show, Read, Eq) $(deriveJSON lspOptions ''TextDocumentClientCapabilities) instance Default TextDocumentClientCapabilities where- def = TextDocumentClientCapabilities def def def def def def def+ def = TextDocumentClientCapabilities def def def def def def def def def def def def def def def def+ def def def -- --------------------------------------------------------------------- {-
src/Language/Haskell/LSP/TH/CodeAction.hs view
@@ -14,7 +14,7 @@ import Language.Haskell.LSP.TH.List import Language.Haskell.LSP.TH.Location import Language.Haskell.LSP.TH.Message-import Language.Haskell.LSP.TH.TextDocumentIdentifier+import Language.Haskell.LSP.TH.TextDocument import Language.Haskell.LSP.TH.WorkspaceEdit
src/Language/Haskell/LSP/TH/Command.hs view
@@ -6,6 +6,7 @@ import Data.Aeson.TH import Data.Text import Language.Haskell.LSP.TH.Constants+import Language.Haskell.LSP.TH.List -- --------------------------------------------------------------------- {- Command@@ -38,7 +39,7 @@ Command { _title :: Text , _command :: Text- , _arguments :: Maybe Value+ , _arguments :: Maybe (List Value) } deriving (Show, Read, Eq) deriveJSON lspOptions ''Command
+ src/Language/Haskell/LSP/TH/Completion.hs view
@@ -0,0 +1,421 @@+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE TemplateHaskell #-}+module Language.Haskell.LSP.TH.Completion where++import qualified Data.Aeson as A+import Data.Aeson.TH+import Data.Text ( Text )+import Language.Haskell.LSP.TH.Command+import Language.Haskell.LSP.TH.Constants+import Language.Haskell.LSP.TH.DocumentFilter+import Language.Haskell.LSP.TH.List+import Language.Haskell.LSP.TH.Message+import Language.Haskell.LSP.TH.TextDocument+import Language.Haskell.LSP.TH.Utils+import Language.Haskell.LSP.TH.WorkspaceEdit++data CompletionItemKind = CiText+ | CiMethod+ | CiFunction+ | CiConstructor+ | CiField+ | CiVariable+ | CiClass+ | CiInterface+ | CiModule+ | CiProperty+ | CiUnit+ | CiValue+ | CiEnum+ | CiKeyword+ | CiSnippet+ | CiColor+ | CiFile+ | CiReference+ | CiFolder+ | CiEnumMember+ | CiConstant+ | CiStruct+ | CiEvent+ | CiOperator+ | CiTypeParameter+ deriving (Read,Show,Eq,Ord)++instance A.ToJSON CompletionItemKind where+ toJSON CiText = A.Number 1+ toJSON CiMethod = A.Number 2+ toJSON CiFunction = A.Number 3+ toJSON CiConstructor = A.Number 4+ toJSON CiField = A.Number 5+ toJSON CiVariable = A.Number 6+ toJSON CiClass = A.Number 7+ toJSON CiInterface = A.Number 8+ toJSON CiModule = A.Number 9+ toJSON CiProperty = A.Number 10+ toJSON CiUnit = A.Number 11+ toJSON CiValue = A.Number 12+ toJSON CiEnum = A.Number 13+ toJSON CiKeyword = A.Number 14+ toJSON CiSnippet = A.Number 15+ toJSON CiColor = A.Number 16+ toJSON CiFile = A.Number 17+ toJSON CiReference = A.Number 18+ toJSON CiFolder = A.Number 19+ toJSON CiEnumMember = A.Number 20+ toJSON CiConstant = A.Number 21+ toJSON CiStruct = A.Number 22+ toJSON CiEvent = A.Number 23+ toJSON CiOperator = A.Number 24+ toJSON CiTypeParameter = A.Number 25++instance A.FromJSON CompletionItemKind where+ parseJSON (A.Number 1) = pure CiText+ parseJSON (A.Number 2) = pure CiMethod+ parseJSON (A.Number 3) = pure CiFunction+ parseJSON (A.Number 4) = pure CiConstructor+ parseJSON (A.Number 5) = pure CiField+ parseJSON (A.Number 6) = pure CiVariable+ parseJSON (A.Number 7) = pure CiClass+ parseJSON (A.Number 8) = pure CiInterface+ parseJSON (A.Number 9) = pure CiModule+ parseJSON (A.Number 10) = pure CiProperty+ parseJSON (A.Number 11) = pure CiUnit+ parseJSON (A.Number 12) = pure CiValue+ parseJSON (A.Number 13) = pure CiEnum+ parseJSON (A.Number 14) = pure CiKeyword+ parseJSON (A.Number 15) = pure CiSnippet+ parseJSON (A.Number 16) = pure CiColor+ parseJSON (A.Number 17) = pure CiFile+ parseJSON (A.Number 18) = pure CiReference+ parseJSON (A.Number 19) = pure CiFolder+ parseJSON (A.Number 20) = pure CiEnumMember+ parseJSON (A.Number 21) = pure CiConstant+ parseJSON (A.Number 22) = pure CiStruct+ parseJSON (A.Number 23) = pure CiEvent+ parseJSON (A.Number 24) = pure CiOperator+ parseJSON (A.Number 25) = pure CiTypeParameter+ parseJSON _ = mempty+++-- ---------------------------------------------------------------------+{-+Completion Request++The Completion request is sent from the client to the server to compute+completion items at a given cursor position. Completion items are presented in+the IntelliSense user interface. If computing full completion items is+expensive, servers can additionally provide a handler for the completion item+resolve request ('completionItem/resolve'). This request is sent when a+completion item is selected in the user interface. A typically use case is for+example: the 'textDocument/completion' request doesn't fill in the documentation+property for returned completion items since it is expensive to compute. When+the item is selected in the user interface then a 'completionItem/resolve'+request is sent with the selected completion item as a param. The returned+completion item should have the documentation property filled in.++ Changed: In 2.0 the request uses TextDocumentPositionParams with a proper+ textDocument and position property. In 1.0 the uri of the referenced text+ document was inlined into the params object.++Request++ method: 'textDocument/completion'+ params: TextDocumentPositionParams+-}++-- -------------------------------------++{-++Response++ result: CompletionItem[] | CompletionList++/**+ * Represents a collection of [completion items](#CompletionItem) to be presented+ * in the editor.+ */+interface CompletionList {+ /**+ * This list it not complete. Further typing should result in recomputing+ * this list.+ */+ isIncomplete: boolean;+ /**+ * The completion items.+ */+ items: CompletionItem[];+}+++New in 3.0 : InsertTextFormat++/**+ * Defines whether the insert text in a completion item should be interpreted as+ * plain text or a snippet.+ */+namespace InsertTextFormat {+ /**+ * The primary text to be inserted is treated as a plain string.+ */+ export const PlainText = 1;++ /**+ * The primary text to be inserted is treated as a snippet.+ *+ * A snippet can define tab stops and placeholders with `$1`, `$2`+ * and `${3:foo}`. `$0` defines the final tab stop, it defaults to+ * the end of the snippet. Placeholders with equal identifiers are linked,+ * that is typing in one will update others too.+ *+ * See also: https://github.com/Microsoft/vscode/blob/master/src/vs/editor/contrib/snippet/common/snippet.md+ */+ export const Snippet = 2;+}++++interface CompletionItem {+ /**+ * The label of this completion item. By default+ * also the text that is inserted when selecting+ * this completion.+ */+ label: string;+ /**+ * The kind of this completion item. Based of the kind+ * an icon is chosen by the editor.+ */+ kind?: number;+ /**+ * A human-readable string with additional information+ * about this item, like type or symbol information.+ */+ detail?: string;+ /**+ * A human-readable string that represents a doc-comment.+ */+ documentation?: string;+ /**+ * A string that shoud be used when comparing this item+ * with other items. When `falsy` the label is used.+ */+ sortText?: string;+ /**+ * A string that should be used when filtering a set of+ * completion items. When `falsy` the label is used.+ */+ filterText?: string;+ /**+ * A string that should be inserted a document when selecting+ * this completion. When `falsy` the label is used.+ */+ insertText?: string;+ -- Following field is new in 3.0+ /**+ * The format of the insert text. The format applies to both the `insertText` property+ * and the `newText` property of a provided `textEdit`.+ */+ insertTextFormat?: InsertTextFormat;+ /**+ * An edit which is applied to a document when selecting this completion. When an edit is provided the value of+ * `insertText` is ignored.+ *+ * *Note:* The range of the edit must be a single line range and it must contain the position at which completion+ * has been requested.+ */++ textEdit?: TextEdit;++ -- Following field is new in 3.0+ /**+ * An optional array of additional text edits that are applied when+ * selecting this completion. Edits must not overlap with the main edit+ * nor with themselves.+ */+ additionalTextEdits?: TextEdit[];+ -- Following field is new in 3.0+ /**+ * An optional command that is executed *after* inserting this completion. *Note* that+ * additional modifications to the current document should be described with the+ * additionalTextEdits-property.+ */++ command?: Command;+ /**+ * An data entry field that is preserved on a completion item between+ * a completion and a completion resolve request.+ */++ data?: any+}++Where CompletionItemKind is defined as follows:++/**+ * The kind of a completion entry.+ */+enum CompletionItemKind {+ Text = 1,+ Method = 2,+ Function = 3,+ Constructor = 4,+ Field = 5,+ Variable = 6,+ Class = 7,+ Interface = 8,+ Module = 9,+ Property = 10,+ Unit = 11,+ Value = 12,+ Enum = 13,+ Keyword = 14,+ Snippet = 15,+ Color = 16,+ File = 17,+ Reference = 18+}++ error: code and message set in case an exception happens during the completion request.+-}++-- -------------------------------------++data InsertTextFormat+ = PlainText -- ^The primary text to be inserted is treated as a plain string.+ | Snippet+ -- ^ The primary text to be inserted is treated as a snippet.+ --+ -- A snippet can define tab stops and placeholders with `$1`, `$2`+ -- and `${3:foo}`. `$0` defines the final tab stop, it defaults to+ -- the end of the snippet. Placeholders with equal identifiers are linked,+ -- that is typing in one will update others too.+ --+ -- See also: https://github.com/Microsoft/vscode/blob/master/src/vs/editor/contrib/snippet/common/snippet.md+ deriving (Show, Read, Eq)++instance A.ToJSON InsertTextFormat where+ toJSON PlainText = A.Number 1+ toJSON Snippet = A.Number 2++instance A.FromJSON InsertTextFormat where+ parseJSON (A.Number 1) = pure PlainText+ parseJSON (A.Number 2) = pure Snippet+ parseJSON _ = mempty++data CompletionItem =+ CompletionItem+ { _label :: Text -- ^ The label of this completion item. By default also+ -- the text that is inserted when selecting this+ -- completion.+ , _kind :: Maybe CompletionItemKind+ , _detail :: Maybe Text -- ^ A human-readable string with additional+ -- information about this item, like type or+ -- symbol information.+ , _documentation :: Maybe Text -- ^ A human-readable string that represents+ -- a doc-comment.+ , _sortText :: Maybe Text -- ^ A string that should be used when filtering+ -- a set of completion items. When `falsy` the+ -- label is used.+ , _filterText :: Maybe Text -- ^ A string that should be used when+ -- filtering a set of completion items. When+ -- `falsy` the label is used.+ , _insertText :: Maybe Text -- ^ A string that should be inserted a+ -- document when selecting this completion.+ -- When `falsy` the label is used.+ , _insertTextFormat :: Maybe InsertTextFormat+ -- ^ The format of the insert text. The format applies to both the+ -- `insertText` property and the `newText` property of a provided+ -- `textEdit`.+ , _textEdit :: Maybe TextEdit+ -- ^ An edit which is applied to a document when selecting this+ -- completion. When an edit is provided the value of `insertText` is+ -- ignored.+ --+ -- *Note:* The range of the edit must be a single line range and it+ -- must contain the position at which completion has been requested.+ , _additionalTextEdits :: Maybe (List TextEdit)+ -- ^ An optional array of additional text edits that are applied when+ -- selecting this completion. Edits must not overlap with the main edit+ -- nor with themselves.+ , _command :: Maybe Command+ -- ^ An optional command that is executed *after* inserting this+ -- completion. *Note* that additional modifications to the current+ -- document should be described with the additionalTextEdits-property.+ , _xdata :: Maybe A.Value -- ^ An data entry field that is preserved on a+ -- completion item between a completion and a+ -- completion resolve request.+ } deriving (Read,Show,Eq)++deriveJSON lspOptions{ fieldLabelModifier = customModifier } ''CompletionItem++data CompletionListType =+ CompletionListType+ { _isIncomplete :: Bool+ , _items :: List CompletionItem+ } deriving (Read,Show,Eq)++deriveJSON lspOptions ''CompletionListType++data CompletionResponseResult+ = CompletionList CompletionListType+ | Completions (List CompletionItem)+ deriving (Read,Show,Eq)++deriveJSON defaultOptions { fieldLabelModifier = rdrop (length ("CompletionResponseResult"::String)), sumEncoding = UntaggedValue } ''CompletionResponseResult++type CompletionResponse = ResponseMessage CompletionResponseResult+type CompletionRequest = RequestMessage ClientMethod TextDocumentPositionParams CompletionResponseResult++-- -------------------------------------+{-+New in 3.0+-----------+Registration Options: CompletionRegistrationOptions options defined as follows:++export interface CompletionRegistrationOptions extends TextDocumentRegistrationOptions {+ /**+ * The characters that trigger completion automatically.+ */+ triggerCharacters?: string[];++ /**+ * The server provides support to resolve additional+ * information for a completion item.+ */+ resolveProvider?: boolean;+}+-}++data CompletionRegistrationOptions =+ CompletionRegistrationOptions+ { _documentSelector :: Maybe DocumentSelector+ , _triggerCharacters :: Maybe (List String)+ , _resolveProvider :: Maybe Bool+ } deriving (Show, Read, Eq)++deriveJSON lspOptions ''CompletionRegistrationOptions++-- ---------------------------------------------------------------------+{-+Completion Item Resolve Request++https://github.com/Microsoft/language-server-protocol/blob/master/protocol.md#completion-item-resolve-request++The request is sent from the client to the server to resolve additional+information for a given completion item.++Request++ method: 'completionItem/resolve'+ params: CompletionItem++Response++ result: CompletionItem+ error: code and message set in case an exception happens during the completion resolve request.+-}++type CompletionItemResolveRequest = RequestMessage ClientMethod CompletionItem CompletionItem+type CompletionItemResolveResponse = ResponseMessage CompletionItem
src/Language/Haskell/LSP/TH/DataTypesJSON.hs view
@@ -14,12 +14,15 @@ ( module Language.Haskell.LSP.TH.DataTypesJSON , module Language.Haskell.LSP.TH.CodeAction , module Language.Haskell.LSP.TH.Command+ , module Language.Haskell.LSP.TH.Completion , module Language.Haskell.LSP.TH.Diagnostic+ , module Language.Haskell.LSP.TH.DocumentFilter , module Language.Haskell.LSP.TH.List , module Language.Haskell.LSP.TH.Location+ , module Language.Haskell.LSP.TH.MarkupContent , module Language.Haskell.LSP.TH.Message , module Language.Haskell.LSP.TH.Symbol- , module Language.Haskell.LSP.TH.TextDocumentIdentifier+ , module Language.Haskell.LSP.TH.TextDocument , module Language.Haskell.LSP.TH.Uri , module Language.Haskell.LSP.TH.WorkspaceEdit ) where@@ -35,142 +38,20 @@ import Language.Haskell.LSP.TH.ClientCapabilities import Language.Haskell.LSP.TH.CodeAction import Language.Haskell.LSP.TH.Command+import Language.Haskell.LSP.TH.Completion import Language.Haskell.LSP.TH.Constants import Language.Haskell.LSP.TH.Diagnostic+import Language.Haskell.LSP.TH.DocumentFilter import Language.Haskell.LSP.TH.List import Language.Haskell.LSP.TH.Location+import Language.Haskell.LSP.TH.MarkupContent import Language.Haskell.LSP.TH.Message import Language.Haskell.LSP.TH.Symbol-import Language.Haskell.LSP.TH.TextDocumentIdentifier+import Language.Haskell.LSP.TH.TextDocument import Language.Haskell.LSP.TH.Utils import Language.Haskell.LSP.TH.Uri import Language.Haskell.LSP.TH.WorkspaceEdit --- ------------------------------------------------------------------------{--TextDocumentItem--https://github.com/Microsoft/language-server-protocol/blob/master/protocol.md#textdocumentitem-- New: An item to transfer a text document from the client to the server.--interface TextDocumentItem {- /**- * The text document's URI.- */- uri: string;-- /**- * The text document's language identifier.- */- languageId: string;-- /**- * The version number of this document (it will strictly increase after each- * change, including undo/redo).- */- version: number;-- /**- * The content of the opened text document.- */- text: string;-}--}--data TextDocumentItem =- TextDocumentItem {- _uri :: Uri- , _languageId :: Text- , _version :: Int- , _text :: Text- } deriving (Show, Read, Eq)--deriveJSON lspOptions ''TextDocumentItem-makeFieldsNoPrefix ''TextDocumentItem---- ----------------------------------------------------------------------{--TextDocumentPositionParams--https://github.com/Microsoft/language-server-protocol/blob/master/protocol.md#textdocumentpositionparams-- Changed: Was TextDocumentPosition in 1.0 with inlined parameters---interface TextDocumentPositionParams {- /**- * The text document.- */- textDocument: TextDocumentIdentifier;-- /**- * The position inside the text document.- */- position: Position;-}---}-data TextDocumentPositionParams =- TextDocumentPositionParams- { _textDocument :: TextDocumentIdentifier- , _position :: Position- } deriving (Show, Read, Eq)--deriveJSON lspOptions ''TextDocumentPositionParams-makeFieldsNoPrefix ''TextDocumentPositionParams---- ----------------------------------------------------------------------{--New in 3.0-------------DocumentFilter-https://github.com/Microsoft/language-server-protocol/blob/master/protocol.md#new-documentfilter--A document filter denotes a document through properties like language, schema or-pattern. Examples are a filter that applies to TypeScript files on disk or a-filter the applies to JSON files with name package.json:-- { language: 'typescript', scheme: 'file' }- { language: 'json', pattern: '**/package.json' }--export interface DocumentFilter {- /**- * A language id, like `typescript`.- */- language?: string;-- /**- * A Uri [scheme](#Uri.scheme), like `file` or `untitled`.- */- scheme?: string;-- /**- * A glob pattern, like `*.{ts,js}`.- */- pattern?: string;-}--}-data DocumentFilter =- DocumentFilter- { _language :: Text- , _scheme :: Text- , _pattern :: Maybe Text- } deriving (Show, Read, Eq)--deriveJSON lspOptions ''DocumentFilter-makeFieldsNoPrefix ''DocumentFilter--{--A document selector is the combination of one or many document filters.--export type DocumentSelector = DocumentFilter[];--}-type DocumentSelector = List DocumentFilter- -- ===================================================================== -- ACTUAL PROTOCOL ----------------------------------------------------- -- =====================================================================@@ -1652,398 +1533,6 @@ -- --------------------------------------------------------------------- {--Completion Request--The Completion request is sent from the client to the server to compute-completion items at a given cursor position. Completion items are presented in-the IntelliSense user interface. If computing full completion items is-expensive, servers can additionally provide a handler for the completion item-resolve request ('completionItem/resolve'). This request is sent when a-completion item is selected in the user interface. A typically use case is for-example: the 'textDocument/completion' request doesn't fill in the documentation-property for returned completion items since it is expensive to compute. When-the item is selected in the user interface then a 'completionItem/resolve'-request is sent with the selected completion item as a param. The returned-completion item should have the documentation property filled in.-- Changed: In 2.0 the request uses TextDocumentPositionParams with a proper- textDocument and position property. In 1.0 the uri of the referenced text- document was inlined into the params object.--Request-- method: 'textDocument/completion'- params: TextDocumentPositionParams--}---- ---------------------------------------{---Response-- result: CompletionItem[] | CompletionList--/**- * Represents a collection of [completion items](#CompletionItem) to be presented- * in the editor.- */-interface CompletionList {- /**- * This list it not complete. Further typing should result in recomputing- * this list.- */- isIncomplete: boolean;- /**- * The completion items.- */- items: CompletionItem[];-}---New in 3.0 : InsertTextFormat--/**- * Defines whether the insert text in a completion item should be interpreted as- * plain text or a snippet.- */-namespace InsertTextFormat {- /**- * The primary text to be inserted is treated as a plain string.- */- export const PlainText = 1;-- /**- * The primary text to be inserted is treated as a snippet.- *- * A snippet can define tab stops and placeholders with `$1`, `$2`- * and `${3:foo}`. `$0` defines the final tab stop, it defaults to- * the end of the snippet. Placeholders with equal identifiers are linked,- * that is typing in one will update others too.- *- * See also: https://github.com/Microsoft/vscode/blob/master/src/vs/editor/contrib/snippet/common/snippet.md- */- export const Snippet = 2;-}----interface CompletionItem {- /**- * The label of this completion item. By default- * also the text that is inserted when selecting- * this completion.- */- label: string;- /**- * The kind of this completion item. Based of the kind- * an icon is chosen by the editor.- */- kind?: number;- /**- * A human-readable string with additional information- * about this item, like type or symbol information.- */- detail?: string;- /**- * A human-readable string that represents a doc-comment.- */- documentation?: string;- /**- * A string that shoud be used when comparing this item- * with other items. When `falsy` the label is used.- */- sortText?: string;- /**- * A string that should be used when filtering a set of- * completion items. When `falsy` the label is used.- */- filterText?: string;- /**- * A string that should be inserted a document when selecting- * this completion. When `falsy` the label is used.- */- insertText?: string;- -- Following field is new in 3.0- /**- * The format of the insert text. The format applies to both the `insertText` property- * and the `newText` property of a provided `textEdit`.- */- insertTextFormat?: InsertTextFormat;- /**- * An edit which is applied to a document when selecting this completion. When an edit is provided the value of- * `insertText` is ignored.- *- * *Note:* The range of the edit must be a single line range and it must contain the position at which completion- * has been requested.- */-- textEdit?: TextEdit;-- -- Following field is new in 3.0- /**- * An optional array of additional text edits that are applied when- * selecting this completion. Edits must not overlap with the main edit- * nor with themselves.- */- additionalTextEdits?: TextEdit[];- -- Following field is new in 3.0- /**- * An optional command that is executed *after* inserting this completion. *Note* that- * additional modifications to the current document should be described with the- * additionalTextEdits-property.- */-- command?: Command;- /**- * An data entry field that is preserved on a completion item between- * a completion and a completion resolve request.- */-- data?: any-}--Where CompletionItemKind is defined as follows:--/**- * The kind of a completion entry.- */-enum CompletionItemKind {- Text = 1,- Method = 2,- Function = 3,- Constructor = 4,- Field = 5,- Variable = 6,- Class = 7,- Interface = 8,- Module = 9,- Property = 10,- Unit = 11,- Value = 12,- Enum = 13,- Keyword = 14,- Snippet = 15,- Color = 16,- File = 17,- Reference = 18-}-- error: code and message set in case an exception happens during the completion request.--}---- ---------------------------------------data InsertTextFormat- = PlainText -- ^The primary text to be inserted is treated as a plain string.- | Snippet- -- ^ The primary text to be inserted is treated as a snippet.- --- -- A snippet can define tab stops and placeholders with `$1`, `$2`- -- and `${3:foo}`. `$0` defines the final tab stop, it defaults to- -- the end of the snippet. Placeholders with equal identifiers are linked,- -- that is typing in one will update others too.- --- -- See also: https://github.com/Microsoft/vscode/blob/master/src/vs/editor/contrib/snippet/common/snippet.md- deriving (Show, Read, Eq)--instance A.ToJSON InsertTextFormat where- toJSON PlainText = A.Number 1- toJSON Snippet = A.Number 2--instance A.FromJSON InsertTextFormat where- parseJSON (A.Number 1) = pure PlainText- parseJSON (A.Number 2) = pure Snippet- parseJSON _ = mempty---- ---------------------------------------data CompletionItemKind = CiText- | CiMethod- | CiFunction- | CiConstructor- | CiField- | CiVariable- | CiClass- | CiInterface- | CiModule- | CiProperty- | CiUnit- | CiValue- | CiEnum- | CiKeyword- | CiSnippet- | CiColor- | CiFile- | CiReference- deriving (Read,Show,Eq,Ord)--instance A.ToJSON CompletionItemKind where- toJSON CiText = A.Number 1- toJSON CiMethod = A.Number 2- toJSON CiFunction = A.Number 3- toJSON CiConstructor = A.Number 4- toJSON CiField = A.Number 5- toJSON CiVariable = A.Number 6- toJSON CiClass = A.Number 7- toJSON CiInterface = A.Number 8- toJSON CiModule = A.Number 9- toJSON CiProperty = A.Number 10- toJSON CiUnit = A.Number 11- toJSON CiValue = A.Number 12- toJSON CiEnum = A.Number 13- toJSON CiKeyword = A.Number 14- toJSON CiSnippet = A.Number 15- toJSON CiColor = A.Number 16- toJSON CiFile = A.Number 17- toJSON CiReference = A.Number 18--instance A.FromJSON CompletionItemKind where- parseJSON (A.Number 1) = pure CiText- parseJSON (A.Number 2) = pure CiMethod- parseJSON (A.Number 3) = pure CiFunction- parseJSON (A.Number 4) = pure CiConstructor- parseJSON (A.Number 5) = pure CiField- parseJSON (A.Number 6) = pure CiVariable- parseJSON (A.Number 7) = pure CiClass- parseJSON (A.Number 8) = pure CiInterface- parseJSON (A.Number 9) = pure CiModule- parseJSON (A.Number 10) = pure CiProperty- parseJSON (A.Number 11) = pure CiUnit- parseJSON (A.Number 12) = pure CiValue- parseJSON (A.Number 13) = pure CiEnum- parseJSON (A.Number 14) = pure CiKeyword- parseJSON (A.Number 15) = pure CiSnippet- parseJSON (A.Number 16) = pure CiColor- parseJSON (A.Number 17) = pure CiFile- parseJSON (A.Number 18) = pure CiReference- parseJSON _ = mempty----- ---------------------------------------data CompletionItem =- CompletionItem- { _label :: Text -- ^ The label of this completion item. By default also- -- the text that is inserted when selecting this- -- completion.- , _kind :: Maybe CompletionItemKind- , _detail :: Maybe Text -- ^ A human-readable string with additional- -- information about this item, like type or- -- symbol information.- , _documentation :: Maybe Text -- ^ A human-readable string that represents- -- a doc-comment.- , _sortText :: Maybe Text -- ^ A string that should be used when filtering- -- a set of completion items. When `falsy` the- -- label is used.- , _filterText :: Maybe Text -- ^ A string that should be used when- -- filtering a set of completion items. When- -- `falsy` the label is used.- , _insertText :: Maybe Text -- ^ A string that should be inserted a- -- document when selecting this completion.- -- When `falsy` the label is used.- , _insertTextFormat :: Maybe InsertTextFormat- -- ^ The format of the insert text. The format applies to both the- -- `insertText` property and the `newText` property of a provided- -- `textEdit`.- , _textEdit :: Maybe TextEdit- -- ^ An edit which is applied to a document when selecting this- -- completion. When an edit is provided the value of `insertText` is- -- ignored.- --- -- *Note:* The range of the edit must be a single line range and it- -- must contain the position at which completion has been requested.- , _additionalTextEdits :: Maybe (List TextEdit)- -- ^ An optional array of additional text edits that are applied when- -- selecting this completion. Edits must not overlap with the main edit- -- nor with themselves.- , _command :: Maybe Command- -- ^ An optional command that is executed *after* inserting this- -- completion. *Note* that additional modifications to the current- -- document should be described with the additionalTextEdits-property.- , _xdata :: Maybe A.Value -- ^ An data entry field that is preserved on a- -- completion item between a completion and a- -- completion resolve request.- } deriving (Read,Show,Eq)--deriveJSON lspOptions{ fieldLabelModifier = customModifier } ''CompletionItem-makeFieldsNoPrefix ''CompletionItem--data CompletionListType =- CompletionListType- { _isIncomplete :: Bool- , _items :: List CompletionItem- } deriving (Read,Show,Eq)--deriveJSON lspOptions ''CompletionListType-makeFieldsNoPrefix ''CompletionListType---data CompletionResponseResult- = CompletionList CompletionListType- | Completions (List CompletionItem)- deriving (Read,Show,Eq)--deriveJSON defaultOptions { fieldLabelModifier = rdrop (length ("CompletionResponseResult"::String)), sumEncoding = UntaggedValue } ''CompletionResponseResult--type CompletionResponse = ResponseMessage CompletionResponseResult-type CompletionRequest = RequestMessage ClientMethod TextDocumentPositionParams CompletionResponseResult---- --------------------------------------{--New in 3.0-------------Registration Options: CompletionRegistrationOptions options defined as follows:--export interface CompletionRegistrationOptions extends TextDocumentRegistrationOptions {- /**- * The characters that trigger completion automatically.- */- triggerCharacters?: string[];-- /**- * The server provides support to resolve additional- * information for a completion item.- */- resolveProvider?: boolean;-}--}--data CompletionRegistrationOptions =- CompletionRegistrationOptions- { _documentSelector :: Maybe DocumentSelector- , _triggerCharacters :: Maybe (List String)- , _resolveProvider :: Maybe Bool- } deriving (Show, Read, Eq)--deriveJSON lspOptions ''CompletionRegistrationOptions-makeFieldsNoPrefix ''CompletionRegistrationOptions---- ----------------------------------------------------------------------{--Completion Item Resolve Request--https://github.com/Microsoft/language-server-protocol/blob/master/protocol.md#completion-item-resolve-request--The request is sent from the client to the server to resolve additional-information for a given completion item.--Request-- method: 'completionItem/resolve'- params: CompletionItem--Response-- result: CompletionItem- error: code and message set in case an exception happens during the completion resolve request.--}--type CompletionItemResolveRequest = RequestMessage ClientMethod CompletionItem CompletionItem-type CompletionItemResolveResponse = ResponseMessage CompletionItem---- ----------------------------------------------------------------------{- Hover Request The hover request is sent from the client to the server to request hover@@ -2311,23 +1800,46 @@ -- {"jsonrpc":"2.0","id":1,"method":"textDocument/definition","params":{"textDocument":{"uri":"file:///tmp/Foo.hs"},"position":{"line":1,"character":8}}} -data DefinitionResponseParams = SingleLoc Location | MultiLoc [Location]+data LocationResponseParams = SingleLoc Location | MultiLoc [Location] deriving (Eq,Read,Show) -instance A.ToJSON DefinitionResponseParams where+instance A.ToJSON LocationResponseParams where toJSON (SingleLoc x) = toJSON x toJSON (MultiLoc xs) = toJSON xs -instance A.FromJSON DefinitionResponseParams where+instance A.FromJSON LocationResponseParams where parseJSON xs@(A.Array _) = MultiLoc <$> parseJSON xs parseJSON x = SingleLoc <$> parseJSON x -type DefinitionRequest = RequestMessage ClientMethod TextDocumentPositionParams DefinitionResponseParams-type DefinitionResponse = ResponseMessage DefinitionResponseParams+type DefinitionRequest = RequestMessage ClientMethod TextDocumentPositionParams LocationResponseParams+type DefinitionResponse = ResponseMessage LocationResponseParams -- --------------------------------------------------------------------- {-+Goto Implementation Request (:leftwards_arrow_with_hook:)+Since version 3.6.0++The goto implementation request is sent from the client to the server to resolve the implementation location of a symbol at a given text document position.++Request:++method: ‘textDocument/implementation’+params: TextDocumentPositionParams+Response:++result: Location | Location[] | null+error: code and message set in case an exception happens during the definition request.+Registration Options: TextDocumentRegistrationOptions+-}+++type ImplementationRequest = RequestMessage ClientMethod TextDocumentPositionParams LocationResponseParams+type ImplementationResponse = ResponseMessage LocationResponseParams++-- ---------------------------------------------------------------------++{- Find References Request https://github.com/Microsoft/language-server-protocol/blob/master/protocol.md#find-references-request@@ -3177,11 +2689,19 @@ makeFieldsNoPrefix ''Range makeFieldsNoPrefix ''Location +-- Completion+makeFieldsNoPrefix ''CompletionItem+makeFieldsNoPrefix ''CompletionListType+makeFieldsNoPrefix ''CompletionRegistrationOptions+ -- CodeActions makeFieldsNoPrefix ''CodeActionContext makeFieldsNoPrefix ''CodeActionParams makeFieldsNoPrefix ''CodeAction +-- DocumentFilter+makeFieldsNoPrefix ''DocumentFilter+ -- WorkspaceEdit makeFieldsNoPrefix ''TextEdit makeFieldsNoPrefix ''VersionedTextDocumentIdentifier@@ -3195,8 +2715,10 @@ makeFieldsNoPrefix ''NotificationMessage makeFieldsNoPrefix ''CancelParams --- TextDocumentIdentifier+-- TextDocument+makeFieldsNoPrefix ''TextDocumentItem makeFieldsNoPrefix ''TextDocumentIdentifier+makeFieldsNoPrefix ''TextDocumentPositionParams -- Command makeFieldsNoPrefix ''Command
+ src/Language/Haskell/LSP/TH/DocumentFilter.hs view
@@ -0,0 +1,55 @@+{-# LANGUAGE TemplateHaskell #-}+module Language.Haskell.LSP.TH.DocumentFilter where++import Data.Aeson.TH+import Data.Text ( Text )+import Language.Haskell.LSP.TH.Constants+import Language.Haskell.LSP.TH.List++-- ---------------------------------------------------------------------+{-+New in 3.0+----------++DocumentFilter+https://github.com/Microsoft/language-server-protocol/blob/master/protocol.md#new-documentfilter++A document filter denotes a document through properties like language, schema or+pattern. Examples are a filter that applies to TypeScript files on disk or a+filter the applies to JSON files with name package.json:++ { language: 'typescript', scheme: 'file' }+ { language: 'json', pattern: '**/package.json' }++export interface DocumentFilter {+ /**+ * A language id, like `typescript`.+ */+ language?: string;++ /**+ * A Uri [scheme](#Uri.scheme), like `file` or `untitled`.+ */+ scheme?: string;++ /**+ * A glob pattern, like `*.{ts,js}`.+ */+ pattern?: string;+}+-}+data DocumentFilter =+ DocumentFilter+ { _language :: Text+ , _scheme :: Text+ , _pattern :: Maybe Text+ } deriving (Show, Read, Eq)++deriveJSON lspOptions ''DocumentFilter++{-+A document selector is the combination of one or many document filters.++export type DocumentSelector = DocumentFilter[];+-}+type DocumentSelector = List DocumentFilter
+ src/Language/Haskell/LSP/TH/MarkupContent.hs view
@@ -0,0 +1,122 @@+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE TemplateHaskell #-}++-- | A MarkupContent literal represents a string value which content can+-- be represented in different formats.+-- Currently plaintext and markdown are supported formats.+-- A MarkupContent is usually used in documentation properties of result+-- literals like CompletionItem or SignatureInformation.+module Language.Haskell.LSP.TH.MarkupContent where++import Data.Aeson+import Data.Aeson.TH+import Data.Text (Text)+import Language.Haskell.LSP.TH.Constants++{-+/**+ * Describes the content type that a client supports in various+ * result literals like `Hover`, `ParameterInfo` or `CompletionItem`.+ *+ * Please note that `MarkupKinds` must not start with a `$`. This kinds+ * are reserved for internal usage.+ */+export namespace MarkupKind {+ /**+ * Plain text is supported as a content format+ */+ export const PlainText: 'plaintext' = 'plaintext';++ /**+ * Markdown is supported as a content format+ */+ export const Markdown: 'markdown' = 'markdown';+}+export type MarkupKind = 'plaintext' | 'markdown';+-}++-- | Describes the content type that a client supports in various+-- result literals like `Hover`, `ParameterInfo` or `CompletionItem`.+data MarkupKind = MkPlainText -- ^ Plain text is supported as a content format+ | MkMarkdown -- ^ Markdown is supported as a content format+ deriving (Read, Show, Eq)++instance ToJSON MarkupKind where+ toJSON MkPlainText = String "plaintext"+ toJSON MkMarkdown = String "markdown"++instance FromJSON MarkupKind where+ parseJSON (String "plaintext") = pure MkPlainText+ parseJSON (String "markdown") = pure MkMarkdown+ parseJSON _ = mempty+++{-+/**+ * A `MarkupContent` literal represents a string value which content is interpreted base on its+ * kind flag. Currently the protocol supports `plaintext` and `markdown` as markup kinds.+ *+ * If the kind is `markdown` then the value can contain fenced code blocks like in GitHub issues.+ * See https://help.github.com/articles/creating-and-highlighting-code-blocks/#syntax-highlighting+ *+ * Here is an example how such a string can be constructed using JavaScript / TypeScript:+ * ```ts+ * let markdown: MarkdownContent = {+ * kind: MarkupKind.Markdown,+ * value: [+ * '# Header',+ * 'Some text',+ * '```typescript',+ * 'someCode();',+ * '```'+ * ].join('\n')+ * };+ * ```+ *+ * *Please Note* that clients might sanitize the return markdown. A client could decide to+ * remove HTML from the markdown to avoid script execution.+ */+export interface MarkupContent {+ /**+ * The type of the Markup+ */+ kind: MarkupKind;++ /**+ * The content itself+ */+ value: string;+}+-}++-- | A `MarkupContent` literal represents a string value which content is interpreted base on its+-- | kind flag. Currently the protocol supports `plaintext` and `markdown` as markup kinds.+-- |+-- | If the kind is `markdown` then the value can contain fenced code blocks like in GitHub issues.+-- | See https://help.github.com/articles/creating-and-highlighting-code-blocks/#syntax-highlighting+-- |+-- | Here is an example how such a string can be constructed using JavaScript / TypeScript:+-- | ```ts+-- | let markdown: MarkdownContent = {+-- | kind: MarkupKind.Markdown,+-- | value: [+-- | '# Header',+-- | 'Some text',+-- | '```typescript',+-- | 'someCode();',+-- | '```'+-- | ].join('\n')+-- | };+-- | ```+-- |+-- | *Please Note* that clients might sanitize the return markdown. A client could decide to+-- | remove HTML from the markdown to avoid script execution.+data MarkupContent =+ MarkupContent+ { _kind :: MarkupKind -- ^ The type of the Markup+ , _value :: Text -- ^ The content itself+ }+ deriving (Read, Show, Eq)++deriveJSON lspOptions ''MarkupContent
src/Language/Haskell/LSP/TH/Message.hs view
@@ -101,6 +101,7 @@ | TextDocumentRangeFormatting | TextDocumentOnTypeFormatting | TextDocumentDefinition+ | TextDocumentImplementation | TextDocumentCodeAction | TextDocumentCodeLens | CodeLensResolve@@ -142,6 +143,7 @@ parseJSON (A.String "textDocument/rangeFormatting") = return TextDocumentRangeFormatting parseJSON (A.String "textDocument/onTypeFormatting") = return TextDocumentOnTypeFormatting parseJSON (A.String "textDocument/definition") = return TextDocumentDefinition+ parseJSON (A.String "textDocument/implementation") = return TextDocumentImplementation parseJSON (A.String "textDocument/codeAction") = return TextDocumentCodeAction parseJSON (A.String "textDocument/codeLens") = return TextDocumentCodeLens parseJSON (A.String "codeLens/resolve") = return CodeLensResolve@@ -183,6 +185,7 @@ toJSON TextDocumentRangeFormatting = A.String "textDocument/rangeFormatting" toJSON TextDocumentOnTypeFormatting = A.String "textDocument/onTypeFormatting" toJSON TextDocumentDefinition = A.String "textDocument/definition"+ toJSON TextDocumentImplementation = A.String "textDocument/implementation" toJSON TextDocumentCodeAction = A.String "textDocument/codeAction" toJSON TextDocumentCodeLens = A.String "textDocument/codeLens" toJSON CodeLensResolve = A.String "codeLens/resolve"
src/Language/Haskell/LSP/TH/Symbol.hs view
@@ -5,7 +5,7 @@ import Data.Aeson.TH import Data.Text (Text) import Language.Haskell.LSP.TH.Constants-import Language.Haskell.LSP.TH.TextDocumentIdentifier+import Language.Haskell.LSP.TH.TextDocument import Language.Haskell.LSP.TH.List import Language.Haskell.LSP.TH.Location import Language.Haskell.LSP.TH.Message@@ -124,28 +124,45 @@ | SkNumber | SkBoolean | SkArray+ | SkObject+ | SkKey+ | SkNull+ | SkEnumMember+ | SkStruct+ | SkEvent+ | SkOperator+ | SkTypeParameter deriving (Read,Show,Eq) instance ToJSON SymbolKind where- toJSON SkFile = Number 1- toJSON SkModule = Number 2- toJSON SkNamespace = Number 3- toJSON SkPackage = Number 4- toJSON SkClass = Number 5- toJSON SkMethod = Number 6- toJSON SkProperty = Number 7- toJSON SkField = Number 8- toJSON SkConstructor = Number 9- toJSON SkEnum = Number 10- toJSON SkInterface = Number 11- toJSON SkFunction = Number 12- toJSON SkVariable = Number 13- toJSON SkConstant = Number 14- toJSON SkString = Number 15- toJSON SkNumber = Number 16- toJSON SkBoolean = Number 17- toJSON SkArray = Number 18+ toJSON SkFile = Number 1+ toJSON SkModule = Number 2+ toJSON SkNamespace = Number 3+ toJSON SkPackage = Number 4+ toJSON SkClass = Number 5+ toJSON SkMethod = Number 6+ toJSON SkProperty = Number 7+ toJSON SkField = Number 8+ toJSON SkConstructor = Number 9+ toJSON SkEnum = Number 10+ toJSON SkInterface = Number 11+ toJSON SkFunction = Number 12+ toJSON SkVariable = Number 13+ toJSON SkConstant = Number 14+ toJSON SkString = Number 15+ toJSON SkNumber = Number 16+ toJSON SkBoolean = Number 17+ toJSON SkArray = Number 18+ toJSON SkObject = Number 19+ toJSON SkKey = Number 20+ toJSON SkNull = Number 21+ toJSON SkEnumMember = Number 22+ toJSON SkStruct = Number 23+ toJSON SkEvent = Number 24+ toJSON SkOperator = Number 25+ toJSON SkTypeParameter = Number 26 + instance FromJSON SymbolKind where parseJSON (Number 1) = pure SkFile parseJSON (Number 2) = pure SkModule@@ -165,6 +182,14 @@ parseJSON (Number 16) = pure SkNumber parseJSON (Number 17) = pure SkBoolean parseJSON (Number 18) = pure SkArray+ parseJSON (Number 19) = pure SkObject+ parseJSON (Number 20) = pure SkKey+ parseJSON (Number 21) = pure SkNull+ parseJSON (Number 22) = pure SkEnumMember+ parseJSON (Number 23) = pure SkStruct+ parseJSON (Number 24) = pure SkEvent+ parseJSON (Number 25) = pure SkOperator+ parseJSON (Number 26) = pure SkTypeParameter parseJSON _ = mempty
+ src/Language/Haskell/LSP/TH/TextDocument.hs view
@@ -0,0 +1,103 @@+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE TemplateHaskell #-}+module Language.Haskell.LSP.TH.TextDocument where++import Data.Aeson.TH+import Data.Text ( Text )+import Language.Haskell.LSP.TH.Constants+import Language.Haskell.LSP.TH.Location+import Language.Haskell.LSP.TH.Uri++-- ---------------------------------------------------------------------+{-+TextDocumentIdentifier++https://github.com/Microsoft/language-server-protocol/blob/master/protocol.md#textdocumentidentifier++Text documents are identified using a URI. On the protocol level, URIs are+passed as strings. The corresponding JSON structure looks like this:++interface TextDocumentIdentifier {+ /**+ * The text document's URI.+ */+ uri: string;+}+-}+data TextDocumentIdentifier =+ TextDocumentIdentifier+ { _uri :: Uri+ } deriving (Show, Read, Eq)++deriveJSON lspOptions ''TextDocumentIdentifier++{-+TextDocumentItem++https://github.com/Microsoft/language-server-protocol/blob/master/protocol.md#textdocumentitem++ New: An item to transfer a text document from the client to the server.++interface TextDocumentItem {+ /**+ * The text document's URI.+ */+ uri: string;++ /**+ * The text document's language identifier.+ */+ languageId: string;++ /**+ * The version number of this document (it will strictly increase after each+ * change, including undo/redo).+ */+ version: number;++ /**+ * The content of the opened text document.+ */+ text: string;+}+-}++data TextDocumentItem =+ TextDocumentItem {+ _uri :: Uri+ , _languageId :: Text+ , _version :: Int+ , _text :: Text+ } deriving (Show, Read, Eq)++deriveJSON lspOptions ''TextDocumentItem++-- ---------------------------------------------------------------------+{-+TextDocumentPositionParams++https://github.com/Microsoft/language-server-protocol/blob/master/protocol.md#textdocumentpositionparams++ Changed: Was TextDocumentPosition in 1.0 with inlined parameters+++interface TextDocumentPositionParams {+ /**+ * The text document.+ */+ textDocument: TextDocumentIdentifier;++ /**+ * The position inside the text document.+ */+ position: Position;+}++-}+data TextDocumentPositionParams =+ TextDocumentPositionParams+ { _textDocument :: TextDocumentIdentifier+ , _position :: Position+ } deriving (Show, Read, Eq)++deriveJSON lspOptions ''TextDocumentPositionParams
− src/Language/Haskell/LSP/TH/TextDocumentIdentifier.hs
@@ -1,30 +0,0 @@-{-# LANGUAGE DuplicateRecordFields #-}-{-# LANGUAGE TemplateHaskell #-}-module Language.Haskell.LSP.TH.TextDocumentIdentifier where--import Data.Aeson.TH-import Language.Haskell.LSP.TH.Constants-import Language.Haskell.LSP.TH.Uri---- ----------------------------------------------------------------------{--TextDocumentIdentifier--https://github.com/Microsoft/language-server-protocol/blob/master/protocol.md#textdocumentidentifier--Text documents are identified using a URI. On the protocol level, URIs are-passed as strings. The corresponding JSON structure looks like this:--interface TextDocumentIdentifier {- /**- * The text document's URI.- */- uri: string;-}--}-data TextDocumentIdentifier =- TextDocumentIdentifier- { _uri :: Uri- } deriving (Show, Read, Eq)--deriveJSON lspOptions ''TextDocumentIdentifier
src/Language/Haskell/LSP/TH/Uri.hs view
@@ -33,7 +33,7 @@ platformAdjustFromUriPath :: SystemOS -> String -> FilePath platformAdjustFromUriPath systemOS srcPath =- if systemOS /= windowsOS then srcPath+ if systemOS /= windowsOS || null srcPath then srcPath else let firstSegment:rest = (FPP.splitDirectories . tail) srcPath -- Drop leading '/' for absolute Windows paths drive = if FPW.isDrive firstSegment then FPW.addTrailingPathSeparator firstSegment else firstSegment