packages feed

haskell-lsp-types 0.6.0.0 → 0.7.0.0

raw patch · 44 files changed

+7436/−6307 lines, 44 filesdep ~aesonPVP ok

version bump matches the API change (PVP)

Dependency ranges changed: aeson

API changes (from Hackage documentation)

- Language.Haskell.LSP.TH.ClientCapabilities: ClientCapabilities :: Maybe WorkspaceClientCapabilities -> Maybe TextDocumentClientCapabilities -> Maybe Object -> ClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: CodeActionClientCapabilities :: Maybe Bool -> Maybe CodeActionLiteralSupport -> CodeActionClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: CodeActionKindClientCapabilities :: List CodeActionKind -> CodeActionKindClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: CodeActionLiteralSupport :: CodeActionKindClientCapabilities -> CodeActionLiteralSupport
- Language.Haskell.LSP.TH.ClientCapabilities: CodeLensClientCapabilities :: Maybe Bool -> CodeLensClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: ColorProviderClientCapabilities :: Maybe Bool -> ColorProviderClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: CompletionClientCapabilities :: Maybe Bool -> Maybe CompletionItemClientCapabilities -> Maybe CompletionItemKindClientCapabilities -> Maybe Bool -> CompletionClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: CompletionItemClientCapabilities :: Maybe Bool -> Maybe Bool -> Maybe (List MarkupKind) -> Maybe Bool -> Maybe Bool -> CompletionItemClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: CompletionItemKindClientCapabilities :: Maybe (List CompletionItemKind) -> CompletionItemKindClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: DefinitionClientCapabilities :: Maybe Bool -> DefinitionClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: DidChangeConfigurationClientCapabilities :: Maybe Bool -> DidChangeConfigurationClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: DidChangeWatchedFilesClientCapabilities :: Maybe Bool -> DidChangeWatchedFilesClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: DocumentHighlightClientCapabilities :: Maybe Bool -> DocumentHighlightClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: DocumentLinkClientCapabilities :: Maybe Bool -> DocumentLinkClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: DocumentSymbolClientCapabilities :: Maybe Bool -> Maybe DocumentSymbolKindClientCapabilities -> Maybe Bool -> DocumentSymbolClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: DocumentSymbolKindClientCapabilities :: Maybe (List SymbolKind) -> DocumentSymbolKindClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: ExecuteClientCapabilities :: Maybe Bool -> ExecuteClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: FormattingClientCapabilities :: Maybe Bool -> FormattingClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: HoverClientCapabilities :: Maybe Bool -> Maybe (List MarkupKind) -> HoverClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: ImplementationClientCapabilities :: Maybe Bool -> ImplementationClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: OnTypeFormattingClientCapabilities :: Maybe Bool -> OnTypeFormattingClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: PublishDiagnosticsClientCapabilities :: Maybe Bool -> PublishDiagnosticsClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: RangeFormattingClientCapabilities :: Maybe Bool -> RangeFormattingClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: ReferencesClientCapabilities :: Maybe Bool -> ReferencesClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: RenameClientCapabilities :: Maybe Bool -> RenameClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: SignatureHelpClientCapabilities :: Maybe Bool -> Maybe SignatureInformationClientCapabilities -> SignatureHelpClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: SignatureInformationClientCapabilities :: Maybe (List MarkupKind) -> SignatureInformationClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: SymbolClientCapabilities :: Maybe Bool -> Maybe SymbolKindClientCapabilities -> SymbolClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: SymbolKindClientCapabilities :: Maybe (List SymbolKind) -> SymbolKindClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: SynchronizationTextDocumentClientCapabilities :: Maybe Bool -> Maybe Bool -> Maybe Bool -> Maybe Bool -> SynchronizationTextDocumentClientCapabilities
- 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: TypeDefinitionClientCapabilities :: Maybe Bool -> TypeDefinitionClientCapabilities
- 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: WorkspaceEditClientCapabilities :: Maybe Bool -> WorkspaceEditClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: [$sel:_applyEdit:WorkspaceClientCapabilities] :: WorkspaceClientCapabilities -> Maybe Bool
- Language.Haskell.LSP.TH.ClientCapabilities: [$sel:_codeAction:TextDocumentClientCapabilities] :: TextDocumentClientCapabilities -> Maybe CodeActionClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: [$sel:_codeActionKind:CodeActionLiteralSupport] :: CodeActionLiteralSupport -> CodeActionKindClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: [$sel:_codeActionLiteralSupport:CodeActionClientCapabilities] :: CodeActionClientCapabilities -> Maybe CodeActionLiteralSupport
- Language.Haskell.LSP.TH.ClientCapabilities: [$sel:_codeLens:TextDocumentClientCapabilities] :: TextDocumentClientCapabilities -> Maybe CodeLensClientCapabilities
- 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:_completion:TextDocumentClientCapabilities] :: TextDocumentClientCapabilities -> Maybe CompletionClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: [$sel:_completionItem:CompletionClientCapabilities] :: CompletionClientCapabilities -> Maybe CompletionItemClientCapabilities
- 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:_definition:TextDocumentClientCapabilities] :: TextDocumentClientCapabilities -> Maybe DefinitionClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: [$sel:_deprecatedSupport:CompletionItemClientCapabilities] :: CompletionItemClientCapabilities -> Maybe Bool
- Language.Haskell.LSP.TH.ClientCapabilities: [$sel:_didChangeConfiguration:WorkspaceClientCapabilities] :: WorkspaceClientCapabilities -> Maybe DidChangeConfigurationClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: [$sel:_didChangeWatchedFiles:WorkspaceClientCapabilities] :: WorkspaceClientCapabilities -> Maybe DidChangeWatchedFilesClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: [$sel:_didSave:SynchronizationTextDocumentClientCapabilities] :: SynchronizationTextDocumentClientCapabilities -> Maybe Bool
- Language.Haskell.LSP.TH.ClientCapabilities: [$sel:_documentChanges:WorkspaceEditClientCapabilities] :: WorkspaceEditClientCapabilities -> Maybe Bool
- Language.Haskell.LSP.TH.ClientCapabilities: [$sel:_documentHighlight:TextDocumentClientCapabilities] :: TextDocumentClientCapabilities -> Maybe DocumentHighlightClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: [$sel:_documentLink:TextDocumentClientCapabilities] :: TextDocumentClientCapabilities -> Maybe DocumentLinkClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: [$sel:_documentSymbol:TextDocumentClientCapabilities] :: TextDocumentClientCapabilities -> Maybe DocumentSymbolClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: [$sel:_documentationFormat:CompletionItemClientCapabilities] :: CompletionItemClientCapabilities -> Maybe (List MarkupKind)
- Language.Haskell.LSP.TH.ClientCapabilities: [$sel:_dynamicRegistration:CodeActionClientCapabilities] :: CodeActionClientCapabilities -> Maybe Bool
- Language.Haskell.LSP.TH.ClientCapabilities: [$sel:_dynamicRegistration:CodeLensClientCapabilities] :: CodeLensClientCapabilities -> Maybe Bool
- Language.Haskell.LSP.TH.ClientCapabilities: [$sel:_dynamicRegistration:ColorProviderClientCapabilities] :: ColorProviderClientCapabilities -> Maybe Bool
- Language.Haskell.LSP.TH.ClientCapabilities: [$sel:_dynamicRegistration:CompletionClientCapabilities] :: CompletionClientCapabilities -> Maybe Bool
- Language.Haskell.LSP.TH.ClientCapabilities: [$sel:_dynamicRegistration:DefinitionClientCapabilities] :: DefinitionClientCapabilities -> Maybe Bool
- Language.Haskell.LSP.TH.ClientCapabilities: [$sel:_dynamicRegistration:DidChangeConfigurationClientCapabilities] :: DidChangeConfigurationClientCapabilities -> Maybe Bool
- Language.Haskell.LSP.TH.ClientCapabilities: [$sel:_dynamicRegistration:DidChangeWatchedFilesClientCapabilities] :: DidChangeWatchedFilesClientCapabilities -> Maybe Bool
- Language.Haskell.LSP.TH.ClientCapabilities: [$sel:_dynamicRegistration:DocumentHighlightClientCapabilities] :: DocumentHighlightClientCapabilities -> Maybe Bool
- Language.Haskell.LSP.TH.ClientCapabilities: [$sel:_dynamicRegistration:DocumentLinkClientCapabilities] :: DocumentLinkClientCapabilities -> Maybe Bool
- Language.Haskell.LSP.TH.ClientCapabilities: [$sel:_dynamicRegistration:DocumentSymbolClientCapabilities] :: DocumentSymbolClientCapabilities -> Maybe Bool
- Language.Haskell.LSP.TH.ClientCapabilities: [$sel:_dynamicRegistration:ExecuteClientCapabilities] :: ExecuteClientCapabilities -> Maybe Bool
- Language.Haskell.LSP.TH.ClientCapabilities: [$sel:_dynamicRegistration:FormattingClientCapabilities] :: FormattingClientCapabilities -> Maybe Bool
- Language.Haskell.LSP.TH.ClientCapabilities: [$sel:_dynamicRegistration:HoverClientCapabilities] :: HoverClientCapabilities -> Maybe Bool
- Language.Haskell.LSP.TH.ClientCapabilities: [$sel:_dynamicRegistration:ImplementationClientCapabilities] :: ImplementationClientCapabilities -> Maybe Bool
- Language.Haskell.LSP.TH.ClientCapabilities: [$sel:_dynamicRegistration:OnTypeFormattingClientCapabilities] :: OnTypeFormattingClientCapabilities -> Maybe Bool
- Language.Haskell.LSP.TH.ClientCapabilities: [$sel:_dynamicRegistration:RangeFormattingClientCapabilities] :: RangeFormattingClientCapabilities -> Maybe Bool
- Language.Haskell.LSP.TH.ClientCapabilities: [$sel:_dynamicRegistration:ReferencesClientCapabilities] :: ReferencesClientCapabilities -> Maybe Bool
- Language.Haskell.LSP.TH.ClientCapabilities: [$sel:_dynamicRegistration:RenameClientCapabilities] :: RenameClientCapabilities -> Maybe Bool
- Language.Haskell.LSP.TH.ClientCapabilities: [$sel:_dynamicRegistration:SignatureHelpClientCapabilities] :: SignatureHelpClientCapabilities -> Maybe Bool
- Language.Haskell.LSP.TH.ClientCapabilities: [$sel:_dynamicRegistration:SymbolClientCapabilities] :: SymbolClientCapabilities -> Maybe Bool
- Language.Haskell.LSP.TH.ClientCapabilities: [$sel:_dynamicRegistration:SynchronizationTextDocumentClientCapabilities] :: SynchronizationTextDocumentClientCapabilities -> Maybe Bool
- Language.Haskell.LSP.TH.ClientCapabilities: [$sel:_dynamicRegistration:TypeDefinitionClientCapabilities] :: TypeDefinitionClientCapabilities -> Maybe Bool
- Language.Haskell.LSP.TH.ClientCapabilities: [$sel:_executeCommand:WorkspaceClientCapabilities] :: WorkspaceClientCapabilities -> Maybe ExecuteClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: [$sel:_experimental:ClientCapabilities] :: ClientCapabilities -> Maybe Object
- Language.Haskell.LSP.TH.ClientCapabilities: [$sel:_formatting:TextDocumentClientCapabilities] :: TextDocumentClientCapabilities -> Maybe FormattingClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: [$sel:_hierarchicalDocumentSymbolSupport:DocumentSymbolClientCapabilities] :: DocumentSymbolClientCapabilities -> Maybe Bool
- Language.Haskell.LSP.TH.ClientCapabilities: [$sel:_hover:TextDocumentClientCapabilities] :: TextDocumentClientCapabilities -> Maybe HoverClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: [$sel:_implementation:TextDocumentClientCapabilities] :: TextDocumentClientCapabilities -> Maybe ImplementationClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: [$sel:_onTypeFormatting:TextDocumentClientCapabilities] :: TextDocumentClientCapabilities -> Maybe OnTypeFormattingClientCapabilities
- 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:_rangeFormatting:TextDocumentClientCapabilities] :: TextDocumentClientCapabilities -> Maybe RangeFormattingClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: [$sel:_references:TextDocumentClientCapabilities] :: TextDocumentClientCapabilities -> Maybe ReferencesClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: [$sel:_relatedInformation:PublishDiagnosticsClientCapabilities] :: PublishDiagnosticsClientCapabilities -> Maybe Bool
- Language.Haskell.LSP.TH.ClientCapabilities: [$sel:_rename:TextDocumentClientCapabilities] :: TextDocumentClientCapabilities -> Maybe RenameClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: [$sel:_signatureHelp:TextDocumentClientCapabilities] :: TextDocumentClientCapabilities -> Maybe SignatureHelpClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: [$sel:_signatureInformation:SignatureHelpClientCapabilities] :: SignatureHelpClientCapabilities -> Maybe SignatureInformationClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: [$sel:_snippetSupport:CompletionItemClientCapabilities] :: CompletionItemClientCapabilities -> Maybe Bool
- Language.Haskell.LSP.TH.ClientCapabilities: [$sel:_symbol:WorkspaceClientCapabilities] :: WorkspaceClientCapabilities -> Maybe SymbolClientCapabilities
- 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:_synchronization:TextDocumentClientCapabilities] :: TextDocumentClientCapabilities -> Maybe SynchronizationTextDocumentClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: [$sel:_textDocument:ClientCapabilities] :: ClientCapabilities -> Maybe TextDocumentClientCapabilities
- 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:_willSave:SynchronizationTextDocumentClientCapabilities] :: SynchronizationTextDocumentClientCapabilities -> Maybe Bool
- Language.Haskell.LSP.TH.ClientCapabilities: [$sel:_willSaveWaitUntil:SynchronizationTextDocumentClientCapabilities] :: SynchronizationTextDocumentClientCapabilities -> Maybe Bool
- Language.Haskell.LSP.TH.ClientCapabilities: [$sel:_workspace:ClientCapabilities] :: ClientCapabilities -> Maybe WorkspaceClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: [$sel:_workspaceEdit:WorkspaceClientCapabilities] :: WorkspaceClientCapabilities -> Maybe WorkspaceEditClientCapabilities
- 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 ClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: data CodeActionClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: data CodeActionKindClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: data CodeActionLiteralSupport
- Language.Haskell.LSP.TH.ClientCapabilities: data CodeLensClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: data ColorProviderClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: data CompletionClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: data CompletionItemClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: data CompletionItemKindClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: data DefinitionClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: data DidChangeConfigurationClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: data DidChangeWatchedFilesClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: data DocumentHighlightClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: data DocumentLinkClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: data DocumentSymbolClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: data DocumentSymbolKindClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: data ExecuteClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: data FormattingClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: data HoverClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: data ImplementationClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: data OnTypeFormattingClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: data PublishDiagnosticsClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: data RangeFormattingClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: data ReferencesClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: data RenameClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: data SignatureHelpClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: data SignatureInformationClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: data SymbolClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: data SymbolKindClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: data SynchronizationTextDocumentClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: data TextDocumentClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: data TypeDefinitionClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: data WorkspaceClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: data WorkspaceEditClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: instance Data.Aeson.Types.FromJSON.FromJSON Language.Haskell.LSP.TH.ClientCapabilities.ClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: instance Data.Aeson.Types.FromJSON.FromJSON Language.Haskell.LSP.TH.ClientCapabilities.CodeActionClientCapabilities
- 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.CodeActionLiteralSupport
- Language.Haskell.LSP.TH.ClientCapabilities: instance Data.Aeson.Types.FromJSON.FromJSON Language.Haskell.LSP.TH.ClientCapabilities.CodeLensClientCapabilities
- 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.CompletionClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: instance Data.Aeson.Types.FromJSON.FromJSON Language.Haskell.LSP.TH.ClientCapabilities.CompletionItemClientCapabilities
- 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.DefinitionClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: instance Data.Aeson.Types.FromJSON.FromJSON Language.Haskell.LSP.TH.ClientCapabilities.DidChangeConfigurationClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: instance Data.Aeson.Types.FromJSON.FromJSON Language.Haskell.LSP.TH.ClientCapabilities.DidChangeWatchedFilesClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: instance Data.Aeson.Types.FromJSON.FromJSON Language.Haskell.LSP.TH.ClientCapabilities.DocumentHighlightClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: instance Data.Aeson.Types.FromJSON.FromJSON Language.Haskell.LSP.TH.ClientCapabilities.DocumentLinkClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: instance Data.Aeson.Types.FromJSON.FromJSON Language.Haskell.LSP.TH.ClientCapabilities.DocumentSymbolClientCapabilities
- 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.ExecuteClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: instance Data.Aeson.Types.FromJSON.FromJSON Language.Haskell.LSP.TH.ClientCapabilities.FormattingClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: instance Data.Aeson.Types.FromJSON.FromJSON Language.Haskell.LSP.TH.ClientCapabilities.HoverClientCapabilities
- 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.OnTypeFormattingClientCapabilities
- 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.RangeFormattingClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: instance Data.Aeson.Types.FromJSON.FromJSON Language.Haskell.LSP.TH.ClientCapabilities.ReferencesClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: instance Data.Aeson.Types.FromJSON.FromJSON Language.Haskell.LSP.TH.ClientCapabilities.RenameClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: instance Data.Aeson.Types.FromJSON.FromJSON Language.Haskell.LSP.TH.ClientCapabilities.SignatureHelpClientCapabilities
- 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.SymbolClientCapabilities
- 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.SynchronizationTextDocumentClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: instance Data.Aeson.Types.FromJSON.FromJSON Language.Haskell.LSP.TH.ClientCapabilities.TextDocumentClientCapabilities
- 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.FromJSON.FromJSON Language.Haskell.LSP.TH.ClientCapabilities.WorkspaceClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: instance Data.Aeson.Types.FromJSON.FromJSON Language.Haskell.LSP.TH.ClientCapabilities.WorkspaceEditClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: instance Data.Aeson.Types.ToJSON.ToJSON Language.Haskell.LSP.TH.ClientCapabilities.ClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: instance Data.Aeson.Types.ToJSON.ToJSON Language.Haskell.LSP.TH.ClientCapabilities.CodeActionClientCapabilities
- 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.CodeActionLiteralSupport
- Language.Haskell.LSP.TH.ClientCapabilities: instance Data.Aeson.Types.ToJSON.ToJSON Language.Haskell.LSP.TH.ClientCapabilities.CodeLensClientCapabilities
- 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.CompletionClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: instance Data.Aeson.Types.ToJSON.ToJSON Language.Haskell.LSP.TH.ClientCapabilities.CompletionItemClientCapabilities
- 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.DefinitionClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: instance Data.Aeson.Types.ToJSON.ToJSON Language.Haskell.LSP.TH.ClientCapabilities.DidChangeConfigurationClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: instance Data.Aeson.Types.ToJSON.ToJSON Language.Haskell.LSP.TH.ClientCapabilities.DidChangeWatchedFilesClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: instance Data.Aeson.Types.ToJSON.ToJSON Language.Haskell.LSP.TH.ClientCapabilities.DocumentHighlightClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: instance Data.Aeson.Types.ToJSON.ToJSON Language.Haskell.LSP.TH.ClientCapabilities.DocumentLinkClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: instance Data.Aeson.Types.ToJSON.ToJSON Language.Haskell.LSP.TH.ClientCapabilities.DocumentSymbolClientCapabilities
- 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.ExecuteClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: instance Data.Aeson.Types.ToJSON.ToJSON Language.Haskell.LSP.TH.ClientCapabilities.FormattingClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: instance Data.Aeson.Types.ToJSON.ToJSON Language.Haskell.LSP.TH.ClientCapabilities.HoverClientCapabilities
- 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.OnTypeFormattingClientCapabilities
- 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.RangeFormattingClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: instance Data.Aeson.Types.ToJSON.ToJSON Language.Haskell.LSP.TH.ClientCapabilities.ReferencesClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: instance Data.Aeson.Types.ToJSON.ToJSON Language.Haskell.LSP.TH.ClientCapabilities.RenameClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: instance Data.Aeson.Types.ToJSON.ToJSON Language.Haskell.LSP.TH.ClientCapabilities.SignatureHelpClientCapabilities
- 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.SymbolClientCapabilities
- 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.SynchronizationTextDocumentClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: instance Data.Aeson.Types.ToJSON.ToJSON Language.Haskell.LSP.TH.ClientCapabilities.TextDocumentClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: instance Data.Aeson.Types.ToJSON.ToJSON Language.Haskell.LSP.TH.ClientCapabilities.TypeDefinitionClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: instance Data.Aeson.Types.ToJSON.ToJSON Language.Haskell.LSP.TH.ClientCapabilities.WorkspaceClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: instance Data.Aeson.Types.ToJSON.ToJSON Language.Haskell.LSP.TH.ClientCapabilities.WorkspaceEditClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: instance Data.Default.Class.Default Language.Haskell.LSP.TH.ClientCapabilities.ClientCapabilities
- 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 Data.Default.Class.Default Language.Haskell.LSP.TH.ClientCapabilities.SynchronizationTextDocumentClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: instance Data.Default.Class.Default Language.Haskell.LSP.TH.ClientCapabilities.TextDocumentClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: instance Data.Default.Class.Default Language.Haskell.LSP.TH.ClientCapabilities.WorkspaceClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: instance GHC.Classes.Eq Language.Haskell.LSP.TH.ClientCapabilities.ClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: instance GHC.Classes.Eq Language.Haskell.LSP.TH.ClientCapabilities.CodeActionClientCapabilities
- 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.CodeActionLiteralSupport
- Language.Haskell.LSP.TH.ClientCapabilities: instance GHC.Classes.Eq Language.Haskell.LSP.TH.ClientCapabilities.CodeLensClientCapabilities
- 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.CompletionClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: instance GHC.Classes.Eq Language.Haskell.LSP.TH.ClientCapabilities.CompletionItemClientCapabilities
- 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.DefinitionClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: instance GHC.Classes.Eq Language.Haskell.LSP.TH.ClientCapabilities.DidChangeConfigurationClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: instance GHC.Classes.Eq Language.Haskell.LSP.TH.ClientCapabilities.DidChangeWatchedFilesClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: instance GHC.Classes.Eq Language.Haskell.LSP.TH.ClientCapabilities.DocumentHighlightClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: instance GHC.Classes.Eq Language.Haskell.LSP.TH.ClientCapabilities.DocumentLinkClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: instance GHC.Classes.Eq Language.Haskell.LSP.TH.ClientCapabilities.DocumentSymbolClientCapabilities
- 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.ExecuteClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: instance GHC.Classes.Eq Language.Haskell.LSP.TH.ClientCapabilities.FormattingClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: instance GHC.Classes.Eq Language.Haskell.LSP.TH.ClientCapabilities.HoverClientCapabilities
- 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.OnTypeFormattingClientCapabilities
- 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.RangeFormattingClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: instance GHC.Classes.Eq Language.Haskell.LSP.TH.ClientCapabilities.ReferencesClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: instance GHC.Classes.Eq Language.Haskell.LSP.TH.ClientCapabilities.RenameClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: instance GHC.Classes.Eq Language.Haskell.LSP.TH.ClientCapabilities.SignatureHelpClientCapabilities
- 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.SymbolClientCapabilities
- 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.SynchronizationTextDocumentClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: instance GHC.Classes.Eq Language.Haskell.LSP.TH.ClientCapabilities.TextDocumentClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: instance GHC.Classes.Eq Language.Haskell.LSP.TH.ClientCapabilities.TypeDefinitionClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: instance GHC.Classes.Eq Language.Haskell.LSP.TH.ClientCapabilities.WorkspaceClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: instance GHC.Classes.Eq Language.Haskell.LSP.TH.ClientCapabilities.WorkspaceEditClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: instance GHC.Read.Read Language.Haskell.LSP.TH.ClientCapabilities.ClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: instance GHC.Read.Read Language.Haskell.LSP.TH.ClientCapabilities.CodeActionClientCapabilities
- 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.CodeActionLiteralSupport
- Language.Haskell.LSP.TH.ClientCapabilities: instance GHC.Read.Read Language.Haskell.LSP.TH.ClientCapabilities.CodeLensClientCapabilities
- 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.CompletionClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: instance GHC.Read.Read Language.Haskell.LSP.TH.ClientCapabilities.CompletionItemClientCapabilities
- 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.DefinitionClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: instance GHC.Read.Read Language.Haskell.LSP.TH.ClientCapabilities.DidChangeConfigurationClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: instance GHC.Read.Read Language.Haskell.LSP.TH.ClientCapabilities.DidChangeWatchedFilesClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: instance GHC.Read.Read Language.Haskell.LSP.TH.ClientCapabilities.DocumentHighlightClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: instance GHC.Read.Read Language.Haskell.LSP.TH.ClientCapabilities.DocumentLinkClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: instance GHC.Read.Read Language.Haskell.LSP.TH.ClientCapabilities.DocumentSymbolClientCapabilities
- 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.ExecuteClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: instance GHC.Read.Read Language.Haskell.LSP.TH.ClientCapabilities.FormattingClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: instance GHC.Read.Read Language.Haskell.LSP.TH.ClientCapabilities.HoverClientCapabilities
- 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.OnTypeFormattingClientCapabilities
- 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.RangeFormattingClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: instance GHC.Read.Read Language.Haskell.LSP.TH.ClientCapabilities.ReferencesClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: instance GHC.Read.Read Language.Haskell.LSP.TH.ClientCapabilities.RenameClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: instance GHC.Read.Read Language.Haskell.LSP.TH.ClientCapabilities.SignatureHelpClientCapabilities
- 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.SymbolClientCapabilities
- 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.SynchronizationTextDocumentClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: instance GHC.Read.Read Language.Haskell.LSP.TH.ClientCapabilities.TextDocumentClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: instance GHC.Read.Read Language.Haskell.LSP.TH.ClientCapabilities.TypeDefinitionClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: instance GHC.Read.Read Language.Haskell.LSP.TH.ClientCapabilities.WorkspaceClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: instance GHC.Read.Read Language.Haskell.LSP.TH.ClientCapabilities.WorkspaceEditClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: instance GHC.Show.Show Language.Haskell.LSP.TH.ClientCapabilities.ClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: instance GHC.Show.Show Language.Haskell.LSP.TH.ClientCapabilities.CodeActionClientCapabilities
- 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.CodeActionLiteralSupport
- Language.Haskell.LSP.TH.ClientCapabilities: instance GHC.Show.Show Language.Haskell.LSP.TH.ClientCapabilities.CodeLensClientCapabilities
- 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.CompletionClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: instance GHC.Show.Show Language.Haskell.LSP.TH.ClientCapabilities.CompletionItemClientCapabilities
- 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.DefinitionClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: instance GHC.Show.Show Language.Haskell.LSP.TH.ClientCapabilities.DidChangeConfigurationClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: instance GHC.Show.Show Language.Haskell.LSP.TH.ClientCapabilities.DidChangeWatchedFilesClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: instance GHC.Show.Show Language.Haskell.LSP.TH.ClientCapabilities.DocumentHighlightClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: instance GHC.Show.Show Language.Haskell.LSP.TH.ClientCapabilities.DocumentLinkClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: instance GHC.Show.Show Language.Haskell.LSP.TH.ClientCapabilities.DocumentSymbolClientCapabilities
- 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.ExecuteClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: instance GHC.Show.Show Language.Haskell.LSP.TH.ClientCapabilities.FormattingClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: instance GHC.Show.Show Language.Haskell.LSP.TH.ClientCapabilities.HoverClientCapabilities
- 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.OnTypeFormattingClientCapabilities
- 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.RangeFormattingClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: instance GHC.Show.Show Language.Haskell.LSP.TH.ClientCapabilities.ReferencesClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: instance GHC.Show.Show Language.Haskell.LSP.TH.ClientCapabilities.RenameClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: instance GHC.Show.Show Language.Haskell.LSP.TH.ClientCapabilities.SignatureHelpClientCapabilities
- 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.SymbolClientCapabilities
- 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.SynchronizationTextDocumentClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: instance GHC.Show.Show Language.Haskell.LSP.TH.ClientCapabilities.TextDocumentClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: instance GHC.Show.Show Language.Haskell.LSP.TH.ClientCapabilities.TypeDefinitionClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: instance GHC.Show.Show Language.Haskell.LSP.TH.ClientCapabilities.WorkspaceClientCapabilities
- Language.Haskell.LSP.TH.ClientCapabilities: instance GHC.Show.Show Language.Haskell.LSP.TH.ClientCapabilities.WorkspaceEditClientCapabilities
- Language.Haskell.LSP.TH.Constants: customModifier :: String -> String
- Language.Haskell.LSP.TH.Constants: lspOptions :: Options
- Language.Haskell.LSP.TH.DataTypesJSON: ApplyWorkspaceEditParams :: WorkspaceEdit -> ApplyWorkspaceEditParams
- Language.Haskell.LSP.TH.DataTypesJSON: ApplyWorkspaceEditResponseBody :: Bool -> ApplyWorkspaceEditResponseBody
- Language.Haskell.LSP.TH.DataTypesJSON: CACodeAction :: CodeAction -> CAResult
- Language.Haskell.LSP.TH.DataTypesJSON: CACommand :: Command -> CAResult
- Language.Haskell.LSP.TH.DataTypesJSON: CancelParams :: LspId -> CancelParams
- Language.Haskell.LSP.TH.DataTypesJSON: CancelRequest :: ClientMethod
- Language.Haskell.LSP.TH.DataTypesJSON: CancelRequestServer :: ServerMethod
- Language.Haskell.LSP.TH.DataTypesJSON: CiClass :: CompletionItemKind
- Language.Haskell.LSP.TH.DataTypesJSON: CiColor :: CompletionItemKind
- Language.Haskell.LSP.TH.DataTypesJSON: CiConstant :: CompletionItemKind
- Language.Haskell.LSP.TH.DataTypesJSON: CiConstructor :: CompletionItemKind
- Language.Haskell.LSP.TH.DataTypesJSON: CiEnum :: CompletionItemKind
- Language.Haskell.LSP.TH.DataTypesJSON: CiEnumMember :: CompletionItemKind
- Language.Haskell.LSP.TH.DataTypesJSON: CiEvent :: CompletionItemKind
- Language.Haskell.LSP.TH.DataTypesJSON: CiField :: CompletionItemKind
- Language.Haskell.LSP.TH.DataTypesJSON: CiFile :: CompletionItemKind
- Language.Haskell.LSP.TH.DataTypesJSON: CiFolder :: CompletionItemKind
- Language.Haskell.LSP.TH.DataTypesJSON: CiFunction :: CompletionItemKind
- Language.Haskell.LSP.TH.DataTypesJSON: CiInterface :: CompletionItemKind
- Language.Haskell.LSP.TH.DataTypesJSON: CiKeyword :: CompletionItemKind
- Language.Haskell.LSP.TH.DataTypesJSON: CiMethod :: CompletionItemKind
- Language.Haskell.LSP.TH.DataTypesJSON: CiModule :: CompletionItemKind
- Language.Haskell.LSP.TH.DataTypesJSON: CiOperator :: CompletionItemKind
- Language.Haskell.LSP.TH.DataTypesJSON: CiProperty :: CompletionItemKind
- Language.Haskell.LSP.TH.DataTypesJSON: CiReference :: CompletionItemKind
- Language.Haskell.LSP.TH.DataTypesJSON: CiSnippet :: CompletionItemKind
- Language.Haskell.LSP.TH.DataTypesJSON: CiStruct :: CompletionItemKind
- Language.Haskell.LSP.TH.DataTypesJSON: CiText :: CompletionItemKind
- Language.Haskell.LSP.TH.DataTypesJSON: CiTypeParameter :: CompletionItemKind
- Language.Haskell.LSP.TH.DataTypesJSON: CiUnit :: CompletionItemKind
- Language.Haskell.LSP.TH.DataTypesJSON: CiValue :: CompletionItemKind
- Language.Haskell.LSP.TH.DataTypesJSON: CiVariable :: CompletionItemKind
- Language.Haskell.LSP.TH.DataTypesJSON: ClientRegisterCapability :: ServerMethod
- Language.Haskell.LSP.TH.DataTypesJSON: ClientUnregisterCapability :: ServerMethod
- Language.Haskell.LSP.TH.DataTypesJSON: CodeAction :: Text -> Maybe CodeActionKind -> Maybe (List Diagnostic) -> Maybe WorkspaceEdit -> Maybe Command -> CodeAction
- Language.Haskell.LSP.TH.DataTypesJSON: CodeActionContext :: List Diagnostic -> Maybe (List CodeActionKind) -> CodeActionContext
- Language.Haskell.LSP.TH.DataTypesJSON: CodeActionParams :: TextDocumentIdentifier -> Range -> CodeActionContext -> CodeActionParams
- Language.Haskell.LSP.TH.DataTypesJSON: CodeActionQuickFix :: CodeActionKind
- Language.Haskell.LSP.TH.DataTypesJSON: CodeActionRefactor :: CodeActionKind
- Language.Haskell.LSP.TH.DataTypesJSON: CodeActionRefactorExtract :: CodeActionKind
- Language.Haskell.LSP.TH.DataTypesJSON: CodeActionRefactorInline :: CodeActionKind
- Language.Haskell.LSP.TH.DataTypesJSON: CodeActionRefactorRewrite :: CodeActionKind
- Language.Haskell.LSP.TH.DataTypesJSON: CodeActionSource :: CodeActionKind
- Language.Haskell.LSP.TH.DataTypesJSON: CodeActionSourceOrganizeImports :: CodeActionKind
- Language.Haskell.LSP.TH.DataTypesJSON: CodeActionUnknown :: Text -> CodeActionKind
- Language.Haskell.LSP.TH.DataTypesJSON: CodeLens :: Range -> Maybe Command -> Maybe Value -> CodeLens
- Language.Haskell.LSP.TH.DataTypesJSON: CodeLensOptions :: Maybe Bool -> CodeLensOptions
- Language.Haskell.LSP.TH.DataTypesJSON: CodeLensParams :: TextDocumentIdentifier -> CodeLensParams
- Language.Haskell.LSP.TH.DataTypesJSON: CodeLensRegistrationOptions :: Maybe DocumentSelector -> Maybe Bool -> CodeLensRegistrationOptions
- Language.Haskell.LSP.TH.DataTypesJSON: CodeLensResolve :: ClientMethod
- Language.Haskell.LSP.TH.DataTypesJSON: CodeString :: LanguageString -> MarkedString
- Language.Haskell.LSP.TH.DataTypesJSON: Command :: Text -> Text -> Maybe (List Value) -> Command
- Language.Haskell.LSP.TH.DataTypesJSON: CompletionItem :: Text -> Maybe CompletionItemKind -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe InsertTextFormat -> Maybe TextEdit -> Maybe (List TextEdit) -> Maybe Command -> Maybe Value -> CompletionItem
- Language.Haskell.LSP.TH.DataTypesJSON: CompletionItemResolve :: ClientMethod
- Language.Haskell.LSP.TH.DataTypesJSON: CompletionList :: CompletionListType -> CompletionResponseResult
- Language.Haskell.LSP.TH.DataTypesJSON: CompletionListType :: Bool -> List CompletionItem -> CompletionListType
- Language.Haskell.LSP.TH.DataTypesJSON: CompletionOptions :: Maybe Bool -> Maybe [String] -> CompletionOptions
- Language.Haskell.LSP.TH.DataTypesJSON: CompletionRegistrationOptions :: Maybe DocumentSelector -> Maybe (List String) -> Maybe Bool -> CompletionRegistrationOptions
- Language.Haskell.LSP.TH.DataTypesJSON: Completions :: (List CompletionItem) -> CompletionResponseResult
- Language.Haskell.LSP.TH.DataTypesJSON: DSDocumentSymbols :: (List DocumentSymbol) -> DSResult
- Language.Haskell.LSP.TH.DataTypesJSON: DSSymbolInformation :: (List SymbolInformation) -> DSResult
- Language.Haskell.LSP.TH.DataTypesJSON: Diagnostic :: Range -> Maybe DiagnosticSeverity -> Maybe Text -> Maybe DiagnosticSource -> Text -> Maybe (List DiagnosticRelatedInformation) -> Diagnostic
- Language.Haskell.LSP.TH.DataTypesJSON: DiagnosticRelatedInformation :: Location -> Text -> DiagnosticRelatedInformation
- Language.Haskell.LSP.TH.DataTypesJSON: DidChangeConfigurationParams :: Value -> DidChangeConfigurationParams
- Language.Haskell.LSP.TH.DataTypesJSON: DidChangeTextDocumentParams :: VersionedTextDocumentIdentifier -> List TextDocumentContentChangeEvent -> DidChangeTextDocumentParams
- Language.Haskell.LSP.TH.DataTypesJSON: DidChangeWatchedFilesParams :: List FileEvent -> DidChangeWatchedFilesParams
- Language.Haskell.LSP.TH.DataTypesJSON: DidCloseTextDocumentParams :: TextDocumentIdentifier -> DidCloseTextDocumentParams
- Language.Haskell.LSP.TH.DataTypesJSON: DidOpenTextDocumentParams :: TextDocumentItem -> DidOpenTextDocumentParams
- Language.Haskell.LSP.TH.DataTypesJSON: DidSaveTextDocumentParams :: TextDocumentIdentifier -> DidSaveTextDocumentParams
- Language.Haskell.LSP.TH.DataTypesJSON: DocumentFilter :: Text -> Text -> Maybe Text -> DocumentFilter
- Language.Haskell.LSP.TH.DataTypesJSON: DocumentFormattingParams :: TextDocumentIdentifier -> FormattingOptions -> DocumentFormattingParams
- Language.Haskell.LSP.TH.DataTypesJSON: DocumentHighlight :: Range -> Maybe DocumentHighlightKind -> DocumentHighlight
- Language.Haskell.LSP.TH.DataTypesJSON: DocumentLink :: Range -> Maybe Text -> DocumentLink
- Language.Haskell.LSP.TH.DataTypesJSON: DocumentLinkOptions :: Maybe Bool -> DocumentLinkOptions
- Language.Haskell.LSP.TH.DataTypesJSON: DocumentLinkParams :: TextDocumentIdentifier -> DocumentLinkParams
- Language.Haskell.LSP.TH.DataTypesJSON: DocumentLinkResolve :: ClientMethod
- Language.Haskell.LSP.TH.DataTypesJSON: DocumentOnTypeFormattingOptions :: Text -> Maybe [String] -> DocumentOnTypeFormattingOptions
- Language.Haskell.LSP.TH.DataTypesJSON: DocumentOnTypeFormattingParams :: TextDocumentIdentifier -> Position -> Text -> FormattingOptions -> DocumentOnTypeFormattingParams
- Language.Haskell.LSP.TH.DataTypesJSON: DocumentOnTypeFormattingRegistrationOptions :: Text -> Maybe (List String) -> DocumentOnTypeFormattingRegistrationOptions
- Language.Haskell.LSP.TH.DataTypesJSON: DocumentRangeFormattingParams :: TextDocumentIdentifier -> Range -> FormattingOptions -> DocumentRangeFormattingParams
- Language.Haskell.LSP.TH.DataTypesJSON: DocumentSymbol :: Text -> Maybe Text -> SymbolKind -> Maybe Bool -> Range -> Range -> Maybe (List DocumentSymbol) -> DocumentSymbol
- Language.Haskell.LSP.TH.DataTypesJSON: DocumentSymbolParams :: TextDocumentIdentifier -> DocumentSymbolParams
- Language.Haskell.LSP.TH.DataTypesJSON: DsError :: DiagnosticSeverity
- Language.Haskell.LSP.TH.DataTypesJSON: DsHint :: DiagnosticSeverity
- Language.Haskell.LSP.TH.DataTypesJSON: DsInfo :: DiagnosticSeverity
- Language.Haskell.LSP.TH.DataTypesJSON: DsWarning :: DiagnosticSeverity
- Language.Haskell.LSP.TH.DataTypesJSON: ExecuteCommandOptions :: List Text -> ExecuteCommandOptions
- Language.Haskell.LSP.TH.DataTypesJSON: ExecuteCommandParams :: Text -> Maybe (List Value) -> ExecuteCommandParams
- Language.Haskell.LSP.TH.DataTypesJSON: ExecuteCommandRegistrationOptions :: List Text -> ExecuteCommandRegistrationOptions
- Language.Haskell.LSP.TH.DataTypesJSON: Exit :: ClientMethod
- Language.Haskell.LSP.TH.DataTypesJSON: ExitParams :: ExitParams
- Language.Haskell.LSP.TH.DataTypesJSON: FcChanged :: FileChangeType
- Language.Haskell.LSP.TH.DataTypesJSON: FcCreated :: FileChangeType
- Language.Haskell.LSP.TH.DataTypesJSON: FcDeleted :: FileChangeType
- Language.Haskell.LSP.TH.DataTypesJSON: FileEvent :: Uri -> FileChangeType -> FileEvent
- Language.Haskell.LSP.TH.DataTypesJSON: FormattingOptions :: Int -> Bool -> FormattingOptions
- Language.Haskell.LSP.TH.DataTypesJSON: HkRead :: DocumentHighlightKind
- Language.Haskell.LSP.TH.DataTypesJSON: HkText :: DocumentHighlightKind
- Language.Haskell.LSP.TH.DataTypesJSON: HkWrite :: DocumentHighlightKind
- Language.Haskell.LSP.TH.DataTypesJSON: Hover :: List MarkedString -> Maybe Range -> Hover
- Language.Haskell.LSP.TH.DataTypesJSON: IdInt :: Int -> LspId
- Language.Haskell.LSP.TH.DataTypesJSON: IdRspInt :: Int -> LspIdRsp
- Language.Haskell.LSP.TH.DataTypesJSON: IdRspNull :: LspIdRsp
- Language.Haskell.LSP.TH.DataTypesJSON: IdRspString :: Text -> LspIdRsp
- Language.Haskell.LSP.TH.DataTypesJSON: IdString :: Text -> LspId
- Language.Haskell.LSP.TH.DataTypesJSON: Initialize :: ClientMethod
- Language.Haskell.LSP.TH.DataTypesJSON: InitializeError :: Bool -> InitializeError
- Language.Haskell.LSP.TH.DataTypesJSON: InitializeParams :: Maybe Int -> Maybe Text -> Maybe Uri -> Maybe Value -> ClientCapabilities -> Maybe Trace -> InitializeParams
- Language.Haskell.LSP.TH.DataTypesJSON: InitializeResponseCapabilities :: InitializeResponseCapabilitiesInner -> InitializeResponseCapabilities
- Language.Haskell.LSP.TH.DataTypesJSON: InitializeResponseCapabilitiesInner :: Maybe TDS -> Maybe Bool -> Maybe CompletionOptions -> Maybe SignatureHelpOptions -> Maybe Bool -> Maybe Bool -> Maybe Bool -> Maybe Bool -> Maybe Bool -> Maybe Bool -> Maybe CodeLensOptions -> Maybe Bool -> Maybe Bool -> Maybe DocumentOnTypeFormattingOptions -> Maybe Bool -> Maybe DocumentLinkOptions -> Maybe ExecuteCommandOptions -> Maybe Value -> InitializeResponseCapabilitiesInner
- Language.Haskell.LSP.TH.DataTypesJSON: Initialized :: ClientMethod
- Language.Haskell.LSP.TH.DataTypesJSON: InitializedParams :: InitializedParams
- Language.Haskell.LSP.TH.DataTypesJSON: InternalError :: ErrorCode
- Language.Haskell.LSP.TH.DataTypesJSON: InvalidParams :: ErrorCode
- Language.Haskell.LSP.TH.DataTypesJSON: InvalidRequest :: ErrorCode
- Language.Haskell.LSP.TH.DataTypesJSON: LanguageString :: Text -> Text -> LanguageString
- Language.Haskell.LSP.TH.DataTypesJSON: List :: [a] -> List a
- Language.Haskell.LSP.TH.DataTypesJSON: Location :: Uri -> Range -> Location
- Language.Haskell.LSP.TH.DataTypesJSON: LogMessageParams :: MessageType -> Text -> LogMessageParams
- Language.Haskell.LSP.TH.DataTypesJSON: MarkupContent :: MarkupKind -> Text -> MarkupContent
- Language.Haskell.LSP.TH.DataTypesJSON: MessageActionItem :: Text -> MessageActionItem
- Language.Haskell.LSP.TH.DataTypesJSON: MethodNotFound :: ErrorCode
- Language.Haskell.LSP.TH.DataTypesJSON: Misc :: Text -> ClientMethod
- Language.Haskell.LSP.TH.DataTypesJSON: MkMarkdown :: MarkupKind
- Language.Haskell.LSP.TH.DataTypesJSON: MkPlainText :: MarkupKind
- Language.Haskell.LSP.TH.DataTypesJSON: MtError :: MessageType
- Language.Haskell.LSP.TH.DataTypesJSON: MtInfo :: MessageType
- Language.Haskell.LSP.TH.DataTypesJSON: MtLog :: MessageType
- Language.Haskell.LSP.TH.DataTypesJSON: MtWarning :: MessageType
- Language.Haskell.LSP.TH.DataTypesJSON: MultiLoc :: [Location] -> LocationResponseParams
- Language.Haskell.LSP.TH.DataTypesJSON: NotificationMessage :: Text -> m -> a -> NotificationMessage m a
- Language.Haskell.LSP.TH.DataTypesJSON: ParameterInformation :: Text -> Maybe Text -> ParameterInformation
- Language.Haskell.LSP.TH.DataTypesJSON: ParseError :: ErrorCode
- Language.Haskell.LSP.TH.DataTypesJSON: PlainString :: Text -> MarkedString
- Language.Haskell.LSP.TH.DataTypesJSON: PlainText :: InsertTextFormat
- Language.Haskell.LSP.TH.DataTypesJSON: Position :: Int -> Int -> Position
- Language.Haskell.LSP.TH.DataTypesJSON: PublishDiagnosticsParams :: Uri -> List Diagnostic -> PublishDiagnosticsParams
- Language.Haskell.LSP.TH.DataTypesJSON: Range :: Position -> Position -> Range
- Language.Haskell.LSP.TH.DataTypesJSON: ReferenceContext :: Bool -> ReferenceContext
- Language.Haskell.LSP.TH.DataTypesJSON: ReferenceParams :: TextDocumentIdentifier -> Position -> ReferenceContext -> ReferenceParams
- Language.Haskell.LSP.TH.DataTypesJSON: Registration :: Text -> ClientMethod -> Maybe Value -> Registration
- Language.Haskell.LSP.TH.DataTypesJSON: RegistrationParams :: List Registration -> RegistrationParams
- Language.Haskell.LSP.TH.DataTypesJSON: RenameParams :: TextDocumentIdentifier -> Position -> Text -> RenameParams
- Language.Haskell.LSP.TH.DataTypesJSON: RequestCancelled :: ErrorCode
- Language.Haskell.LSP.TH.DataTypesJSON: RequestMessage :: Text -> LspId -> m -> req -> RequestMessage m req resp
- Language.Haskell.LSP.TH.DataTypesJSON: ResponseError :: ErrorCode -> Text -> Maybe Value -> ResponseError
- Language.Haskell.LSP.TH.DataTypesJSON: ResponseMessage :: Text -> LspIdRsp -> Maybe a -> Maybe ResponseError -> ResponseMessage a
- Language.Haskell.LSP.TH.DataTypesJSON: SaveAfterDelay :: TextDocumentSaveReason
- Language.Haskell.LSP.TH.DataTypesJSON: SaveFocusOut :: TextDocumentSaveReason
- Language.Haskell.LSP.TH.DataTypesJSON: SaveManual :: TextDocumentSaveReason
- Language.Haskell.LSP.TH.DataTypesJSON: SaveOptions :: Maybe Bool -> SaveOptions
- Language.Haskell.LSP.TH.DataTypesJSON: ServerErrorEnd :: ErrorCode
- Language.Haskell.LSP.TH.DataTypesJSON: ServerErrorStart :: ErrorCode
- Language.Haskell.LSP.TH.DataTypesJSON: ServerNotInitialized :: ErrorCode
- Language.Haskell.LSP.TH.DataTypesJSON: ShowMessageParams :: MessageType -> Text -> ShowMessageParams
- Language.Haskell.LSP.TH.DataTypesJSON: ShowMessageRequestParams :: MessageType -> Text -> Maybe [MessageActionItem] -> ShowMessageRequestParams
- Language.Haskell.LSP.TH.DataTypesJSON: Shutdown :: ClientMethod
- Language.Haskell.LSP.TH.DataTypesJSON: SignatureHelp :: List SignatureInformation -> Maybe Int -> Maybe Int -> SignatureHelp
- Language.Haskell.LSP.TH.DataTypesJSON: SignatureHelpOptions :: Maybe [String] -> SignatureHelpOptions
- Language.Haskell.LSP.TH.DataTypesJSON: SignatureHelpRegistrationOptions :: Maybe DocumentSelector -> Maybe (List String) -> SignatureHelpRegistrationOptions
- Language.Haskell.LSP.TH.DataTypesJSON: SignatureInformation :: Text -> Maybe Text -> Maybe [ParameterInformation] -> SignatureInformation
- Language.Haskell.LSP.TH.DataTypesJSON: SingleLoc :: Location -> LocationResponseParams
- Language.Haskell.LSP.TH.DataTypesJSON: SkArray :: SymbolKind
- Language.Haskell.LSP.TH.DataTypesJSON: SkBoolean :: SymbolKind
- Language.Haskell.LSP.TH.DataTypesJSON: SkClass :: SymbolKind
- Language.Haskell.LSP.TH.DataTypesJSON: SkConstant :: SymbolKind
- Language.Haskell.LSP.TH.DataTypesJSON: SkConstructor :: SymbolKind
- Language.Haskell.LSP.TH.DataTypesJSON: SkEnum :: SymbolKind
- Language.Haskell.LSP.TH.DataTypesJSON: SkEnumMember :: SymbolKind
- Language.Haskell.LSP.TH.DataTypesJSON: SkEvent :: SymbolKind
- Language.Haskell.LSP.TH.DataTypesJSON: SkField :: SymbolKind
- Language.Haskell.LSP.TH.DataTypesJSON: SkFile :: SymbolKind
- Language.Haskell.LSP.TH.DataTypesJSON: SkFunction :: SymbolKind
- Language.Haskell.LSP.TH.DataTypesJSON: SkInterface :: SymbolKind
- Language.Haskell.LSP.TH.DataTypesJSON: SkKey :: SymbolKind
- Language.Haskell.LSP.TH.DataTypesJSON: SkMethod :: SymbolKind
- Language.Haskell.LSP.TH.DataTypesJSON: SkModule :: SymbolKind
- Language.Haskell.LSP.TH.DataTypesJSON: SkNamespace :: SymbolKind
- Language.Haskell.LSP.TH.DataTypesJSON: SkNull :: SymbolKind
- Language.Haskell.LSP.TH.DataTypesJSON: SkNumber :: SymbolKind
- Language.Haskell.LSP.TH.DataTypesJSON: SkObject :: SymbolKind
- Language.Haskell.LSP.TH.DataTypesJSON: SkOperator :: SymbolKind
- Language.Haskell.LSP.TH.DataTypesJSON: SkPackage :: SymbolKind
- Language.Haskell.LSP.TH.DataTypesJSON: SkProperty :: SymbolKind
- Language.Haskell.LSP.TH.DataTypesJSON: SkString :: SymbolKind
- Language.Haskell.LSP.TH.DataTypesJSON: SkStruct :: SymbolKind
- Language.Haskell.LSP.TH.DataTypesJSON: SkTypeParameter :: SymbolKind
- Language.Haskell.LSP.TH.DataTypesJSON: SkUnknown :: Scientific -> SymbolKind
- Language.Haskell.LSP.TH.DataTypesJSON: SkVariable :: SymbolKind
- Language.Haskell.LSP.TH.DataTypesJSON: Snippet :: InsertTextFormat
- Language.Haskell.LSP.TH.DataTypesJSON: SymbolInformation :: Text -> SymbolKind -> Maybe Bool -> Location -> Maybe Text -> SymbolInformation
- Language.Haskell.LSP.TH.DataTypesJSON: TDSKind :: TextDocumentSyncKind -> TDS
- Language.Haskell.LSP.TH.DataTypesJSON: TDSOptions :: TextDocumentSyncOptions -> TDS
- Language.Haskell.LSP.TH.DataTypesJSON: TdSyncFull :: TextDocumentSyncKind
- Language.Haskell.LSP.TH.DataTypesJSON: TdSyncIncremental :: TextDocumentSyncKind
- Language.Haskell.LSP.TH.DataTypesJSON: TdSyncNone :: TextDocumentSyncKind
- Language.Haskell.LSP.TH.DataTypesJSON: TelemetryEvent :: ServerMethod
- Language.Haskell.LSP.TH.DataTypesJSON: TextDocumentChangeRegistrationOptions :: Maybe DocumentSelector -> TextDocumentSyncKind -> TextDocumentChangeRegistrationOptions
- Language.Haskell.LSP.TH.DataTypesJSON: TextDocumentCodeAction :: ClientMethod
- Language.Haskell.LSP.TH.DataTypesJSON: TextDocumentCodeLens :: ClientMethod
- Language.Haskell.LSP.TH.DataTypesJSON: TextDocumentCompletion :: ClientMethod
- Language.Haskell.LSP.TH.DataTypesJSON: TextDocumentContentChangeEvent :: Maybe Range -> Maybe Int -> Text -> TextDocumentContentChangeEvent
- Language.Haskell.LSP.TH.DataTypesJSON: TextDocumentDefinition :: ClientMethod
- Language.Haskell.LSP.TH.DataTypesJSON: TextDocumentDidChange :: ClientMethod
- Language.Haskell.LSP.TH.DataTypesJSON: TextDocumentDidClose :: ClientMethod
- Language.Haskell.LSP.TH.DataTypesJSON: TextDocumentDidOpen :: ClientMethod
- Language.Haskell.LSP.TH.DataTypesJSON: TextDocumentDidSave :: ClientMethod
- Language.Haskell.LSP.TH.DataTypesJSON: TextDocumentDocumentHighlight :: ClientMethod
- Language.Haskell.LSP.TH.DataTypesJSON: TextDocumentDocumentLink :: ClientMethod
- Language.Haskell.LSP.TH.DataTypesJSON: TextDocumentDocumentSymbol :: ClientMethod
- Language.Haskell.LSP.TH.DataTypesJSON: TextDocumentEdit :: VersionedTextDocumentIdentifier -> List TextEdit -> TextDocumentEdit
- Language.Haskell.LSP.TH.DataTypesJSON: TextDocumentFormatting :: ClientMethod
- Language.Haskell.LSP.TH.DataTypesJSON: TextDocumentHover :: ClientMethod
- Language.Haskell.LSP.TH.DataTypesJSON: TextDocumentIdentifier :: Uri -> TextDocumentIdentifier
- Language.Haskell.LSP.TH.DataTypesJSON: TextDocumentImplementation :: ClientMethod
- Language.Haskell.LSP.TH.DataTypesJSON: TextDocumentItem :: Uri -> Text -> Int -> Text -> TextDocumentItem
- Language.Haskell.LSP.TH.DataTypesJSON: TextDocumentOnTypeFormatting :: ClientMethod
- Language.Haskell.LSP.TH.DataTypesJSON: TextDocumentPositionParams :: TextDocumentIdentifier -> Position -> TextDocumentPositionParams
- Language.Haskell.LSP.TH.DataTypesJSON: TextDocumentPublishDiagnostics :: ServerMethod
- Language.Haskell.LSP.TH.DataTypesJSON: TextDocumentRangeFormatting :: ClientMethod
- Language.Haskell.LSP.TH.DataTypesJSON: TextDocumentReferences :: ClientMethod
- Language.Haskell.LSP.TH.DataTypesJSON: TextDocumentRegistrationOptions :: Maybe DocumentSelector -> TextDocumentRegistrationOptions
- Language.Haskell.LSP.TH.DataTypesJSON: TextDocumentRename :: ClientMethod
- Language.Haskell.LSP.TH.DataTypesJSON: TextDocumentSignatureHelp :: ClientMethod
- Language.Haskell.LSP.TH.DataTypesJSON: TextDocumentSyncOptions :: Maybe Bool -> Maybe TextDocumentSyncKind -> Maybe Bool -> Maybe Bool -> Maybe SaveOptions -> TextDocumentSyncOptions
- Language.Haskell.LSP.TH.DataTypesJSON: TextDocumentWillSave :: ClientMethod
- Language.Haskell.LSP.TH.DataTypesJSON: TextDocumentWillSaveWaitUntil :: ClientMethod
- Language.Haskell.LSP.TH.DataTypesJSON: TextEdit :: Range -> Text -> TextEdit
- Language.Haskell.LSP.TH.DataTypesJSON: TraceMessages :: Trace
- Language.Haskell.LSP.TH.DataTypesJSON: TraceNotification :: TraceParams -> TraceNotification
- Language.Haskell.LSP.TH.DataTypesJSON: TraceOff :: Trace
- Language.Haskell.LSP.TH.DataTypesJSON: TraceParams :: Text -> TraceParams
- Language.Haskell.LSP.TH.DataTypesJSON: TraceVerbose :: Trace
- Language.Haskell.LSP.TH.DataTypesJSON: UnknownErrorCode :: ErrorCode
- Language.Haskell.LSP.TH.DataTypesJSON: Unregistration :: Text -> Text -> Unregistration
- Language.Haskell.LSP.TH.DataTypesJSON: UnregistrationParams :: List Unregistration -> UnregistrationParams
- Language.Haskell.LSP.TH.DataTypesJSON: Uri :: Text -> Uri
- Language.Haskell.LSP.TH.DataTypesJSON: VersionedTextDocumentIdentifier :: Uri -> TextDocumentVersion -> VersionedTextDocumentIdentifier
- Language.Haskell.LSP.TH.DataTypesJSON: WillSaveTextDocumentParams :: TextDocumentIdentifier -> TextDocumentSaveReason -> WillSaveTextDocumentParams
- Language.Haskell.LSP.TH.DataTypesJSON: WindowLogMessage :: ServerMethod
- Language.Haskell.LSP.TH.DataTypesJSON: WindowShowMessage :: ServerMethod
- Language.Haskell.LSP.TH.DataTypesJSON: WindowShowMessageRequest :: ServerMethod
- Language.Haskell.LSP.TH.DataTypesJSON: WorkspaceApplyEdit :: ServerMethod
- Language.Haskell.LSP.TH.DataTypesJSON: WorkspaceDidChangeConfiguration :: ClientMethod
- Language.Haskell.LSP.TH.DataTypesJSON: WorkspaceDidChangeWatchedFiles :: ClientMethod
- Language.Haskell.LSP.TH.DataTypesJSON: WorkspaceEdit :: Maybe WorkspaceEditMap -> Maybe (List TextDocumentEdit) -> WorkspaceEdit
- Language.Haskell.LSP.TH.DataTypesJSON: WorkspaceExecuteCommand :: ClientMethod
- Language.Haskell.LSP.TH.DataTypesJSON: WorkspaceSymbol :: ClientMethod
- Language.Haskell.LSP.TH.DataTypesJSON: WorkspaceSymbolParams :: Text -> WorkspaceSymbolParams
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_actions:ShowMessageRequestParams] :: ShowMessageRequestParams -> Maybe [MessageActionItem]
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_activeParameter:SignatureHelp] :: SignatureHelp -> Maybe Int
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_activeSignature:SignatureHelp] :: SignatureHelp -> Maybe Int
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_additionalTextEdits:CompletionItem] :: CompletionItem -> Maybe (List TextEdit)
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_applied:ApplyWorkspaceEditResponseBody] :: ApplyWorkspaceEditResponseBody -> Bool
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_arguments:ExecuteCommandParams] :: ExecuteCommandParams -> Maybe (List Value)
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_capabilities:InitializeParams] :: InitializeParams -> ClientCapabilities
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_capabilities:InitializeResponseCapabilities] :: InitializeResponseCapabilities -> InitializeResponseCapabilitiesInner
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_ch:DocumentOnTypeFormattingParams] :: DocumentOnTypeFormattingParams -> Text
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_change:TextDocumentSyncOptions] :: TextDocumentSyncOptions -> Maybe TextDocumentSyncKind
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_changes:DidChangeWatchedFilesParams] :: DidChangeWatchedFilesParams -> List FileEvent
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_changes:WorkspaceEdit] :: WorkspaceEdit -> Maybe WorkspaceEditMap
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_children:DocumentSymbol] :: DocumentSymbol -> Maybe (List DocumentSymbol)
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_code:Diagnostic] :: Diagnostic -> Maybe Text
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_code:ResponseError] :: ResponseError -> ErrorCode
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_codeActionProvider:InitializeResponseCapabilitiesInner] :: InitializeResponseCapabilitiesInner -> Maybe Bool
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_codeLensProvider:InitializeResponseCapabilitiesInner] :: InitializeResponseCapabilitiesInner -> Maybe CodeLensOptions
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_command:CodeAction] :: CodeAction -> Maybe Command
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_command:CodeLens] :: CodeLens -> Maybe Command
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_command:CompletionItem] :: CompletionItem -> Maybe Command
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_command:ExecuteCommandParams] :: ExecuteCommandParams -> Text
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_commands:ExecuteCommandOptions] :: ExecuteCommandOptions -> List Text
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_commands:ExecuteCommandRegistrationOptions] :: ExecuteCommandRegistrationOptions -> List Text
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_completionProvider:InitializeResponseCapabilitiesInner] :: InitializeResponseCapabilitiesInner -> Maybe CompletionOptions
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_containerName:SymbolInformation] :: SymbolInformation -> Maybe Text
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_contentChanges:DidChangeTextDocumentParams] :: DidChangeTextDocumentParams -> List TextDocumentContentChangeEvent
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_contents:Hover] :: Hover -> List MarkedString
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_context:CodeActionParams] :: CodeActionParams -> CodeActionContext
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_context:ReferenceParams] :: ReferenceParams -> ReferenceContext
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_definitionProvider:InitializeResponseCapabilitiesInner] :: InitializeResponseCapabilitiesInner -> Maybe Bool
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_deprecated:DocumentSymbol] :: DocumentSymbol -> Maybe Bool
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_deprecated:SymbolInformation] :: SymbolInformation -> Maybe Bool
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_detail:CompletionItem] :: CompletionItem -> Maybe Text
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_detail:DocumentSymbol] :: DocumentSymbol -> Maybe Text
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_diagnostics:CodeActionContext] :: CodeActionContext -> List Diagnostic
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_diagnostics:CodeAction] :: CodeAction -> Maybe (List Diagnostic)
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_diagnostics:PublishDiagnosticsParams] :: PublishDiagnosticsParams -> List Diagnostic
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_documentChanges:WorkspaceEdit] :: WorkspaceEdit -> Maybe (List TextDocumentEdit)
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_documentFormattingProvider:InitializeResponseCapabilitiesInner] :: InitializeResponseCapabilitiesInner -> Maybe Bool
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_documentHighlightProvider:InitializeResponseCapabilitiesInner] :: InitializeResponseCapabilitiesInner -> Maybe Bool
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_documentLinkProvider:InitializeResponseCapabilitiesInner] :: InitializeResponseCapabilitiesInner -> Maybe DocumentLinkOptions
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_documentOnTypeFormattingProvider:InitializeResponseCapabilitiesInner] :: InitializeResponseCapabilitiesInner -> Maybe DocumentOnTypeFormattingOptions
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_documentRangeFormattingProvider:InitializeResponseCapabilitiesInner] :: InitializeResponseCapabilitiesInner -> Maybe Bool
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_documentSelector:CodeLensRegistrationOptions] :: CodeLensRegistrationOptions -> Maybe DocumentSelector
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_documentSelector:CompletionRegistrationOptions] :: CompletionRegistrationOptions -> Maybe DocumentSelector
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_documentSelector:SignatureHelpRegistrationOptions] :: SignatureHelpRegistrationOptions -> Maybe DocumentSelector
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_documentSelector:TextDocumentChangeRegistrationOptions] :: TextDocumentChangeRegistrationOptions -> Maybe DocumentSelector
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_documentSelector:TextDocumentRegistrationOptions] :: TextDocumentRegistrationOptions -> Maybe DocumentSelector
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_documentSymbolProvider:InitializeResponseCapabilitiesInner] :: InitializeResponseCapabilitiesInner -> Maybe Bool
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_documentation:CompletionItem] :: CompletionItem -> Maybe Text
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_documentation:ParameterInformation] :: ParameterInformation -> Maybe Text
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_documentation:SignatureInformation] :: SignatureInformation -> Maybe Text
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_edit:ApplyWorkspaceEditParams] :: ApplyWorkspaceEditParams -> WorkspaceEdit
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_edit:CodeAction] :: CodeAction -> Maybe WorkspaceEdit
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_edits:TextDocumentEdit] :: TextDocumentEdit -> List TextEdit
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_error:ResponseMessage] :: ResponseMessage a -> Maybe ResponseError
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_executeCommandProvider:InitializeResponseCapabilitiesInner] :: InitializeResponseCapabilitiesInner -> Maybe ExecuteCommandOptions
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_experimental:InitializeResponseCapabilitiesInner] :: InitializeResponseCapabilitiesInner -> Maybe Value
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_filterText:CompletionItem] :: CompletionItem -> Maybe Text
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_firstTriggerCharacter:DocumentOnTypeFormattingOptions] :: DocumentOnTypeFormattingOptions -> Text
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_firstTriggerCharacter:DocumentOnTypeFormattingRegistrationOptions] :: DocumentOnTypeFormattingRegistrationOptions -> Text
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_hoverProvider:InitializeResponseCapabilitiesInner] :: InitializeResponseCapabilitiesInner -> Maybe Bool
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_id:CancelParams] :: CancelParams -> LspId
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_id:Registration] :: Registration -> Text
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_id:RequestMessage] :: RequestMessage m req resp -> LspId
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_id:ResponseMessage] :: ResponseMessage a -> LspIdRsp
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_id:Unregistration] :: Unregistration -> Text
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_includeDeclaration:ReferenceContext] :: ReferenceContext -> Bool
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_includeText:SaveOptions] :: SaveOptions -> Maybe Bool
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_initializationOptions:InitializeParams] :: InitializeParams -> Maybe Value
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_insertSpaces:FormattingOptions] :: FormattingOptions -> Bool
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_insertText:CompletionItem] :: CompletionItem -> Maybe Text
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_insertTextFormat:CompletionItem] :: CompletionItem -> Maybe InsertTextFormat
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_isIncomplete:CompletionListType] :: CompletionListType -> Bool
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_items:CompletionListType] :: CompletionListType -> List CompletionItem
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_jsonrpc:NotificationMessage] :: NotificationMessage m a -> Text
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_jsonrpc:RequestMessage] :: RequestMessage m req resp -> Text
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_jsonrpc:ResponseMessage] :: ResponseMessage a -> Text
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_kind:CodeAction] :: CodeAction -> Maybe CodeActionKind
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_kind:CompletionItem] :: CompletionItem -> Maybe CompletionItemKind
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_kind:DocumentHighlight] :: DocumentHighlight -> Maybe DocumentHighlightKind
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_kind:DocumentSymbol] :: DocumentSymbol -> SymbolKind
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_kind:MarkupContent] :: MarkupContent -> MarkupKind
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_kind:SymbolInformation] :: SymbolInformation -> SymbolKind
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_label:CompletionItem] :: CompletionItem -> Text
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_label:ParameterInformation] :: ParameterInformation -> Text
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_label:SignatureInformation] :: SignatureInformation -> Text
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_language:LanguageString] :: LanguageString -> Text
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_languageId:TextDocumentItem] :: TextDocumentItem -> Text
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_location:DiagnosticRelatedInformation] :: DiagnosticRelatedInformation -> Location
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_location:SymbolInformation] :: SymbolInformation -> Location
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_message:DiagnosticRelatedInformation] :: DiagnosticRelatedInformation -> Text
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_message:Diagnostic] :: Diagnostic -> Text
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_message:LogMessageParams] :: LogMessageParams -> Text
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_message:ResponseError] :: ResponseError -> Text
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_message:ShowMessageParams] :: ShowMessageParams -> Text
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_message:ShowMessageRequestParams] :: ShowMessageRequestParams -> Text
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_method:NotificationMessage] :: NotificationMessage m a -> m
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_method:Registration] :: Registration -> ClientMethod
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_method:RequestMessage] :: RequestMessage m req resp -> m
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_method:Unregistration] :: Unregistration -> Text
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_moreTriggerCharacter:DocumentOnTypeFormattingOptions] :: DocumentOnTypeFormattingOptions -> Maybe [String]
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_moreTriggerCharacter:DocumentOnTypeFormattingRegistrationOptions] :: DocumentOnTypeFormattingRegistrationOptions -> Maybe (List String)
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_name:DocumentSymbol] :: DocumentSymbol -> Text
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_name:SymbolInformation] :: SymbolInformation -> Text
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_newName:RenameParams] :: RenameParams -> Text
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_newText:TextEdit] :: TextEdit -> Text
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_openClose:TextDocumentSyncOptions] :: TextDocumentSyncOptions -> Maybe Bool
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_options:DocumentFormattingParams] :: DocumentFormattingParams -> FormattingOptions
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_options:DocumentOnTypeFormattingParams] :: DocumentOnTypeFormattingParams -> FormattingOptions
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_options:DocumentRangeFormattingParams] :: DocumentRangeFormattingParams -> FormattingOptions
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_parameters:SignatureInformation] :: SignatureInformation -> Maybe [ParameterInformation]
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_params:NotificationMessage] :: NotificationMessage m a -> a
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_params:RequestMessage] :: RequestMessage m req resp -> req
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_params:TraceNotification] :: TraceNotification -> TraceParams
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_position:DocumentOnTypeFormattingParams] :: DocumentOnTypeFormattingParams -> Position
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_position:ReferenceParams] :: ReferenceParams -> Position
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_position:RenameParams] :: RenameParams -> Position
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_position:TextDocumentPositionParams] :: TextDocumentPositionParams -> Position
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_processId:InitializeParams] :: InitializeParams -> Maybe Int
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_query:WorkspaceSymbolParams] :: WorkspaceSymbolParams -> Text
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_range:CodeActionParams] :: CodeActionParams -> Range
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_range:CodeLens] :: CodeLens -> Range
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_range:Diagnostic] :: Diagnostic -> Range
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_range:DocumentHighlight] :: DocumentHighlight -> Range
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_range:DocumentLink] :: DocumentLink -> Range
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_range:DocumentRangeFormattingParams] :: DocumentRangeFormattingParams -> Range
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_range:DocumentSymbol] :: DocumentSymbol -> Range
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_range:Hover] :: Hover -> Maybe Range
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_range:TextDocumentContentChangeEvent] :: TextDocumentContentChangeEvent -> Maybe Range
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_range:TextEdit] :: TextEdit -> Range
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_rangeLength:TextDocumentContentChangeEvent] :: TextDocumentContentChangeEvent -> Maybe Int
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_reason:WillSaveTextDocumentParams] :: WillSaveTextDocumentParams -> TextDocumentSaveReason
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_referencesProvider:InitializeResponseCapabilitiesInner] :: InitializeResponseCapabilitiesInner -> Maybe Bool
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_registerOptions:Registration] :: Registration -> Maybe Value
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_registrations:RegistrationParams] :: RegistrationParams -> List Registration
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_relatedInformation:Diagnostic] :: Diagnostic -> Maybe (List DiagnosticRelatedInformation)
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_renameProvider:InitializeResponseCapabilitiesInner] :: InitializeResponseCapabilitiesInner -> Maybe Bool
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_resolveProvider:CodeLensOptions] :: CodeLensOptions -> Maybe Bool
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_resolveProvider:CodeLensRegistrationOptions] :: CodeLensRegistrationOptions -> Maybe Bool
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_resolveProvider:CompletionOptions] :: CompletionOptions -> Maybe Bool
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_resolveProvider:CompletionRegistrationOptions] :: CompletionRegistrationOptions -> Maybe Bool
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_resolveProvider:DocumentLinkOptions] :: DocumentLinkOptions -> Maybe Bool
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_result:ResponseMessage] :: ResponseMessage a -> Maybe a
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_retry:InitializeError] :: InitializeError -> Bool
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_rootPath:InitializeParams] :: InitializeParams -> Maybe Text
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_rootUri:InitializeParams] :: InitializeParams -> Maybe Uri
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_save:TextDocumentSyncOptions] :: TextDocumentSyncOptions -> Maybe SaveOptions
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_selectionRange:DocumentSymbol] :: DocumentSymbol -> Range
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_settings:DidChangeConfigurationParams] :: DidChangeConfigurationParams -> Value
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_severity:Diagnostic] :: Diagnostic -> Maybe DiagnosticSeverity
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_signatureHelpProvider:InitializeResponseCapabilitiesInner] :: InitializeResponseCapabilitiesInner -> Maybe SignatureHelpOptions
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_signatures:SignatureHelp] :: SignatureHelp -> List SignatureInformation
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_sortText:CompletionItem] :: CompletionItem -> Maybe Text
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_source:Diagnostic] :: Diagnostic -> Maybe DiagnosticSource
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_syncKind:TextDocumentChangeRegistrationOptions] :: TextDocumentChangeRegistrationOptions -> TextDocumentSyncKind
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_tabSize:FormattingOptions] :: FormattingOptions -> Int
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_target:DocumentLink] :: DocumentLink -> Maybe Text
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_text:TextDocumentContentChangeEvent] :: TextDocumentContentChangeEvent -> Text
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_text:TextDocumentItem] :: TextDocumentItem -> Text
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_textDocument:CodeActionParams] :: CodeActionParams -> TextDocumentIdentifier
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_textDocument:CodeLensParams] :: CodeLensParams -> TextDocumentIdentifier
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_textDocument:DidChangeTextDocumentParams] :: DidChangeTextDocumentParams -> VersionedTextDocumentIdentifier
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_textDocument:DidCloseTextDocumentParams] :: DidCloseTextDocumentParams -> TextDocumentIdentifier
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_textDocument:DidOpenTextDocumentParams] :: DidOpenTextDocumentParams -> TextDocumentItem
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_textDocument:DidSaveTextDocumentParams] :: DidSaveTextDocumentParams -> TextDocumentIdentifier
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_textDocument:DocumentFormattingParams] :: DocumentFormattingParams -> TextDocumentIdentifier
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_textDocument:DocumentLinkParams] :: DocumentLinkParams -> TextDocumentIdentifier
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_textDocument:DocumentOnTypeFormattingParams] :: DocumentOnTypeFormattingParams -> TextDocumentIdentifier
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_textDocument:DocumentRangeFormattingParams] :: DocumentRangeFormattingParams -> TextDocumentIdentifier
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_textDocument:DocumentSymbolParams] :: DocumentSymbolParams -> TextDocumentIdentifier
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_textDocument:ReferenceParams] :: ReferenceParams -> TextDocumentIdentifier
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_textDocument:RenameParams] :: RenameParams -> TextDocumentIdentifier
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_textDocument:TextDocumentEdit] :: TextDocumentEdit -> VersionedTextDocumentIdentifier
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_textDocument:TextDocumentPositionParams] :: TextDocumentPositionParams -> TextDocumentIdentifier
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_textDocument:WillSaveTextDocumentParams] :: WillSaveTextDocumentParams -> TextDocumentIdentifier
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_textDocumentSync:InitializeResponseCapabilitiesInner] :: InitializeResponseCapabilitiesInner -> Maybe TDS
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_textEdit:CompletionItem] :: CompletionItem -> Maybe TextEdit
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_title:CodeAction] :: CodeAction -> Text
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_title:MessageActionItem] :: MessageActionItem -> Text
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_trace:InitializeParams] :: InitializeParams -> Maybe Trace
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_triggerCharacters:CompletionOptions] :: CompletionOptions -> Maybe [String]
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_triggerCharacters:CompletionRegistrationOptions] :: CompletionRegistrationOptions -> Maybe (List String)
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_triggerCharacters:SignatureHelpOptions] :: SignatureHelpOptions -> Maybe [String]
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_triggerCharacters:SignatureHelpRegistrationOptions] :: SignatureHelpRegistrationOptions -> Maybe (List String)
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_unregistrations:UnregistrationParams] :: UnregistrationParams -> List Unregistration
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_uri:FileEvent] :: FileEvent -> Uri
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_uri:PublishDiagnosticsParams] :: PublishDiagnosticsParams -> Uri
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_uri:TextDocumentIdentifier] :: TextDocumentIdentifier -> Uri
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_uri:TextDocumentItem] :: TextDocumentItem -> Uri
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_uri:VersionedTextDocumentIdentifier] :: VersionedTextDocumentIdentifier -> Uri
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_value:LanguageString] :: LanguageString -> Text
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_value:MarkupContent] :: MarkupContent -> Text
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_value:TraceParams] :: TraceParams -> Text
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_version:TextDocumentItem] :: TextDocumentItem -> Int
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_version:VersionedTextDocumentIdentifier] :: VersionedTextDocumentIdentifier -> TextDocumentVersion
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_willSave:TextDocumentSyncOptions] :: TextDocumentSyncOptions -> Maybe Bool
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_willSaveWaitUntil:TextDocumentSyncOptions] :: TextDocumentSyncOptions -> Maybe Bool
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_workspaceSymbolProvider:InitializeResponseCapabilitiesInner] :: InitializeResponseCapabilitiesInner -> Maybe Bool
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_xdata:CodeLens] :: CodeLens -> Maybe Value
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_xdata:CompletionItem] :: CompletionItem -> Maybe Value
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_xdata:ResponseError] :: ResponseError -> Maybe Value
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_xtype:FileEvent] :: FileEvent -> FileChangeType
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_xtype:LogMessageParams] :: LogMessageParams -> MessageType
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_xtype:ShowMessageParams] :: ShowMessageParams -> MessageType
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:_xtype:ShowMessageRequestParams] :: ShowMessageRequestParams -> MessageType
- Language.Haskell.LSP.TH.DataTypesJSON: [$sel:only:CodeActionContext] :: CodeActionContext -> Maybe (List CodeActionKind)
- Language.Haskell.LSP.TH.DataTypesJSON: [_arguments] :: Command -> Maybe (List Value)
- Language.Haskell.LSP.TH.DataTypesJSON: [_character] :: Position -> Int
- Language.Haskell.LSP.TH.DataTypesJSON: [_command] :: Command -> Text
- Language.Haskell.LSP.TH.DataTypesJSON: [_end] :: Range -> Position
- Language.Haskell.LSP.TH.DataTypesJSON: [_language] :: DocumentFilter -> Text
- Language.Haskell.LSP.TH.DataTypesJSON: [_line] :: Position -> Int
- Language.Haskell.LSP.TH.DataTypesJSON: [_pattern] :: DocumentFilter -> Maybe Text
- Language.Haskell.LSP.TH.DataTypesJSON: [_range] :: Location -> Range
- Language.Haskell.LSP.TH.DataTypesJSON: [_scheme] :: DocumentFilter -> Text
- Language.Haskell.LSP.TH.DataTypesJSON: [_start] :: Range -> Position
- Language.Haskell.LSP.TH.DataTypesJSON: [_title] :: Command -> Text
- Language.Haskell.LSP.TH.DataTypesJSON: [_uri] :: Location -> Uri
- Language.Haskell.LSP.TH.DataTypesJSON: [getUri] :: Uri -> Text
- Language.Haskell.LSP.TH.DataTypesJSON: actions :: HasActions s a => Lens' s a
- Language.Haskell.LSP.TH.DataTypesJSON: activeParameter :: HasActiveParameter s a => Lens' s a
- Language.Haskell.LSP.TH.DataTypesJSON: activeSignature :: HasActiveSignature s a => Lens' s a
- Language.Haskell.LSP.TH.DataTypesJSON: additionalTextEdits :: HasAdditionalTextEdits s a => Lens' s a
- Language.Haskell.LSP.TH.DataTypesJSON: applied :: HasApplied s a => Lens' s a
- Language.Haskell.LSP.TH.DataTypesJSON: arguments :: HasArguments s a => Lens' s a
- Language.Haskell.LSP.TH.DataTypesJSON: capabilities :: HasCapabilities s a => Lens' s a
- Language.Haskell.LSP.TH.DataTypesJSON: ch :: HasCh s a => Lens' s a
- Language.Haskell.LSP.TH.DataTypesJSON: change :: HasChange s a => Lens' s a
- Language.Haskell.LSP.TH.DataTypesJSON: changes :: HasChanges s a => Lens' s a
- Language.Haskell.LSP.TH.DataTypesJSON: character :: HasCharacter s a => Lens' s a
- Language.Haskell.LSP.TH.DataTypesJSON: children :: HasChildren s a => Lens' s a
- Language.Haskell.LSP.TH.DataTypesJSON: class HasActions s a | s -> a
- Language.Haskell.LSP.TH.DataTypesJSON: class HasActiveParameter s a | s -> a
- Language.Haskell.LSP.TH.DataTypesJSON: class HasActiveSignature s a | s -> a
- Language.Haskell.LSP.TH.DataTypesJSON: class HasAdditionalTextEdits s a | s -> a
- Language.Haskell.LSP.TH.DataTypesJSON: class HasApplied s a | s -> a
- Language.Haskell.LSP.TH.DataTypesJSON: class HasArguments s a | s -> a
- Language.Haskell.LSP.TH.DataTypesJSON: class HasCapabilities s a | s -> a
- Language.Haskell.LSP.TH.DataTypesJSON: class HasCh s a | s -> a
- Language.Haskell.LSP.TH.DataTypesJSON: class HasChange s a | s -> a
- Language.Haskell.LSP.TH.DataTypesJSON: class HasChanges s a | s -> a
- Language.Haskell.LSP.TH.DataTypesJSON: class HasCharacter s a | s -> a
- Language.Haskell.LSP.TH.DataTypesJSON: class HasChildren s a | s -> a
- Language.Haskell.LSP.TH.DataTypesJSON: class HasCode s a | s -> a
- Language.Haskell.LSP.TH.DataTypesJSON: class HasCodeActionProvider s a | s -> a
- Language.Haskell.LSP.TH.DataTypesJSON: class HasCodeLensProvider s a | s -> a
- Language.Haskell.LSP.TH.DataTypesJSON: class HasCommand s a | s -> a
- Language.Haskell.LSP.TH.DataTypesJSON: class HasCommands s a | s -> a
- Language.Haskell.LSP.TH.DataTypesJSON: class HasCompletionProvider s a | s -> a
- Language.Haskell.LSP.TH.DataTypesJSON: class HasContainerName s a | s -> a
- Language.Haskell.LSP.TH.DataTypesJSON: class HasContentChanges s a | s -> a
- Language.Haskell.LSP.TH.DataTypesJSON: class HasContents s a | s -> a
- Language.Haskell.LSP.TH.DataTypesJSON: class HasContext s a | s -> a
- Language.Haskell.LSP.TH.DataTypesJSON: class HasDefinitionProvider s a | s -> a
- Language.Haskell.LSP.TH.DataTypesJSON: class HasDeprecated s a | s -> a
- Language.Haskell.LSP.TH.DataTypesJSON: class HasDetail s a | s -> a
- Language.Haskell.LSP.TH.DataTypesJSON: class HasDiagnostics s a | s -> a
- Language.Haskell.LSP.TH.DataTypesJSON: class HasDocumentChanges s a | s -> a
- Language.Haskell.LSP.TH.DataTypesJSON: class HasDocumentFormattingProvider s a | s -> a
- Language.Haskell.LSP.TH.DataTypesJSON: class HasDocumentHighlightProvider s a | s -> a
- Language.Haskell.LSP.TH.DataTypesJSON: class HasDocumentLinkProvider s a | s -> a
- Language.Haskell.LSP.TH.DataTypesJSON: class HasDocumentOnTypeFormattingProvider s a | s -> a
- Language.Haskell.LSP.TH.DataTypesJSON: class HasDocumentRangeFormattingProvider s a | s -> a
- Language.Haskell.LSP.TH.DataTypesJSON: class HasDocumentSelector s a | s -> a
- Language.Haskell.LSP.TH.DataTypesJSON: class HasDocumentSymbolProvider s a | s -> a
- Language.Haskell.LSP.TH.DataTypesJSON: class HasDocumentation s a | s -> a
- Language.Haskell.LSP.TH.DataTypesJSON: class HasEdit s a | s -> a
- Language.Haskell.LSP.TH.DataTypesJSON: class HasEdits s a | s -> a
- Language.Haskell.LSP.TH.DataTypesJSON: class HasEnd s a | s -> a
- Language.Haskell.LSP.TH.DataTypesJSON: class HasError s a | s -> a
- Language.Haskell.LSP.TH.DataTypesJSON: class HasExecuteCommandProvider s a | s -> a
- Language.Haskell.LSP.TH.DataTypesJSON: class HasExperimental s a | s -> a
- Language.Haskell.LSP.TH.DataTypesJSON: class HasFilterText s a | s -> a
- Language.Haskell.LSP.TH.DataTypesJSON: class HasFirstTriggerCharacter s a | s -> a
- Language.Haskell.LSP.TH.DataTypesJSON: class HasHoverProvider s a | s -> a
- Language.Haskell.LSP.TH.DataTypesJSON: class HasId s a | s -> a
- Language.Haskell.LSP.TH.DataTypesJSON: class HasIncludeDeclaration s a | s -> a
- Language.Haskell.LSP.TH.DataTypesJSON: class HasIncludeText s a | s -> a
- Language.Haskell.LSP.TH.DataTypesJSON: class HasInitializationOptions s a | s -> a
- Language.Haskell.LSP.TH.DataTypesJSON: class HasInsertSpaces s a | s -> a
- Language.Haskell.LSP.TH.DataTypesJSON: class HasInsertText s a | s -> a
- Language.Haskell.LSP.TH.DataTypesJSON: class HasInsertTextFormat s a | s -> a
- Language.Haskell.LSP.TH.DataTypesJSON: class HasIsIncomplete s a | s -> a
- Language.Haskell.LSP.TH.DataTypesJSON: class HasItems s a | s -> a
- Language.Haskell.LSP.TH.DataTypesJSON: class HasJsonrpc s a | s -> a
- Language.Haskell.LSP.TH.DataTypesJSON: class HasKind s a | s -> a
- Language.Haskell.LSP.TH.DataTypesJSON: class HasLabel s a | s -> a
- Language.Haskell.LSP.TH.DataTypesJSON: class HasLanguage s a | s -> a
- Language.Haskell.LSP.TH.DataTypesJSON: class HasLanguageId s a | s -> a
- Language.Haskell.LSP.TH.DataTypesJSON: class HasLine s a | s -> a
- Language.Haskell.LSP.TH.DataTypesJSON: class HasLocation s a | s -> a
- Language.Haskell.LSP.TH.DataTypesJSON: class HasMessage s a | s -> a
- Language.Haskell.LSP.TH.DataTypesJSON: class HasMethod s a | s -> a
- Language.Haskell.LSP.TH.DataTypesJSON: class HasMoreTriggerCharacter s a | s -> a
- Language.Haskell.LSP.TH.DataTypesJSON: class HasName s a | s -> a
- Language.Haskell.LSP.TH.DataTypesJSON: class HasNewName s a | s -> a
- Language.Haskell.LSP.TH.DataTypesJSON: class HasNewText s a | s -> a
- Language.Haskell.LSP.TH.DataTypesJSON: class HasOpenClose s a | s -> a
- Language.Haskell.LSP.TH.DataTypesJSON: class HasOptions s a | s -> a
- Language.Haskell.LSP.TH.DataTypesJSON: class HasParameters s a | s -> a
- Language.Haskell.LSP.TH.DataTypesJSON: class HasParams s a | s -> a
- Language.Haskell.LSP.TH.DataTypesJSON: class HasPattern s a | s -> a
- Language.Haskell.LSP.TH.DataTypesJSON: class HasPosition s a | s -> a
- Language.Haskell.LSP.TH.DataTypesJSON: class HasProcessId s a | s -> a
- Language.Haskell.LSP.TH.DataTypesJSON: class HasQuery s a | s -> a
- Language.Haskell.LSP.TH.DataTypesJSON: class HasRange s a | s -> a
- Language.Haskell.LSP.TH.DataTypesJSON: class HasRangeLength s a | s -> a
- Language.Haskell.LSP.TH.DataTypesJSON: class HasReason s a | s -> a
- Language.Haskell.LSP.TH.DataTypesJSON: class HasReferencesProvider s a | s -> a
- Language.Haskell.LSP.TH.DataTypesJSON: class HasRegisterOptions s a | s -> a
- Language.Haskell.LSP.TH.DataTypesJSON: class HasRegistrations s a | s -> a
- Language.Haskell.LSP.TH.DataTypesJSON: class HasRelatedInformation s a | s -> a
- Language.Haskell.LSP.TH.DataTypesJSON: class HasRenameProvider s a | s -> a
- Language.Haskell.LSP.TH.DataTypesJSON: class HasResolveProvider s a | s -> a
- Language.Haskell.LSP.TH.DataTypesJSON: class HasResult s a | s -> a
- Language.Haskell.LSP.TH.DataTypesJSON: class HasRetry s a | s -> a
- Language.Haskell.LSP.TH.DataTypesJSON: class HasRootPath s a | s -> a
- Language.Haskell.LSP.TH.DataTypesJSON: class HasRootUri s a | s -> a
- Language.Haskell.LSP.TH.DataTypesJSON: class HasSave s a | s -> a
- Language.Haskell.LSP.TH.DataTypesJSON: class HasScheme s a | s -> a
- Language.Haskell.LSP.TH.DataTypesJSON: class HasSelectionRange s a | s -> a
- Language.Haskell.LSP.TH.DataTypesJSON: class HasSettings s a | s -> a
- Language.Haskell.LSP.TH.DataTypesJSON: class HasSeverity s a | s -> a
- Language.Haskell.LSP.TH.DataTypesJSON: class HasSignatureHelpProvider s a | s -> a
- Language.Haskell.LSP.TH.DataTypesJSON: class HasSignatures s a | s -> a
- Language.Haskell.LSP.TH.DataTypesJSON: class HasSortText s a | s -> a
- Language.Haskell.LSP.TH.DataTypesJSON: class HasSource s a | s -> a
- Language.Haskell.LSP.TH.DataTypesJSON: class HasStart s a | s -> a
- Language.Haskell.LSP.TH.DataTypesJSON: class HasSyncKind s a | s -> a
- Language.Haskell.LSP.TH.DataTypesJSON: class HasTabSize s a | s -> a
- Language.Haskell.LSP.TH.DataTypesJSON: class HasTarget s a | s -> a
- Language.Haskell.LSP.TH.DataTypesJSON: class HasText s a | s -> a
- Language.Haskell.LSP.TH.DataTypesJSON: class HasTextDocument s a | s -> a
- Language.Haskell.LSP.TH.DataTypesJSON: class HasTextDocumentSync s a | s -> a
- Language.Haskell.LSP.TH.DataTypesJSON: class HasTextEdit s a | s -> a
- Language.Haskell.LSP.TH.DataTypesJSON: class HasTitle s a | s -> a
- Language.Haskell.LSP.TH.DataTypesJSON: class HasTrace s a | s -> a
- Language.Haskell.LSP.TH.DataTypesJSON: class HasTriggerCharacters s a | s -> a
- Language.Haskell.LSP.TH.DataTypesJSON: class HasUnregistrations s a | s -> a
- Language.Haskell.LSP.TH.DataTypesJSON: class HasUri s a | s -> a
- Language.Haskell.LSP.TH.DataTypesJSON: class HasValue s a | s -> a
- Language.Haskell.LSP.TH.DataTypesJSON: class HasVersion s a | s -> a
- Language.Haskell.LSP.TH.DataTypesJSON: class HasWillSave s a | s -> a
- Language.Haskell.LSP.TH.DataTypesJSON: class HasWillSaveWaitUntil s a | s -> a
- Language.Haskell.LSP.TH.DataTypesJSON: class HasWorkspaceSymbolProvider s a | s -> a
- Language.Haskell.LSP.TH.DataTypesJSON: class HasXdata s a | s -> a
- Language.Haskell.LSP.TH.DataTypesJSON: class HasXtype s a | s -> a
- Language.Haskell.LSP.TH.DataTypesJSON: code :: HasCode s a => Lens' s a
- Language.Haskell.LSP.TH.DataTypesJSON: codeActionProvider :: HasCodeActionProvider s a => Lens' s a
- Language.Haskell.LSP.TH.DataTypesJSON: codeLensProvider :: HasCodeLensProvider s a => Lens' s a
- Language.Haskell.LSP.TH.DataTypesJSON: command :: HasCommand s a => Lens' s a
- Language.Haskell.LSP.TH.DataTypesJSON: commands :: HasCommands s a => Lens' s a
- Language.Haskell.LSP.TH.DataTypesJSON: completionProvider :: HasCompletionProvider s a => Lens' s a
- Language.Haskell.LSP.TH.DataTypesJSON: containerName :: HasContainerName s a => Lens' s a
- Language.Haskell.LSP.TH.DataTypesJSON: contentChanges :: HasContentChanges s a => Lens' s a
- Language.Haskell.LSP.TH.DataTypesJSON: contents :: HasContents s a => Lens' s a
- Language.Haskell.LSP.TH.DataTypesJSON: context :: HasContext s a => Lens' s a
- Language.Haskell.LSP.TH.DataTypesJSON: data ApplyWorkspaceEditParams
- Language.Haskell.LSP.TH.DataTypesJSON: data ApplyWorkspaceEditResponseBody
- Language.Haskell.LSP.TH.DataTypesJSON: data CAResult
- Language.Haskell.LSP.TH.DataTypesJSON: data CancelParams
- Language.Haskell.LSP.TH.DataTypesJSON: data ClientMethod
- Language.Haskell.LSP.TH.DataTypesJSON: data CodeAction
- Language.Haskell.LSP.TH.DataTypesJSON: data CodeActionContext
- Language.Haskell.LSP.TH.DataTypesJSON: data CodeActionKind
- Language.Haskell.LSP.TH.DataTypesJSON: data CodeActionParams
- Language.Haskell.LSP.TH.DataTypesJSON: data CodeLens
- Language.Haskell.LSP.TH.DataTypesJSON: data CodeLensOptions
- Language.Haskell.LSP.TH.DataTypesJSON: data CodeLensParams
- Language.Haskell.LSP.TH.DataTypesJSON: data CodeLensRegistrationOptions
- Language.Haskell.LSP.TH.DataTypesJSON: data Command
- Language.Haskell.LSP.TH.DataTypesJSON: data CompletionItem
- Language.Haskell.LSP.TH.DataTypesJSON: data CompletionItemKind
- Language.Haskell.LSP.TH.DataTypesJSON: data CompletionListType
- Language.Haskell.LSP.TH.DataTypesJSON: data CompletionOptions
- Language.Haskell.LSP.TH.DataTypesJSON: data CompletionRegistrationOptions
- Language.Haskell.LSP.TH.DataTypesJSON: data CompletionResponseResult
- Language.Haskell.LSP.TH.DataTypesJSON: data DSResult
- Language.Haskell.LSP.TH.DataTypesJSON: data Diagnostic
- Language.Haskell.LSP.TH.DataTypesJSON: data DiagnosticRelatedInformation
- Language.Haskell.LSP.TH.DataTypesJSON: data DiagnosticSeverity
- Language.Haskell.LSP.TH.DataTypesJSON: data DidChangeConfigurationParams
- Language.Haskell.LSP.TH.DataTypesJSON: data DidChangeTextDocumentParams
- Language.Haskell.LSP.TH.DataTypesJSON: data DidChangeWatchedFilesParams
- Language.Haskell.LSP.TH.DataTypesJSON: data DidCloseTextDocumentParams
- Language.Haskell.LSP.TH.DataTypesJSON: data DidOpenTextDocumentParams
- Language.Haskell.LSP.TH.DataTypesJSON: data DidSaveTextDocumentParams
- Language.Haskell.LSP.TH.DataTypesJSON: data DocumentFilter
- Language.Haskell.LSP.TH.DataTypesJSON: data DocumentFormattingParams
- Language.Haskell.LSP.TH.DataTypesJSON: data DocumentHighlight
- Language.Haskell.LSP.TH.DataTypesJSON: data DocumentHighlightKind
- Language.Haskell.LSP.TH.DataTypesJSON: data DocumentLink
- Language.Haskell.LSP.TH.DataTypesJSON: data DocumentLinkOptions
- Language.Haskell.LSP.TH.DataTypesJSON: data DocumentLinkParams
- Language.Haskell.LSP.TH.DataTypesJSON: data DocumentOnTypeFormattingOptions
- Language.Haskell.LSP.TH.DataTypesJSON: data DocumentOnTypeFormattingParams
- Language.Haskell.LSP.TH.DataTypesJSON: data DocumentOnTypeFormattingRegistrationOptions
- Language.Haskell.LSP.TH.DataTypesJSON: data DocumentRangeFormattingParams
- Language.Haskell.LSP.TH.DataTypesJSON: data DocumentSymbol
- Language.Haskell.LSP.TH.DataTypesJSON: data DocumentSymbolParams
- Language.Haskell.LSP.TH.DataTypesJSON: data ErrorCode
- Language.Haskell.LSP.TH.DataTypesJSON: data ExecuteCommandOptions
- Language.Haskell.LSP.TH.DataTypesJSON: data ExecuteCommandParams
- Language.Haskell.LSP.TH.DataTypesJSON: data ExecuteCommandRegistrationOptions
- Language.Haskell.LSP.TH.DataTypesJSON: data ExitParams
- Language.Haskell.LSP.TH.DataTypesJSON: data FileChangeType
- Language.Haskell.LSP.TH.DataTypesJSON: data FileEvent
- Language.Haskell.LSP.TH.DataTypesJSON: data FormattingOptions
- Language.Haskell.LSP.TH.DataTypesJSON: data Hover
- Language.Haskell.LSP.TH.DataTypesJSON: data InitializeError
- Language.Haskell.LSP.TH.DataTypesJSON: data InitializeParams
- Language.Haskell.LSP.TH.DataTypesJSON: data InitializeResponseCapabilities
- Language.Haskell.LSP.TH.DataTypesJSON: data InitializeResponseCapabilitiesInner
- Language.Haskell.LSP.TH.DataTypesJSON: data InitializedParams
- Language.Haskell.LSP.TH.DataTypesJSON: data InsertTextFormat
- Language.Haskell.LSP.TH.DataTypesJSON: data LanguageString
- Language.Haskell.LSP.TH.DataTypesJSON: data Location
- Language.Haskell.LSP.TH.DataTypesJSON: data LocationResponseParams
- Language.Haskell.LSP.TH.DataTypesJSON: data LogMessageParams
- Language.Haskell.LSP.TH.DataTypesJSON: data LspId
- Language.Haskell.LSP.TH.DataTypesJSON: data LspIdRsp
- Language.Haskell.LSP.TH.DataTypesJSON: data MarkedString
- Language.Haskell.LSP.TH.DataTypesJSON: data MarkupContent
- Language.Haskell.LSP.TH.DataTypesJSON: data MarkupKind
- Language.Haskell.LSP.TH.DataTypesJSON: data MessageActionItem
- Language.Haskell.LSP.TH.DataTypesJSON: data MessageType
- Language.Haskell.LSP.TH.DataTypesJSON: data NotificationMessage m a
- Language.Haskell.LSP.TH.DataTypesJSON: data ParameterInformation
- Language.Haskell.LSP.TH.DataTypesJSON: data Position
- Language.Haskell.LSP.TH.DataTypesJSON: data PublishDiagnosticsParams
- Language.Haskell.LSP.TH.DataTypesJSON: data Range
- Language.Haskell.LSP.TH.DataTypesJSON: data ReferenceContext
- Language.Haskell.LSP.TH.DataTypesJSON: data ReferenceParams
- Language.Haskell.LSP.TH.DataTypesJSON: data Registration
- Language.Haskell.LSP.TH.DataTypesJSON: data RegistrationParams
- Language.Haskell.LSP.TH.DataTypesJSON: data RenameParams
- Language.Haskell.LSP.TH.DataTypesJSON: data RequestMessage m req resp
- Language.Haskell.LSP.TH.DataTypesJSON: data ResponseError
- Language.Haskell.LSP.TH.DataTypesJSON: data ResponseMessage a
- Language.Haskell.LSP.TH.DataTypesJSON: data SaveOptions
- Language.Haskell.LSP.TH.DataTypesJSON: data ServerMethod
- Language.Haskell.LSP.TH.DataTypesJSON: data ShowMessageParams
- Language.Haskell.LSP.TH.DataTypesJSON: data ShowMessageRequestParams
- Language.Haskell.LSP.TH.DataTypesJSON: data SignatureHelp
- Language.Haskell.LSP.TH.DataTypesJSON: data SignatureHelpOptions
- Language.Haskell.LSP.TH.DataTypesJSON: data SignatureHelpRegistrationOptions
- Language.Haskell.LSP.TH.DataTypesJSON: data SignatureInformation
- Language.Haskell.LSP.TH.DataTypesJSON: data SymbolInformation
- Language.Haskell.LSP.TH.DataTypesJSON: data SymbolKind
- Language.Haskell.LSP.TH.DataTypesJSON: data TDS
- Language.Haskell.LSP.TH.DataTypesJSON: data TextDocumentChangeRegistrationOptions
- Language.Haskell.LSP.TH.DataTypesJSON: data TextDocumentContentChangeEvent
- Language.Haskell.LSP.TH.DataTypesJSON: data TextDocumentEdit
- Language.Haskell.LSP.TH.DataTypesJSON: data TextDocumentIdentifier
- Language.Haskell.LSP.TH.DataTypesJSON: data TextDocumentItem
- Language.Haskell.LSP.TH.DataTypesJSON: data TextDocumentPositionParams
- Language.Haskell.LSP.TH.DataTypesJSON: data TextDocumentRegistrationOptions
- Language.Haskell.LSP.TH.DataTypesJSON: data TextDocumentSaveReason
- Language.Haskell.LSP.TH.DataTypesJSON: data TextDocumentSyncKind
- Language.Haskell.LSP.TH.DataTypesJSON: data TextDocumentSyncOptions
- Language.Haskell.LSP.TH.DataTypesJSON: data TextEdit
- Language.Haskell.LSP.TH.DataTypesJSON: data Trace
- Language.Haskell.LSP.TH.DataTypesJSON: data TraceNotification
- Language.Haskell.LSP.TH.DataTypesJSON: data TraceParams
- Language.Haskell.LSP.TH.DataTypesJSON: data Unregistration
- Language.Haskell.LSP.TH.DataTypesJSON: data UnregistrationParams
- Language.Haskell.LSP.TH.DataTypesJSON: data VersionedTextDocumentIdentifier
- Language.Haskell.LSP.TH.DataTypesJSON: data WillSaveTextDocumentParams
- Language.Haskell.LSP.TH.DataTypesJSON: data WorkspaceEdit
- Language.Haskell.LSP.TH.DataTypesJSON: data WorkspaceSymbolParams
- Language.Haskell.LSP.TH.DataTypesJSON: definitionProvider :: HasDefinitionProvider s a => Lens' s a
- Language.Haskell.LSP.TH.DataTypesJSON: deprecated :: HasDeprecated s a => Lens' s a
- Language.Haskell.LSP.TH.DataTypesJSON: detail :: HasDetail s a => Lens' s a
- Language.Haskell.LSP.TH.DataTypesJSON: diagnostics :: HasDiagnostics s a => Lens' s a
- Language.Haskell.LSP.TH.DataTypesJSON: documentChanges :: HasDocumentChanges s a => Lens' s a
- Language.Haskell.LSP.TH.DataTypesJSON: documentFormattingProvider :: HasDocumentFormattingProvider s a => Lens' s a
- Language.Haskell.LSP.TH.DataTypesJSON: documentHighlightProvider :: HasDocumentHighlightProvider s a => Lens' s a
- Language.Haskell.LSP.TH.DataTypesJSON: documentLinkProvider :: HasDocumentLinkProvider s a => Lens' s a
- Language.Haskell.LSP.TH.DataTypesJSON: documentOnTypeFormattingProvider :: HasDocumentOnTypeFormattingProvider s a => Lens' s a
- Language.Haskell.LSP.TH.DataTypesJSON: documentRangeFormattingProvider :: HasDocumentRangeFormattingProvider s a => Lens' s a
- Language.Haskell.LSP.TH.DataTypesJSON: documentSelector :: HasDocumentSelector s a => Lens' s a
- Language.Haskell.LSP.TH.DataTypesJSON: documentSymbolProvider :: HasDocumentSymbolProvider s a => Lens' s a
- Language.Haskell.LSP.TH.DataTypesJSON: documentation :: HasDocumentation s a => Lens' s a
- Language.Haskell.LSP.TH.DataTypesJSON: edit :: HasEdit s a => Lens' s a
- Language.Haskell.LSP.TH.DataTypesJSON: edits :: HasEdits s a => Lens' s a
- Language.Haskell.LSP.TH.DataTypesJSON: end :: HasEnd s a => Lens' s a
- Language.Haskell.LSP.TH.DataTypesJSON: error :: HasError s a => Lens' s a
- Language.Haskell.LSP.TH.DataTypesJSON: executeCommandProvider :: HasExecuteCommandProvider s a => Lens' s a
- Language.Haskell.LSP.TH.DataTypesJSON: experimental :: HasExperimental s a => Lens' s a
- Language.Haskell.LSP.TH.DataTypesJSON: filePathToUri :: FilePath -> Uri
- Language.Haskell.LSP.TH.DataTypesJSON: fileScheme :: String
- Language.Haskell.LSP.TH.DataTypesJSON: filterText :: HasFilterText s a => Lens' s a
- Language.Haskell.LSP.TH.DataTypesJSON: firstTriggerCharacter :: HasFirstTriggerCharacter s a => Lens' s a
- Language.Haskell.LSP.TH.DataTypesJSON: hoverProvider :: HasHoverProvider s a => Lens' s a
- Language.Haskell.LSP.TH.DataTypesJSON: id :: HasId s a => Lens' s a
- Language.Haskell.LSP.TH.DataTypesJSON: includeDeclaration :: HasIncludeDeclaration s a => Lens' s a
- Language.Haskell.LSP.TH.DataTypesJSON: includeText :: HasIncludeText s a => Lens' s a
- Language.Haskell.LSP.TH.DataTypesJSON: initializationOptions :: HasInitializationOptions s a => Lens' s a
- Language.Haskell.LSP.TH.DataTypesJSON: insertSpaces :: HasInsertSpaces s a => Lens' s a
- Language.Haskell.LSP.TH.DataTypesJSON: insertText :: HasInsertText s a => Lens' s a
- Language.Haskell.LSP.TH.DataTypesJSON: insertTextFormat :: HasInsertTextFormat s a => Lens' s a
- Language.Haskell.LSP.TH.DataTypesJSON: instance Data.Aeson.Types.FromJSON.FromJSON Language.Haskell.LSP.TH.DataTypesJSON.ApplyWorkspaceEditParams
- Language.Haskell.LSP.TH.DataTypesJSON: instance Data.Aeson.Types.FromJSON.FromJSON Language.Haskell.LSP.TH.DataTypesJSON.ApplyWorkspaceEditResponseBody
- Language.Haskell.LSP.TH.DataTypesJSON: instance Data.Aeson.Types.FromJSON.FromJSON Language.Haskell.LSP.TH.DataTypesJSON.CodeLens
- Language.Haskell.LSP.TH.DataTypesJSON: instance Data.Aeson.Types.FromJSON.FromJSON Language.Haskell.LSP.TH.DataTypesJSON.CodeLensOptions
- Language.Haskell.LSP.TH.DataTypesJSON: instance Data.Aeson.Types.FromJSON.FromJSON Language.Haskell.LSP.TH.DataTypesJSON.CodeLensParams
- Language.Haskell.LSP.TH.DataTypesJSON: instance Data.Aeson.Types.FromJSON.FromJSON Language.Haskell.LSP.TH.DataTypesJSON.CodeLensRegistrationOptions
- Language.Haskell.LSP.TH.DataTypesJSON: instance Data.Aeson.Types.FromJSON.FromJSON Language.Haskell.LSP.TH.DataTypesJSON.CompletionOptions
- Language.Haskell.LSP.TH.DataTypesJSON: instance Data.Aeson.Types.FromJSON.FromJSON Language.Haskell.LSP.TH.DataTypesJSON.DidChangeConfigurationParams
- Language.Haskell.LSP.TH.DataTypesJSON: instance Data.Aeson.Types.FromJSON.FromJSON Language.Haskell.LSP.TH.DataTypesJSON.DidChangeTextDocumentParams
- Language.Haskell.LSP.TH.DataTypesJSON: instance Data.Aeson.Types.FromJSON.FromJSON Language.Haskell.LSP.TH.DataTypesJSON.DidChangeWatchedFilesParams
- Language.Haskell.LSP.TH.DataTypesJSON: instance Data.Aeson.Types.FromJSON.FromJSON Language.Haskell.LSP.TH.DataTypesJSON.DidCloseTextDocumentParams
- Language.Haskell.LSP.TH.DataTypesJSON: instance Data.Aeson.Types.FromJSON.FromJSON Language.Haskell.LSP.TH.DataTypesJSON.DidOpenTextDocumentParams
- Language.Haskell.LSP.TH.DataTypesJSON: instance Data.Aeson.Types.FromJSON.FromJSON Language.Haskell.LSP.TH.DataTypesJSON.DidSaveTextDocumentParams
- Language.Haskell.LSP.TH.DataTypesJSON: instance Data.Aeson.Types.FromJSON.FromJSON Language.Haskell.LSP.TH.DataTypesJSON.DocumentFormattingParams
- Language.Haskell.LSP.TH.DataTypesJSON: instance Data.Aeson.Types.FromJSON.FromJSON Language.Haskell.LSP.TH.DataTypesJSON.DocumentHighlight
- Language.Haskell.LSP.TH.DataTypesJSON: instance Data.Aeson.Types.FromJSON.FromJSON Language.Haskell.LSP.TH.DataTypesJSON.DocumentHighlightKind
- Language.Haskell.LSP.TH.DataTypesJSON: instance Data.Aeson.Types.FromJSON.FromJSON Language.Haskell.LSP.TH.DataTypesJSON.DocumentLink
- Language.Haskell.LSP.TH.DataTypesJSON: instance Data.Aeson.Types.FromJSON.FromJSON Language.Haskell.LSP.TH.DataTypesJSON.DocumentLinkOptions
- Language.Haskell.LSP.TH.DataTypesJSON: instance Data.Aeson.Types.FromJSON.FromJSON Language.Haskell.LSP.TH.DataTypesJSON.DocumentLinkParams
- Language.Haskell.LSP.TH.DataTypesJSON: instance Data.Aeson.Types.FromJSON.FromJSON Language.Haskell.LSP.TH.DataTypesJSON.DocumentOnTypeFormattingOptions
- Language.Haskell.LSP.TH.DataTypesJSON: instance Data.Aeson.Types.FromJSON.FromJSON Language.Haskell.LSP.TH.DataTypesJSON.DocumentOnTypeFormattingParams
- Language.Haskell.LSP.TH.DataTypesJSON: instance Data.Aeson.Types.FromJSON.FromJSON Language.Haskell.LSP.TH.DataTypesJSON.DocumentOnTypeFormattingRegistrationOptions
- Language.Haskell.LSP.TH.DataTypesJSON: instance Data.Aeson.Types.FromJSON.FromJSON Language.Haskell.LSP.TH.DataTypesJSON.DocumentRangeFormattingParams
- Language.Haskell.LSP.TH.DataTypesJSON: instance Data.Aeson.Types.FromJSON.FromJSON Language.Haskell.LSP.TH.DataTypesJSON.ExecuteCommandOptions
- Language.Haskell.LSP.TH.DataTypesJSON: instance Data.Aeson.Types.FromJSON.FromJSON Language.Haskell.LSP.TH.DataTypesJSON.ExecuteCommandParams
- Language.Haskell.LSP.TH.DataTypesJSON: instance Data.Aeson.Types.FromJSON.FromJSON Language.Haskell.LSP.TH.DataTypesJSON.ExecuteCommandRegistrationOptions
- Language.Haskell.LSP.TH.DataTypesJSON: instance Data.Aeson.Types.FromJSON.FromJSON Language.Haskell.LSP.TH.DataTypesJSON.ExitParams
- Language.Haskell.LSP.TH.DataTypesJSON: instance Data.Aeson.Types.FromJSON.FromJSON Language.Haskell.LSP.TH.DataTypesJSON.FileChangeType
- Language.Haskell.LSP.TH.DataTypesJSON: instance Data.Aeson.Types.FromJSON.FromJSON Language.Haskell.LSP.TH.DataTypesJSON.FileEvent
- Language.Haskell.LSP.TH.DataTypesJSON: instance Data.Aeson.Types.FromJSON.FromJSON Language.Haskell.LSP.TH.DataTypesJSON.FormattingOptions
- Language.Haskell.LSP.TH.DataTypesJSON: instance Data.Aeson.Types.FromJSON.FromJSON Language.Haskell.LSP.TH.DataTypesJSON.Hover
- Language.Haskell.LSP.TH.DataTypesJSON: instance Data.Aeson.Types.FromJSON.FromJSON Language.Haskell.LSP.TH.DataTypesJSON.InitializeError
- Language.Haskell.LSP.TH.DataTypesJSON: instance Data.Aeson.Types.FromJSON.FromJSON Language.Haskell.LSP.TH.DataTypesJSON.InitializeParams
- Language.Haskell.LSP.TH.DataTypesJSON: instance Data.Aeson.Types.FromJSON.FromJSON Language.Haskell.LSP.TH.DataTypesJSON.InitializeResponseCapabilities
- Language.Haskell.LSP.TH.DataTypesJSON: instance Data.Aeson.Types.FromJSON.FromJSON Language.Haskell.LSP.TH.DataTypesJSON.InitializeResponseCapabilitiesInner
- Language.Haskell.LSP.TH.DataTypesJSON: instance Data.Aeson.Types.FromJSON.FromJSON Language.Haskell.LSP.TH.DataTypesJSON.InitializedParams
- Language.Haskell.LSP.TH.DataTypesJSON: instance Data.Aeson.Types.FromJSON.FromJSON Language.Haskell.LSP.TH.DataTypesJSON.LanguageString
- 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.FromJSON.FromJSON Language.Haskell.LSP.TH.DataTypesJSON.LogMessageParams
- Language.Haskell.LSP.TH.DataTypesJSON: instance Data.Aeson.Types.FromJSON.FromJSON Language.Haskell.LSP.TH.DataTypesJSON.MarkedString
- Language.Haskell.LSP.TH.DataTypesJSON: instance Data.Aeson.Types.FromJSON.FromJSON Language.Haskell.LSP.TH.DataTypesJSON.MessageActionItem
- Language.Haskell.LSP.TH.DataTypesJSON: instance Data.Aeson.Types.FromJSON.FromJSON Language.Haskell.LSP.TH.DataTypesJSON.MessageType
- Language.Haskell.LSP.TH.DataTypesJSON: instance Data.Aeson.Types.FromJSON.FromJSON Language.Haskell.LSP.TH.DataTypesJSON.ParameterInformation
- Language.Haskell.LSP.TH.DataTypesJSON: instance Data.Aeson.Types.FromJSON.FromJSON Language.Haskell.LSP.TH.DataTypesJSON.PublishDiagnosticsParams
- Language.Haskell.LSP.TH.DataTypesJSON: instance Data.Aeson.Types.FromJSON.FromJSON Language.Haskell.LSP.TH.DataTypesJSON.ReferenceContext
- Language.Haskell.LSP.TH.DataTypesJSON: instance Data.Aeson.Types.FromJSON.FromJSON Language.Haskell.LSP.TH.DataTypesJSON.ReferenceParams
- Language.Haskell.LSP.TH.DataTypesJSON: instance Data.Aeson.Types.FromJSON.FromJSON Language.Haskell.LSP.TH.DataTypesJSON.Registration
- Language.Haskell.LSP.TH.DataTypesJSON: instance Data.Aeson.Types.FromJSON.FromJSON Language.Haskell.LSP.TH.DataTypesJSON.RegistrationParams
- Language.Haskell.LSP.TH.DataTypesJSON: instance Data.Aeson.Types.FromJSON.FromJSON Language.Haskell.LSP.TH.DataTypesJSON.RenameParams
- Language.Haskell.LSP.TH.DataTypesJSON: instance Data.Aeson.Types.FromJSON.FromJSON Language.Haskell.LSP.TH.DataTypesJSON.SaveOptions
- Language.Haskell.LSP.TH.DataTypesJSON: instance Data.Aeson.Types.FromJSON.FromJSON Language.Haskell.LSP.TH.DataTypesJSON.ShowMessageParams
- Language.Haskell.LSP.TH.DataTypesJSON: instance Data.Aeson.Types.FromJSON.FromJSON Language.Haskell.LSP.TH.DataTypesJSON.ShowMessageRequestParams
- Language.Haskell.LSP.TH.DataTypesJSON: instance Data.Aeson.Types.FromJSON.FromJSON Language.Haskell.LSP.TH.DataTypesJSON.SignatureHelp
- Language.Haskell.LSP.TH.DataTypesJSON: instance Data.Aeson.Types.FromJSON.FromJSON Language.Haskell.LSP.TH.DataTypesJSON.SignatureHelpOptions
- Language.Haskell.LSP.TH.DataTypesJSON: instance Data.Aeson.Types.FromJSON.FromJSON Language.Haskell.LSP.TH.DataTypesJSON.SignatureHelpRegistrationOptions
- Language.Haskell.LSP.TH.DataTypesJSON: instance Data.Aeson.Types.FromJSON.FromJSON Language.Haskell.LSP.TH.DataTypesJSON.SignatureInformation
- Language.Haskell.LSP.TH.DataTypesJSON: instance Data.Aeson.Types.FromJSON.FromJSON Language.Haskell.LSP.TH.DataTypesJSON.TDS
- Language.Haskell.LSP.TH.DataTypesJSON: instance Data.Aeson.Types.FromJSON.FromJSON Language.Haskell.LSP.TH.DataTypesJSON.TextDocumentChangeRegistrationOptions
- Language.Haskell.LSP.TH.DataTypesJSON: instance Data.Aeson.Types.FromJSON.FromJSON Language.Haskell.LSP.TH.DataTypesJSON.TextDocumentContentChangeEvent
- Language.Haskell.LSP.TH.DataTypesJSON: instance Data.Aeson.Types.FromJSON.FromJSON Language.Haskell.LSP.TH.DataTypesJSON.TextDocumentRegistrationOptions
- Language.Haskell.LSP.TH.DataTypesJSON: instance Data.Aeson.Types.FromJSON.FromJSON Language.Haskell.LSP.TH.DataTypesJSON.TextDocumentSaveReason
- Language.Haskell.LSP.TH.DataTypesJSON: instance Data.Aeson.Types.FromJSON.FromJSON Language.Haskell.LSP.TH.DataTypesJSON.TextDocumentSyncKind
- Language.Haskell.LSP.TH.DataTypesJSON: instance Data.Aeson.Types.FromJSON.FromJSON Language.Haskell.LSP.TH.DataTypesJSON.TextDocumentSyncOptions
- Language.Haskell.LSP.TH.DataTypesJSON: instance Data.Aeson.Types.FromJSON.FromJSON Language.Haskell.LSP.TH.DataTypesJSON.Trace
- Language.Haskell.LSP.TH.DataTypesJSON: instance Data.Aeson.Types.FromJSON.FromJSON Language.Haskell.LSP.TH.DataTypesJSON.TraceNotification
- Language.Haskell.LSP.TH.DataTypesJSON: instance Data.Aeson.Types.FromJSON.FromJSON Language.Haskell.LSP.TH.DataTypesJSON.TraceParams
- Language.Haskell.LSP.TH.DataTypesJSON: instance Data.Aeson.Types.FromJSON.FromJSON Language.Haskell.LSP.TH.DataTypesJSON.Unregistration
- Language.Haskell.LSP.TH.DataTypesJSON: instance Data.Aeson.Types.FromJSON.FromJSON Language.Haskell.LSP.TH.DataTypesJSON.UnregistrationParams
- Language.Haskell.LSP.TH.DataTypesJSON: instance Data.Aeson.Types.FromJSON.FromJSON Language.Haskell.LSP.TH.DataTypesJSON.WillSaveTextDocumentParams
- Language.Haskell.LSP.TH.DataTypesJSON: instance Data.Aeson.Types.FromJSON.FromJSON Language.Haskell.LSP.TH.DataTypesJSON.WorkspaceSymbolParams
- Language.Haskell.LSP.TH.DataTypesJSON: instance Data.Aeson.Types.ToJSON.ToJSON Language.Haskell.LSP.TH.DataTypesJSON.ApplyWorkspaceEditParams
- Language.Haskell.LSP.TH.DataTypesJSON: instance Data.Aeson.Types.ToJSON.ToJSON Language.Haskell.LSP.TH.DataTypesJSON.ApplyWorkspaceEditResponseBody
- Language.Haskell.LSP.TH.DataTypesJSON: instance Data.Aeson.Types.ToJSON.ToJSON Language.Haskell.LSP.TH.DataTypesJSON.CodeLens
- Language.Haskell.LSP.TH.DataTypesJSON: instance Data.Aeson.Types.ToJSON.ToJSON Language.Haskell.LSP.TH.DataTypesJSON.CodeLensOptions
- Language.Haskell.LSP.TH.DataTypesJSON: instance Data.Aeson.Types.ToJSON.ToJSON Language.Haskell.LSP.TH.DataTypesJSON.CodeLensParams
- Language.Haskell.LSP.TH.DataTypesJSON: instance Data.Aeson.Types.ToJSON.ToJSON Language.Haskell.LSP.TH.DataTypesJSON.CodeLensRegistrationOptions
- Language.Haskell.LSP.TH.DataTypesJSON: instance Data.Aeson.Types.ToJSON.ToJSON Language.Haskell.LSP.TH.DataTypesJSON.CompletionOptions
- Language.Haskell.LSP.TH.DataTypesJSON: instance Data.Aeson.Types.ToJSON.ToJSON Language.Haskell.LSP.TH.DataTypesJSON.DidChangeConfigurationParams
- Language.Haskell.LSP.TH.DataTypesJSON: instance Data.Aeson.Types.ToJSON.ToJSON Language.Haskell.LSP.TH.DataTypesJSON.DidChangeTextDocumentParams
- Language.Haskell.LSP.TH.DataTypesJSON: instance Data.Aeson.Types.ToJSON.ToJSON Language.Haskell.LSP.TH.DataTypesJSON.DidChangeWatchedFilesParams
- Language.Haskell.LSP.TH.DataTypesJSON: instance Data.Aeson.Types.ToJSON.ToJSON Language.Haskell.LSP.TH.DataTypesJSON.DidCloseTextDocumentParams
- Language.Haskell.LSP.TH.DataTypesJSON: instance Data.Aeson.Types.ToJSON.ToJSON Language.Haskell.LSP.TH.DataTypesJSON.DidOpenTextDocumentParams
- Language.Haskell.LSP.TH.DataTypesJSON: instance Data.Aeson.Types.ToJSON.ToJSON Language.Haskell.LSP.TH.DataTypesJSON.DidSaveTextDocumentParams
- Language.Haskell.LSP.TH.DataTypesJSON: instance Data.Aeson.Types.ToJSON.ToJSON Language.Haskell.LSP.TH.DataTypesJSON.DocumentFormattingParams
- Language.Haskell.LSP.TH.DataTypesJSON: instance Data.Aeson.Types.ToJSON.ToJSON Language.Haskell.LSP.TH.DataTypesJSON.DocumentHighlight
- Language.Haskell.LSP.TH.DataTypesJSON: instance Data.Aeson.Types.ToJSON.ToJSON Language.Haskell.LSP.TH.DataTypesJSON.DocumentHighlightKind
- Language.Haskell.LSP.TH.DataTypesJSON: instance Data.Aeson.Types.ToJSON.ToJSON Language.Haskell.LSP.TH.DataTypesJSON.DocumentLink
- Language.Haskell.LSP.TH.DataTypesJSON: instance Data.Aeson.Types.ToJSON.ToJSON Language.Haskell.LSP.TH.DataTypesJSON.DocumentLinkOptions
- Language.Haskell.LSP.TH.DataTypesJSON: instance Data.Aeson.Types.ToJSON.ToJSON Language.Haskell.LSP.TH.DataTypesJSON.DocumentLinkParams
- Language.Haskell.LSP.TH.DataTypesJSON: instance Data.Aeson.Types.ToJSON.ToJSON Language.Haskell.LSP.TH.DataTypesJSON.DocumentOnTypeFormattingOptions
- Language.Haskell.LSP.TH.DataTypesJSON: instance Data.Aeson.Types.ToJSON.ToJSON Language.Haskell.LSP.TH.DataTypesJSON.DocumentOnTypeFormattingParams
- Language.Haskell.LSP.TH.DataTypesJSON: instance Data.Aeson.Types.ToJSON.ToJSON Language.Haskell.LSP.TH.DataTypesJSON.DocumentOnTypeFormattingRegistrationOptions
- Language.Haskell.LSP.TH.DataTypesJSON: instance Data.Aeson.Types.ToJSON.ToJSON Language.Haskell.LSP.TH.DataTypesJSON.DocumentRangeFormattingParams
- Language.Haskell.LSP.TH.DataTypesJSON: instance Data.Aeson.Types.ToJSON.ToJSON Language.Haskell.LSP.TH.DataTypesJSON.ExecuteCommandOptions
- Language.Haskell.LSP.TH.DataTypesJSON: instance Data.Aeson.Types.ToJSON.ToJSON Language.Haskell.LSP.TH.DataTypesJSON.ExecuteCommandParams
- Language.Haskell.LSP.TH.DataTypesJSON: instance Data.Aeson.Types.ToJSON.ToJSON Language.Haskell.LSP.TH.DataTypesJSON.ExecuteCommandRegistrationOptions
- Language.Haskell.LSP.TH.DataTypesJSON: instance Data.Aeson.Types.ToJSON.ToJSON Language.Haskell.LSP.TH.DataTypesJSON.ExitParams
- Language.Haskell.LSP.TH.DataTypesJSON: instance Data.Aeson.Types.ToJSON.ToJSON Language.Haskell.LSP.TH.DataTypesJSON.FileChangeType
- Language.Haskell.LSP.TH.DataTypesJSON: instance Data.Aeson.Types.ToJSON.ToJSON Language.Haskell.LSP.TH.DataTypesJSON.FileEvent
- Language.Haskell.LSP.TH.DataTypesJSON: instance Data.Aeson.Types.ToJSON.ToJSON Language.Haskell.LSP.TH.DataTypesJSON.FormattingOptions
- Language.Haskell.LSP.TH.DataTypesJSON: instance Data.Aeson.Types.ToJSON.ToJSON Language.Haskell.LSP.TH.DataTypesJSON.Hover
- Language.Haskell.LSP.TH.DataTypesJSON: instance Data.Aeson.Types.ToJSON.ToJSON Language.Haskell.LSP.TH.DataTypesJSON.InitializeError
- Language.Haskell.LSP.TH.DataTypesJSON: instance Data.Aeson.Types.ToJSON.ToJSON Language.Haskell.LSP.TH.DataTypesJSON.InitializeParams
- Language.Haskell.LSP.TH.DataTypesJSON: instance Data.Aeson.Types.ToJSON.ToJSON Language.Haskell.LSP.TH.DataTypesJSON.InitializeResponseCapabilities
- Language.Haskell.LSP.TH.DataTypesJSON: instance Data.Aeson.Types.ToJSON.ToJSON Language.Haskell.LSP.TH.DataTypesJSON.InitializeResponseCapabilitiesInner
- Language.Haskell.LSP.TH.DataTypesJSON: instance Data.Aeson.Types.ToJSON.ToJSON Language.Haskell.LSP.TH.DataTypesJSON.InitializedParams
- Language.Haskell.LSP.TH.DataTypesJSON: instance Data.Aeson.Types.ToJSON.ToJSON Language.Haskell.LSP.TH.DataTypesJSON.LanguageString
- Language.Haskell.LSP.TH.DataTypesJSON: instance Data.Aeson.Types.ToJSON.ToJSON Language.Haskell.LSP.TH.DataTypesJSON.LocationResponseParams
- Language.Haskell.LSP.TH.DataTypesJSON: instance Data.Aeson.Types.ToJSON.ToJSON Language.Haskell.LSP.TH.DataTypesJSON.LogMessageParams
- Language.Haskell.LSP.TH.DataTypesJSON: instance Data.Aeson.Types.ToJSON.ToJSON Language.Haskell.LSP.TH.DataTypesJSON.MarkedString
- Language.Haskell.LSP.TH.DataTypesJSON: instance Data.Aeson.Types.ToJSON.ToJSON Language.Haskell.LSP.TH.DataTypesJSON.MessageActionItem
- Language.Haskell.LSP.TH.DataTypesJSON: instance Data.Aeson.Types.ToJSON.ToJSON Language.Haskell.LSP.TH.DataTypesJSON.MessageType
- Language.Haskell.LSP.TH.DataTypesJSON: instance Data.Aeson.Types.ToJSON.ToJSON Language.Haskell.LSP.TH.DataTypesJSON.ParameterInformation
- Language.Haskell.LSP.TH.DataTypesJSON: instance Data.Aeson.Types.ToJSON.ToJSON Language.Haskell.LSP.TH.DataTypesJSON.PublishDiagnosticsParams
- Language.Haskell.LSP.TH.DataTypesJSON: instance Data.Aeson.Types.ToJSON.ToJSON Language.Haskell.LSP.TH.DataTypesJSON.ReferenceContext
- Language.Haskell.LSP.TH.DataTypesJSON: instance Data.Aeson.Types.ToJSON.ToJSON Language.Haskell.LSP.TH.DataTypesJSON.ReferenceParams
- Language.Haskell.LSP.TH.DataTypesJSON: instance Data.Aeson.Types.ToJSON.ToJSON Language.Haskell.LSP.TH.DataTypesJSON.Registration
- Language.Haskell.LSP.TH.DataTypesJSON: instance Data.Aeson.Types.ToJSON.ToJSON Language.Haskell.LSP.TH.DataTypesJSON.RegistrationParams
- Language.Haskell.LSP.TH.DataTypesJSON: instance Data.Aeson.Types.ToJSON.ToJSON Language.Haskell.LSP.TH.DataTypesJSON.RenameParams
- Language.Haskell.LSP.TH.DataTypesJSON: instance Data.Aeson.Types.ToJSON.ToJSON Language.Haskell.LSP.TH.DataTypesJSON.SaveOptions
- Language.Haskell.LSP.TH.DataTypesJSON: instance Data.Aeson.Types.ToJSON.ToJSON Language.Haskell.LSP.TH.DataTypesJSON.ShowMessageParams
- Language.Haskell.LSP.TH.DataTypesJSON: instance Data.Aeson.Types.ToJSON.ToJSON Language.Haskell.LSP.TH.DataTypesJSON.ShowMessageRequestParams
- Language.Haskell.LSP.TH.DataTypesJSON: instance Data.Aeson.Types.ToJSON.ToJSON Language.Haskell.LSP.TH.DataTypesJSON.SignatureHelp
- Language.Haskell.LSP.TH.DataTypesJSON: instance Data.Aeson.Types.ToJSON.ToJSON Language.Haskell.LSP.TH.DataTypesJSON.SignatureHelpOptions
- Language.Haskell.LSP.TH.DataTypesJSON: instance Data.Aeson.Types.ToJSON.ToJSON Language.Haskell.LSP.TH.DataTypesJSON.SignatureHelpRegistrationOptions
- Language.Haskell.LSP.TH.DataTypesJSON: instance Data.Aeson.Types.ToJSON.ToJSON Language.Haskell.LSP.TH.DataTypesJSON.SignatureInformation
- Language.Haskell.LSP.TH.DataTypesJSON: instance Data.Aeson.Types.ToJSON.ToJSON Language.Haskell.LSP.TH.DataTypesJSON.TDS
- Language.Haskell.LSP.TH.DataTypesJSON: instance Data.Aeson.Types.ToJSON.ToJSON Language.Haskell.LSP.TH.DataTypesJSON.TextDocumentChangeRegistrationOptions
- Language.Haskell.LSP.TH.DataTypesJSON: instance Data.Aeson.Types.ToJSON.ToJSON Language.Haskell.LSP.TH.DataTypesJSON.TextDocumentContentChangeEvent
- Language.Haskell.LSP.TH.DataTypesJSON: instance Data.Aeson.Types.ToJSON.ToJSON Language.Haskell.LSP.TH.DataTypesJSON.TextDocumentRegistrationOptions
- Language.Haskell.LSP.TH.DataTypesJSON: instance Data.Aeson.Types.ToJSON.ToJSON Language.Haskell.LSP.TH.DataTypesJSON.TextDocumentSaveReason
- Language.Haskell.LSP.TH.DataTypesJSON: instance Data.Aeson.Types.ToJSON.ToJSON Language.Haskell.LSP.TH.DataTypesJSON.TextDocumentSyncKind
- Language.Haskell.LSP.TH.DataTypesJSON: instance Data.Aeson.Types.ToJSON.ToJSON Language.Haskell.LSP.TH.DataTypesJSON.TextDocumentSyncOptions
- Language.Haskell.LSP.TH.DataTypesJSON: instance Data.Aeson.Types.ToJSON.ToJSON Language.Haskell.LSP.TH.DataTypesJSON.Trace
- Language.Haskell.LSP.TH.DataTypesJSON: instance Data.Aeson.Types.ToJSON.ToJSON Language.Haskell.LSP.TH.DataTypesJSON.TraceNotification
- Language.Haskell.LSP.TH.DataTypesJSON: instance Data.Aeson.Types.ToJSON.ToJSON Language.Haskell.LSP.TH.DataTypesJSON.TraceParams
- Language.Haskell.LSP.TH.DataTypesJSON: instance Data.Aeson.Types.ToJSON.ToJSON Language.Haskell.LSP.TH.DataTypesJSON.Unregistration
- Language.Haskell.LSP.TH.DataTypesJSON: instance Data.Aeson.Types.ToJSON.ToJSON Language.Haskell.LSP.TH.DataTypesJSON.UnregistrationParams
- Language.Haskell.LSP.TH.DataTypesJSON: instance Data.Aeson.Types.ToJSON.ToJSON Language.Haskell.LSP.TH.DataTypesJSON.WillSaveTextDocumentParams
- Language.Haskell.LSP.TH.DataTypesJSON: instance Data.Aeson.Types.ToJSON.ToJSON Language.Haskell.LSP.TH.DataTypesJSON.WorkspaceSymbolParams
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Classes.Eq Language.Haskell.LSP.TH.DataTypesJSON.ApplyWorkspaceEditParams
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Classes.Eq Language.Haskell.LSP.TH.DataTypesJSON.ApplyWorkspaceEditResponseBody
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Classes.Eq Language.Haskell.LSP.TH.DataTypesJSON.CodeLens
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Classes.Eq Language.Haskell.LSP.TH.DataTypesJSON.CodeLensOptions
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Classes.Eq Language.Haskell.LSP.TH.DataTypesJSON.CodeLensParams
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Classes.Eq Language.Haskell.LSP.TH.DataTypesJSON.CodeLensRegistrationOptions
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Classes.Eq Language.Haskell.LSP.TH.DataTypesJSON.CompletionOptions
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Classes.Eq Language.Haskell.LSP.TH.DataTypesJSON.DidChangeConfigurationParams
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Classes.Eq Language.Haskell.LSP.TH.DataTypesJSON.DidChangeTextDocumentParams
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Classes.Eq Language.Haskell.LSP.TH.DataTypesJSON.DidChangeWatchedFilesParams
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Classes.Eq Language.Haskell.LSP.TH.DataTypesJSON.DidCloseTextDocumentParams
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Classes.Eq Language.Haskell.LSP.TH.DataTypesJSON.DidOpenTextDocumentParams
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Classes.Eq Language.Haskell.LSP.TH.DataTypesJSON.DidSaveTextDocumentParams
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Classes.Eq Language.Haskell.LSP.TH.DataTypesJSON.DocumentFormattingParams
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Classes.Eq Language.Haskell.LSP.TH.DataTypesJSON.DocumentHighlight
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Classes.Eq Language.Haskell.LSP.TH.DataTypesJSON.DocumentHighlightKind
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Classes.Eq Language.Haskell.LSP.TH.DataTypesJSON.DocumentLink
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Classes.Eq Language.Haskell.LSP.TH.DataTypesJSON.DocumentLinkOptions
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Classes.Eq Language.Haskell.LSP.TH.DataTypesJSON.DocumentLinkParams
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Classes.Eq Language.Haskell.LSP.TH.DataTypesJSON.DocumentOnTypeFormattingOptions
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Classes.Eq Language.Haskell.LSP.TH.DataTypesJSON.DocumentOnTypeFormattingParams
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Classes.Eq Language.Haskell.LSP.TH.DataTypesJSON.DocumentOnTypeFormattingRegistrationOptions
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Classes.Eq Language.Haskell.LSP.TH.DataTypesJSON.DocumentRangeFormattingParams
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Classes.Eq Language.Haskell.LSP.TH.DataTypesJSON.ExecuteCommandOptions
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Classes.Eq Language.Haskell.LSP.TH.DataTypesJSON.ExecuteCommandParams
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Classes.Eq Language.Haskell.LSP.TH.DataTypesJSON.ExecuteCommandRegistrationOptions
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Classes.Eq Language.Haskell.LSP.TH.DataTypesJSON.ExitParams
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Classes.Eq Language.Haskell.LSP.TH.DataTypesJSON.FileChangeType
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Classes.Eq Language.Haskell.LSP.TH.DataTypesJSON.FileEvent
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Classes.Eq Language.Haskell.LSP.TH.DataTypesJSON.FormattingOptions
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Classes.Eq Language.Haskell.LSP.TH.DataTypesJSON.Hover
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Classes.Eq Language.Haskell.LSP.TH.DataTypesJSON.InitializeError
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Classes.Eq Language.Haskell.LSP.TH.DataTypesJSON.InitializeParams
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Classes.Eq Language.Haskell.LSP.TH.DataTypesJSON.InitializeResponseCapabilities
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Classes.Eq Language.Haskell.LSP.TH.DataTypesJSON.InitializeResponseCapabilitiesInner
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Classes.Eq Language.Haskell.LSP.TH.DataTypesJSON.InitializedParams
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Classes.Eq Language.Haskell.LSP.TH.DataTypesJSON.LanguageString
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Classes.Eq Language.Haskell.LSP.TH.DataTypesJSON.LocationResponseParams
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Classes.Eq Language.Haskell.LSP.TH.DataTypesJSON.LogMessageParams
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Classes.Eq Language.Haskell.LSP.TH.DataTypesJSON.MarkedString
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Classes.Eq Language.Haskell.LSP.TH.DataTypesJSON.MessageActionItem
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Classes.Eq Language.Haskell.LSP.TH.DataTypesJSON.MessageType
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Classes.Eq Language.Haskell.LSP.TH.DataTypesJSON.ParameterInformation
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Classes.Eq Language.Haskell.LSP.TH.DataTypesJSON.PublishDiagnosticsParams
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Classes.Eq Language.Haskell.LSP.TH.DataTypesJSON.ReferenceContext
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Classes.Eq Language.Haskell.LSP.TH.DataTypesJSON.ReferenceParams
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Classes.Eq Language.Haskell.LSP.TH.DataTypesJSON.Registration
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Classes.Eq Language.Haskell.LSP.TH.DataTypesJSON.RegistrationParams
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Classes.Eq Language.Haskell.LSP.TH.DataTypesJSON.RenameParams
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Classes.Eq Language.Haskell.LSP.TH.DataTypesJSON.SaveOptions
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Classes.Eq Language.Haskell.LSP.TH.DataTypesJSON.ShowMessageParams
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Classes.Eq Language.Haskell.LSP.TH.DataTypesJSON.ShowMessageRequestParams
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Classes.Eq Language.Haskell.LSP.TH.DataTypesJSON.SignatureHelp
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Classes.Eq Language.Haskell.LSP.TH.DataTypesJSON.SignatureHelpOptions
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Classes.Eq Language.Haskell.LSP.TH.DataTypesJSON.SignatureHelpRegistrationOptions
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Classes.Eq Language.Haskell.LSP.TH.DataTypesJSON.SignatureInformation
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Classes.Eq Language.Haskell.LSP.TH.DataTypesJSON.TDS
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Classes.Eq Language.Haskell.LSP.TH.DataTypesJSON.TextDocumentChangeRegistrationOptions
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Classes.Eq Language.Haskell.LSP.TH.DataTypesJSON.TextDocumentContentChangeEvent
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Classes.Eq Language.Haskell.LSP.TH.DataTypesJSON.TextDocumentRegistrationOptions
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Classes.Eq Language.Haskell.LSP.TH.DataTypesJSON.TextDocumentSaveReason
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Classes.Eq Language.Haskell.LSP.TH.DataTypesJSON.TextDocumentSyncKind
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Classes.Eq Language.Haskell.LSP.TH.DataTypesJSON.TextDocumentSyncOptions
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Classes.Eq Language.Haskell.LSP.TH.DataTypesJSON.Trace
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Classes.Eq Language.Haskell.LSP.TH.DataTypesJSON.TraceNotification
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Classes.Eq Language.Haskell.LSP.TH.DataTypesJSON.TraceParams
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Classes.Eq Language.Haskell.LSP.TH.DataTypesJSON.Unregistration
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Classes.Eq Language.Haskell.LSP.TH.DataTypesJSON.UnregistrationParams
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Classes.Eq Language.Haskell.LSP.TH.DataTypesJSON.WillSaveTextDocumentParams
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Classes.Eq Language.Haskell.LSP.TH.DataTypesJSON.WorkspaceSymbolParams
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Classes.Ord Language.Haskell.LSP.TH.DataTypesJSON.MessageType
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Enum.Enum Language.Haskell.LSP.TH.DataTypesJSON.MessageType
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Read.Read Language.Haskell.LSP.TH.DataTypesJSON.ApplyWorkspaceEditParams
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Read.Read Language.Haskell.LSP.TH.DataTypesJSON.ApplyWorkspaceEditResponseBody
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Read.Read Language.Haskell.LSP.TH.DataTypesJSON.CodeLens
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Read.Read Language.Haskell.LSP.TH.DataTypesJSON.CodeLensOptions
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Read.Read Language.Haskell.LSP.TH.DataTypesJSON.CodeLensParams
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Read.Read Language.Haskell.LSP.TH.DataTypesJSON.CodeLensRegistrationOptions
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Read.Read Language.Haskell.LSP.TH.DataTypesJSON.CompletionOptions
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Read.Read Language.Haskell.LSP.TH.DataTypesJSON.DidChangeConfigurationParams
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Read.Read Language.Haskell.LSP.TH.DataTypesJSON.DidChangeTextDocumentParams
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Read.Read Language.Haskell.LSP.TH.DataTypesJSON.DidChangeWatchedFilesParams
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Read.Read Language.Haskell.LSP.TH.DataTypesJSON.DidCloseTextDocumentParams
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Read.Read Language.Haskell.LSP.TH.DataTypesJSON.DidOpenTextDocumentParams
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Read.Read Language.Haskell.LSP.TH.DataTypesJSON.DidSaveTextDocumentParams
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Read.Read Language.Haskell.LSP.TH.DataTypesJSON.DocumentFormattingParams
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Read.Read Language.Haskell.LSP.TH.DataTypesJSON.DocumentHighlight
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Read.Read Language.Haskell.LSP.TH.DataTypesJSON.DocumentHighlightKind
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Read.Read Language.Haskell.LSP.TH.DataTypesJSON.DocumentLink
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Read.Read Language.Haskell.LSP.TH.DataTypesJSON.DocumentLinkOptions
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Read.Read Language.Haskell.LSP.TH.DataTypesJSON.DocumentLinkParams
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Read.Read Language.Haskell.LSP.TH.DataTypesJSON.DocumentOnTypeFormattingOptions
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Read.Read Language.Haskell.LSP.TH.DataTypesJSON.DocumentOnTypeFormattingParams
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Read.Read Language.Haskell.LSP.TH.DataTypesJSON.DocumentOnTypeFormattingRegistrationOptions
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Read.Read Language.Haskell.LSP.TH.DataTypesJSON.DocumentRangeFormattingParams
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Read.Read Language.Haskell.LSP.TH.DataTypesJSON.ExecuteCommandOptions
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Read.Read Language.Haskell.LSP.TH.DataTypesJSON.ExecuteCommandParams
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Read.Read Language.Haskell.LSP.TH.DataTypesJSON.ExecuteCommandRegistrationOptions
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Read.Read Language.Haskell.LSP.TH.DataTypesJSON.ExitParams
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Read.Read Language.Haskell.LSP.TH.DataTypesJSON.FileChangeType
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Read.Read Language.Haskell.LSP.TH.DataTypesJSON.FileEvent
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Read.Read Language.Haskell.LSP.TH.DataTypesJSON.FormattingOptions
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Read.Read Language.Haskell.LSP.TH.DataTypesJSON.Hover
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Read.Read Language.Haskell.LSP.TH.DataTypesJSON.InitializeError
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Read.Read Language.Haskell.LSP.TH.DataTypesJSON.InitializeParams
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Read.Read Language.Haskell.LSP.TH.DataTypesJSON.InitializeResponseCapabilities
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Read.Read Language.Haskell.LSP.TH.DataTypesJSON.InitializeResponseCapabilitiesInner
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Read.Read Language.Haskell.LSP.TH.DataTypesJSON.InitializedParams
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Read.Read Language.Haskell.LSP.TH.DataTypesJSON.LanguageString
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Read.Read Language.Haskell.LSP.TH.DataTypesJSON.LocationResponseParams
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Read.Read Language.Haskell.LSP.TH.DataTypesJSON.LogMessageParams
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Read.Read Language.Haskell.LSP.TH.DataTypesJSON.MarkedString
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Read.Read Language.Haskell.LSP.TH.DataTypesJSON.MessageActionItem
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Read.Read Language.Haskell.LSP.TH.DataTypesJSON.MessageType
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Read.Read Language.Haskell.LSP.TH.DataTypesJSON.ParameterInformation
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Read.Read Language.Haskell.LSP.TH.DataTypesJSON.PublishDiagnosticsParams
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Read.Read Language.Haskell.LSP.TH.DataTypesJSON.ReferenceContext
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Read.Read Language.Haskell.LSP.TH.DataTypesJSON.ReferenceParams
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Read.Read Language.Haskell.LSP.TH.DataTypesJSON.Registration
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Read.Read Language.Haskell.LSP.TH.DataTypesJSON.RegistrationParams
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Read.Read Language.Haskell.LSP.TH.DataTypesJSON.RenameParams
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Read.Read Language.Haskell.LSP.TH.DataTypesJSON.SaveOptions
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Read.Read Language.Haskell.LSP.TH.DataTypesJSON.ShowMessageParams
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Read.Read Language.Haskell.LSP.TH.DataTypesJSON.ShowMessageRequestParams
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Read.Read Language.Haskell.LSP.TH.DataTypesJSON.SignatureHelp
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Read.Read Language.Haskell.LSP.TH.DataTypesJSON.SignatureHelpOptions
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Read.Read Language.Haskell.LSP.TH.DataTypesJSON.SignatureHelpRegistrationOptions
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Read.Read Language.Haskell.LSP.TH.DataTypesJSON.SignatureInformation
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Read.Read Language.Haskell.LSP.TH.DataTypesJSON.TDS
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Read.Read Language.Haskell.LSP.TH.DataTypesJSON.TextDocumentChangeRegistrationOptions
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Read.Read Language.Haskell.LSP.TH.DataTypesJSON.TextDocumentContentChangeEvent
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Read.Read Language.Haskell.LSP.TH.DataTypesJSON.TextDocumentRegistrationOptions
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Read.Read Language.Haskell.LSP.TH.DataTypesJSON.TextDocumentSaveReason
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Read.Read Language.Haskell.LSP.TH.DataTypesJSON.TextDocumentSyncKind
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Read.Read Language.Haskell.LSP.TH.DataTypesJSON.TextDocumentSyncOptions
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Read.Read Language.Haskell.LSP.TH.DataTypesJSON.Trace
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Read.Read Language.Haskell.LSP.TH.DataTypesJSON.TraceNotification
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Read.Read Language.Haskell.LSP.TH.DataTypesJSON.TraceParams
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Read.Read Language.Haskell.LSP.TH.DataTypesJSON.Unregistration
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Read.Read Language.Haskell.LSP.TH.DataTypesJSON.UnregistrationParams
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Read.Read Language.Haskell.LSP.TH.DataTypesJSON.WillSaveTextDocumentParams
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Read.Read Language.Haskell.LSP.TH.DataTypesJSON.WorkspaceSymbolParams
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Show.Show Language.Haskell.LSP.TH.DataTypesJSON.ApplyWorkspaceEditParams
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Show.Show Language.Haskell.LSP.TH.DataTypesJSON.ApplyWorkspaceEditResponseBody
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Show.Show Language.Haskell.LSP.TH.DataTypesJSON.CodeLens
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Show.Show Language.Haskell.LSP.TH.DataTypesJSON.CodeLensOptions
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Show.Show Language.Haskell.LSP.TH.DataTypesJSON.CodeLensParams
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Show.Show Language.Haskell.LSP.TH.DataTypesJSON.CodeLensRegistrationOptions
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Show.Show Language.Haskell.LSP.TH.DataTypesJSON.CompletionOptions
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Show.Show Language.Haskell.LSP.TH.DataTypesJSON.DidChangeConfigurationParams
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Show.Show Language.Haskell.LSP.TH.DataTypesJSON.DidChangeTextDocumentParams
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Show.Show Language.Haskell.LSP.TH.DataTypesJSON.DidChangeWatchedFilesParams
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Show.Show Language.Haskell.LSP.TH.DataTypesJSON.DidCloseTextDocumentParams
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Show.Show Language.Haskell.LSP.TH.DataTypesJSON.DidOpenTextDocumentParams
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Show.Show Language.Haskell.LSP.TH.DataTypesJSON.DidSaveTextDocumentParams
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Show.Show Language.Haskell.LSP.TH.DataTypesJSON.DocumentFormattingParams
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Show.Show Language.Haskell.LSP.TH.DataTypesJSON.DocumentHighlight
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Show.Show Language.Haskell.LSP.TH.DataTypesJSON.DocumentHighlightKind
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Show.Show Language.Haskell.LSP.TH.DataTypesJSON.DocumentLink
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Show.Show Language.Haskell.LSP.TH.DataTypesJSON.DocumentLinkOptions
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Show.Show Language.Haskell.LSP.TH.DataTypesJSON.DocumentLinkParams
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Show.Show Language.Haskell.LSP.TH.DataTypesJSON.DocumentOnTypeFormattingOptions
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Show.Show Language.Haskell.LSP.TH.DataTypesJSON.DocumentOnTypeFormattingParams
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Show.Show Language.Haskell.LSP.TH.DataTypesJSON.DocumentOnTypeFormattingRegistrationOptions
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Show.Show Language.Haskell.LSP.TH.DataTypesJSON.DocumentRangeFormattingParams
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Show.Show Language.Haskell.LSP.TH.DataTypesJSON.ExecuteCommandOptions
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Show.Show Language.Haskell.LSP.TH.DataTypesJSON.ExecuteCommandParams
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Show.Show Language.Haskell.LSP.TH.DataTypesJSON.ExecuteCommandRegistrationOptions
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Show.Show Language.Haskell.LSP.TH.DataTypesJSON.ExitParams
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Show.Show Language.Haskell.LSP.TH.DataTypesJSON.FileChangeType
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Show.Show Language.Haskell.LSP.TH.DataTypesJSON.FileEvent
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Show.Show Language.Haskell.LSP.TH.DataTypesJSON.FormattingOptions
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Show.Show Language.Haskell.LSP.TH.DataTypesJSON.Hover
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Show.Show Language.Haskell.LSP.TH.DataTypesJSON.InitializeError
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Show.Show Language.Haskell.LSP.TH.DataTypesJSON.InitializeParams
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Show.Show Language.Haskell.LSP.TH.DataTypesJSON.InitializeResponseCapabilities
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Show.Show Language.Haskell.LSP.TH.DataTypesJSON.InitializeResponseCapabilitiesInner
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Show.Show Language.Haskell.LSP.TH.DataTypesJSON.InitializedParams
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Show.Show Language.Haskell.LSP.TH.DataTypesJSON.LanguageString
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Show.Show Language.Haskell.LSP.TH.DataTypesJSON.LocationResponseParams
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Show.Show Language.Haskell.LSP.TH.DataTypesJSON.LogMessageParams
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Show.Show Language.Haskell.LSP.TH.DataTypesJSON.MarkedString
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Show.Show Language.Haskell.LSP.TH.DataTypesJSON.MessageActionItem
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Show.Show Language.Haskell.LSP.TH.DataTypesJSON.MessageType
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Show.Show Language.Haskell.LSP.TH.DataTypesJSON.ParameterInformation
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Show.Show Language.Haskell.LSP.TH.DataTypesJSON.PublishDiagnosticsParams
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Show.Show Language.Haskell.LSP.TH.DataTypesJSON.ReferenceContext
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Show.Show Language.Haskell.LSP.TH.DataTypesJSON.ReferenceParams
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Show.Show Language.Haskell.LSP.TH.DataTypesJSON.Registration
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Show.Show Language.Haskell.LSP.TH.DataTypesJSON.RegistrationParams
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Show.Show Language.Haskell.LSP.TH.DataTypesJSON.RenameParams
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Show.Show Language.Haskell.LSP.TH.DataTypesJSON.SaveOptions
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Show.Show Language.Haskell.LSP.TH.DataTypesJSON.ShowMessageParams
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Show.Show Language.Haskell.LSP.TH.DataTypesJSON.ShowMessageRequestParams
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Show.Show Language.Haskell.LSP.TH.DataTypesJSON.SignatureHelp
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Show.Show Language.Haskell.LSP.TH.DataTypesJSON.SignatureHelpOptions
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Show.Show Language.Haskell.LSP.TH.DataTypesJSON.SignatureHelpRegistrationOptions
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Show.Show Language.Haskell.LSP.TH.DataTypesJSON.SignatureInformation
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Show.Show Language.Haskell.LSP.TH.DataTypesJSON.TDS
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Show.Show Language.Haskell.LSP.TH.DataTypesJSON.TextDocumentChangeRegistrationOptions
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Show.Show Language.Haskell.LSP.TH.DataTypesJSON.TextDocumentContentChangeEvent
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Show.Show Language.Haskell.LSP.TH.DataTypesJSON.TextDocumentRegistrationOptions
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Show.Show Language.Haskell.LSP.TH.DataTypesJSON.TextDocumentSaveReason
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Show.Show Language.Haskell.LSP.TH.DataTypesJSON.TextDocumentSyncKind
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Show.Show Language.Haskell.LSP.TH.DataTypesJSON.TextDocumentSyncOptions
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Show.Show Language.Haskell.LSP.TH.DataTypesJSON.Trace
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Show.Show Language.Haskell.LSP.TH.DataTypesJSON.TraceNotification
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Show.Show Language.Haskell.LSP.TH.DataTypesJSON.TraceParams
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Show.Show Language.Haskell.LSP.TH.DataTypesJSON.Unregistration
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Show.Show Language.Haskell.LSP.TH.DataTypesJSON.UnregistrationParams
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Show.Show Language.Haskell.LSP.TH.DataTypesJSON.WillSaveTextDocumentParams
- Language.Haskell.LSP.TH.DataTypesJSON: instance GHC.Show.Show Language.Haskell.LSP.TH.DataTypesJSON.WorkspaceSymbolParams
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasActions Language.Haskell.LSP.TH.DataTypesJSON.ShowMessageRequestParams (GHC.Base.Maybe [Language.Haskell.LSP.TH.DataTypesJSON.MessageActionItem])
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasActiveParameter Language.Haskell.LSP.TH.DataTypesJSON.SignatureHelp (GHC.Base.Maybe GHC.Types.Int)
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasActiveSignature Language.Haskell.LSP.TH.DataTypesJSON.SignatureHelp (GHC.Base.Maybe GHC.Types.Int)
- 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.HasApplied Language.Haskell.LSP.TH.DataTypesJSON.ApplyWorkspaceEditResponseBody GHC.Types.Bool
- 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.HasArguments Language.Haskell.LSP.TH.DataTypesJSON.ExecuteCommandParams (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.HasCapabilities Language.Haskell.LSP.TH.DataTypesJSON.InitializeParams Language.Haskell.LSP.TH.ClientCapabilities.ClientCapabilities
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasCapabilities Language.Haskell.LSP.TH.DataTypesJSON.InitializeResponseCapabilities Language.Haskell.LSP.TH.DataTypesJSON.InitializeResponseCapabilitiesInner
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasCh Language.Haskell.LSP.TH.DataTypesJSON.DocumentOnTypeFormattingParams Data.Text.Internal.Text
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasChange Language.Haskell.LSP.TH.DataTypesJSON.TextDocumentSyncOptions (GHC.Base.Maybe Language.Haskell.LSP.TH.DataTypesJSON.TextDocumentSyncKind)
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasChanges Language.Haskell.LSP.TH.DataTypesJSON.DidChangeWatchedFilesParams (Language.Haskell.LSP.TH.List.List Language.Haskell.LSP.TH.DataTypesJSON.FileEvent)
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasChanges Language.Haskell.LSP.TH.WorkspaceEdit.WorkspaceEdit (GHC.Base.Maybe Language.Haskell.LSP.TH.WorkspaceEdit.WorkspaceEditMap)
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasCharacter Language.Haskell.LSP.TH.Location.Position GHC.Types.Int
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasChildren Language.Haskell.LSP.TH.Symbol.DocumentSymbol (GHC.Base.Maybe (Language.Haskell.LSP.TH.List.List Language.Haskell.LSP.TH.Symbol.DocumentSymbol))
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasCode Language.Haskell.LSP.TH.Diagnostic.Diagnostic (GHC.Base.Maybe Data.Text.Internal.Text)
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasCode Language.Haskell.LSP.TH.Message.ResponseError Language.Haskell.LSP.TH.Message.ErrorCode
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasCodeActionProvider Language.Haskell.LSP.TH.DataTypesJSON.InitializeResponseCapabilitiesInner (GHC.Base.Maybe GHC.Types.Bool)
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasCodeLensProvider Language.Haskell.LSP.TH.DataTypesJSON.InitializeResponseCapabilitiesInner (GHC.Base.Maybe Language.Haskell.LSP.TH.DataTypesJSON.CodeLensOptions)
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasCommand Language.Haskell.LSP.TH.CodeAction.CodeAction (GHC.Base.Maybe Language.Haskell.LSP.TH.Command.Command)
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasCommand Language.Haskell.LSP.TH.Command.Command Data.Text.Internal.Text
- 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.HasCommand Language.Haskell.LSP.TH.DataTypesJSON.CodeLens (GHC.Base.Maybe Language.Haskell.LSP.TH.Command.Command)
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasCommand Language.Haskell.LSP.TH.DataTypesJSON.ExecuteCommandParams Data.Text.Internal.Text
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasCommands Language.Haskell.LSP.TH.DataTypesJSON.ExecuteCommandOptions (Language.Haskell.LSP.TH.List.List Data.Text.Internal.Text)
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasCommands Language.Haskell.LSP.TH.DataTypesJSON.ExecuteCommandRegistrationOptions (Language.Haskell.LSP.TH.List.List Data.Text.Internal.Text)
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasCompletionProvider Language.Haskell.LSP.TH.DataTypesJSON.InitializeResponseCapabilitiesInner (GHC.Base.Maybe Language.Haskell.LSP.TH.DataTypesJSON.CompletionOptions)
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasContainerName Language.Haskell.LSP.TH.Symbol.SymbolInformation (GHC.Base.Maybe Data.Text.Internal.Text)
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasContentChanges Language.Haskell.LSP.TH.DataTypesJSON.DidChangeTextDocumentParams (Language.Haskell.LSP.TH.List.List Language.Haskell.LSP.TH.DataTypesJSON.TextDocumentContentChangeEvent)
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasContents Language.Haskell.LSP.TH.DataTypesJSON.Hover (Language.Haskell.LSP.TH.List.List Language.Haskell.LSP.TH.DataTypesJSON.MarkedString)
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasContext Language.Haskell.LSP.TH.CodeAction.CodeActionParams Language.Haskell.LSP.TH.CodeAction.CodeActionContext
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasContext Language.Haskell.LSP.TH.DataTypesJSON.ReferenceParams Language.Haskell.LSP.TH.DataTypesJSON.ReferenceContext
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasDefinitionProvider Language.Haskell.LSP.TH.DataTypesJSON.InitializeResponseCapabilitiesInner (GHC.Base.Maybe GHC.Types.Bool)
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasDeprecated Language.Haskell.LSP.TH.Symbol.DocumentSymbol (GHC.Base.Maybe GHC.Types.Bool)
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasDeprecated Language.Haskell.LSP.TH.Symbol.SymbolInformation (GHC.Base.Maybe GHC.Types.Bool)
- 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.HasDetail Language.Haskell.LSP.TH.Symbol.DocumentSymbol (GHC.Base.Maybe Data.Text.Internal.Text)
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasDiagnostics Language.Haskell.LSP.TH.CodeAction.CodeAction (GHC.Base.Maybe (Language.Haskell.LSP.TH.List.List Language.Haskell.LSP.TH.Diagnostic.Diagnostic))
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasDiagnostics Language.Haskell.LSP.TH.CodeAction.CodeActionContext (Language.Haskell.LSP.TH.List.List Language.Haskell.LSP.TH.Diagnostic.Diagnostic)
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasDiagnostics Language.Haskell.LSP.TH.DataTypesJSON.PublishDiagnosticsParams (Language.Haskell.LSP.TH.List.List Language.Haskell.LSP.TH.Diagnostic.Diagnostic)
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasDocumentChanges Language.Haskell.LSP.TH.WorkspaceEdit.WorkspaceEdit (GHC.Base.Maybe (Language.Haskell.LSP.TH.List.List Language.Haskell.LSP.TH.WorkspaceEdit.TextDocumentEdit))
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasDocumentFormattingProvider Language.Haskell.LSP.TH.DataTypesJSON.InitializeResponseCapabilitiesInner (GHC.Base.Maybe GHC.Types.Bool)
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasDocumentHighlightProvider Language.Haskell.LSP.TH.DataTypesJSON.InitializeResponseCapabilitiesInner (GHC.Base.Maybe GHC.Types.Bool)
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasDocumentLinkProvider Language.Haskell.LSP.TH.DataTypesJSON.InitializeResponseCapabilitiesInner (GHC.Base.Maybe Language.Haskell.LSP.TH.DataTypesJSON.DocumentLinkOptions)
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasDocumentOnTypeFormattingProvider Language.Haskell.LSP.TH.DataTypesJSON.InitializeResponseCapabilitiesInner (GHC.Base.Maybe Language.Haskell.LSP.TH.DataTypesJSON.DocumentOnTypeFormattingOptions)
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasDocumentRangeFormattingProvider Language.Haskell.LSP.TH.DataTypesJSON.InitializeResponseCapabilitiesInner (GHC.Base.Maybe GHC.Types.Bool)
- 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.HasDocumentSymbolProvider Language.Haskell.LSP.TH.DataTypesJSON.InitializeResponseCapabilitiesInner (GHC.Base.Maybe GHC.Types.Bool)
- 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.HasDocumentation Language.Haskell.LSP.TH.DataTypesJSON.ParameterInformation (GHC.Base.Maybe Data.Text.Internal.Text)
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasDocumentation Language.Haskell.LSP.TH.DataTypesJSON.SignatureInformation (GHC.Base.Maybe Data.Text.Internal.Text)
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasEdit Language.Haskell.LSP.TH.CodeAction.CodeAction (GHC.Base.Maybe Language.Haskell.LSP.TH.WorkspaceEdit.WorkspaceEdit)
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasEdit Language.Haskell.LSP.TH.DataTypesJSON.ApplyWorkspaceEditParams Language.Haskell.LSP.TH.WorkspaceEdit.WorkspaceEdit
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasEdits Language.Haskell.LSP.TH.WorkspaceEdit.TextDocumentEdit (Language.Haskell.LSP.TH.List.List Language.Haskell.LSP.TH.WorkspaceEdit.TextEdit)
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasEnd Language.Haskell.LSP.TH.Location.Range Language.Haskell.LSP.TH.Location.Position
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasError (Language.Haskell.LSP.TH.Message.ResponseMessage a) (GHC.Base.Maybe Language.Haskell.LSP.TH.Message.ResponseError)
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasExecuteCommandProvider Language.Haskell.LSP.TH.DataTypesJSON.InitializeResponseCapabilitiesInner (GHC.Base.Maybe Language.Haskell.LSP.TH.DataTypesJSON.ExecuteCommandOptions)
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasExperimental Language.Haskell.LSP.TH.DataTypesJSON.InitializeResponseCapabilitiesInner (GHC.Base.Maybe Data.Aeson.Types.Internal.Value)
- 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.HasFirstTriggerCharacter Language.Haskell.LSP.TH.DataTypesJSON.DocumentOnTypeFormattingOptions Data.Text.Internal.Text
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasHoverProvider Language.Haskell.LSP.TH.DataTypesJSON.InitializeResponseCapabilitiesInner (GHC.Base.Maybe GHC.Types.Bool)
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasId (Language.Haskell.LSP.TH.Message.RequestMessage m req resp) Language.Haskell.LSP.TH.Message.LspId
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasId (Language.Haskell.LSP.TH.Message.ResponseMessage a) Language.Haskell.LSP.TH.Message.LspIdRsp
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasId Language.Haskell.LSP.TH.DataTypesJSON.Registration Data.Text.Internal.Text
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasId Language.Haskell.LSP.TH.DataTypesJSON.Unregistration Data.Text.Internal.Text
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasId Language.Haskell.LSP.TH.Message.CancelParams Language.Haskell.LSP.TH.Message.LspId
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasIncludeDeclaration Language.Haskell.LSP.TH.DataTypesJSON.ReferenceContext GHC.Types.Bool
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasIncludeText Language.Haskell.LSP.TH.DataTypesJSON.SaveOptions (GHC.Base.Maybe GHC.Types.Bool)
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasInitializationOptions Language.Haskell.LSP.TH.DataTypesJSON.InitializeParams (GHC.Base.Maybe Data.Aeson.Types.Internal.Value)
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasInsertSpaces Language.Haskell.LSP.TH.DataTypesJSON.FormattingOptions GHC.Types.Bool
- 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.HasJsonrpc (Language.Haskell.LSP.TH.Message.NotificationMessage m a) Data.Text.Internal.Text
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasJsonrpc (Language.Haskell.LSP.TH.Message.RequestMessage m req resp) Data.Text.Internal.Text
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasJsonrpc (Language.Haskell.LSP.TH.Message.ResponseMessage a) Data.Text.Internal.Text
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasKind Language.Haskell.LSP.TH.CodeAction.CodeAction (GHC.Base.Maybe Language.Haskell.LSP.TH.CodeAction.CodeActionKind)
- 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.HasKind Language.Haskell.LSP.TH.DataTypesJSON.DocumentHighlight (GHC.Base.Maybe Language.Haskell.LSP.TH.DataTypesJSON.DocumentHighlightKind)
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasKind Language.Haskell.LSP.TH.Symbol.DocumentSymbol Language.Haskell.LSP.TH.Symbol.SymbolKind
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasKind Language.Haskell.LSP.TH.Symbol.SymbolInformation Language.Haskell.LSP.TH.Symbol.SymbolKind
- 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.HasLabel Language.Haskell.LSP.TH.DataTypesJSON.ParameterInformation Data.Text.Internal.Text
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasLabel Language.Haskell.LSP.TH.DataTypesJSON.SignatureInformation Data.Text.Internal.Text
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasLanguage Language.Haskell.LSP.TH.DataTypesJSON.LanguageString 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.HasLine Language.Haskell.LSP.TH.Location.Position GHC.Types.Int
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasLocation Language.Haskell.LSP.TH.Diagnostic.DiagnosticRelatedInformation Language.Haskell.LSP.TH.Location.Location
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasLocation Language.Haskell.LSP.TH.Symbol.SymbolInformation Language.Haskell.LSP.TH.Location.Location
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasMessage Language.Haskell.LSP.TH.DataTypesJSON.LogMessageParams Data.Text.Internal.Text
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasMessage Language.Haskell.LSP.TH.DataTypesJSON.ShowMessageParams Data.Text.Internal.Text
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasMessage Language.Haskell.LSP.TH.DataTypesJSON.ShowMessageRequestParams Data.Text.Internal.Text
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasMessage Language.Haskell.LSP.TH.Diagnostic.Diagnostic Data.Text.Internal.Text
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasMessage Language.Haskell.LSP.TH.Diagnostic.DiagnosticRelatedInformation Data.Text.Internal.Text
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasMessage Language.Haskell.LSP.TH.Message.ResponseError Data.Text.Internal.Text
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasMethod (Language.Haskell.LSP.TH.Message.NotificationMessage m a) m
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasMethod (Language.Haskell.LSP.TH.Message.RequestMessage m req resp) m
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasMethod Language.Haskell.LSP.TH.DataTypesJSON.Registration Language.Haskell.LSP.TH.Message.ClientMethod
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasMethod Language.Haskell.LSP.TH.DataTypesJSON.Unregistration Data.Text.Internal.Text
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasMoreTriggerCharacter Language.Haskell.LSP.TH.DataTypesJSON.DocumentOnTypeFormattingOptions (GHC.Base.Maybe [GHC.Base.String])
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasName Language.Haskell.LSP.TH.Symbol.DocumentSymbol Data.Text.Internal.Text
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasName Language.Haskell.LSP.TH.Symbol.SymbolInformation Data.Text.Internal.Text
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasNewName Language.Haskell.LSP.TH.DataTypesJSON.RenameParams Data.Text.Internal.Text
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasNewText Language.Haskell.LSP.TH.WorkspaceEdit.TextEdit Data.Text.Internal.Text
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasOpenClose Language.Haskell.LSP.TH.DataTypesJSON.TextDocumentSyncOptions (GHC.Base.Maybe GHC.Types.Bool)
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasOptions Language.Haskell.LSP.TH.DataTypesJSON.DocumentFormattingParams Language.Haskell.LSP.TH.DataTypesJSON.FormattingOptions
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasOptions Language.Haskell.LSP.TH.DataTypesJSON.DocumentOnTypeFormattingParams Language.Haskell.LSP.TH.DataTypesJSON.FormattingOptions
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasOptions Language.Haskell.LSP.TH.DataTypesJSON.DocumentRangeFormattingParams Language.Haskell.LSP.TH.DataTypesJSON.FormattingOptions
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasParameters Language.Haskell.LSP.TH.DataTypesJSON.SignatureInformation (GHC.Base.Maybe [Language.Haskell.LSP.TH.DataTypesJSON.ParameterInformation])
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasParams (Language.Haskell.LSP.TH.Message.NotificationMessage m a) a
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasParams (Language.Haskell.LSP.TH.Message.RequestMessage m req resp) req
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasParams Language.Haskell.LSP.TH.DataTypesJSON.TraceNotification Language.Haskell.LSP.TH.DataTypesJSON.TraceParams
- 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.DataTypesJSON.DocumentOnTypeFormattingParams Language.Haskell.LSP.TH.Location.Position
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasPosition Language.Haskell.LSP.TH.DataTypesJSON.ReferenceParams Language.Haskell.LSP.TH.Location.Position
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasPosition Language.Haskell.LSP.TH.DataTypesJSON.RenameParams Language.Haskell.LSP.TH.Location.Position
- 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.HasProcessId Language.Haskell.LSP.TH.DataTypesJSON.InitializeParams (GHC.Base.Maybe GHC.Types.Int)
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasQuery Language.Haskell.LSP.TH.DataTypesJSON.WorkspaceSymbolParams Data.Text.Internal.Text
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasRange Language.Haskell.LSP.TH.CodeAction.CodeActionParams Language.Haskell.LSP.TH.Location.Range
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasRange Language.Haskell.LSP.TH.DataTypesJSON.CodeLens Language.Haskell.LSP.TH.Location.Range
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasRange Language.Haskell.LSP.TH.DataTypesJSON.DocumentHighlight Language.Haskell.LSP.TH.Location.Range
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasRange Language.Haskell.LSP.TH.DataTypesJSON.DocumentLink Language.Haskell.LSP.TH.Location.Range
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasRange Language.Haskell.LSP.TH.DataTypesJSON.DocumentRangeFormattingParams Language.Haskell.LSP.TH.Location.Range
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasRange Language.Haskell.LSP.TH.DataTypesJSON.Hover (GHC.Base.Maybe Language.Haskell.LSP.TH.Location.Range)
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasRange Language.Haskell.LSP.TH.DataTypesJSON.TextDocumentContentChangeEvent (GHC.Base.Maybe Language.Haskell.LSP.TH.Location.Range)
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasRange Language.Haskell.LSP.TH.Diagnostic.Diagnostic Language.Haskell.LSP.TH.Location.Range
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasRange Language.Haskell.LSP.TH.Location.Location Language.Haskell.LSP.TH.Location.Range
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasRange Language.Haskell.LSP.TH.Symbol.DocumentSymbol Language.Haskell.LSP.TH.Location.Range
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasRange Language.Haskell.LSP.TH.WorkspaceEdit.TextEdit Language.Haskell.LSP.TH.Location.Range
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasRangeLength Language.Haskell.LSP.TH.DataTypesJSON.TextDocumentContentChangeEvent (GHC.Base.Maybe GHC.Types.Int)
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasReason Language.Haskell.LSP.TH.DataTypesJSON.WillSaveTextDocumentParams Language.Haskell.LSP.TH.DataTypesJSON.TextDocumentSaveReason
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasReferencesProvider Language.Haskell.LSP.TH.DataTypesJSON.InitializeResponseCapabilitiesInner (GHC.Base.Maybe GHC.Types.Bool)
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasRegisterOptions Language.Haskell.LSP.TH.DataTypesJSON.Registration (GHC.Base.Maybe Data.Aeson.Types.Internal.Value)
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasRegistrations Language.Haskell.LSP.TH.DataTypesJSON.RegistrationParams (Language.Haskell.LSP.TH.List.List Language.Haskell.LSP.TH.DataTypesJSON.Registration)
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasRelatedInformation Language.Haskell.LSP.TH.Diagnostic.Diagnostic (GHC.Base.Maybe (Language.Haskell.LSP.TH.List.List Language.Haskell.LSP.TH.Diagnostic.DiagnosticRelatedInformation))
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasRenameProvider Language.Haskell.LSP.TH.DataTypesJSON.InitializeResponseCapabilitiesInner (GHC.Base.Maybe GHC.Types.Bool)
- 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.HasResolveProvider Language.Haskell.LSP.TH.DataTypesJSON.CodeLensOptions (GHC.Base.Maybe GHC.Types.Bool)
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasResolveProvider Language.Haskell.LSP.TH.DataTypesJSON.CodeLensRegistrationOptions (GHC.Base.Maybe GHC.Types.Bool)
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasResolveProvider Language.Haskell.LSP.TH.DataTypesJSON.CompletionOptions (GHC.Base.Maybe GHC.Types.Bool)
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasResolveProvider Language.Haskell.LSP.TH.DataTypesJSON.DocumentLinkOptions (GHC.Base.Maybe GHC.Types.Bool)
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasResult (Language.Haskell.LSP.TH.Message.ResponseMessage a) (GHC.Base.Maybe a)
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasRetry Language.Haskell.LSP.TH.DataTypesJSON.InitializeError GHC.Types.Bool
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasRootPath Language.Haskell.LSP.TH.DataTypesJSON.InitializeParams (GHC.Base.Maybe Data.Text.Internal.Text)
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasRootUri Language.Haskell.LSP.TH.DataTypesJSON.InitializeParams (GHC.Base.Maybe Language.Haskell.LSP.TH.Uri.Uri)
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasSave Language.Haskell.LSP.TH.DataTypesJSON.TextDocumentSyncOptions (GHC.Base.Maybe Language.Haskell.LSP.TH.DataTypesJSON.SaveOptions)
- 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.HasSelectionRange Language.Haskell.LSP.TH.Symbol.DocumentSymbol Language.Haskell.LSP.TH.Location.Range
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasSettings Language.Haskell.LSP.TH.DataTypesJSON.DidChangeConfigurationParams Data.Aeson.Types.Internal.Value
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasSeverity Language.Haskell.LSP.TH.Diagnostic.Diagnostic (GHC.Base.Maybe Language.Haskell.LSP.TH.Diagnostic.DiagnosticSeverity)
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasSignatureHelpProvider Language.Haskell.LSP.TH.DataTypesJSON.InitializeResponseCapabilitiesInner (GHC.Base.Maybe Language.Haskell.LSP.TH.DataTypesJSON.SignatureHelpOptions)
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasSignatures Language.Haskell.LSP.TH.DataTypesJSON.SignatureHelp (Language.Haskell.LSP.TH.List.List Language.Haskell.LSP.TH.DataTypesJSON.SignatureInformation)
- 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.HasSource Language.Haskell.LSP.TH.Diagnostic.Diagnostic (GHC.Base.Maybe Language.Haskell.LSP.TH.Diagnostic.DiagnosticSource)
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasStart Language.Haskell.LSP.TH.Location.Range Language.Haskell.LSP.TH.Location.Position
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasSyncKind Language.Haskell.LSP.TH.DataTypesJSON.TextDocumentChangeRegistrationOptions Language.Haskell.LSP.TH.DataTypesJSON.TextDocumentSyncKind
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasTabSize Language.Haskell.LSP.TH.DataTypesJSON.FormattingOptions GHC.Types.Int
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasTarget Language.Haskell.LSP.TH.DataTypesJSON.DocumentLink (GHC.Base.Maybe Data.Text.Internal.Text)
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasText Language.Haskell.LSP.TH.DataTypesJSON.TextDocumentContentChangeEvent 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.DidChangeTextDocumentParams Language.Haskell.LSP.TH.WorkspaceEdit.VersionedTextDocumentIdentifier
- 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.HasTextDocument Language.Haskell.LSP.TH.WorkspaceEdit.TextDocumentEdit Language.Haskell.LSP.TH.WorkspaceEdit.VersionedTextDocumentIdentifier
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasTextDocumentSync Language.Haskell.LSP.TH.DataTypesJSON.InitializeResponseCapabilitiesInner (GHC.Base.Maybe Language.Haskell.LSP.TH.DataTypesJSON.TDS)
- 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.HasTitle Language.Haskell.LSP.TH.CodeAction.CodeAction Data.Text.Internal.Text
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasTitle Language.Haskell.LSP.TH.Command.Command Data.Text.Internal.Text
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasTitle Language.Haskell.LSP.TH.DataTypesJSON.MessageActionItem Data.Text.Internal.Text
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasTrace Language.Haskell.LSP.TH.DataTypesJSON.InitializeParams (GHC.Base.Maybe Language.Haskell.LSP.TH.DataTypesJSON.Trace)
- 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.HasTriggerCharacters Language.Haskell.LSP.TH.DataTypesJSON.CompletionOptions (GHC.Base.Maybe [GHC.Base.String])
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasTriggerCharacters Language.Haskell.LSP.TH.DataTypesJSON.SignatureHelpOptions (GHC.Base.Maybe [GHC.Base.String])
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasTriggerCharacters Language.Haskell.LSP.TH.DataTypesJSON.SignatureHelpRegistrationOptions (GHC.Base.Maybe (Language.Haskell.LSP.TH.List.List GHC.Base.String))
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasUnregistrations Language.Haskell.LSP.TH.DataTypesJSON.UnregistrationParams (Language.Haskell.LSP.TH.List.List Language.Haskell.LSP.TH.DataTypesJSON.Unregistration)
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasUri Language.Haskell.LSP.TH.DataTypesJSON.FileEvent Language.Haskell.LSP.TH.Uri.Uri
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasUri Language.Haskell.LSP.TH.DataTypesJSON.PublishDiagnosticsParams Language.Haskell.LSP.TH.Uri.Uri
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasUri Language.Haskell.LSP.TH.Location.Location Language.Haskell.LSP.TH.Uri.Uri
- 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.HasUri Language.Haskell.LSP.TH.WorkspaceEdit.VersionedTextDocumentIdentifier Language.Haskell.LSP.TH.Uri.Uri
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasValue Language.Haskell.LSP.TH.DataTypesJSON.LanguageString Data.Text.Internal.Text
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasValue Language.Haskell.LSP.TH.DataTypesJSON.TraceParams Data.Text.Internal.Text
- 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.HasVersion Language.Haskell.LSP.TH.WorkspaceEdit.VersionedTextDocumentIdentifier Language.Haskell.LSP.TH.WorkspaceEdit.TextDocumentVersion
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasWillSave Language.Haskell.LSP.TH.DataTypesJSON.TextDocumentSyncOptions (GHC.Base.Maybe GHC.Types.Bool)
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasWillSaveWaitUntil Language.Haskell.LSP.TH.DataTypesJSON.TextDocumentSyncOptions (GHC.Base.Maybe GHC.Types.Bool)
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasWorkspaceSymbolProvider Language.Haskell.LSP.TH.DataTypesJSON.InitializeResponseCapabilitiesInner (GHC.Base.Maybe GHC.Types.Bool)
- 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: instance Language.Haskell.LSP.TH.DataTypesJSON.HasXdata Language.Haskell.LSP.TH.DataTypesJSON.CodeLens (GHC.Base.Maybe Data.Aeson.Types.Internal.Value)
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasXdata Language.Haskell.LSP.TH.Message.ResponseError (GHC.Base.Maybe Data.Aeson.Types.Internal.Value)
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasXtype Language.Haskell.LSP.TH.DataTypesJSON.FileEvent Language.Haskell.LSP.TH.DataTypesJSON.FileChangeType
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasXtype Language.Haskell.LSP.TH.DataTypesJSON.LogMessageParams Language.Haskell.LSP.TH.DataTypesJSON.MessageType
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasXtype Language.Haskell.LSP.TH.DataTypesJSON.ShowMessageParams Language.Haskell.LSP.TH.DataTypesJSON.MessageType
- Language.Haskell.LSP.TH.DataTypesJSON: instance Language.Haskell.LSP.TH.DataTypesJSON.HasXtype Language.Haskell.LSP.TH.DataTypesJSON.ShowMessageRequestParams Language.Haskell.LSP.TH.DataTypesJSON.MessageType
- Language.Haskell.LSP.TH.DataTypesJSON: isIncomplete :: HasIsIncomplete s a => Lens' s a
- Language.Haskell.LSP.TH.DataTypesJSON: items :: HasItems s a => Lens' s a
- Language.Haskell.LSP.TH.DataTypesJSON: jsonrpc :: HasJsonrpc s a => Lens' s a
- Language.Haskell.LSP.TH.DataTypesJSON: kind :: HasKind s a => Lens' s a
- Language.Haskell.LSP.TH.DataTypesJSON: label :: HasLabel s a => Lens' s a
- Language.Haskell.LSP.TH.DataTypesJSON: language :: HasLanguage s a => Lens' s a
- Language.Haskell.LSP.TH.DataTypesJSON: languageId :: HasLanguageId s a => Lens' s a
- Language.Haskell.LSP.TH.DataTypesJSON: line :: HasLine s a => Lens' s a
- Language.Haskell.LSP.TH.DataTypesJSON: location :: HasLocation s a => Lens' s a
- Language.Haskell.LSP.TH.DataTypesJSON: message :: HasMessage s a => Lens' s a
- Language.Haskell.LSP.TH.DataTypesJSON: method :: HasMethod s a => Lens' s a
- Language.Haskell.LSP.TH.DataTypesJSON: moreTriggerCharacter :: HasMoreTriggerCharacter s a => Lens' s a
- Language.Haskell.LSP.TH.DataTypesJSON: name :: HasName s a => Lens' s a
- Language.Haskell.LSP.TH.DataTypesJSON: newName :: HasNewName s a => Lens' s a
- Language.Haskell.LSP.TH.DataTypesJSON: newText :: HasNewText s a => Lens' s a
- Language.Haskell.LSP.TH.DataTypesJSON: newtype List a
- Language.Haskell.LSP.TH.DataTypesJSON: newtype Uri
- Language.Haskell.LSP.TH.DataTypesJSON: openClose :: HasOpenClose s a => Lens' s a
- Language.Haskell.LSP.TH.DataTypesJSON: options :: HasOptions s a => Lens' s a
- Language.Haskell.LSP.TH.DataTypesJSON: parameters :: HasParameters s a => Lens' s a
- Language.Haskell.LSP.TH.DataTypesJSON: params :: HasParams s a => Lens' s a
- Language.Haskell.LSP.TH.DataTypesJSON: pattern :: HasPattern s a => Lens' s a
- Language.Haskell.LSP.TH.DataTypesJSON: platformAdjustFromUriPath :: SystemOS -> String -> FilePath
- Language.Haskell.LSP.TH.DataTypesJSON: platformAdjustToUriPath :: SystemOS -> FilePath -> String
- Language.Haskell.LSP.TH.DataTypesJSON: platformAwareFilePathToUri :: SystemOS -> FilePath -> Uri
- Language.Haskell.LSP.TH.DataTypesJSON: platformAwareUriToFilePath :: String -> Uri -> Maybe FilePath
- Language.Haskell.LSP.TH.DataTypesJSON: position :: HasPosition s a => Lens' s a
- Language.Haskell.LSP.TH.DataTypesJSON: processId :: HasProcessId s a => Lens' s a
- Language.Haskell.LSP.TH.DataTypesJSON: query :: HasQuery s a => Lens' s a
- Language.Haskell.LSP.TH.DataTypesJSON: range :: HasRange s a => Lens' s a
- Language.Haskell.LSP.TH.DataTypesJSON: rangeLength :: HasRangeLength s a => Lens' s a
- Language.Haskell.LSP.TH.DataTypesJSON: reason :: HasReason s a => Lens' s a
- Language.Haskell.LSP.TH.DataTypesJSON: referencesProvider :: HasReferencesProvider s a => Lens' s a
- Language.Haskell.LSP.TH.DataTypesJSON: registerOptions :: HasRegisterOptions s a => Lens' s a
- Language.Haskell.LSP.TH.DataTypesJSON: registrations :: HasRegistrations s a => Lens' s a
- Language.Haskell.LSP.TH.DataTypesJSON: relatedInformation :: HasRelatedInformation s a => Lens' s a
- Language.Haskell.LSP.TH.DataTypesJSON: renameProvider :: HasRenameProvider s a => Lens' s a
- Language.Haskell.LSP.TH.DataTypesJSON: requestId :: LspIdRsp -> LspId
- Language.Haskell.LSP.TH.DataTypesJSON: resolveProvider :: HasResolveProvider s a => Lens' s a
- Language.Haskell.LSP.TH.DataTypesJSON: responseId :: LspId -> LspIdRsp
- Language.Haskell.LSP.TH.DataTypesJSON: result :: HasResult s a => Lens' s a
- Language.Haskell.LSP.TH.DataTypesJSON: retry :: HasRetry s a => Lens' s a
- Language.Haskell.LSP.TH.DataTypesJSON: rootPath :: HasRootPath s a => Lens' s a
- Language.Haskell.LSP.TH.DataTypesJSON: rootUri :: HasRootUri s a => Lens' s a
- Language.Haskell.LSP.TH.DataTypesJSON: save :: HasSave s a => Lens' s a
- Language.Haskell.LSP.TH.DataTypesJSON: scheme :: HasScheme s a => Lens' s a
- Language.Haskell.LSP.TH.DataTypesJSON: selectionRange :: HasSelectionRange s a => Lens' s a
- Language.Haskell.LSP.TH.DataTypesJSON: settings :: HasSettings s a => Lens' s a
- Language.Haskell.LSP.TH.DataTypesJSON: severity :: HasSeverity s a => Lens' s a
- Language.Haskell.LSP.TH.DataTypesJSON: signatureHelpProvider :: HasSignatureHelpProvider s a => Lens' s a
- Language.Haskell.LSP.TH.DataTypesJSON: signatures :: HasSignatures s a => Lens' s a
- Language.Haskell.LSP.TH.DataTypesJSON: sortText :: HasSortText s a => Lens' s a
- Language.Haskell.LSP.TH.DataTypesJSON: source :: HasSource s a => Lens' s a
- Language.Haskell.LSP.TH.DataTypesJSON: start :: HasStart s a => Lens' s a
- Language.Haskell.LSP.TH.DataTypesJSON: syncKind :: HasSyncKind s a => Lens' s a
- Language.Haskell.LSP.TH.DataTypesJSON: tabSize :: HasTabSize s a => Lens' s a
- Language.Haskell.LSP.TH.DataTypesJSON: target :: HasTarget s a => Lens' s a
- Language.Haskell.LSP.TH.DataTypesJSON: text :: HasText s a => Lens' s a
- Language.Haskell.LSP.TH.DataTypesJSON: textDocument :: HasTextDocument s a => Lens' s a
- Language.Haskell.LSP.TH.DataTypesJSON: textDocumentSync :: HasTextDocumentSync s a => Lens' s a
- Language.Haskell.LSP.TH.DataTypesJSON: textEdit :: HasTextEdit s a => Lens' s a
- Language.Haskell.LSP.TH.DataTypesJSON: title :: HasTitle s a => Lens' s a
- Language.Haskell.LSP.TH.DataTypesJSON: trace :: HasTrace s a => Lens' s a
- Language.Haskell.LSP.TH.DataTypesJSON: triggerCharacters :: HasTriggerCharacters s a => Lens' s a
- Language.Haskell.LSP.TH.DataTypesJSON: type ApplyWorkspaceEditRequest = RequestMessage ServerMethod ApplyWorkspaceEditParams ApplyWorkspaceEditResponseBody
- Language.Haskell.LSP.TH.DataTypesJSON: type ApplyWorkspaceEditResponse = ResponseMessage ApplyWorkspaceEditResponseBody
- Language.Haskell.LSP.TH.DataTypesJSON: type BareResponseMessage = ResponseMessage Value
- Language.Haskell.LSP.TH.DataTypesJSON: type CancelNotification = NotificationMessage ClientMethod CancelParams
- Language.Haskell.LSP.TH.DataTypesJSON: type CancelNotificationServer = NotificationMessage ServerMethod CancelParams
- Language.Haskell.LSP.TH.DataTypesJSON: type CodeActionRequest = RequestMessage ClientMethod CodeActionParams (List CAResult)
- Language.Haskell.LSP.TH.DataTypesJSON: type CodeActionResponse = ResponseMessage (List CAResult)
- Language.Haskell.LSP.TH.DataTypesJSON: type CodeLensRequest = RequestMessage ClientMethod CodeLensParams (List CodeLens)
- Language.Haskell.LSP.TH.DataTypesJSON: type CodeLensResolveRequest = RequestMessage ClientMethod CodeLens (List CodeLens)
- Language.Haskell.LSP.TH.DataTypesJSON: type CodeLensResolveResponse = ResponseMessage (List CodeLens)
- Language.Haskell.LSP.TH.DataTypesJSON: type CodeLensResponse = ResponseMessage (List CodeLens)
- Language.Haskell.LSP.TH.DataTypesJSON: type CompletionItemResolveRequest = RequestMessage ClientMethod CompletionItem CompletionItem
- Language.Haskell.LSP.TH.DataTypesJSON: type CompletionItemResolveResponse = ResponseMessage CompletionItem
- Language.Haskell.LSP.TH.DataTypesJSON: type CompletionRequest = RequestMessage ClientMethod TextDocumentPositionParams CompletionResponseResult
- Language.Haskell.LSP.TH.DataTypesJSON: type CompletionResponse = ResponseMessage CompletionResponseResult
- Language.Haskell.LSP.TH.DataTypesJSON: type DefinitionRequest = RequestMessage ClientMethod TextDocumentPositionParams LocationResponseParams
- Language.Haskell.LSP.TH.DataTypesJSON: type DefinitionResponse = ResponseMessage LocationResponseParams
- Language.Haskell.LSP.TH.DataTypesJSON: type DiagnosticSource = Text
- Language.Haskell.LSP.TH.DataTypesJSON: type DidChangeConfigurationNotification = NotificationMessage ClientMethod DidChangeConfigurationParams
- Language.Haskell.LSP.TH.DataTypesJSON: type DidChangeTextDocumentNotification = NotificationMessage ClientMethod DidChangeTextDocumentParams
- Language.Haskell.LSP.TH.DataTypesJSON: type DidChangeWatchedFilesNotification = NotificationMessage ClientMethod DidChangeWatchedFilesParams
- Language.Haskell.LSP.TH.DataTypesJSON: type DidCloseTextDocumentNotification = NotificationMessage ClientMethod DidCloseTextDocumentParams
- Language.Haskell.LSP.TH.DataTypesJSON: type DidOpenTextDocumentNotification = NotificationMessage ClientMethod DidOpenTextDocumentParams
- Language.Haskell.LSP.TH.DataTypesJSON: type DidSaveTextDocumentNotification = NotificationMessage ClientMethod DidSaveTextDocumentParams
- Language.Haskell.LSP.TH.DataTypesJSON: type DocumentFormattingRequest = RequestMessage ClientMethod DocumentFormattingParams (List TextEdit)
- Language.Haskell.LSP.TH.DataTypesJSON: type DocumentFormattingResponse = ResponseMessage (List TextEdit)
- Language.Haskell.LSP.TH.DataTypesJSON: type DocumentHighlightRequest = RequestMessage ClientMethod TextDocumentPositionParams (List DocumentHighlight)
- Language.Haskell.LSP.TH.DataTypesJSON: type DocumentHighlightsResponse = ResponseMessage (List DocumentHighlight)
- Language.Haskell.LSP.TH.DataTypesJSON: type DocumentLinkRequest = RequestMessage ClientMethod DocumentLinkParams (List DocumentLink)
- Language.Haskell.LSP.TH.DataTypesJSON: type DocumentLinkResolveRequest = RequestMessage ClientMethod DocumentLink DocumentLink
- Language.Haskell.LSP.TH.DataTypesJSON: type DocumentLinkResolveResponse = ResponseMessage DocumentLink
- Language.Haskell.LSP.TH.DataTypesJSON: type DocumentLinkResponse = ResponseMessage (List DocumentLink)
- Language.Haskell.LSP.TH.DataTypesJSON: type DocumentOnTypeFormattingRequest = RequestMessage ClientMethod DocumentOnTypeFormattingParams (List TextEdit)
- Language.Haskell.LSP.TH.DataTypesJSON: type DocumentOnTypeFormattingResponse = ResponseMessage (List TextEdit)
- Language.Haskell.LSP.TH.DataTypesJSON: type DocumentRangeFormattingRequest = RequestMessage ClientMethod DocumentRangeFormattingParams (List TextEdit)
- Language.Haskell.LSP.TH.DataTypesJSON: type DocumentRangeFormattingResponse = ResponseMessage (List TextEdit)
- Language.Haskell.LSP.TH.DataTypesJSON: type DocumentSelector = List DocumentFilter
- Language.Haskell.LSP.TH.DataTypesJSON: type DocumentSymbolRequest = RequestMessage ClientMethod DocumentSymbolParams DSResult
- Language.Haskell.LSP.TH.DataTypesJSON: type DocumentSymbolsResponse = ResponseMessage DSResult
- Language.Haskell.LSP.TH.DataTypesJSON: type ErrorResponse = ResponseMessage ()
- Language.Haskell.LSP.TH.DataTypesJSON: type ExecuteCommandRequest = RequestMessage ClientMethod ExecuteCommandParams Value
- Language.Haskell.LSP.TH.DataTypesJSON: type ExecuteCommandResponse = ResponseMessage Value
- Language.Haskell.LSP.TH.DataTypesJSON: type ExitNotification = NotificationMessage ClientMethod (Maybe ExitParams)
- Language.Haskell.LSP.TH.DataTypesJSON: type HoverRequest = RequestMessage ClientMethod TextDocumentPositionParams Hover
- Language.Haskell.LSP.TH.DataTypesJSON: type HoverResponse = ResponseMessage Hover
- Language.Haskell.LSP.TH.DataTypesJSON: type ImplementationRequest = RequestMessage ClientMethod TextDocumentPositionParams LocationResponseParams
- Language.Haskell.LSP.TH.DataTypesJSON: type ImplementationResponse = ResponseMessage LocationResponseParams
- Language.Haskell.LSP.TH.DataTypesJSON: type InitializeRequest = RequestMessage ClientMethod InitializeParams InitializeResponseCapabilities
- Language.Haskell.LSP.TH.DataTypesJSON: type InitializeResponse = ResponseMessage InitializeResponseCapabilities
- Language.Haskell.LSP.TH.DataTypesJSON: type InitializedNotification = NotificationMessage ClientMethod (Maybe InitializedParams)
- Language.Haskell.LSP.TH.DataTypesJSON: type LogMessageNotification = NotificationMessage ServerMethod LogMessageParams
- Language.Haskell.LSP.TH.DataTypesJSON: type PublishDiagnosticsNotification = NotificationMessage ServerMethod PublishDiagnosticsParams
- Language.Haskell.LSP.TH.DataTypesJSON: type ReferencesRequest = RequestMessage ClientMethod ReferenceParams (List Location)
- Language.Haskell.LSP.TH.DataTypesJSON: type ReferencesResponse = ResponseMessage (List Location)
- Language.Haskell.LSP.TH.DataTypesJSON: type RegisterCapabilityRequest = RequestMessage ServerMethod RegistrationParams ()
- Language.Haskell.LSP.TH.DataTypesJSON: type RegisterCapabilityResponse = ResponseMessage ()
- Language.Haskell.LSP.TH.DataTypesJSON: type RenameRequest = RequestMessage ClientMethod RenameParams WorkspaceEdit
- Language.Haskell.LSP.TH.DataTypesJSON: type RenameResponse = ResponseMessage WorkspaceEdit
- Language.Haskell.LSP.TH.DataTypesJSON: type ShowMessageNotification = NotificationMessage ServerMethod ShowMessageParams
- Language.Haskell.LSP.TH.DataTypesJSON: type ShowMessageRequest = RequestMessage ServerMethod ShowMessageRequestParams Text
- Language.Haskell.LSP.TH.DataTypesJSON: type ShowMessageResponse = ResponseMessage Text
- Language.Haskell.LSP.TH.DataTypesJSON: type ShutdownRequest = RequestMessage ClientMethod (Maybe Value) Text
- Language.Haskell.LSP.TH.DataTypesJSON: type ShutdownResponse = ResponseMessage Text
- Language.Haskell.LSP.TH.DataTypesJSON: type SignatureHelpRequest = RequestMessage ClientMethod TextDocumentPositionParams SignatureHelp
- Language.Haskell.LSP.TH.DataTypesJSON: type SignatureHelpResponse = ResponseMessage SignatureHelp
- Language.Haskell.LSP.TH.DataTypesJSON: type SystemOS = String
- Language.Haskell.LSP.TH.DataTypesJSON: type TelemetryNotification = NotificationMessage ServerMethod Value
- Language.Haskell.LSP.TH.DataTypesJSON: type TextDocumentVersion = Maybe Int
- Language.Haskell.LSP.TH.DataTypesJSON: type UnregisterCapabilityRequest = RequestMessage ServerMethod UnregistrationParams ()
- Language.Haskell.LSP.TH.DataTypesJSON: type UnregisterCapabilityResponse = ResponseMessage ()
- Language.Haskell.LSP.TH.DataTypesJSON: type WillSaveTextDocumentNotification = NotificationMessage ClientMethod WillSaveTextDocumentParams
- Language.Haskell.LSP.TH.DataTypesJSON: type WillSaveWaitUntilTextDocumentRequest = RequestMessage ClientMethod WillSaveTextDocumentParams (List TextEdit)
- Language.Haskell.LSP.TH.DataTypesJSON: type WillSaveWaitUntilTextDocumentResponse = ResponseMessage (List TextEdit)
- Language.Haskell.LSP.TH.DataTypesJSON: type WorkspaceEditMap = HashMap Uri (List TextEdit)
- Language.Haskell.LSP.TH.DataTypesJSON: type WorkspaceSymbolRequest = RequestMessage ClientMethod WorkspaceSymbolParams (List SymbolInformation)
- Language.Haskell.LSP.TH.DataTypesJSON: type WorkspaceSymbolsResponse = ResponseMessage (List SymbolInformation)
- Language.Haskell.LSP.TH.DataTypesJSON: unregistrations :: HasUnregistrations s a => Lens' s a
- Language.Haskell.LSP.TH.DataTypesJSON: uri :: HasUri s a => Lens' s a
- Language.Haskell.LSP.TH.DataTypesJSON: uriToFilePath :: Uri -> Maybe FilePath
- Language.Haskell.LSP.TH.DataTypesJSON: value :: HasValue s a => Lens' s a
- Language.Haskell.LSP.TH.DataTypesJSON: version :: HasVersion s a => Lens' s a
- Language.Haskell.LSP.TH.DataTypesJSON: willSave :: HasWillSave s a => Lens' s a
- Language.Haskell.LSP.TH.DataTypesJSON: willSaveWaitUntil :: HasWillSaveWaitUntil s a => Lens' s a
- Language.Haskell.LSP.TH.DataTypesJSON: windowsOS :: String
- Language.Haskell.LSP.TH.DataTypesJSON: workspaceSymbolProvider :: HasWorkspaceSymbolProvider s a => Lens' s a
- Language.Haskell.LSP.TH.DataTypesJSON: xdata :: HasXdata s a => Lens' s a
- Language.Haskell.LSP.TH.DataTypesJSON: xtype :: HasXtype s a => Lens' s a
- Language.Haskell.LSP.TH.MessageFuncs: fmClientCancelNotification :: LspId -> CancelNotification
- Language.Haskell.LSP.TH.MessageFuncs: fmClientCodeActionRequest :: LspId -> CodeActionParams -> CodeActionRequest
- Language.Haskell.LSP.TH.MessageFuncs: fmClientCodeLensRequest :: LspId -> CodeLensParams -> CodeLensRequest
- Language.Haskell.LSP.TH.MessageFuncs: fmClientCodeLensResolveRequest :: LspId -> CodeLens -> CodeLensResolveRequest
- Language.Haskell.LSP.TH.MessageFuncs: fmClientCompletionItemResolveRequest :: LspId -> CompletionItem -> CompletionItemResolveRequest
- Language.Haskell.LSP.TH.MessageFuncs: fmClientCompletionRequest :: LspId -> TextDocumentPositionParams -> CompletionRequest
- Language.Haskell.LSP.TH.MessageFuncs: fmClientDefinitionRequest :: LspId -> TextDocumentPositionParams -> DefinitionRequest
- Language.Haskell.LSP.TH.MessageFuncs: fmClientDidChangeConfigurationNotification :: DidChangeConfigurationParams -> DidChangeConfigurationNotification
- Language.Haskell.LSP.TH.MessageFuncs: fmClientDidChangeTextDocumentNotification :: DidChangeTextDocumentParams -> DidChangeTextDocumentNotification
- Language.Haskell.LSP.TH.MessageFuncs: fmClientDidChangeWatchedFilesNotification :: DidChangeWatchedFilesParams -> DidChangeWatchedFilesNotification
- Language.Haskell.LSP.TH.MessageFuncs: fmClientDidCloseTextDocumentNotification :: DidCloseTextDocumentParams -> DidCloseTextDocumentNotification
- Language.Haskell.LSP.TH.MessageFuncs: fmClientDidOpenTextDocumentNotification :: DidOpenTextDocumentParams -> DidOpenTextDocumentNotification
- Language.Haskell.LSP.TH.MessageFuncs: fmClientDidSaveTextDocumentNotification :: DidSaveTextDocumentParams -> DidSaveTextDocumentNotification
- Language.Haskell.LSP.TH.MessageFuncs: fmClientDocumentFormattingRequest :: LspId -> DocumentFormattingParams -> DocumentFormattingRequest
- Language.Haskell.LSP.TH.MessageFuncs: fmClientDocumentHighlightRequest :: LspId -> TextDocumentPositionParams -> DocumentHighlightRequest
- Language.Haskell.LSP.TH.MessageFuncs: fmClientDocumentLinkRequest :: LspId -> DocumentLinkParams -> DocumentLinkRequest
- Language.Haskell.LSP.TH.MessageFuncs: fmClientDocumentLinkResolveRequest :: LspId -> DocumentLink -> DocumentLinkResolveRequest
- Language.Haskell.LSP.TH.MessageFuncs: fmClientDocumentOnTypeFormattingRequest :: LspId -> DocumentOnTypeFormattingParams -> DocumentOnTypeFormattingRequest
- Language.Haskell.LSP.TH.MessageFuncs: fmClientDocumentRangeFormattingRequest :: LspId -> DocumentRangeFormattingParams -> DocumentRangeFormattingRequest
- Language.Haskell.LSP.TH.MessageFuncs: fmClientDocumentSymbolRequest :: LspId -> DocumentSymbolParams -> DocumentSymbolRequest
- Language.Haskell.LSP.TH.MessageFuncs: fmClientExecuteCommandRequest :: LspId -> ExecuteCommandParams -> ExecuteCommandRequest
- Language.Haskell.LSP.TH.MessageFuncs: fmClientExitNotification :: ExitNotification
- Language.Haskell.LSP.TH.MessageFuncs: fmClientHoverRequest :: LspId -> TextDocumentPositionParams -> HoverRequest
- Language.Haskell.LSP.TH.MessageFuncs: fmClientInitializeRequest :: LspId -> InitializeParams -> InitializeRequest
- Language.Haskell.LSP.TH.MessageFuncs: fmClientInitializedNotification :: InitializedNotification
- Language.Haskell.LSP.TH.MessageFuncs: fmClientReferencesRequest :: LspId -> ReferenceParams -> ReferencesRequest
- Language.Haskell.LSP.TH.MessageFuncs: fmClientRenameRequest :: LspId -> RenameParams -> RenameRequest
- Language.Haskell.LSP.TH.MessageFuncs: fmClientShutdownRequest :: LspId -> Maybe Value -> ShutdownRequest
- Language.Haskell.LSP.TH.MessageFuncs: fmClientSignatureHelpRequest :: LspId -> TextDocumentPositionParams -> SignatureHelpRequest
- Language.Haskell.LSP.TH.MessageFuncs: fmClientWillSaveTextDocumentNotification :: WillSaveTextDocumentParams -> WillSaveTextDocumentNotification
- Language.Haskell.LSP.TH.MessageFuncs: fmClientWillSaveWaitUntilRequest :: LspId -> WillSaveTextDocumentParams -> WillSaveWaitUntilTextDocumentRequest
- Language.Haskell.LSP.TH.MessageFuncs: fmClientWorkspaceSymbolRequest :: LspId -> WorkspaceSymbolParams -> WorkspaceSymbolRequest
- Language.Haskell.LSP.TH.MessageFuncs: fmServerApplyWorkspaceEditRequest :: LspId -> ApplyWorkspaceEditParams -> ApplyWorkspaceEditRequest
- Language.Haskell.LSP.TH.MessageFuncs: fmServerLogMessageNotification :: MessageType -> Text -> LogMessageNotification
- Language.Haskell.LSP.TH.MessageFuncs: fmServerPublishDiagnosticsNotification :: PublishDiagnosticsParams -> PublishDiagnosticsNotification
- Language.Haskell.LSP.TH.MessageFuncs: fmServerRegisterCapabilityRequest :: LspId -> RegistrationParams -> RegisterCapabilityRequest
- Language.Haskell.LSP.TH.MessageFuncs: fmServerShowMessageNotification :: MessageType -> Text -> ShowMessageNotification
- Language.Haskell.LSP.TH.MessageFuncs: fmServerShowMessageRequest :: LspId -> ShowMessageRequestParams -> ShowMessageRequest
- Language.Haskell.LSP.TH.MessageFuncs: fmServerTelemetryNotification :: Value -> TelemetryNotification
- Language.Haskell.LSP.TH.MessageFuncs: fmServerUnregisterCapabilityRequest :: LspId -> UnregistrationParams -> UnregisterCapabilityRequest
- Language.Haskell.LSP.TH.Utils: rdrop :: Int -> [a] -> [a]
+ Language.Haskell.LSP.Types: ApplyWorkspaceEditParams :: WorkspaceEdit -> ApplyWorkspaceEditParams
+ Language.Haskell.LSP.Types: ApplyWorkspaceEditResponseBody :: Bool -> ApplyWorkspaceEditResponseBody
+ Language.Haskell.LSP.Types: CACodeAction :: CodeAction -> CAResult
+ Language.Haskell.LSP.Types: CACommand :: Command -> CAResult
+ Language.Haskell.LSP.Types: CancelParams :: LspId -> CancelParams
+ Language.Haskell.LSP.Types: CancelRequest :: ClientMethod
+ Language.Haskell.LSP.Types: CancelRequestServer :: ServerMethod
+ Language.Haskell.LSP.Types: CiClass :: CompletionItemKind
+ Language.Haskell.LSP.Types: CiColor :: CompletionItemKind
+ Language.Haskell.LSP.Types: CiConstant :: CompletionItemKind
+ Language.Haskell.LSP.Types: CiConstructor :: CompletionItemKind
+ Language.Haskell.LSP.Types: CiEnum :: CompletionItemKind
+ Language.Haskell.LSP.Types: CiEnumMember :: CompletionItemKind
+ Language.Haskell.LSP.Types: CiEvent :: CompletionItemKind
+ Language.Haskell.LSP.Types: CiField :: CompletionItemKind
+ Language.Haskell.LSP.Types: CiFile :: CompletionItemKind
+ Language.Haskell.LSP.Types: CiFolder :: CompletionItemKind
+ Language.Haskell.LSP.Types: CiFunction :: CompletionItemKind
+ Language.Haskell.LSP.Types: CiInterface :: CompletionItemKind
+ Language.Haskell.LSP.Types: CiKeyword :: CompletionItemKind
+ Language.Haskell.LSP.Types: CiMethod :: CompletionItemKind
+ Language.Haskell.LSP.Types: CiModule :: CompletionItemKind
+ Language.Haskell.LSP.Types: CiOperator :: CompletionItemKind
+ Language.Haskell.LSP.Types: CiProperty :: CompletionItemKind
+ Language.Haskell.LSP.Types: CiReference :: CompletionItemKind
+ Language.Haskell.LSP.Types: CiSnippet :: CompletionItemKind
+ Language.Haskell.LSP.Types: CiStruct :: CompletionItemKind
+ Language.Haskell.LSP.Types: CiText :: CompletionItemKind
+ Language.Haskell.LSP.Types: CiTypeParameter :: CompletionItemKind
+ Language.Haskell.LSP.Types: CiUnit :: CompletionItemKind
+ Language.Haskell.LSP.Types: CiValue :: CompletionItemKind
+ Language.Haskell.LSP.Types: CiVariable :: CompletionItemKind
+ Language.Haskell.LSP.Types: ClientRegisterCapability :: ServerMethod
+ Language.Haskell.LSP.Types: ClientUnregisterCapability :: ServerMethod
+ Language.Haskell.LSP.Types: CodeAction :: Text -> Maybe CodeActionKind -> Maybe (List Diagnostic) -> Maybe WorkspaceEdit -> Maybe Command -> CodeAction
+ Language.Haskell.LSP.Types: CodeActionContext :: List Diagnostic -> Maybe (List CodeActionKind) -> CodeActionContext
+ Language.Haskell.LSP.Types: CodeActionParams :: TextDocumentIdentifier -> Range -> CodeActionContext -> CodeActionParams
+ Language.Haskell.LSP.Types: CodeActionQuickFix :: CodeActionKind
+ Language.Haskell.LSP.Types: CodeActionRefactor :: CodeActionKind
+ Language.Haskell.LSP.Types: CodeActionRefactorExtract :: CodeActionKind
+ Language.Haskell.LSP.Types: CodeActionRefactorInline :: CodeActionKind
+ Language.Haskell.LSP.Types: CodeActionRefactorRewrite :: CodeActionKind
+ Language.Haskell.LSP.Types: CodeActionSource :: CodeActionKind
+ Language.Haskell.LSP.Types: CodeActionSourceOrganizeImports :: CodeActionKind
+ Language.Haskell.LSP.Types: CodeActionUnknown :: Text -> CodeActionKind
+ Language.Haskell.LSP.Types: CodeLens :: Range -> Maybe Command -> Maybe Value -> CodeLens
+ Language.Haskell.LSP.Types: CodeLensOptions :: Maybe Bool -> CodeLensOptions
+ Language.Haskell.LSP.Types: CodeLensParams :: TextDocumentIdentifier -> CodeLensParams
+ Language.Haskell.LSP.Types: CodeLensRegistrationOptions :: Maybe DocumentSelector -> Maybe Bool -> CodeLensRegistrationOptions
+ Language.Haskell.LSP.Types: CodeLensResolve :: ClientMethod
+ Language.Haskell.LSP.Types: CodeString :: LanguageString -> MarkedString
+ Language.Haskell.LSP.Types: Color :: Int -> Int -> Int -> Int -> Color
+ Language.Haskell.LSP.Types: ColorInformation :: Range -> Color -> ColorInformation
+ Language.Haskell.LSP.Types: ColorOptionsDynamic :: ColorOptions
+ Language.Haskell.LSP.Types: ColorOptionsDynamicDocument :: Maybe DocumentSelector -> Maybe Text -> ColorOptions
+ Language.Haskell.LSP.Types: ColorOptionsStatic :: Bool -> ColorOptions
+ Language.Haskell.LSP.Types: ColorPresentation :: Text -> Maybe TextEdit -> Maybe (List TextEdit) -> ColorPresentation
+ Language.Haskell.LSP.Types: ColorPresentationParams :: TextDocumentIdentifier -> Color -> Range -> ColorPresentationParams
+ Language.Haskell.LSP.Types: Command :: Text -> Text -> Maybe (List Value) -> Command
+ Language.Haskell.LSP.Types: CompletionContext :: CompletionTriggerKind -> Maybe Text -> CompletionContext
+ Language.Haskell.LSP.Types: CompletionDocMarkup :: MarkupContent -> CompletionDoc
+ Language.Haskell.LSP.Types: CompletionDocString :: Text -> CompletionDoc
+ Language.Haskell.LSP.Types: CompletionItem :: Text -> Maybe CompletionItemKind -> Maybe Text -> Maybe CompletionDoc -> Maybe Bool -> Maybe Bool -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe InsertTextFormat -> Maybe TextEdit -> Maybe (List TextEdit) -> Maybe (List Text) -> Maybe Command -> Maybe Value -> CompletionItem
+ Language.Haskell.LSP.Types: CompletionItemResolve :: ClientMethod
+ Language.Haskell.LSP.Types: CompletionList :: CompletionListType -> CompletionResponseResult
+ Language.Haskell.LSP.Types: CompletionListType :: Bool -> List CompletionItem -> CompletionListType
+ Language.Haskell.LSP.Types: CompletionOptions :: Maybe Bool -> Maybe [String] -> CompletionOptions
+ Language.Haskell.LSP.Types: CompletionParams :: TextDocumentIdentifier -> Position -> Maybe CompletionContext -> CompletionParams
+ Language.Haskell.LSP.Types: CompletionRegistrationOptions :: Maybe DocumentSelector -> Maybe (List String) -> Maybe Bool -> CompletionRegistrationOptions
+ Language.Haskell.LSP.Types: Completions :: (List CompletionItem) -> CompletionResponseResult
+ Language.Haskell.LSP.Types: ConfigurationItem :: Maybe Text -> Maybe Text -> ConfigurationItem
+ Language.Haskell.LSP.Types: ConfigurationParams :: List ConfigurationItem -> ConfigurationParams
+ Language.Haskell.LSP.Types: CtInvoked :: CompletionTriggerKind
+ Language.Haskell.LSP.Types: CtTriggerCharacter :: CompletionTriggerKind
+ Language.Haskell.LSP.Types: CtTriggerForIncompleteCompletions :: CompletionTriggerKind
+ Language.Haskell.LSP.Types: CtUnknown :: Scientific -> CompletionTriggerKind
+ Language.Haskell.LSP.Types: DSDocumentSymbols :: (List DocumentSymbol) -> DSResult
+ Language.Haskell.LSP.Types: DSSymbolInformation :: (List SymbolInformation) -> DSResult
+ Language.Haskell.LSP.Types: Diagnostic :: Range -> Maybe DiagnosticSeverity -> Maybe Text -> Maybe DiagnosticSource -> Text -> Maybe (List DiagnosticRelatedInformation) -> Diagnostic
+ Language.Haskell.LSP.Types: DiagnosticRelatedInformation :: Location -> Text -> DiagnosticRelatedInformation
+ Language.Haskell.LSP.Types: DidChangeConfigurationParams :: Value -> DidChangeConfigurationParams
+ Language.Haskell.LSP.Types: DidChangeTextDocumentParams :: VersionedTextDocumentIdentifier -> List TextDocumentContentChangeEvent -> DidChangeTextDocumentParams
+ Language.Haskell.LSP.Types: DidChangeWatchedFilesParams :: List FileEvent -> DidChangeWatchedFilesParams
+ Language.Haskell.LSP.Types: DidChangeWorkspaceFoldersParams :: WorkspaceFoldersChangeEvent -> DidChangeWorkspaceFoldersParams
+ Language.Haskell.LSP.Types: DidCloseTextDocumentParams :: TextDocumentIdentifier -> DidCloseTextDocumentParams
+ Language.Haskell.LSP.Types: DidOpenTextDocumentParams :: TextDocumentItem -> DidOpenTextDocumentParams
+ Language.Haskell.LSP.Types: DidSaveTextDocumentParams :: TextDocumentIdentifier -> DidSaveTextDocumentParams
+ Language.Haskell.LSP.Types: DocumentColorParams :: TextDocumentIdentifier -> DocumentColorParams
+ Language.Haskell.LSP.Types: DocumentFilter :: Maybe Text -> Maybe Text -> Maybe Text -> DocumentFilter
+ Language.Haskell.LSP.Types: DocumentFormattingParams :: TextDocumentIdentifier -> FormattingOptions -> DocumentFormattingParams
+ Language.Haskell.LSP.Types: DocumentHighlight :: Range -> Maybe DocumentHighlightKind -> DocumentHighlight
+ Language.Haskell.LSP.Types: DocumentLink :: Range -> Maybe Text -> DocumentLink
+ Language.Haskell.LSP.Types: DocumentLinkOptions :: Maybe Bool -> DocumentLinkOptions
+ Language.Haskell.LSP.Types: DocumentLinkParams :: TextDocumentIdentifier -> DocumentLinkParams
+ Language.Haskell.LSP.Types: DocumentLinkResolve :: ClientMethod
+ Language.Haskell.LSP.Types: DocumentOnTypeFormattingOptions :: Text -> Maybe [String] -> DocumentOnTypeFormattingOptions
+ Language.Haskell.LSP.Types: DocumentOnTypeFormattingParams :: TextDocumentIdentifier -> Position -> Text -> FormattingOptions -> DocumentOnTypeFormattingParams
+ Language.Haskell.LSP.Types: DocumentOnTypeFormattingRegistrationOptions :: Text -> Maybe (List String) -> DocumentOnTypeFormattingRegistrationOptions
+ Language.Haskell.LSP.Types: DocumentRangeFormattingParams :: TextDocumentIdentifier -> Range -> FormattingOptions -> DocumentRangeFormattingParams
+ Language.Haskell.LSP.Types: DocumentSymbol :: Text -> Maybe Text -> SymbolKind -> Maybe Bool -> Range -> Range -> Maybe (List DocumentSymbol) -> DocumentSymbol
+ Language.Haskell.LSP.Types: DocumentSymbolParams :: TextDocumentIdentifier -> DocumentSymbolParams
+ Language.Haskell.LSP.Types: DsError :: DiagnosticSeverity
+ Language.Haskell.LSP.Types: DsHint :: DiagnosticSeverity
+ Language.Haskell.LSP.Types: DsInfo :: DiagnosticSeverity
+ Language.Haskell.LSP.Types: DsWarning :: DiagnosticSeverity
+ Language.Haskell.LSP.Types: ExecuteCommandOptions :: List Text -> ExecuteCommandOptions
+ Language.Haskell.LSP.Types: ExecuteCommandParams :: Text -> Maybe (List Value) -> ExecuteCommandParams
+ Language.Haskell.LSP.Types: ExecuteCommandRegistrationOptions :: List Text -> ExecuteCommandRegistrationOptions
+ Language.Haskell.LSP.Types: Exit :: ClientMethod
+ Language.Haskell.LSP.Types: ExitParams :: ExitParams
+ Language.Haskell.LSP.Types: FcChanged :: FileChangeType
+ Language.Haskell.LSP.Types: FcCreated :: FileChangeType
+ Language.Haskell.LSP.Types: FcDeleted :: FileChangeType
+ Language.Haskell.LSP.Types: FileEvent :: Uri -> FileChangeType -> FileEvent
+ Language.Haskell.LSP.Types: FoldingRange :: Int -> Maybe Int -> Int -> Maybe Int -> Maybe FoldingRangeKind -> FoldingRange
+ Language.Haskell.LSP.Types: FoldingRangeComment :: FoldingRangeKind
+ Language.Haskell.LSP.Types: FoldingRangeImports :: FoldingRangeKind
+ Language.Haskell.LSP.Types: FoldingRangeOptionsDynamic :: FoldingRangeOptions
+ Language.Haskell.LSP.Types: FoldingRangeOptionsDynamicDocument :: Maybe DocumentSelector -> Maybe Text -> FoldingRangeOptions
+ Language.Haskell.LSP.Types: FoldingRangeOptionsStatic :: Bool -> FoldingRangeOptions
+ Language.Haskell.LSP.Types: FoldingRangeParams :: TextDocumentIdentifier -> FoldingRangeParams
+ Language.Haskell.LSP.Types: FoldingRangeRegion :: FoldingRangeKind
+ Language.Haskell.LSP.Types: FoldingRangeUnknown :: Text -> FoldingRangeKind
+ Language.Haskell.LSP.Types: FormattingOptions :: Int -> Bool -> FormattingOptions
+ Language.Haskell.LSP.Types: GotoOptionsDynamic :: Maybe DocumentSelector -> Maybe Text -> GotoOptions
+ Language.Haskell.LSP.Types: GotoOptionsStatic :: Bool -> GotoOptions
+ Language.Haskell.LSP.Types: HkRead :: DocumentHighlightKind
+ Language.Haskell.LSP.Types: HkText :: DocumentHighlightKind
+ Language.Haskell.LSP.Types: HkWrite :: DocumentHighlightKind
+ Language.Haskell.LSP.Types: Hover :: List MarkedString -> Maybe Range -> Hover
+ Language.Haskell.LSP.Types: IdInt :: Int -> LspId
+ Language.Haskell.LSP.Types: IdRspInt :: Int -> LspIdRsp
+ Language.Haskell.LSP.Types: IdRspNull :: LspIdRsp
+ Language.Haskell.LSP.Types: IdRspString :: Text -> LspIdRsp
+ Language.Haskell.LSP.Types: IdString :: Text -> LspId
+ Language.Haskell.LSP.Types: Initialize :: ClientMethod
+ Language.Haskell.LSP.Types: InitializeError :: Bool -> InitializeError
+ Language.Haskell.LSP.Types: InitializeParams :: Maybe Int -> Maybe Text -> Maybe Uri -> Maybe Value -> ClientCapabilities -> Maybe Trace -> Maybe (List WorkspaceFolder) -> InitializeParams
+ Language.Haskell.LSP.Types: InitializeResponseCapabilities :: InitializeResponseCapabilitiesInner -> InitializeResponseCapabilities
+ Language.Haskell.LSP.Types: InitializeResponseCapabilitiesInner :: Maybe TDS -> Maybe Bool -> Maybe CompletionOptions -> Maybe SignatureHelpOptions -> Maybe Bool -> Maybe GotoOptions -> Maybe GotoOptions -> Maybe Bool -> Maybe Bool -> Maybe Bool -> Maybe Bool -> Maybe Bool -> Maybe CodeLensOptions -> Maybe Bool -> Maybe Bool -> Maybe DocumentOnTypeFormattingOptions -> Maybe Bool -> Maybe DocumentLinkOptions -> Maybe ColorOptions -> Maybe FoldingRangeOptions -> Maybe ExecuteCommandOptions -> Maybe WorkspaceOptions -> Maybe Value -> InitializeResponseCapabilitiesInner
+ Language.Haskell.LSP.Types: Initialized :: ClientMethod
+ Language.Haskell.LSP.Types: InitializedParams :: InitializedParams
+ Language.Haskell.LSP.Types: InternalError :: ErrorCode
+ Language.Haskell.LSP.Types: InvalidParams :: ErrorCode
+ Language.Haskell.LSP.Types: InvalidRequest :: ErrorCode
+ Language.Haskell.LSP.Types: LanguageString :: Text -> Text -> LanguageString
+ Language.Haskell.LSP.Types: List :: [a] -> List a
+ Language.Haskell.LSP.Types: Location :: Uri -> Range -> Location
+ Language.Haskell.LSP.Types: LogMessageParams :: MessageType -> Text -> LogMessageParams
+ Language.Haskell.LSP.Types: MarkupContent :: MarkupKind -> Text -> MarkupContent
+ Language.Haskell.LSP.Types: MessageActionItem :: Text -> MessageActionItem
+ Language.Haskell.LSP.Types: MethodNotFound :: ErrorCode
+ Language.Haskell.LSP.Types: Misc :: Text -> ClientMethod
+ Language.Haskell.LSP.Types: MkMarkdown :: MarkupKind
+ Language.Haskell.LSP.Types: MkPlainText :: MarkupKind
+ Language.Haskell.LSP.Types: MtError :: MessageType
+ Language.Haskell.LSP.Types: MtInfo :: MessageType
+ Language.Haskell.LSP.Types: MtLog :: MessageType
+ Language.Haskell.LSP.Types: MtWarning :: MessageType
+ Language.Haskell.LSP.Types: MultiLoc :: [Location] -> LocationResponseParams
+ Language.Haskell.LSP.Types: NotificationMessage :: Text -> m -> a -> NotificationMessage m a
+ Language.Haskell.LSP.Types: ParameterInformation :: Text -> Maybe Text -> ParameterInformation
+ Language.Haskell.LSP.Types: ParseError :: ErrorCode
+ Language.Haskell.LSP.Types: PlainString :: Text -> MarkedString
+ Language.Haskell.LSP.Types: PlainText :: InsertTextFormat
+ Language.Haskell.LSP.Types: Position :: Int -> Int -> Position
+ Language.Haskell.LSP.Types: PublishDiagnosticsParams :: Uri -> List Diagnostic -> PublishDiagnosticsParams
+ Language.Haskell.LSP.Types: Range :: Position -> Position -> Range
+ Language.Haskell.LSP.Types: ReferenceContext :: Bool -> ReferenceContext
+ Language.Haskell.LSP.Types: ReferenceParams :: TextDocumentIdentifier -> Position -> ReferenceContext -> ReferenceParams
+ Language.Haskell.LSP.Types: Registration :: Text -> ClientMethod -> Maybe Value -> Registration
+ Language.Haskell.LSP.Types: RegistrationParams :: List Registration -> RegistrationParams
+ Language.Haskell.LSP.Types: RenameParams :: TextDocumentIdentifier -> Position -> Text -> RenameParams
+ Language.Haskell.LSP.Types: RequestCancelled :: ErrorCode
+ Language.Haskell.LSP.Types: RequestMessage :: Text -> LspId -> m -> req -> RequestMessage m req resp
+ Language.Haskell.LSP.Types: ResponseError :: ErrorCode -> Text -> Maybe Value -> ResponseError
+ Language.Haskell.LSP.Types: ResponseMessage :: Text -> LspIdRsp -> Maybe a -> Maybe ResponseError -> ResponseMessage a
+ Language.Haskell.LSP.Types: SaveAfterDelay :: TextDocumentSaveReason
+ Language.Haskell.LSP.Types: SaveFocusOut :: TextDocumentSaveReason
+ Language.Haskell.LSP.Types: SaveManual :: TextDocumentSaveReason
+ Language.Haskell.LSP.Types: SaveOptions :: Maybe Bool -> SaveOptions
+ Language.Haskell.LSP.Types: ServerErrorEnd :: ErrorCode
+ Language.Haskell.LSP.Types: ServerErrorStart :: ErrorCode
+ Language.Haskell.LSP.Types: ServerNotInitialized :: ErrorCode
+ Language.Haskell.LSP.Types: ShowMessageParams :: MessageType -> Text -> ShowMessageParams
+ Language.Haskell.LSP.Types: ShowMessageRequestParams :: MessageType -> Text -> Maybe [MessageActionItem] -> ShowMessageRequestParams
+ Language.Haskell.LSP.Types: Shutdown :: ClientMethod
+ Language.Haskell.LSP.Types: SignatureHelp :: List SignatureInformation -> Maybe Int -> Maybe Int -> SignatureHelp
+ Language.Haskell.LSP.Types: SignatureHelpOptions :: Maybe [String] -> SignatureHelpOptions
+ Language.Haskell.LSP.Types: SignatureHelpRegistrationOptions :: Maybe DocumentSelector -> Maybe (List String) -> SignatureHelpRegistrationOptions
+ Language.Haskell.LSP.Types: SignatureInformation :: Text -> Maybe Text -> Maybe [ParameterInformation] -> SignatureInformation
+ Language.Haskell.LSP.Types: SingleLoc :: Location -> LocationResponseParams
+ Language.Haskell.LSP.Types: SkArray :: SymbolKind
+ Language.Haskell.LSP.Types: SkBoolean :: SymbolKind
+ Language.Haskell.LSP.Types: SkClass :: SymbolKind
+ Language.Haskell.LSP.Types: SkConstant :: SymbolKind
+ Language.Haskell.LSP.Types: SkConstructor :: SymbolKind
+ Language.Haskell.LSP.Types: SkEnum :: SymbolKind
+ Language.Haskell.LSP.Types: SkEnumMember :: SymbolKind
+ Language.Haskell.LSP.Types: SkEvent :: SymbolKind
+ Language.Haskell.LSP.Types: SkField :: SymbolKind
+ Language.Haskell.LSP.Types: SkFile :: SymbolKind
+ Language.Haskell.LSP.Types: SkFunction :: SymbolKind
+ Language.Haskell.LSP.Types: SkInterface :: SymbolKind
+ Language.Haskell.LSP.Types: SkKey :: SymbolKind
+ Language.Haskell.LSP.Types: SkMethod :: SymbolKind
+ Language.Haskell.LSP.Types: SkModule :: SymbolKind
+ Language.Haskell.LSP.Types: SkNamespace :: SymbolKind
+ Language.Haskell.LSP.Types: SkNull :: SymbolKind
+ Language.Haskell.LSP.Types: SkNumber :: SymbolKind
+ Language.Haskell.LSP.Types: SkObject :: SymbolKind
+ Language.Haskell.LSP.Types: SkOperator :: SymbolKind
+ Language.Haskell.LSP.Types: SkPackage :: SymbolKind
+ Language.Haskell.LSP.Types: SkProperty :: SymbolKind
+ Language.Haskell.LSP.Types: SkString :: SymbolKind
+ Language.Haskell.LSP.Types: SkStruct :: SymbolKind
+ Language.Haskell.LSP.Types: SkTypeParameter :: SymbolKind
+ Language.Haskell.LSP.Types: SkUnknown :: Scientific -> SymbolKind
+ Language.Haskell.LSP.Types: SkVariable :: SymbolKind
+ Language.Haskell.LSP.Types: Snippet :: InsertTextFormat
+ Language.Haskell.LSP.Types: SymbolInformation :: Text -> SymbolKind -> Maybe Bool -> Location -> Maybe Text -> SymbolInformation
+ Language.Haskell.LSP.Types: TDSKind :: TextDocumentSyncKind -> TDS
+ Language.Haskell.LSP.Types: TDSOptions :: TextDocumentSyncOptions -> TDS
+ Language.Haskell.LSP.Types: TdSyncFull :: TextDocumentSyncKind
+ Language.Haskell.LSP.Types: TdSyncIncremental :: TextDocumentSyncKind
+ Language.Haskell.LSP.Types: TdSyncNone :: TextDocumentSyncKind
+ Language.Haskell.LSP.Types: TelemetryEvent :: ServerMethod
+ Language.Haskell.LSP.Types: TextDocumentChangeRegistrationOptions :: Maybe DocumentSelector -> TextDocumentSyncKind -> TextDocumentChangeRegistrationOptions
+ Language.Haskell.LSP.Types: TextDocumentCodeAction :: ClientMethod
+ Language.Haskell.LSP.Types: TextDocumentCodeLens :: ClientMethod
+ Language.Haskell.LSP.Types: TextDocumentColorPresentation :: ClientMethod
+ Language.Haskell.LSP.Types: TextDocumentCompletion :: ClientMethod
+ Language.Haskell.LSP.Types: TextDocumentContentChangeEvent :: Maybe Range -> Maybe Int -> Text -> TextDocumentContentChangeEvent
+ Language.Haskell.LSP.Types: TextDocumentDefinition :: ClientMethod
+ Language.Haskell.LSP.Types: TextDocumentDidChange :: ClientMethod
+ Language.Haskell.LSP.Types: TextDocumentDidClose :: ClientMethod
+ Language.Haskell.LSP.Types: TextDocumentDidOpen :: ClientMethod
+ Language.Haskell.LSP.Types: TextDocumentDidSave :: ClientMethod
+ Language.Haskell.LSP.Types: TextDocumentDocumentColor :: ClientMethod
+ Language.Haskell.LSP.Types: TextDocumentDocumentHighlight :: ClientMethod
+ Language.Haskell.LSP.Types: TextDocumentDocumentLink :: ClientMethod
+ Language.Haskell.LSP.Types: TextDocumentDocumentSymbol :: ClientMethod
+ Language.Haskell.LSP.Types: TextDocumentEdit :: VersionedTextDocumentIdentifier -> List TextEdit -> TextDocumentEdit
+ Language.Haskell.LSP.Types: TextDocumentFoldingRanges :: ClientMethod
+ Language.Haskell.LSP.Types: TextDocumentFormatting :: ClientMethod
+ Language.Haskell.LSP.Types: TextDocumentHover :: ClientMethod
+ Language.Haskell.LSP.Types: TextDocumentIdentifier :: Uri -> TextDocumentIdentifier
+ Language.Haskell.LSP.Types: TextDocumentImplementation :: ClientMethod
+ Language.Haskell.LSP.Types: TextDocumentItem :: Uri -> Text -> Int -> Text -> TextDocumentItem
+ Language.Haskell.LSP.Types: TextDocumentOnTypeFormatting :: ClientMethod
+ Language.Haskell.LSP.Types: TextDocumentPositionParams :: TextDocumentIdentifier -> Position -> TextDocumentPositionParams
+ Language.Haskell.LSP.Types: TextDocumentPublishDiagnostics :: ServerMethod
+ Language.Haskell.LSP.Types: TextDocumentRangeFormatting :: ClientMethod
+ Language.Haskell.LSP.Types: TextDocumentReferences :: ClientMethod
+ Language.Haskell.LSP.Types: TextDocumentRegistrationOptions :: Maybe DocumentSelector -> TextDocumentRegistrationOptions
+ Language.Haskell.LSP.Types: TextDocumentRename :: ClientMethod
+ Language.Haskell.LSP.Types: TextDocumentSignatureHelp :: ClientMethod
+ Language.Haskell.LSP.Types: TextDocumentSyncOptions :: Maybe Bool -> Maybe TextDocumentSyncKind -> Maybe Bool -> Maybe Bool -> Maybe SaveOptions -> TextDocumentSyncOptions
+ Language.Haskell.LSP.Types: TextDocumentTypeDefinition :: ClientMethod
+ Language.Haskell.LSP.Types: TextDocumentWillSave :: ClientMethod
+ Language.Haskell.LSP.Types: TextDocumentWillSaveWaitUntil :: ClientMethod
+ Language.Haskell.LSP.Types: TextEdit :: Range -> Text -> TextEdit
+ Language.Haskell.LSP.Types: TraceMessages :: Trace
+ Language.Haskell.LSP.Types: TraceNotification :: TraceParams -> TraceNotification
+ Language.Haskell.LSP.Types: TraceOff :: Trace
+ Language.Haskell.LSP.Types: TraceParams :: Text -> TraceParams
+ Language.Haskell.LSP.Types: TraceVerbose :: Trace
+ Language.Haskell.LSP.Types: UnknownErrorCode :: ErrorCode
+ Language.Haskell.LSP.Types: Unregistration :: Text -> Text -> Unregistration
+ Language.Haskell.LSP.Types: UnregistrationParams :: List Unregistration -> UnregistrationParams
+ Language.Haskell.LSP.Types: Uri :: Text -> Uri
+ Language.Haskell.LSP.Types: VersionedTextDocumentIdentifier :: Uri -> TextDocumentVersion -> VersionedTextDocumentIdentifier
+ Language.Haskell.LSP.Types: WillSaveTextDocumentParams :: TextDocumentIdentifier -> TextDocumentSaveReason -> WillSaveTextDocumentParams
+ Language.Haskell.LSP.Types: WindowLogMessage :: ServerMethod
+ Language.Haskell.LSP.Types: WindowShowMessage :: ServerMethod
+ Language.Haskell.LSP.Types: WindowShowMessageRequest :: ServerMethod
+ Language.Haskell.LSP.Types: WorkspaceApplyEdit :: ServerMethod
+ Language.Haskell.LSP.Types: WorkspaceConfiguration :: ServerMethod
+ Language.Haskell.LSP.Types: WorkspaceDidChangeConfiguration :: ClientMethod
+ Language.Haskell.LSP.Types: WorkspaceDidChangeWatchedFiles :: ClientMethod
+ Language.Haskell.LSP.Types: WorkspaceDidChangeWorkspaceFolders :: ClientMethod
+ Language.Haskell.LSP.Types: WorkspaceEdit :: Maybe WorkspaceEditMap -> Maybe (List TextDocumentEdit) -> WorkspaceEdit
+ Language.Haskell.LSP.Types: WorkspaceExecuteCommand :: ClientMethod
+ Language.Haskell.LSP.Types: WorkspaceFolder :: Text -> Text -> WorkspaceFolder
+ Language.Haskell.LSP.Types: WorkspaceFolderChangeNotificationsBool :: Bool -> WorkspaceFolderChangeNotifications
+ Language.Haskell.LSP.Types: WorkspaceFolderChangeNotificationsString :: Text -> WorkspaceFolderChangeNotifications
+ Language.Haskell.LSP.Types: WorkspaceFolderOptions :: Maybe Bool -> Maybe WorkspaceFolderChangeNotifications -> WorkspaceFolderOptions
+ Language.Haskell.LSP.Types: WorkspaceFoldersChangeEvent :: List WorkspaceFolder -> List WorkspaceFolder -> WorkspaceFoldersChangeEvent
+ Language.Haskell.LSP.Types: WorkspaceOptions :: Maybe WorkspaceFolderOptions -> WorkspaceOptions
+ Language.Haskell.LSP.Types: WorkspaceSymbol :: ClientMethod
+ Language.Haskell.LSP.Types: WorkspaceSymbolParams :: Text -> WorkspaceSymbolParams
+ Language.Haskell.LSP.Types: WorkspaceWorkspaceFolders :: ServerMethod
+ Language.Haskell.LSP.Types: [$sel:_actions:ShowMessageRequestParams] :: ShowMessageRequestParams -> Maybe [MessageActionItem]
+ Language.Haskell.LSP.Types: [$sel:_activeParameter:SignatureHelp] :: SignatureHelp -> Maybe Int
+ Language.Haskell.LSP.Types: [$sel:_activeSignature:SignatureHelp] :: SignatureHelp -> Maybe Int
+ Language.Haskell.LSP.Types: [$sel:_added:WorkspaceFoldersChangeEvent] :: WorkspaceFoldersChangeEvent -> List WorkspaceFolder
+ Language.Haskell.LSP.Types: [$sel:_additionalTextEdits:ColorPresentation] :: ColorPresentation -> Maybe (List TextEdit)
+ Language.Haskell.LSP.Types: [$sel:_additionalTextEdits:CompletionItem] :: CompletionItem -> Maybe (List TextEdit)
+ Language.Haskell.LSP.Types: [$sel:_alpha:Color] :: Color -> Int
+ Language.Haskell.LSP.Types: [$sel:_applied:ApplyWorkspaceEditResponseBody] :: ApplyWorkspaceEditResponseBody -> Bool
+ Language.Haskell.LSP.Types: [$sel:_arguments:ExecuteCommandParams] :: ExecuteCommandParams -> Maybe (List Value)
+ Language.Haskell.LSP.Types: [$sel:_blue:Color] :: Color -> Int
+ Language.Haskell.LSP.Types: [$sel:_capabilities:InitializeParams] :: InitializeParams -> ClientCapabilities
+ Language.Haskell.LSP.Types: [$sel:_capabilities:InitializeResponseCapabilities] :: InitializeResponseCapabilities -> InitializeResponseCapabilitiesInner
+ Language.Haskell.LSP.Types: [$sel:_ch:DocumentOnTypeFormattingParams] :: DocumentOnTypeFormattingParams -> Text
+ Language.Haskell.LSP.Types: [$sel:_change:TextDocumentSyncOptions] :: TextDocumentSyncOptions -> Maybe TextDocumentSyncKind
+ Language.Haskell.LSP.Types: [$sel:_changeNotifications:WorkspaceFolderOptions] :: WorkspaceFolderOptions -> Maybe WorkspaceFolderChangeNotifications
+ Language.Haskell.LSP.Types: [$sel:_changes:DidChangeWatchedFilesParams] :: DidChangeWatchedFilesParams -> List FileEvent
+ Language.Haskell.LSP.Types: [$sel:_changes:WorkspaceEdit] :: WorkspaceEdit -> Maybe WorkspaceEditMap
+ Language.Haskell.LSP.Types: [$sel:_children:DocumentSymbol] :: DocumentSymbol -> Maybe (List DocumentSymbol)
+ Language.Haskell.LSP.Types: [$sel:_code:Diagnostic] :: Diagnostic -> Maybe Text
+ Language.Haskell.LSP.Types: [$sel:_code:ResponseError] :: ResponseError -> ErrorCode
+ Language.Haskell.LSP.Types: [$sel:_codeActionProvider:InitializeResponseCapabilitiesInner] :: InitializeResponseCapabilitiesInner -> Maybe Bool
+ Language.Haskell.LSP.Types: [$sel:_codeLensProvider:InitializeResponseCapabilitiesInner] :: InitializeResponseCapabilitiesInner -> Maybe CodeLensOptions
+ Language.Haskell.LSP.Types: [$sel:_color:ColorInformation] :: ColorInformation -> Color
+ Language.Haskell.LSP.Types: [$sel:_color:ColorPresentationParams] :: ColorPresentationParams -> Color
+ Language.Haskell.LSP.Types: [$sel:_colorProvider:InitializeResponseCapabilitiesInner] :: InitializeResponseCapabilitiesInner -> Maybe ColorOptions
+ Language.Haskell.LSP.Types: [$sel:_command:CodeAction] :: CodeAction -> Maybe Command
+ Language.Haskell.LSP.Types: [$sel:_command:CodeLens] :: CodeLens -> Maybe Command
+ Language.Haskell.LSP.Types: [$sel:_command:CompletionItem] :: CompletionItem -> Maybe Command
+ Language.Haskell.LSP.Types: [$sel:_command:ExecuteCommandParams] :: ExecuteCommandParams -> Text
+ Language.Haskell.LSP.Types: [$sel:_commands:ExecuteCommandOptions] :: ExecuteCommandOptions -> List Text
+ Language.Haskell.LSP.Types: [$sel:_commands:ExecuteCommandRegistrationOptions] :: ExecuteCommandRegistrationOptions -> List Text
+ Language.Haskell.LSP.Types: [$sel:_commitCharacters:CompletionItem] :: CompletionItem -> Maybe (List Text)
+ Language.Haskell.LSP.Types: [$sel:_completionProvider:InitializeResponseCapabilitiesInner] :: InitializeResponseCapabilitiesInner -> Maybe CompletionOptions
+ Language.Haskell.LSP.Types: [$sel:_containerName:SymbolInformation] :: SymbolInformation -> Maybe Text
+ Language.Haskell.LSP.Types: [$sel:_contentChanges:DidChangeTextDocumentParams] :: DidChangeTextDocumentParams -> List TextDocumentContentChangeEvent
+ Language.Haskell.LSP.Types: [$sel:_contents:Hover] :: Hover -> List MarkedString
+ Language.Haskell.LSP.Types: [$sel:_context:CodeActionParams] :: CodeActionParams -> CodeActionContext
+ Language.Haskell.LSP.Types: [$sel:_context:CompletionParams] :: CompletionParams -> Maybe CompletionContext
+ Language.Haskell.LSP.Types: [$sel:_context:ReferenceParams] :: ReferenceParams -> ReferenceContext
+ Language.Haskell.LSP.Types: [$sel:_definitionProvider:InitializeResponseCapabilitiesInner] :: InitializeResponseCapabilitiesInner -> Maybe Bool
+ Language.Haskell.LSP.Types: [$sel:_deprecated:CompletionItem] :: CompletionItem -> Maybe Bool
+ Language.Haskell.LSP.Types: [$sel:_deprecated:DocumentSymbol] :: DocumentSymbol -> Maybe Bool
+ Language.Haskell.LSP.Types: [$sel:_deprecated:SymbolInformation] :: SymbolInformation -> Maybe Bool
+ Language.Haskell.LSP.Types: [$sel:_detail:CompletionItem] :: CompletionItem -> Maybe Text
+ Language.Haskell.LSP.Types: [$sel:_detail:DocumentSymbol] :: DocumentSymbol -> Maybe Text
+ Language.Haskell.LSP.Types: [$sel:_diagnostics:CodeActionContext] :: CodeActionContext -> List Diagnostic
+ Language.Haskell.LSP.Types: [$sel:_diagnostics:CodeAction] :: CodeAction -> Maybe (List Diagnostic)
+ Language.Haskell.LSP.Types: [$sel:_diagnostics:PublishDiagnosticsParams] :: PublishDiagnosticsParams -> List Diagnostic
+ Language.Haskell.LSP.Types: [$sel:_documentChanges:WorkspaceEdit] :: WorkspaceEdit -> Maybe (List TextDocumentEdit)
+ Language.Haskell.LSP.Types: [$sel:_documentFormattingProvider:InitializeResponseCapabilitiesInner] :: InitializeResponseCapabilitiesInner -> Maybe Bool
+ Language.Haskell.LSP.Types: [$sel:_documentHighlightProvider:InitializeResponseCapabilitiesInner] :: InitializeResponseCapabilitiesInner -> Maybe Bool
+ Language.Haskell.LSP.Types: [$sel:_documentLinkProvider:InitializeResponseCapabilitiesInner] :: InitializeResponseCapabilitiesInner -> Maybe DocumentLinkOptions
+ Language.Haskell.LSP.Types: [$sel:_documentOnTypeFormattingProvider:InitializeResponseCapabilitiesInner] :: InitializeResponseCapabilitiesInner -> Maybe DocumentOnTypeFormattingOptions
+ Language.Haskell.LSP.Types: [$sel:_documentRangeFormattingProvider:InitializeResponseCapabilitiesInner] :: InitializeResponseCapabilitiesInner -> Maybe Bool
+ Language.Haskell.LSP.Types: [$sel:_documentSelector:CodeLensRegistrationOptions] :: CodeLensRegistrationOptions -> Maybe DocumentSelector
+ Language.Haskell.LSP.Types: [$sel:_documentSelector:ColorOptionsStatic] :: ColorOptions -> Maybe DocumentSelector
+ Language.Haskell.LSP.Types: [$sel:_documentSelector:CompletionRegistrationOptions] :: CompletionRegistrationOptions -> Maybe DocumentSelector
+ Language.Haskell.LSP.Types: [$sel:_documentSelector:FoldingRangeOptionsStatic] :: FoldingRangeOptions -> Maybe DocumentSelector
+ Language.Haskell.LSP.Types: [$sel:_documentSelector:GotoOptionsStatic] :: GotoOptions -> Maybe DocumentSelector
+ Language.Haskell.LSP.Types: [$sel:_documentSelector:SignatureHelpRegistrationOptions] :: SignatureHelpRegistrationOptions -> Maybe DocumentSelector
+ Language.Haskell.LSP.Types: [$sel:_documentSelector:TextDocumentChangeRegistrationOptions] :: TextDocumentChangeRegistrationOptions -> Maybe DocumentSelector
+ Language.Haskell.LSP.Types: [$sel:_documentSelector:TextDocumentRegistrationOptions] :: TextDocumentRegistrationOptions -> Maybe DocumentSelector
+ Language.Haskell.LSP.Types: [$sel:_documentSymbolProvider:InitializeResponseCapabilitiesInner] :: InitializeResponseCapabilitiesInner -> Maybe Bool
+ Language.Haskell.LSP.Types: [$sel:_documentation:CompletionItem] :: CompletionItem -> Maybe CompletionDoc
+ Language.Haskell.LSP.Types: [$sel:_documentation:ParameterInformation] :: ParameterInformation -> Maybe Text
+ Language.Haskell.LSP.Types: [$sel:_documentation:SignatureInformation] :: SignatureInformation -> Maybe Text
+ Language.Haskell.LSP.Types: [$sel:_edit:ApplyWorkspaceEditParams] :: ApplyWorkspaceEditParams -> WorkspaceEdit
+ Language.Haskell.LSP.Types: [$sel:_edit:CodeAction] :: CodeAction -> Maybe WorkspaceEdit
+ Language.Haskell.LSP.Types: [$sel:_edits:TextDocumentEdit] :: TextDocumentEdit -> List TextEdit
+ Language.Haskell.LSP.Types: [$sel:_error:ResponseMessage] :: ResponseMessage a -> Maybe ResponseError
+ Language.Haskell.LSP.Types: [$sel:_event:DidChangeWorkspaceFoldersParams] :: DidChangeWorkspaceFoldersParams -> WorkspaceFoldersChangeEvent
+ Language.Haskell.LSP.Types: [$sel:_executeCommandProvider:InitializeResponseCapabilitiesInner] :: InitializeResponseCapabilitiesInner -> Maybe ExecuteCommandOptions
+ Language.Haskell.LSP.Types: [$sel:_experimental:InitializeResponseCapabilitiesInner] :: InitializeResponseCapabilitiesInner -> Maybe Value
+ Language.Haskell.LSP.Types: [$sel:_filterText:CompletionItem] :: CompletionItem -> Maybe Text
+ Language.Haskell.LSP.Types: [$sel:_firstTriggerCharacter:DocumentOnTypeFormattingOptions] :: DocumentOnTypeFormattingOptions -> Text
+ Language.Haskell.LSP.Types: [$sel:_firstTriggerCharacter:DocumentOnTypeFormattingRegistrationOptions] :: DocumentOnTypeFormattingRegistrationOptions -> Text
+ Language.Haskell.LSP.Types: [$sel:_foldingRangeProvider:InitializeResponseCapabilitiesInner] :: InitializeResponseCapabilitiesInner -> Maybe FoldingRangeOptions
+ Language.Haskell.LSP.Types: [$sel:_green:Color] :: Color -> Int
+ Language.Haskell.LSP.Types: [$sel:_hoverProvider:InitializeResponseCapabilitiesInner] :: InitializeResponseCapabilitiesInner -> Maybe Bool
+ Language.Haskell.LSP.Types: [$sel:_id:CancelParams] :: CancelParams -> LspId
+ Language.Haskell.LSP.Types: [$sel:_id:ColorOptionsStatic] :: ColorOptions -> Maybe Text
+ Language.Haskell.LSP.Types: [$sel:_id:FoldingRangeOptionsStatic] :: FoldingRangeOptions -> Maybe Text
+ Language.Haskell.LSP.Types: [$sel:_id:GotoOptionsStatic] :: GotoOptions -> Maybe Text
+ Language.Haskell.LSP.Types: [$sel:_id:Registration] :: Registration -> Text
+ Language.Haskell.LSP.Types: [$sel:_id:RequestMessage] :: RequestMessage m req resp -> LspId
+ Language.Haskell.LSP.Types: [$sel:_id:ResponseMessage] :: ResponseMessage a -> LspIdRsp
+ Language.Haskell.LSP.Types: [$sel:_id:Unregistration] :: Unregistration -> Text
+ Language.Haskell.LSP.Types: [$sel:_implementationProvider:InitializeResponseCapabilitiesInner] :: InitializeResponseCapabilitiesInner -> Maybe GotoOptions
+ Language.Haskell.LSP.Types: [$sel:_includeDeclaration:ReferenceContext] :: ReferenceContext -> Bool
+ Language.Haskell.LSP.Types: [$sel:_includeText:SaveOptions] :: SaveOptions -> Maybe Bool
+ Language.Haskell.LSP.Types: [$sel:_initializationOptions:InitializeParams] :: InitializeParams -> Maybe Value
+ Language.Haskell.LSP.Types: [$sel:_insertSpaces:FormattingOptions] :: FormattingOptions -> Bool
+ Language.Haskell.LSP.Types: [$sel:_insertText:CompletionItem] :: CompletionItem -> Maybe Text
+ Language.Haskell.LSP.Types: [$sel:_insertTextFormat:CompletionItem] :: CompletionItem -> Maybe InsertTextFormat
+ Language.Haskell.LSP.Types: [$sel:_isIncomplete:CompletionListType] :: CompletionListType -> Bool
+ Language.Haskell.LSP.Types: [$sel:_items:CompletionListType] :: CompletionListType -> List CompletionItem
+ Language.Haskell.LSP.Types: [$sel:_items:ConfigurationParams] :: ConfigurationParams -> List ConfigurationItem
+ Language.Haskell.LSP.Types: [$sel:_jsonrpc:NotificationMessage] :: NotificationMessage m a -> Text
+ Language.Haskell.LSP.Types: [$sel:_jsonrpc:RequestMessage] :: RequestMessage m req resp -> Text
+ Language.Haskell.LSP.Types: [$sel:_jsonrpc:ResponseMessage] :: ResponseMessage a -> Text
+ Language.Haskell.LSP.Types: [$sel:_kind:CodeAction] :: CodeAction -> Maybe CodeActionKind
+ Language.Haskell.LSP.Types: [$sel:_kind:CompletionItem] :: CompletionItem -> Maybe CompletionItemKind
+ Language.Haskell.LSP.Types: [$sel:_kind:DocumentHighlight] :: DocumentHighlight -> Maybe DocumentHighlightKind
+ Language.Haskell.LSP.Types: [$sel:_kind:DocumentSymbol] :: DocumentSymbol -> SymbolKind
+ Language.Haskell.LSP.Types: [$sel:_kind:MarkupContent] :: MarkupContent -> MarkupKind
+ Language.Haskell.LSP.Types: [$sel:_kind:SymbolInformation] :: SymbolInformation -> SymbolKind
+ Language.Haskell.LSP.Types: [$sel:_label:ColorPresentation] :: ColorPresentation -> Text
+ Language.Haskell.LSP.Types: [$sel:_label:CompletionItem] :: CompletionItem -> Text
+ Language.Haskell.LSP.Types: [$sel:_label:ParameterInformation] :: ParameterInformation -> Text
+ Language.Haskell.LSP.Types: [$sel:_label:SignatureInformation] :: SignatureInformation -> Text
+ Language.Haskell.LSP.Types: [$sel:_language:LanguageString] :: LanguageString -> Text
+ Language.Haskell.LSP.Types: [$sel:_languageId:TextDocumentItem] :: TextDocumentItem -> Text
+ Language.Haskell.LSP.Types: [$sel:_location:DiagnosticRelatedInformation] :: DiagnosticRelatedInformation -> Location
+ Language.Haskell.LSP.Types: [$sel:_location:SymbolInformation] :: SymbolInformation -> Location
+ Language.Haskell.LSP.Types: [$sel:_message:DiagnosticRelatedInformation] :: DiagnosticRelatedInformation -> Text
+ Language.Haskell.LSP.Types: [$sel:_message:Diagnostic] :: Diagnostic -> Text
+ Language.Haskell.LSP.Types: [$sel:_message:LogMessageParams] :: LogMessageParams -> Text
+ Language.Haskell.LSP.Types: [$sel:_message:ResponseError] :: ResponseError -> Text
+ Language.Haskell.LSP.Types: [$sel:_message:ShowMessageParams] :: ShowMessageParams -> Text
+ Language.Haskell.LSP.Types: [$sel:_message:ShowMessageRequestParams] :: ShowMessageRequestParams -> Text
+ Language.Haskell.LSP.Types: [$sel:_method:NotificationMessage] :: NotificationMessage m a -> m
+ Language.Haskell.LSP.Types: [$sel:_method:Registration] :: Registration -> ClientMethod
+ Language.Haskell.LSP.Types: [$sel:_method:RequestMessage] :: RequestMessage m req resp -> m
+ Language.Haskell.LSP.Types: [$sel:_method:Unregistration] :: Unregistration -> Text
+ Language.Haskell.LSP.Types: [$sel:_moreTriggerCharacter:DocumentOnTypeFormattingOptions] :: DocumentOnTypeFormattingOptions -> Maybe [String]
+ Language.Haskell.LSP.Types: [$sel:_moreTriggerCharacter:DocumentOnTypeFormattingRegistrationOptions] :: DocumentOnTypeFormattingRegistrationOptions -> Maybe (List String)
+ Language.Haskell.LSP.Types: [$sel:_name:DocumentSymbol] :: DocumentSymbol -> Text
+ Language.Haskell.LSP.Types: [$sel:_name:SymbolInformation] :: SymbolInformation -> Text
+ Language.Haskell.LSP.Types: [$sel:_name:WorkspaceFolder] :: WorkspaceFolder -> Text
+ Language.Haskell.LSP.Types: [$sel:_newName:RenameParams] :: RenameParams -> Text
+ Language.Haskell.LSP.Types: [$sel:_newText:TextEdit] :: TextEdit -> Text
+ Language.Haskell.LSP.Types: [$sel:_openClose:TextDocumentSyncOptions] :: TextDocumentSyncOptions -> Maybe Bool
+ Language.Haskell.LSP.Types: [$sel:_options:DocumentFormattingParams] :: DocumentFormattingParams -> FormattingOptions
+ Language.Haskell.LSP.Types: [$sel:_options:DocumentOnTypeFormattingParams] :: DocumentOnTypeFormattingParams -> FormattingOptions
+ Language.Haskell.LSP.Types: [$sel:_options:DocumentRangeFormattingParams] :: DocumentRangeFormattingParams -> FormattingOptions
+ Language.Haskell.LSP.Types: [$sel:_parameters:SignatureInformation] :: SignatureInformation -> Maybe [ParameterInformation]
+ Language.Haskell.LSP.Types: [$sel:_params:NotificationMessage] :: NotificationMessage m a -> a
+ Language.Haskell.LSP.Types: [$sel:_params:RequestMessage] :: RequestMessage m req resp -> req
+ Language.Haskell.LSP.Types: [$sel:_params:TraceNotification] :: TraceNotification -> TraceParams
+ Language.Haskell.LSP.Types: [$sel:_position:CompletionParams] :: CompletionParams -> Position
+ Language.Haskell.LSP.Types: [$sel:_position:DocumentOnTypeFormattingParams] :: DocumentOnTypeFormattingParams -> Position
+ Language.Haskell.LSP.Types: [$sel:_position:ReferenceParams] :: ReferenceParams -> Position
+ Language.Haskell.LSP.Types: [$sel:_position:RenameParams] :: RenameParams -> Position
+ Language.Haskell.LSP.Types: [$sel:_position:TextDocumentPositionParams] :: TextDocumentPositionParams -> Position
+ Language.Haskell.LSP.Types: [$sel:_preselect:CompletionItem] :: CompletionItem -> Maybe Bool
+ Language.Haskell.LSP.Types: [$sel:_processId:InitializeParams] :: InitializeParams -> Maybe Int
+ Language.Haskell.LSP.Types: [$sel:_query:WorkspaceSymbolParams] :: WorkspaceSymbolParams -> Text
+ Language.Haskell.LSP.Types: [$sel:_range:CodeActionParams] :: CodeActionParams -> Range
+ Language.Haskell.LSP.Types: [$sel:_range:CodeLens] :: CodeLens -> Range
+ Language.Haskell.LSP.Types: [$sel:_range:ColorInformation] :: ColorInformation -> Range
+ Language.Haskell.LSP.Types: [$sel:_range:ColorPresentationParams] :: ColorPresentationParams -> Range
+ Language.Haskell.LSP.Types: [$sel:_range:Diagnostic] :: Diagnostic -> Range
+ Language.Haskell.LSP.Types: [$sel:_range:DocumentHighlight] :: DocumentHighlight -> Range
+ Language.Haskell.LSP.Types: [$sel:_range:DocumentLink] :: DocumentLink -> Range
+ Language.Haskell.LSP.Types: [$sel:_range:DocumentRangeFormattingParams] :: DocumentRangeFormattingParams -> Range
+ Language.Haskell.LSP.Types: [$sel:_range:DocumentSymbol] :: DocumentSymbol -> Range
+ Language.Haskell.LSP.Types: [$sel:_range:Hover] :: Hover -> Maybe Range
+ Language.Haskell.LSP.Types: [$sel:_range:TextDocumentContentChangeEvent] :: TextDocumentContentChangeEvent -> Maybe Range
+ Language.Haskell.LSP.Types: [$sel:_range:TextEdit] :: TextEdit -> Range
+ Language.Haskell.LSP.Types: [$sel:_rangeLength:TextDocumentContentChangeEvent] :: TextDocumentContentChangeEvent -> Maybe Int
+ Language.Haskell.LSP.Types: [$sel:_reason:WillSaveTextDocumentParams] :: WillSaveTextDocumentParams -> TextDocumentSaveReason
+ Language.Haskell.LSP.Types: [$sel:_red:Color] :: Color -> Int
+ Language.Haskell.LSP.Types: [$sel:_referencesProvider:InitializeResponseCapabilitiesInner] :: InitializeResponseCapabilitiesInner -> Maybe Bool
+ Language.Haskell.LSP.Types: [$sel:_registerOptions:Registration] :: Registration -> Maybe Value
+ Language.Haskell.LSP.Types: [$sel:_registrations:RegistrationParams] :: RegistrationParams -> List Registration
+ Language.Haskell.LSP.Types: [$sel:_relatedInformation:Diagnostic] :: Diagnostic -> Maybe (List DiagnosticRelatedInformation)
+ Language.Haskell.LSP.Types: [$sel:_removed:WorkspaceFoldersChangeEvent] :: WorkspaceFoldersChangeEvent -> List WorkspaceFolder
+ Language.Haskell.LSP.Types: [$sel:_renameProvider:InitializeResponseCapabilitiesInner] :: InitializeResponseCapabilitiesInner -> Maybe Bool
+ Language.Haskell.LSP.Types: [$sel:_resolveProvider:CodeLensOptions] :: CodeLensOptions -> Maybe Bool
+ Language.Haskell.LSP.Types: [$sel:_resolveProvider:CodeLensRegistrationOptions] :: CodeLensRegistrationOptions -> Maybe Bool
+ Language.Haskell.LSP.Types: [$sel:_resolveProvider:CompletionOptions] :: CompletionOptions -> Maybe Bool
+ Language.Haskell.LSP.Types: [$sel:_resolveProvider:CompletionRegistrationOptions] :: CompletionRegistrationOptions -> Maybe Bool
+ Language.Haskell.LSP.Types: [$sel:_resolveProvider:DocumentLinkOptions] :: DocumentLinkOptions -> Maybe Bool
+ Language.Haskell.LSP.Types: [$sel:_result:ResponseMessage] :: ResponseMessage a -> Maybe a
+ Language.Haskell.LSP.Types: [$sel:_retry:InitializeError] :: InitializeError -> Bool
+ Language.Haskell.LSP.Types: [$sel:_rootPath:InitializeParams] :: InitializeParams -> Maybe Text
+ Language.Haskell.LSP.Types: [$sel:_rootUri:InitializeParams] :: InitializeParams -> Maybe Uri
+ Language.Haskell.LSP.Types: [$sel:_save:TextDocumentSyncOptions] :: TextDocumentSyncOptions -> Maybe SaveOptions
+ Language.Haskell.LSP.Types: [$sel:_scopeUri:ConfigurationItem] :: ConfigurationItem -> Maybe Text
+ Language.Haskell.LSP.Types: [$sel:_section:ConfigurationItem] :: ConfigurationItem -> Maybe Text
+ Language.Haskell.LSP.Types: [$sel:_selectionRange:DocumentSymbol] :: DocumentSymbol -> Range
+ Language.Haskell.LSP.Types: [$sel:_settings:DidChangeConfigurationParams] :: DidChangeConfigurationParams -> Value
+ Language.Haskell.LSP.Types: [$sel:_severity:Diagnostic] :: Diagnostic -> Maybe DiagnosticSeverity
+ Language.Haskell.LSP.Types: [$sel:_signatureHelpProvider:InitializeResponseCapabilitiesInner] :: InitializeResponseCapabilitiesInner -> Maybe SignatureHelpOptions
+ Language.Haskell.LSP.Types: [$sel:_signatures:SignatureHelp] :: SignatureHelp -> List SignatureInformation
+ Language.Haskell.LSP.Types: [$sel:_sortText:CompletionItem] :: CompletionItem -> Maybe Text
+ Language.Haskell.LSP.Types: [$sel:_source:Diagnostic] :: Diagnostic -> Maybe DiagnosticSource
+ Language.Haskell.LSP.Types: [$sel:_supported:WorkspaceFolderOptions] :: WorkspaceFolderOptions -> Maybe Bool
+ Language.Haskell.LSP.Types: [$sel:_syncKind:TextDocumentChangeRegistrationOptions] :: TextDocumentChangeRegistrationOptions -> TextDocumentSyncKind
+ Language.Haskell.LSP.Types: [$sel:_tabSize:FormattingOptions] :: FormattingOptions -> Int
+ Language.Haskell.LSP.Types: [$sel:_target:DocumentLink] :: DocumentLink -> Maybe Text
+ Language.Haskell.LSP.Types: [$sel:_text:TextDocumentContentChangeEvent] :: TextDocumentContentChangeEvent -> Text
+ Language.Haskell.LSP.Types: [$sel:_text:TextDocumentItem] :: TextDocumentItem -> Text
+ Language.Haskell.LSP.Types: [$sel:_textDocument:CodeActionParams] :: CodeActionParams -> TextDocumentIdentifier
+ Language.Haskell.LSP.Types: [$sel:_textDocument:CodeLensParams] :: CodeLensParams -> TextDocumentIdentifier
+ Language.Haskell.LSP.Types: [$sel:_textDocument:ColorPresentationParams] :: ColorPresentationParams -> TextDocumentIdentifier
+ Language.Haskell.LSP.Types: [$sel:_textDocument:CompletionParams] :: CompletionParams -> TextDocumentIdentifier
+ Language.Haskell.LSP.Types: [$sel:_textDocument:DidChangeTextDocumentParams] :: DidChangeTextDocumentParams -> VersionedTextDocumentIdentifier
+ Language.Haskell.LSP.Types: [$sel:_textDocument:DidCloseTextDocumentParams] :: DidCloseTextDocumentParams -> TextDocumentIdentifier
+ Language.Haskell.LSP.Types: [$sel:_textDocument:DidOpenTextDocumentParams] :: DidOpenTextDocumentParams -> TextDocumentItem
+ Language.Haskell.LSP.Types: [$sel:_textDocument:DidSaveTextDocumentParams] :: DidSaveTextDocumentParams -> TextDocumentIdentifier
+ Language.Haskell.LSP.Types: [$sel:_textDocument:DocumentColorParams] :: DocumentColorParams -> TextDocumentIdentifier
+ Language.Haskell.LSP.Types: [$sel:_textDocument:DocumentFormattingParams] :: DocumentFormattingParams -> TextDocumentIdentifier
+ Language.Haskell.LSP.Types: [$sel:_textDocument:DocumentLinkParams] :: DocumentLinkParams -> TextDocumentIdentifier
+ Language.Haskell.LSP.Types: [$sel:_textDocument:DocumentOnTypeFormattingParams] :: DocumentOnTypeFormattingParams -> TextDocumentIdentifier
+ Language.Haskell.LSP.Types: [$sel:_textDocument:DocumentRangeFormattingParams] :: DocumentRangeFormattingParams -> TextDocumentIdentifier
+ Language.Haskell.LSP.Types: [$sel:_textDocument:DocumentSymbolParams] :: DocumentSymbolParams -> TextDocumentIdentifier
+ Language.Haskell.LSP.Types: [$sel:_textDocument:ReferenceParams] :: ReferenceParams -> TextDocumentIdentifier
+ Language.Haskell.LSP.Types: [$sel:_textDocument:RenameParams] :: RenameParams -> TextDocumentIdentifier
+ Language.Haskell.LSP.Types: [$sel:_textDocument:TextDocumentEdit] :: TextDocumentEdit -> VersionedTextDocumentIdentifier
+ Language.Haskell.LSP.Types: [$sel:_textDocument:TextDocumentPositionParams] :: TextDocumentPositionParams -> TextDocumentIdentifier
+ Language.Haskell.LSP.Types: [$sel:_textDocument:WillSaveTextDocumentParams] :: WillSaveTextDocumentParams -> TextDocumentIdentifier
+ Language.Haskell.LSP.Types: [$sel:_textDocumentSync:InitializeResponseCapabilitiesInner] :: InitializeResponseCapabilitiesInner -> Maybe TDS
+ Language.Haskell.LSP.Types: [$sel:_textEdit:ColorPresentation] :: ColorPresentation -> Maybe TextEdit
+ Language.Haskell.LSP.Types: [$sel:_textEdit:CompletionItem] :: CompletionItem -> Maybe TextEdit
+ Language.Haskell.LSP.Types: [$sel:_title:CodeAction] :: CodeAction -> Text
+ Language.Haskell.LSP.Types: [$sel:_title:MessageActionItem] :: MessageActionItem -> Text
+ Language.Haskell.LSP.Types: [$sel:_trace:InitializeParams] :: InitializeParams -> Maybe Trace
+ Language.Haskell.LSP.Types: [$sel:_triggerCharacter:CompletionContext] :: CompletionContext -> Maybe Text
+ Language.Haskell.LSP.Types: [$sel:_triggerCharacters:CompletionOptions] :: CompletionOptions -> Maybe [String]
+ Language.Haskell.LSP.Types: [$sel:_triggerCharacters:CompletionRegistrationOptions] :: CompletionRegistrationOptions -> Maybe (List String)
+ Language.Haskell.LSP.Types: [$sel:_triggerCharacters:SignatureHelpOptions] :: SignatureHelpOptions -> Maybe [String]
+ Language.Haskell.LSP.Types: [$sel:_triggerCharacters:SignatureHelpRegistrationOptions] :: SignatureHelpRegistrationOptions -> Maybe (List String)
+ Language.Haskell.LSP.Types: [$sel:_triggerKind:CompletionContext] :: CompletionContext -> CompletionTriggerKind
+ Language.Haskell.LSP.Types: [$sel:_typeDefinitionProvider:InitializeResponseCapabilitiesInner] :: InitializeResponseCapabilitiesInner -> Maybe GotoOptions
+ Language.Haskell.LSP.Types: [$sel:_unregistrations:UnregistrationParams] :: UnregistrationParams -> List Unregistration
+ Language.Haskell.LSP.Types: [$sel:_uri:FileEvent] :: FileEvent -> Uri
+ Language.Haskell.LSP.Types: [$sel:_uri:PublishDiagnosticsParams] :: PublishDiagnosticsParams -> Uri
+ Language.Haskell.LSP.Types: [$sel:_uri:TextDocumentIdentifier] :: TextDocumentIdentifier -> Uri
+ Language.Haskell.LSP.Types: [$sel:_uri:TextDocumentItem] :: TextDocumentItem -> Uri
+ Language.Haskell.LSP.Types: [$sel:_uri:VersionedTextDocumentIdentifier] :: VersionedTextDocumentIdentifier -> Uri
+ Language.Haskell.LSP.Types: [$sel:_uri:WorkspaceFolder] :: WorkspaceFolder -> Text
+ Language.Haskell.LSP.Types: [$sel:_value:LanguageString] :: LanguageString -> Text
+ Language.Haskell.LSP.Types: [$sel:_value:MarkupContent] :: MarkupContent -> Text
+ Language.Haskell.LSP.Types: [$sel:_value:TraceParams] :: TraceParams -> Text
+ Language.Haskell.LSP.Types: [$sel:_version:TextDocumentItem] :: TextDocumentItem -> Int
+ Language.Haskell.LSP.Types: [$sel:_version:VersionedTextDocumentIdentifier] :: VersionedTextDocumentIdentifier -> TextDocumentVersion
+ Language.Haskell.LSP.Types: [$sel:_willSave:TextDocumentSyncOptions] :: TextDocumentSyncOptions -> Maybe Bool
+ Language.Haskell.LSP.Types: [$sel:_willSaveWaitUntil:TextDocumentSyncOptions] :: TextDocumentSyncOptions -> Maybe Bool
+ Language.Haskell.LSP.Types: [$sel:_workspace:InitializeResponseCapabilitiesInner] :: InitializeResponseCapabilitiesInner -> Maybe WorkspaceOptions
+ Language.Haskell.LSP.Types: [$sel:_workspaceFolders:InitializeParams] :: InitializeParams -> Maybe (List WorkspaceFolder)
+ Language.Haskell.LSP.Types: [$sel:_workspaceFolders:WorkspaceOptions] :: WorkspaceOptions -> Maybe WorkspaceFolderOptions
+ Language.Haskell.LSP.Types: [$sel:_workspaceSymbolProvider:InitializeResponseCapabilitiesInner] :: InitializeResponseCapabilitiesInner -> Maybe Bool
+ Language.Haskell.LSP.Types: [$sel:_xdata:CodeLens] :: CodeLens -> Maybe Value
+ Language.Haskell.LSP.Types: [$sel:_xdata:CompletionItem] :: CompletionItem -> Maybe Value
+ Language.Haskell.LSP.Types: [$sel:_xdata:ResponseError] :: ResponseError -> Maybe Value
+ Language.Haskell.LSP.Types: [$sel:_xtype:FileEvent] :: FileEvent -> FileChangeType
+ Language.Haskell.LSP.Types: [$sel:_xtype:LogMessageParams] :: LogMessageParams -> MessageType
+ Language.Haskell.LSP.Types: [$sel:_xtype:ShowMessageParams] :: ShowMessageParams -> MessageType
+ Language.Haskell.LSP.Types: [$sel:_xtype:ShowMessageRequestParams] :: ShowMessageRequestParams -> MessageType
+ Language.Haskell.LSP.Types: [$sel:only:CodeActionContext] :: CodeActionContext -> Maybe (List CodeActionKind)
+ Language.Haskell.LSP.Types: [_arguments] :: Command -> Maybe (List Value)
+ Language.Haskell.LSP.Types: [_character] :: Position -> Int
+ Language.Haskell.LSP.Types: [_command] :: Command -> Text
+ Language.Haskell.LSP.Types: [_endCharacter] :: FoldingRange -> Maybe Int
+ Language.Haskell.LSP.Types: [_endLine] :: FoldingRange -> Int
+ Language.Haskell.LSP.Types: [_end] :: Range -> Position
+ Language.Haskell.LSP.Types: [_kind] :: FoldingRange -> Maybe FoldingRangeKind
+ Language.Haskell.LSP.Types: [_language] :: DocumentFilter -> Maybe Text
+ Language.Haskell.LSP.Types: [_line] :: Position -> Int
+ Language.Haskell.LSP.Types: [_pattern] :: DocumentFilter -> Maybe Text
+ Language.Haskell.LSP.Types: [_range] :: Location -> Range
+ Language.Haskell.LSP.Types: [_scheme] :: DocumentFilter -> Maybe Text
+ Language.Haskell.LSP.Types: [_startCharacter] :: FoldingRange -> Maybe Int
+ Language.Haskell.LSP.Types: [_startLine] :: FoldingRange -> Int
+ Language.Haskell.LSP.Types: [_start] :: Range -> Position
+ Language.Haskell.LSP.Types: [_textDocument] :: FoldingRangeParams -> TextDocumentIdentifier
+ Language.Haskell.LSP.Types: [_title] :: Command -> Text
+ Language.Haskell.LSP.Types: [_uri] :: Location -> Uri
+ Language.Haskell.LSP.Types: [getUri] :: Uri -> Text
+ Language.Haskell.LSP.Types: actions :: HasActions s a => Lens' s a
+ Language.Haskell.LSP.Types: activeParameter :: HasActiveParameter s a => Lens' s a
+ Language.Haskell.LSP.Types: activeSignature :: HasActiveSignature s a => Lens' s a
+ Language.Haskell.LSP.Types: added :: HasAdded s a => Lens' s a
+ Language.Haskell.LSP.Types: additionalTextEdits :: HasAdditionalTextEdits s a => Lens' s a
+ Language.Haskell.LSP.Types: alpha :: HasAlpha s a => Lens' s a
+ Language.Haskell.LSP.Types: applied :: HasApplied s a => Lens' s a
+ Language.Haskell.LSP.Types: applyEdit :: HasApplyEdit s a => Lens' s a
+ Language.Haskell.LSP.Types: arguments :: HasArguments s a => Lens' s a
+ Language.Haskell.LSP.Types: blue :: HasBlue s a => Lens' s a
+ Language.Haskell.LSP.Types: capabilities :: HasCapabilities s a => Lens' s a
+ Language.Haskell.LSP.Types: ch :: HasCh s a => Lens' s a
+ Language.Haskell.LSP.Types: change :: HasChange s a => Lens' s a
+ Language.Haskell.LSP.Types: changeNotifications :: HasChangeNotifications s a => Lens' s a
+ Language.Haskell.LSP.Types: changes :: HasChanges s a => Lens' s a
+ Language.Haskell.LSP.Types: character :: HasCharacter s a => Lens' s a
+ Language.Haskell.LSP.Types: children :: HasChildren s a => Lens' s a
+ Language.Haskell.LSP.Types: class HasActions s a | s -> a
+ Language.Haskell.LSP.Types: class HasActiveParameter s a | s -> a
+ Language.Haskell.LSP.Types: class HasActiveSignature s a | s -> a
+ Language.Haskell.LSP.Types: class HasAdded s a | s -> a
+ Language.Haskell.LSP.Types: class HasAdditionalTextEdits s a | s -> a
+ Language.Haskell.LSP.Types: class HasAlpha s a | s -> a
+ Language.Haskell.LSP.Types: class HasApplied s a | s -> a
+ Language.Haskell.LSP.Types: class HasApplyEdit s a | s -> a
+ Language.Haskell.LSP.Types: class HasArguments s a | s -> a
+ Language.Haskell.LSP.Types: class HasBlue s a | s -> a
+ Language.Haskell.LSP.Types: class HasCapabilities s a | s -> a
+ Language.Haskell.LSP.Types: class HasCh s a | s -> a
+ Language.Haskell.LSP.Types: class HasChange s a | s -> a
+ Language.Haskell.LSP.Types: class HasChangeNotifications s a | s -> a
+ Language.Haskell.LSP.Types: class HasChanges s a | s -> a
+ Language.Haskell.LSP.Types: class HasCharacter s a | s -> a
+ Language.Haskell.LSP.Types: class HasChildren s a | s -> a
+ Language.Haskell.LSP.Types: class HasCode s a | s -> a
+ Language.Haskell.LSP.Types: class HasCodeAction s a | s -> a
+ Language.Haskell.LSP.Types: class HasCodeActionKind s a | s -> a
+ Language.Haskell.LSP.Types: class HasCodeActionLiteralSupport s a | s -> a
+ Language.Haskell.LSP.Types: class HasCodeActionProvider s a | s -> a
+ Language.Haskell.LSP.Types: class HasCodeLens s a | s -> a
+ Language.Haskell.LSP.Types: class HasCodeLensProvider s a | s -> a
+ Language.Haskell.LSP.Types: class HasColor s a | s -> a
+ Language.Haskell.LSP.Types: class HasColorProvider s a | s -> a
+ Language.Haskell.LSP.Types: class HasCommand s a | s -> a
+ Language.Haskell.LSP.Types: class HasCommands s a | s -> a
+ Language.Haskell.LSP.Types: class HasCommitCharacters s a | s -> a
+ Language.Haskell.LSP.Types: class HasCommitCharactersSupport s a | s -> a
+ Language.Haskell.LSP.Types: class HasCompletion s a | s -> a
+ Language.Haskell.LSP.Types: class HasCompletionItem s a | s -> a
+ Language.Haskell.LSP.Types: class HasCompletionItemKind s a | s -> a
+ Language.Haskell.LSP.Types: class HasCompletionProvider s a | s -> a
+ Language.Haskell.LSP.Types: class HasConfiguration s a | s -> a
+ Language.Haskell.LSP.Types: class HasContainerName s a | s -> a
+ Language.Haskell.LSP.Types: class HasContentChanges s a | s -> a
+ Language.Haskell.LSP.Types: class HasContentFormat s a | s -> a
+ Language.Haskell.LSP.Types: class HasContents s a | s -> a
+ Language.Haskell.LSP.Types: class HasContext s a | s -> a
+ Language.Haskell.LSP.Types: class HasContextSupport s a | s -> a
+ Language.Haskell.LSP.Types: class HasDefinition s a | s -> a
+ Language.Haskell.LSP.Types: class HasDefinitionProvider s a | s -> a
+ Language.Haskell.LSP.Types: class HasDeprecated s a | s -> a
+ Language.Haskell.LSP.Types: class HasDeprecatedSupport s a | s -> a
+ Language.Haskell.LSP.Types: class HasDetail s a | s -> a
+ Language.Haskell.LSP.Types: class HasDiagnostics s a | s -> a
+ Language.Haskell.LSP.Types: class HasDidChangeConfiguration s a | s -> a
+ Language.Haskell.LSP.Types: class HasDidChangeWatchedFiles s a | s -> a
+ Language.Haskell.LSP.Types: class HasDidSave s a | s -> a
+ Language.Haskell.LSP.Types: class HasDocumentChanges s a | s -> a
+ Language.Haskell.LSP.Types: class HasDocumentFormattingProvider s a | s -> a
+ Language.Haskell.LSP.Types: class HasDocumentHighlight s a | s -> a
+ Language.Haskell.LSP.Types: class HasDocumentHighlightProvider s a | s -> a
+ Language.Haskell.LSP.Types: class HasDocumentLink s a | s -> a
+ Language.Haskell.LSP.Types: class HasDocumentLinkProvider s a | s -> a
+ Language.Haskell.LSP.Types: class HasDocumentOnTypeFormattingProvider s a | s -> a
+ Language.Haskell.LSP.Types: class HasDocumentRangeFormattingProvider s a | s -> a
+ Language.Haskell.LSP.Types: class HasDocumentSelector s a | s -> a
+ Language.Haskell.LSP.Types: class HasDocumentSymbol s a | s -> a
+ Language.Haskell.LSP.Types: class HasDocumentSymbolProvider s a | s -> a
+ Language.Haskell.LSP.Types: class HasDocumentation s a | s -> a
+ Language.Haskell.LSP.Types: class HasDocumentationFormat s a | s -> a
+ Language.Haskell.LSP.Types: class HasDynamicRegistration s a | s -> a
+ Language.Haskell.LSP.Types: class HasEdit s a | s -> a
+ Language.Haskell.LSP.Types: class HasEdits s a | s -> a
+ Language.Haskell.LSP.Types: class HasEnd s a | s -> a
+ Language.Haskell.LSP.Types: class HasEndCharacter s a | s -> a
+ Language.Haskell.LSP.Types: class HasEndLine s a | s -> a
+ Language.Haskell.LSP.Types: class HasError s a | s -> a
+ Language.Haskell.LSP.Types: class HasEvent s a | s -> a
+ Language.Haskell.LSP.Types: class HasExecuteCommand s a | s -> a
+ Language.Haskell.LSP.Types: class HasExecuteCommandProvider s a | s -> a
+ Language.Haskell.LSP.Types: class HasExperimental s a | s -> a
+ Language.Haskell.LSP.Types: class HasFilterText s a | s -> a
+ Language.Haskell.LSP.Types: class HasFirstTriggerCharacter s a | s -> a
+ Language.Haskell.LSP.Types: class HasFoldingRange s a | s -> a
+ Language.Haskell.LSP.Types: class HasFoldingRangeProvider s a | s -> a
+ Language.Haskell.LSP.Types: class HasFormatting s a | s -> a
+ Language.Haskell.LSP.Types: class HasGreen s a | s -> a
+ Language.Haskell.LSP.Types: class HasHierarchicalDocumentSymbolSupport s a | s -> a
+ Language.Haskell.LSP.Types: class HasHover s a | s -> a
+ Language.Haskell.LSP.Types: class HasHoverProvider s a | s -> a
+ Language.Haskell.LSP.Types: class HasId s a | s -> a
+ Language.Haskell.LSP.Types: class HasImplementation s a | s -> a
+ Language.Haskell.LSP.Types: class HasImplementationProvider s a | s -> a
+ Language.Haskell.LSP.Types: class HasIncludeDeclaration s a | s -> a
+ Language.Haskell.LSP.Types: class HasIncludeText s a | s -> a
+ Language.Haskell.LSP.Types: class HasInitializationOptions s a | s -> a
+ Language.Haskell.LSP.Types: class HasInsertSpaces s a | s -> a
+ Language.Haskell.LSP.Types: class HasInsertText s a | s -> a
+ Language.Haskell.LSP.Types: class HasInsertTextFormat s a | s -> a
+ Language.Haskell.LSP.Types: class HasIsIncomplete s a | s -> a
+ Language.Haskell.LSP.Types: class HasItems s a | s -> a
+ Language.Haskell.LSP.Types: class HasJsonrpc s a | s -> a
+ Language.Haskell.LSP.Types: class HasKind s a | s -> a
+ Language.Haskell.LSP.Types: class HasLabel s a | s -> a
+ Language.Haskell.LSP.Types: class HasLanguage s a | s -> a
+ Language.Haskell.LSP.Types: class HasLanguageId s a | s -> a
+ Language.Haskell.LSP.Types: class HasLine s a | s -> a
+ Language.Haskell.LSP.Types: class HasLocation s a | s -> a
+ Language.Haskell.LSP.Types: class HasMessage s a | s -> a
+ Language.Haskell.LSP.Types: class HasMethod s a | s -> a
+ Language.Haskell.LSP.Types: class HasMoreTriggerCharacter s a | s -> a
+ Language.Haskell.LSP.Types: class HasName s a | s -> a
+ Language.Haskell.LSP.Types: class HasNewName s a | s -> a
+ Language.Haskell.LSP.Types: class HasNewText s a | s -> a
+ Language.Haskell.LSP.Types: class HasOnTypeFormatting s a | s -> a
+ Language.Haskell.LSP.Types: class HasOpenClose s a | s -> a
+ Language.Haskell.LSP.Types: class HasOptions s a | s -> a
+ Language.Haskell.LSP.Types: class HasParameters s a | s -> a
+ Language.Haskell.LSP.Types: class HasParams s a | s -> a
+ Language.Haskell.LSP.Types: class HasPattern s a | s -> a
+ Language.Haskell.LSP.Types: class HasPosition s a | s -> a
+ Language.Haskell.LSP.Types: class HasPreselect s a | s -> a
+ Language.Haskell.LSP.Types: class HasPreselectSupport s a | s -> a
+ Language.Haskell.LSP.Types: class HasProcessId s a | s -> a
+ Language.Haskell.LSP.Types: class HasPublishDiagnostics s a | s -> a
+ Language.Haskell.LSP.Types: class HasQuery s a | s -> a
+ Language.Haskell.LSP.Types: class HasRange s a | s -> a
+ Language.Haskell.LSP.Types: class HasRangeFormatting s a | s -> a
+ Language.Haskell.LSP.Types: class HasRangeLength s a | s -> a
+ Language.Haskell.LSP.Types: class HasReason s a | s -> a
+ Language.Haskell.LSP.Types: class HasRed s a | s -> a
+ Language.Haskell.LSP.Types: class HasReferences s a | s -> a
+ Language.Haskell.LSP.Types: class HasReferencesProvider s a | s -> a
+ Language.Haskell.LSP.Types: class HasRegisterOptions s a | s -> a
+ Language.Haskell.LSP.Types: class HasRegistrations s a | s -> a
+ Language.Haskell.LSP.Types: class HasRelatedInformation s a | s -> a
+ Language.Haskell.LSP.Types: class HasRemoved s a | s -> a
+ Language.Haskell.LSP.Types: class HasRename s a | s -> a
+ Language.Haskell.LSP.Types: class HasRenameProvider s a | s -> a
+ Language.Haskell.LSP.Types: class HasResolveProvider s a | s -> a
+ Language.Haskell.LSP.Types: class HasResult s a | s -> a
+ Language.Haskell.LSP.Types: class HasRetry s a | s -> a
+ Language.Haskell.LSP.Types: class HasRootPath s a | s -> a
+ Language.Haskell.LSP.Types: class HasRootUri s a | s -> a
+ Language.Haskell.LSP.Types: class HasSave s a | s -> a
+ Language.Haskell.LSP.Types: class HasScheme s a | s -> a
+ Language.Haskell.LSP.Types: class HasScopeUri s a | s -> a
+ Language.Haskell.LSP.Types: class HasSection s a | s -> a
+ Language.Haskell.LSP.Types: class HasSelectionRange s a | s -> a
+ Language.Haskell.LSP.Types: class HasSettings s a | s -> a
+ Language.Haskell.LSP.Types: class HasSeverity s a | s -> a
+ Language.Haskell.LSP.Types: class HasSignatureHelp s a | s -> a
+ Language.Haskell.LSP.Types: class HasSignatureHelpProvider s a | s -> a
+ Language.Haskell.LSP.Types: class HasSignatureInformation s a | s -> a
+ Language.Haskell.LSP.Types: class HasSignatures s a | s -> a
+ Language.Haskell.LSP.Types: class HasSnippetSupport s a | s -> a
+ Language.Haskell.LSP.Types: class HasSortText s a | s -> a
+ Language.Haskell.LSP.Types: class HasSource s a | s -> a
+ Language.Haskell.LSP.Types: class HasStart s a | s -> a
+ Language.Haskell.LSP.Types: class HasStartCharacter s a | s -> a
+ Language.Haskell.LSP.Types: class HasStartLine s a | s -> a
+ Language.Haskell.LSP.Types: class HasSupported s a | s -> a
+ Language.Haskell.LSP.Types: class HasSymbol s a | s -> a
+ Language.Haskell.LSP.Types: class HasSymbolKind s a | s -> a
+ Language.Haskell.LSP.Types: class HasSyncKind s a | s -> a
+ Language.Haskell.LSP.Types: class HasSynchronization s a | s -> a
+ Language.Haskell.LSP.Types: class HasTabSize s a | s -> a
+ Language.Haskell.LSP.Types: class HasTarget s a | s -> a
+ Language.Haskell.LSP.Types: class HasText s a | s -> a
+ Language.Haskell.LSP.Types: class HasTextDocument s a | s -> a
+ Language.Haskell.LSP.Types: class HasTextDocumentSync s a | s -> a
+ Language.Haskell.LSP.Types: class HasTextEdit s a | s -> a
+ Language.Haskell.LSP.Types: class HasTitle s a | s -> a
+ Language.Haskell.LSP.Types: class HasTrace s a | s -> a
+ Language.Haskell.LSP.Types: class HasTriggerCharacter s a | s -> a
+ Language.Haskell.LSP.Types: class HasTriggerCharacters s a | s -> a
+ Language.Haskell.LSP.Types: class HasTriggerKind s a | s -> a
+ Language.Haskell.LSP.Types: class HasTypeDefinition s a | s -> a
+ Language.Haskell.LSP.Types: class HasTypeDefinitionProvider s a | s -> a
+ Language.Haskell.LSP.Types: class HasUnregistrations s a | s -> a
+ Language.Haskell.LSP.Types: class HasUri s a | s -> a
+ Language.Haskell.LSP.Types: class HasValue s a | s -> a
+ Language.Haskell.LSP.Types: class HasValueSet s a | s -> a
+ Language.Haskell.LSP.Types: class HasVersion s a | s -> a
+ Language.Haskell.LSP.Types: class HasWillSave s a | s -> a
+ Language.Haskell.LSP.Types: class HasWillSaveWaitUntil s a | s -> a
+ Language.Haskell.LSP.Types: class HasWorkspace s a | s -> a
+ Language.Haskell.LSP.Types: class HasWorkspaceEdit s a | s -> a
+ Language.Haskell.LSP.Types: class HasWorkspaceFolders s a | s -> a
+ Language.Haskell.LSP.Types: class HasWorkspaceSymbolProvider s a | s -> a
+ Language.Haskell.LSP.Types: class HasXdata s a | s -> a
+ Language.Haskell.LSP.Types: class HasXtype s a | s -> a
+ Language.Haskell.LSP.Types: code :: HasCode s a => Lens' s a
+ Language.Haskell.LSP.Types: codeAction :: HasCodeAction s a => Lens' s a
+ Language.Haskell.LSP.Types: codeActionKind :: HasCodeActionKind s a => Lens' s a
+ Language.Haskell.LSP.Types: codeActionLiteralSupport :: HasCodeActionLiteralSupport s a => Lens' s a
+ Language.Haskell.LSP.Types: codeActionProvider :: HasCodeActionProvider s a => Lens' s a
+ Language.Haskell.LSP.Types: codeLens :: HasCodeLens s a => Lens' s a
+ Language.Haskell.LSP.Types: codeLensProvider :: HasCodeLensProvider s a => Lens' s a
+ Language.Haskell.LSP.Types: color :: HasColor s a => Lens' s a
+ Language.Haskell.LSP.Types: colorProvider :: HasColorProvider s a => Lens' s a
+ Language.Haskell.LSP.Types: command :: HasCommand s a => Lens' s a
+ Language.Haskell.LSP.Types: commands :: HasCommands s a => Lens' s a
+ Language.Haskell.LSP.Types: commitCharacters :: HasCommitCharacters s a => Lens' s a
+ Language.Haskell.LSP.Types: commitCharactersSupport :: HasCommitCharactersSupport s a => Lens' s a
+ Language.Haskell.LSP.Types: completion :: HasCompletion s a => Lens' s a
+ Language.Haskell.LSP.Types: completionItem :: HasCompletionItem s a => Lens' s a
+ Language.Haskell.LSP.Types: completionItemKind :: HasCompletionItemKind s a => Lens' s a
+ Language.Haskell.LSP.Types: completionProvider :: HasCompletionProvider s a => Lens' s a
+ Language.Haskell.LSP.Types: configuration :: HasConfiguration s a => Lens' s a
+ Language.Haskell.LSP.Types: containerName :: HasContainerName s a => Lens' s a
+ Language.Haskell.LSP.Types: contentChanges :: HasContentChanges s a => Lens' s a
+ Language.Haskell.LSP.Types: contentFormat :: HasContentFormat s a => Lens' s a
+ Language.Haskell.LSP.Types: contents :: HasContents s a => Lens' s a
+ Language.Haskell.LSP.Types: context :: HasContext s a => Lens' s a
+ Language.Haskell.LSP.Types: contextSupport :: HasContextSupport s a => Lens' s a
+ Language.Haskell.LSP.Types: data ApplyWorkspaceEditParams
+ Language.Haskell.LSP.Types: data ApplyWorkspaceEditResponseBody
+ Language.Haskell.LSP.Types: data CAResult
+ Language.Haskell.LSP.Types: data CancelParams
+ Language.Haskell.LSP.Types: data ClientMethod
+ Language.Haskell.LSP.Types: data CodeAction
+ Language.Haskell.LSP.Types: data CodeActionContext
+ Language.Haskell.LSP.Types: data CodeActionKind
+ Language.Haskell.LSP.Types: data CodeActionParams
+ Language.Haskell.LSP.Types: data CodeLens
+ Language.Haskell.LSP.Types: data CodeLensOptions
+ Language.Haskell.LSP.Types: data CodeLensParams
+ Language.Haskell.LSP.Types: data CodeLensRegistrationOptions
+ Language.Haskell.LSP.Types: data Color
+ Language.Haskell.LSP.Types: data ColorInformation
+ Language.Haskell.LSP.Types: data ColorOptions
+ Language.Haskell.LSP.Types: data ColorPresentation
+ Language.Haskell.LSP.Types: data ColorPresentationParams
+ Language.Haskell.LSP.Types: data Command
+ Language.Haskell.LSP.Types: data CompletionContext
+ Language.Haskell.LSP.Types: data CompletionDoc
+ Language.Haskell.LSP.Types: data CompletionItem
+ Language.Haskell.LSP.Types: data CompletionItemKind
+ Language.Haskell.LSP.Types: data CompletionListType
+ Language.Haskell.LSP.Types: data CompletionOptions
+ Language.Haskell.LSP.Types: data CompletionParams
+ Language.Haskell.LSP.Types: data CompletionRegistrationOptions
+ Language.Haskell.LSP.Types: data CompletionResponseResult
+ Language.Haskell.LSP.Types: data CompletionTriggerKind
+ Language.Haskell.LSP.Types: data ConfigurationItem
+ Language.Haskell.LSP.Types: data ConfigurationParams
+ Language.Haskell.LSP.Types: data DSResult
+ Language.Haskell.LSP.Types: data Diagnostic
+ Language.Haskell.LSP.Types: data DiagnosticRelatedInformation
+ Language.Haskell.LSP.Types: data DiagnosticSeverity
+ Language.Haskell.LSP.Types: data DidChangeConfigurationParams
+ Language.Haskell.LSP.Types: data DidChangeTextDocumentParams
+ Language.Haskell.LSP.Types: data DidChangeWatchedFilesParams
+ Language.Haskell.LSP.Types: data DidChangeWorkspaceFoldersParams
+ Language.Haskell.LSP.Types: data DidCloseTextDocumentParams
+ Language.Haskell.LSP.Types: data DidOpenTextDocumentParams
+ Language.Haskell.LSP.Types: data DidSaveTextDocumentParams
+ Language.Haskell.LSP.Types: data DocumentColorParams
+ Language.Haskell.LSP.Types: data DocumentFilter
+ Language.Haskell.LSP.Types: data DocumentFormattingParams
+ Language.Haskell.LSP.Types: data DocumentHighlight
+ Language.Haskell.LSP.Types: data DocumentHighlightKind
+ Language.Haskell.LSP.Types: data DocumentLink
+ Language.Haskell.LSP.Types: data DocumentLinkOptions
+ Language.Haskell.LSP.Types: data DocumentLinkParams
+ Language.Haskell.LSP.Types: data DocumentOnTypeFormattingOptions
+ Language.Haskell.LSP.Types: data DocumentOnTypeFormattingParams
+ Language.Haskell.LSP.Types: data DocumentOnTypeFormattingRegistrationOptions
+ Language.Haskell.LSP.Types: data DocumentRangeFormattingParams
+ Language.Haskell.LSP.Types: data DocumentSymbol
+ Language.Haskell.LSP.Types: data DocumentSymbolParams
+ Language.Haskell.LSP.Types: data ErrorCode
+ Language.Haskell.LSP.Types: data ExecuteCommandOptions
+ Language.Haskell.LSP.Types: data ExecuteCommandParams
+ Language.Haskell.LSP.Types: data ExecuteCommandRegistrationOptions
+ Language.Haskell.LSP.Types: data ExitParams
+ Language.Haskell.LSP.Types: data FileChangeType
+ Language.Haskell.LSP.Types: data FileEvent
+ Language.Haskell.LSP.Types: data FoldingRange
+ Language.Haskell.LSP.Types: data FoldingRangeKind
+ Language.Haskell.LSP.Types: data FoldingRangeOptions
+ Language.Haskell.LSP.Types: data FoldingRangeParams
+ Language.Haskell.LSP.Types: data FormattingOptions
+ Language.Haskell.LSP.Types: data GotoOptions
+ Language.Haskell.LSP.Types: data Hover
+ Language.Haskell.LSP.Types: data InitializeError
+ Language.Haskell.LSP.Types: data InitializeParams
+ Language.Haskell.LSP.Types: data InitializeResponseCapabilities
+ Language.Haskell.LSP.Types: data InitializeResponseCapabilitiesInner
+ Language.Haskell.LSP.Types: data InitializedParams
+ Language.Haskell.LSP.Types: data InsertTextFormat
+ Language.Haskell.LSP.Types: data LanguageString
+ Language.Haskell.LSP.Types: data Location
+ Language.Haskell.LSP.Types: data LocationResponseParams
+ Language.Haskell.LSP.Types: data LogMessageParams
+ Language.Haskell.LSP.Types: data LspId
+ Language.Haskell.LSP.Types: data LspIdRsp
+ Language.Haskell.LSP.Types: data MarkedString
+ Language.Haskell.LSP.Types: data MarkupContent
+ Language.Haskell.LSP.Types: data MarkupKind
+ Language.Haskell.LSP.Types: data MessageActionItem
+ Language.Haskell.LSP.Types: data MessageType
+ Language.Haskell.LSP.Types: data NotificationMessage m a
+ Language.Haskell.LSP.Types: data ParameterInformation
+ Language.Haskell.LSP.Types: data Position
+ Language.Haskell.LSP.Types: data PublishDiagnosticsParams
+ Language.Haskell.LSP.Types: data Range
+ Language.Haskell.LSP.Types: data ReferenceContext
+ Language.Haskell.LSP.Types: data ReferenceParams
+ Language.Haskell.LSP.Types: data Registration
+ Language.Haskell.LSP.Types: data RegistrationParams
+ Language.Haskell.LSP.Types: data RenameParams
+ Language.Haskell.LSP.Types: data RequestMessage m req resp
+ Language.Haskell.LSP.Types: data ResponseError
+ Language.Haskell.LSP.Types: data ResponseMessage a
+ Language.Haskell.LSP.Types: data SaveOptions
+ Language.Haskell.LSP.Types: data ServerMethod
+ Language.Haskell.LSP.Types: data ShowMessageParams
+ Language.Haskell.LSP.Types: data ShowMessageRequestParams
+ Language.Haskell.LSP.Types: data SignatureHelp
+ Language.Haskell.LSP.Types: data SignatureHelpOptions
+ Language.Haskell.LSP.Types: data SignatureHelpRegistrationOptions
+ Language.Haskell.LSP.Types: data SignatureInformation
+ Language.Haskell.LSP.Types: data SymbolInformation
+ Language.Haskell.LSP.Types: data SymbolKind
+ Language.Haskell.LSP.Types: data TDS
+ Language.Haskell.LSP.Types: data TextDocumentChangeRegistrationOptions
+ Language.Haskell.LSP.Types: data TextDocumentContentChangeEvent
+ Language.Haskell.LSP.Types: data TextDocumentEdit
+ Language.Haskell.LSP.Types: data TextDocumentIdentifier
+ Language.Haskell.LSP.Types: data TextDocumentItem
+ Language.Haskell.LSP.Types: data TextDocumentPositionParams
+ Language.Haskell.LSP.Types: data TextDocumentRegistrationOptions
+ Language.Haskell.LSP.Types: data TextDocumentSaveReason
+ Language.Haskell.LSP.Types: data TextDocumentSyncKind
+ Language.Haskell.LSP.Types: data TextDocumentSyncOptions
+ Language.Haskell.LSP.Types: data TextEdit
+ Language.Haskell.LSP.Types: data Trace
+ Language.Haskell.LSP.Types: data TraceNotification
+ Language.Haskell.LSP.Types: data TraceParams
+ Language.Haskell.LSP.Types: data Unregistration
+ Language.Haskell.LSP.Types: data UnregistrationParams
+ Language.Haskell.LSP.Types: data VersionedTextDocumentIdentifier
+ Language.Haskell.LSP.Types: data WillSaveTextDocumentParams
+ Language.Haskell.LSP.Types: data WorkspaceEdit
+ Language.Haskell.LSP.Types: data WorkspaceFolder
+ Language.Haskell.LSP.Types: data WorkspaceFolderChangeNotifications
+ Language.Haskell.LSP.Types: data WorkspaceFolderOptions
+ Language.Haskell.LSP.Types: data WorkspaceFoldersChangeEvent
+ Language.Haskell.LSP.Types: data WorkspaceOptions
+ Language.Haskell.LSP.Types: data WorkspaceSymbolParams
+ Language.Haskell.LSP.Types: definition :: HasDefinition s a => Lens' s a
+ Language.Haskell.LSP.Types: definitionProvider :: HasDefinitionProvider s a => Lens' s a
+ Language.Haskell.LSP.Types: deprecated :: HasDeprecated s a => Lens' s a
+ Language.Haskell.LSP.Types: deprecatedSupport :: HasDeprecatedSupport s a => Lens' s a
+ Language.Haskell.LSP.Types: detail :: HasDetail s a => Lens' s a
+ Language.Haskell.LSP.Types: diagnostics :: HasDiagnostics s a => Lens' s a
+ Language.Haskell.LSP.Types: didChangeConfiguration :: HasDidChangeConfiguration s a => Lens' s a
+ Language.Haskell.LSP.Types: didChangeWatchedFiles :: HasDidChangeWatchedFiles s a => Lens' s a
+ Language.Haskell.LSP.Types: didSave :: HasDidSave s a => Lens' s a
+ Language.Haskell.LSP.Types: documentChanges :: HasDocumentChanges s a => Lens' s a
+ Language.Haskell.LSP.Types: documentFormattingProvider :: HasDocumentFormattingProvider s a => Lens' s a
+ Language.Haskell.LSP.Types: documentHighlight :: HasDocumentHighlight s a => Lens' s a
+ Language.Haskell.LSP.Types: documentHighlightProvider :: HasDocumentHighlightProvider s a => Lens' s a
+ Language.Haskell.LSP.Types: documentLink :: HasDocumentLink s a => Lens' s a
+ Language.Haskell.LSP.Types: documentLinkProvider :: HasDocumentLinkProvider s a => Lens' s a
+ Language.Haskell.LSP.Types: documentOnTypeFormattingProvider :: HasDocumentOnTypeFormattingProvider s a => Lens' s a
+ Language.Haskell.LSP.Types: documentRangeFormattingProvider :: HasDocumentRangeFormattingProvider s a => Lens' s a
+ Language.Haskell.LSP.Types: documentSelector :: HasDocumentSelector s a => Lens' s a
+ Language.Haskell.LSP.Types: documentSymbol :: HasDocumentSymbol s a => Lens' s a
+ Language.Haskell.LSP.Types: documentSymbolProvider :: HasDocumentSymbolProvider s a => Lens' s a
+ Language.Haskell.LSP.Types: documentation :: HasDocumentation s a => Lens' s a
+ Language.Haskell.LSP.Types: documentationFormat :: HasDocumentationFormat s a => Lens' s a
+ Language.Haskell.LSP.Types: dynamicRegistration :: HasDynamicRegistration s a => Lens' s a
+ Language.Haskell.LSP.Types: edit :: HasEdit s a => Lens' s a
+ Language.Haskell.LSP.Types: edits :: HasEdits s a => Lens' s a
+ Language.Haskell.LSP.Types: end :: HasEnd s a => Lens' s a
+ Language.Haskell.LSP.Types: endCharacter :: HasEndCharacter s a => Lens' s a
+ Language.Haskell.LSP.Types: endLine :: HasEndLine s a => Lens' s a
+ Language.Haskell.LSP.Types: error :: HasError s a => Lens' s a
+ Language.Haskell.LSP.Types: event :: HasEvent s a => Lens' s a
+ Language.Haskell.LSP.Types: executeCommand :: HasExecuteCommand s a => Lens' s a
+ Language.Haskell.LSP.Types: executeCommandProvider :: HasExecuteCommandProvider s a => Lens' s a
+ Language.Haskell.LSP.Types: experimental :: HasExperimental s a => Lens' s a
+ Language.Haskell.LSP.Types: filePathToUri :: FilePath -> Uri
+ Language.Haskell.LSP.Types: fileScheme :: String
+ Language.Haskell.LSP.Types: filterText :: HasFilterText s a => Lens' s a
+ Language.Haskell.LSP.Types: firstTriggerCharacter :: HasFirstTriggerCharacter s a => Lens' s a
+ Language.Haskell.LSP.Types: foldingRange :: HasFoldingRange s a => Lens' s a
+ Language.Haskell.LSP.Types: foldingRangeProvider :: HasFoldingRangeProvider s a => Lens' s a
+ Language.Haskell.LSP.Types: formatting :: HasFormatting s a => Lens' s a
+ Language.Haskell.LSP.Types: green :: HasGreen s a => Lens' s a
+ Language.Haskell.LSP.Types: hierarchicalDocumentSymbolSupport :: HasHierarchicalDocumentSymbolSupport s a => Lens' s a
+ Language.Haskell.LSP.Types: hover :: HasHover s a => Lens' s a
+ Language.Haskell.LSP.Types: hoverProvider :: HasHoverProvider s a => Lens' s a
+ Language.Haskell.LSP.Types: id :: HasId s a => Lens' s a
+ Language.Haskell.LSP.Types: implementation :: HasImplementation s a => Lens' s a
+ Language.Haskell.LSP.Types: implementationProvider :: HasImplementationProvider s a => Lens' s a
+ Language.Haskell.LSP.Types: includeDeclaration :: HasIncludeDeclaration s a => Lens' s a
+ Language.Haskell.LSP.Types: includeText :: HasIncludeText s a => Lens' s a
+ Language.Haskell.LSP.Types: initializationOptions :: HasInitializationOptions s a => Lens' s a
+ Language.Haskell.LSP.Types: insertSpaces :: HasInsertSpaces s a => Lens' s a
+ Language.Haskell.LSP.Types: insertText :: HasInsertText s a => Lens' s a
+ Language.Haskell.LSP.Types: insertTextFormat :: HasInsertTextFormat s a => Lens' s a
+ Language.Haskell.LSP.Types: isIncomplete :: HasIsIncomplete s a => Lens' s a
+ Language.Haskell.LSP.Types: items :: HasItems s a => Lens' s a
+ Language.Haskell.LSP.Types: jsonrpc :: HasJsonrpc s a => Lens' s a
+ Language.Haskell.LSP.Types: kind :: HasKind s a => Lens' s a
+ Language.Haskell.LSP.Types: label :: HasLabel s a => Lens' s a
+ Language.Haskell.LSP.Types: language :: HasLanguage s a => Lens' s a
+ Language.Haskell.LSP.Types: languageId :: HasLanguageId s a => Lens' s a
+ Language.Haskell.LSP.Types: line :: HasLine s a => Lens' s a
+ Language.Haskell.LSP.Types: location :: HasLocation s a => Lens' s a
+ Language.Haskell.LSP.Types: message :: HasMessage s a => Lens' s a
+ Language.Haskell.LSP.Types: method :: HasMethod s a => Lens' s a
+ Language.Haskell.LSP.Types: moreTriggerCharacter :: HasMoreTriggerCharacter s a => Lens' s a
+ Language.Haskell.LSP.Types: name :: HasName s a => Lens' s a
+ Language.Haskell.LSP.Types: newName :: HasNewName s a => Lens' s a
+ Language.Haskell.LSP.Types: newText :: HasNewText s a => Lens' s a
+ Language.Haskell.LSP.Types: newtype List a
+ Language.Haskell.LSP.Types: newtype Uri
+ Language.Haskell.LSP.Types: onTypeFormatting :: HasOnTypeFormatting s a => Lens' s a
+ Language.Haskell.LSP.Types: openClose :: HasOpenClose s a => Lens' s a
+ Language.Haskell.LSP.Types: options :: HasOptions s a => Lens' s a
+ Language.Haskell.LSP.Types: parameters :: HasParameters s a => Lens' s a
+ Language.Haskell.LSP.Types: params :: HasParams s a => Lens' s a
+ Language.Haskell.LSP.Types: pattern :: HasPattern s a => Lens' s a
+ Language.Haskell.LSP.Types: platformAdjustFromUriPath :: SystemOS -> String -> FilePath
+ Language.Haskell.LSP.Types: platformAdjustToUriPath :: SystemOS -> FilePath -> String
+ Language.Haskell.LSP.Types: platformAwareFilePathToUri :: SystemOS -> FilePath -> Uri
+ Language.Haskell.LSP.Types: platformAwareUriToFilePath :: String -> Uri -> Maybe FilePath
+ Language.Haskell.LSP.Types: position :: HasPosition s a => Lens' s a
+ Language.Haskell.LSP.Types: preselect :: HasPreselect s a => Lens' s a
+ Language.Haskell.LSP.Types: preselectSupport :: HasPreselectSupport s a => Lens' s a
+ Language.Haskell.LSP.Types: processId :: HasProcessId s a => Lens' s a
+ Language.Haskell.LSP.Types: publishDiagnostics :: HasPublishDiagnostics s a => Lens' s a
+ Language.Haskell.LSP.Types: query :: HasQuery s a => Lens' s a
+ Language.Haskell.LSP.Types: range :: HasRange s a => Lens' s a
+ Language.Haskell.LSP.Types: rangeFormatting :: HasRangeFormatting s a => Lens' s a
+ Language.Haskell.LSP.Types: rangeLength :: HasRangeLength s a => Lens' s a
+ Language.Haskell.LSP.Types: reason :: HasReason s a => Lens' s a
+ Language.Haskell.LSP.Types: red :: HasRed s a => Lens' s a
+ Language.Haskell.LSP.Types: references :: HasReferences s a => Lens' s a
+ Language.Haskell.LSP.Types: referencesProvider :: HasReferencesProvider s a => Lens' s a
+ Language.Haskell.LSP.Types: registerOptions :: HasRegisterOptions s a => Lens' s a
+ Language.Haskell.LSP.Types: registrations :: HasRegistrations s a => Lens' s a
+ Language.Haskell.LSP.Types: relatedInformation :: HasRelatedInformation s a => Lens' s a
+ Language.Haskell.LSP.Types: removed :: HasRemoved s a => Lens' s a
+ Language.Haskell.LSP.Types: rename :: HasRename s a => Lens' s a
+ Language.Haskell.LSP.Types: renameProvider :: HasRenameProvider s a => Lens' s a
+ Language.Haskell.LSP.Types: requestId :: LspIdRsp -> LspId
+ Language.Haskell.LSP.Types: resolveProvider :: HasResolveProvider s a => Lens' s a
+ Language.Haskell.LSP.Types: responseId :: LspId -> LspIdRsp
+ Language.Haskell.LSP.Types: result :: HasResult s a => Lens' s a
+ Language.Haskell.LSP.Types: retry :: HasRetry s a => Lens' s a
+ Language.Haskell.LSP.Types: rootPath :: HasRootPath s a => Lens' s a
+ Language.Haskell.LSP.Types: rootUri :: HasRootUri s a => Lens' s a
+ Language.Haskell.LSP.Types: save :: HasSave s a => Lens' s a
+ Language.Haskell.LSP.Types: scheme :: HasScheme s a => Lens' s a
+ Language.Haskell.LSP.Types: scopeUri :: HasScopeUri s a => Lens' s a
+ Language.Haskell.LSP.Types: section :: HasSection s a => Lens' s a
+ Language.Haskell.LSP.Types: selectionRange :: HasSelectionRange s a => Lens' s a
+ Language.Haskell.LSP.Types: settings :: HasSettings s a => Lens' s a
+ Language.Haskell.LSP.Types: severity :: HasSeverity s a => Lens' s a
+ Language.Haskell.LSP.Types: signatureHelp :: HasSignatureHelp s a => Lens' s a
+ Language.Haskell.LSP.Types: signatureHelpProvider :: HasSignatureHelpProvider s a => Lens' s a
+ Language.Haskell.LSP.Types: signatureInformation :: HasSignatureInformation s a => Lens' s a
+ Language.Haskell.LSP.Types: signatures :: HasSignatures s a => Lens' s a
+ Language.Haskell.LSP.Types: snippetSupport :: HasSnippetSupport s a => Lens' s a
+ Language.Haskell.LSP.Types: sortText :: HasSortText s a => Lens' s a
+ Language.Haskell.LSP.Types: source :: HasSource s a => Lens' s a
+ Language.Haskell.LSP.Types: start :: HasStart s a => Lens' s a
+ Language.Haskell.LSP.Types: startCharacter :: HasStartCharacter s a => Lens' s a
+ Language.Haskell.LSP.Types: startLine :: HasStartLine s a => Lens' s a
+ Language.Haskell.LSP.Types: supported :: HasSupported s a => Lens' s a
+ Language.Haskell.LSP.Types: symbol :: HasSymbol s a => Lens' s a
+ Language.Haskell.LSP.Types: symbolKind :: HasSymbolKind s a => Lens' s a
+ Language.Haskell.LSP.Types: syncKind :: HasSyncKind s a => Lens' s a
+ Language.Haskell.LSP.Types: synchronization :: HasSynchronization s a => Lens' s a
+ Language.Haskell.LSP.Types: tabSize :: HasTabSize s a => Lens' s a
+ Language.Haskell.LSP.Types: target :: HasTarget s a => Lens' s a
+ Language.Haskell.LSP.Types: text :: HasText s a => Lens' s a
+ Language.Haskell.LSP.Types: textDocument :: HasTextDocument s a => Lens' s a
+ Language.Haskell.LSP.Types: textDocumentSync :: HasTextDocumentSync s a => Lens' s a
+ Language.Haskell.LSP.Types: textEdit :: HasTextEdit s a => Lens' s a
+ Language.Haskell.LSP.Types: title :: HasTitle s a => Lens' s a
+ Language.Haskell.LSP.Types: trace :: HasTrace s a => Lens' s a
+ Language.Haskell.LSP.Types: triggerCharacter :: HasTriggerCharacter s a => Lens' s a
+ Language.Haskell.LSP.Types: triggerCharacters :: HasTriggerCharacters s a => Lens' s a
+ Language.Haskell.LSP.Types: triggerKind :: HasTriggerKind s a => Lens' s a
+ Language.Haskell.LSP.Types: type ApplyWorkspaceEditRequest = RequestMessage ServerMethod ApplyWorkspaceEditParams ApplyWorkspaceEditResponseBody
+ Language.Haskell.LSP.Types: type ApplyWorkspaceEditResponse = ResponseMessage ApplyWorkspaceEditResponseBody
+ Language.Haskell.LSP.Types: type BareResponseMessage = ResponseMessage Value
+ Language.Haskell.LSP.Types: type CancelNotification = NotificationMessage ClientMethod CancelParams
+ Language.Haskell.LSP.Types: type CancelNotificationServer = NotificationMessage ServerMethod CancelParams
+ Language.Haskell.LSP.Types: type CodeActionRequest = RequestMessage ClientMethod CodeActionParams (List CAResult)
+ Language.Haskell.LSP.Types: type CodeActionResponse = ResponseMessage (List CAResult)
+ Language.Haskell.LSP.Types: type CodeLensRequest = RequestMessage ClientMethod CodeLensParams (List CodeLens)
+ Language.Haskell.LSP.Types: type CodeLensResolveRequest = RequestMessage ClientMethod CodeLens (List CodeLens)
+ Language.Haskell.LSP.Types: type CodeLensResolveResponse = ResponseMessage (List CodeLens)
+ Language.Haskell.LSP.Types: type CodeLensResponse = ResponseMessage (List CodeLens)
+ Language.Haskell.LSP.Types: type ColorPresentationRequest = RequestMessage ClientMethod ColorPresentationParams (List ColorPresentation)
+ Language.Haskell.LSP.Types: type ColorPresentationResponse = ResponseMessage (List ColorPresentation)
+ Language.Haskell.LSP.Types: type CompletionItemResolveRequest = RequestMessage ClientMethod CompletionItem CompletionItem
+ Language.Haskell.LSP.Types: type CompletionItemResolveResponse = ResponseMessage CompletionItem
+ Language.Haskell.LSP.Types: type CompletionRequest = RequestMessage ClientMethod CompletionParams CompletionResponseResult
+ Language.Haskell.LSP.Types: type CompletionResponse = ResponseMessage CompletionResponseResult
+ Language.Haskell.LSP.Types: type ConfigurationRequest = RequestMessage ServerMethod ConfigurationParams (List Value)
+ Language.Haskell.LSP.Types: type ConfigurationResponse = ResponseMessage (List Value)
+ Language.Haskell.LSP.Types: type DefinitionRequest = RequestMessage ClientMethod TextDocumentPositionParams LocationResponseParams
+ Language.Haskell.LSP.Types: type DefinitionResponse = ResponseMessage LocationResponseParams
+ Language.Haskell.LSP.Types: type DiagnosticSource = Text
+ Language.Haskell.LSP.Types: type DidChangeConfigurationNotification = NotificationMessage ClientMethod DidChangeConfigurationParams
+ Language.Haskell.LSP.Types: type DidChangeTextDocumentNotification = NotificationMessage ClientMethod DidChangeTextDocumentParams
+ Language.Haskell.LSP.Types: type DidChangeWatchedFilesNotification = NotificationMessage ClientMethod DidChangeWatchedFilesParams
+ Language.Haskell.LSP.Types: type DidChangeWorkspaceFoldersNotification = NotificationMessage ClientMethod DidChangeWorkspaceFoldersParams
+ Language.Haskell.LSP.Types: type DidCloseTextDocumentNotification = NotificationMessage ClientMethod DidCloseTextDocumentParams
+ Language.Haskell.LSP.Types: type DidOpenTextDocumentNotification = NotificationMessage ClientMethod DidOpenTextDocumentParams
+ Language.Haskell.LSP.Types: type DidSaveTextDocumentNotification = NotificationMessage ClientMethod DidSaveTextDocumentParams
+ Language.Haskell.LSP.Types: type DocumentColorRequest = RequestMessage ClientMethod DocumentColorParams (List ColorInformation)
+ Language.Haskell.LSP.Types: type DocumentColorResponse = ResponseMessage (List ColorInformation)
+ Language.Haskell.LSP.Types: type DocumentFormattingRequest = RequestMessage ClientMethod DocumentFormattingParams (List TextEdit)
+ Language.Haskell.LSP.Types: type DocumentFormattingResponse = ResponseMessage (List TextEdit)
+ Language.Haskell.LSP.Types: type DocumentHighlightRequest = RequestMessage ClientMethod TextDocumentPositionParams (List DocumentHighlight)
+ Language.Haskell.LSP.Types: type DocumentHighlightsResponse = ResponseMessage (List DocumentHighlight)
+ Language.Haskell.LSP.Types: type DocumentLinkRequest = RequestMessage ClientMethod DocumentLinkParams (List DocumentLink)
+ Language.Haskell.LSP.Types: type DocumentLinkResolveRequest = RequestMessage ClientMethod DocumentLink DocumentLink
+ Language.Haskell.LSP.Types: type DocumentLinkResolveResponse = ResponseMessage DocumentLink
+ Language.Haskell.LSP.Types: type DocumentLinkResponse = ResponseMessage (List DocumentLink)
+ Language.Haskell.LSP.Types: type DocumentOnTypeFormattingRequest = RequestMessage ClientMethod DocumentOnTypeFormattingParams (List TextEdit)
+ Language.Haskell.LSP.Types: type DocumentOnTypeFormattingResponse = ResponseMessage (List TextEdit)
+ Language.Haskell.LSP.Types: type DocumentRangeFormattingRequest = RequestMessage ClientMethod DocumentRangeFormattingParams (List TextEdit)
+ Language.Haskell.LSP.Types: type DocumentRangeFormattingResponse = ResponseMessage (List TextEdit)
+ Language.Haskell.LSP.Types: type DocumentSelector = List DocumentFilter
+ Language.Haskell.LSP.Types: type DocumentSymbolRequest = RequestMessage ClientMethod DocumentSymbolParams DSResult
+ Language.Haskell.LSP.Types: type DocumentSymbolsResponse = ResponseMessage DSResult
+ Language.Haskell.LSP.Types: type ErrorResponse = ResponseMessage ()
+ Language.Haskell.LSP.Types: type ExecuteCommandRequest = RequestMessage ClientMethod ExecuteCommandParams Value
+ Language.Haskell.LSP.Types: type ExecuteCommandResponse = ResponseMessage Value
+ Language.Haskell.LSP.Types: type ExitNotification = NotificationMessage ClientMethod (Maybe ExitParams)
+ Language.Haskell.LSP.Types: type FoldingRangeRequest = RequestMessage ClientMethod FoldingRangeParams (List FoldingRange)
+ Language.Haskell.LSP.Types: type FoldingRangeResponse = ResponseMessage (List FoldingRange)
+ Language.Haskell.LSP.Types: type HoverRequest = RequestMessage ClientMethod TextDocumentPositionParams Hover
+ Language.Haskell.LSP.Types: type HoverResponse = ResponseMessage Hover
+ Language.Haskell.LSP.Types: type ImplementationRequest = RequestMessage ClientMethod TextDocumentPositionParams LocationResponseParams
+ Language.Haskell.LSP.Types: type ImplementationResponse = ResponseMessage LocationResponseParams
+ Language.Haskell.LSP.Types: type InitializeRequest = RequestMessage ClientMethod InitializeParams InitializeResponseCapabilities
+ Language.Haskell.LSP.Types: type InitializeResponse = ResponseMessage InitializeResponseCapabilities
+ Language.Haskell.LSP.Types: type InitializedNotification = NotificationMessage ClientMethod (Maybe InitializedParams)
+ Language.Haskell.LSP.Types: type LogMessageNotification = NotificationMessage ServerMethod LogMessageParams
+ Language.Haskell.LSP.Types: type PublishDiagnosticsNotification = NotificationMessage ServerMethod PublishDiagnosticsParams
+ Language.Haskell.LSP.Types: type ReferencesRequest = RequestMessage ClientMethod ReferenceParams (List Location)
+ Language.Haskell.LSP.Types: type ReferencesResponse = ResponseMessage (List Location)
+ Language.Haskell.LSP.Types: type RegisterCapabilityRequest = RequestMessage ServerMethod RegistrationParams ()
+ Language.Haskell.LSP.Types: type RegisterCapabilityResponse = ResponseMessage ()
+ Language.Haskell.LSP.Types: type RenameRequest = RequestMessage ClientMethod RenameParams WorkspaceEdit
+ Language.Haskell.LSP.Types: type RenameResponse = ResponseMessage WorkspaceEdit
+ Language.Haskell.LSP.Types: type ShowMessageNotification = NotificationMessage ServerMethod ShowMessageParams
+ Language.Haskell.LSP.Types: type ShowMessageRequest = RequestMessage ServerMethod ShowMessageRequestParams Text
+ Language.Haskell.LSP.Types: type ShowMessageResponse = ResponseMessage Text
+ Language.Haskell.LSP.Types: type ShutdownRequest = RequestMessage ClientMethod (Maybe Value) Text
+ Language.Haskell.LSP.Types: type ShutdownResponse = ResponseMessage Text
+ Language.Haskell.LSP.Types: type SignatureHelpRequest = RequestMessage ClientMethod TextDocumentPositionParams SignatureHelp
+ Language.Haskell.LSP.Types: type SignatureHelpResponse = ResponseMessage SignatureHelp
+ Language.Haskell.LSP.Types: type SystemOS = String
+ Language.Haskell.LSP.Types: type TelemetryNotification = NotificationMessage ServerMethod Value
+ Language.Haskell.LSP.Types: type TextDocumentVersion = Maybe Int
+ Language.Haskell.LSP.Types: type TypeDefinitionRequest = RequestMessage ClientMethod TextDocumentPositionParams LocationResponseParams
+ Language.Haskell.LSP.Types: type TypeDefinitionResponse = ResponseMessage LocationResponseParams
+ Language.Haskell.LSP.Types: type UnregisterCapabilityRequest = RequestMessage ServerMethod UnregistrationParams ()
+ Language.Haskell.LSP.Types: type UnregisterCapabilityResponse = ResponseMessage ()
+ Language.Haskell.LSP.Types: type WillSaveTextDocumentNotification = NotificationMessage ClientMethod WillSaveTextDocumentParams
+ Language.Haskell.LSP.Types: type WillSaveWaitUntilTextDocumentRequest = RequestMessage ClientMethod WillSaveTextDocumentParams (List TextEdit)
+ Language.Haskell.LSP.Types: type WillSaveWaitUntilTextDocumentResponse = ResponseMessage (List TextEdit)
+ Language.Haskell.LSP.Types: type WorkspaceEditMap = HashMap Uri (List TextEdit)
+ Language.Haskell.LSP.Types: type WorkspaceFoldersRequest = RequestMessage ServerMethod () (Maybe (List WorkspaceFolder))
+ Language.Haskell.LSP.Types: type WorkspaceFoldersResponse = ResponseMessage (Maybe (List WorkspaceFolder))
+ Language.Haskell.LSP.Types: type WorkspaceSymbolRequest = RequestMessage ClientMethod WorkspaceSymbolParams (List SymbolInformation)
+ Language.Haskell.LSP.Types: type WorkspaceSymbolsResponse = ResponseMessage (List SymbolInformation)
+ Language.Haskell.LSP.Types: typeDefinition :: HasTypeDefinition s a => Lens' s a
+ Language.Haskell.LSP.Types: typeDefinitionProvider :: HasTypeDefinitionProvider s a => Lens' s a
+ Language.Haskell.LSP.Types: unregistrations :: HasUnregistrations s a => Lens' s a
+ Language.Haskell.LSP.Types: uri :: HasUri s a => Lens' s a
+ Language.Haskell.LSP.Types: uriToFilePath :: Uri -> Maybe FilePath
+ Language.Haskell.LSP.Types: value :: HasValue s a => Lens' s a
+ Language.Haskell.LSP.Types: valueSet :: HasValueSet s a => Lens' s a
+ Language.Haskell.LSP.Types: version :: HasVersion s a => Lens' s a
+ Language.Haskell.LSP.Types: willSave :: HasWillSave s a => Lens' s a
+ Language.Haskell.LSP.Types: willSaveWaitUntil :: HasWillSaveWaitUntil s a => Lens' s a
+ Language.Haskell.LSP.Types: windowsOS :: String
+ Language.Haskell.LSP.Types: workspace :: HasWorkspace s a => Lens' s a
+ Language.Haskell.LSP.Types: workspaceEdit :: HasWorkspaceEdit s a => Lens' s a
+ Language.Haskell.LSP.Types: workspaceFolders :: HasWorkspaceFolders s a => Lens' s a
+ Language.Haskell.LSP.Types: workspaceSymbolProvider :: HasWorkspaceSymbolProvider s a => Lens' s a
+ Language.Haskell.LSP.Types: xdata :: HasXdata s a => Lens' s a
+ Language.Haskell.LSP.Types: xtype :: HasXtype s a => Lens' s a
+ Language.Haskell.LSP.Types.Capabilities: ClientCapabilities :: Maybe WorkspaceClientCapabilities -> Maybe TextDocumentClientCapabilities -> Maybe Object -> ClientCapabilities
+ Language.Haskell.LSP.Types.Capabilities: CodeActionClientCapabilities :: Maybe Bool -> Maybe CodeActionLiteralSupport -> CodeActionClientCapabilities
+ Language.Haskell.LSP.Types.Capabilities: CodeActionKindClientCapabilities :: List CodeActionKind -> CodeActionKindClientCapabilities
+ Language.Haskell.LSP.Types.Capabilities: CodeActionLiteralSupport :: CodeActionKindClientCapabilities -> CodeActionLiteralSupport
+ Language.Haskell.LSP.Types.Capabilities: CodeLensClientCapabilities :: Maybe Bool -> CodeLensClientCapabilities
+ Language.Haskell.LSP.Types.Capabilities: ColorProviderClientCapabilities :: Maybe Bool -> ColorProviderClientCapabilities
+ Language.Haskell.LSP.Types.Capabilities: CompletionClientCapabilities :: Maybe Bool -> Maybe CompletionItemClientCapabilities -> Maybe CompletionItemKindClientCapabilities -> Maybe Bool -> CompletionClientCapabilities
+ Language.Haskell.LSP.Types.Capabilities: CompletionItemClientCapabilities :: Maybe Bool -> Maybe Bool -> Maybe (List MarkupKind) -> Maybe Bool -> Maybe Bool -> CompletionItemClientCapabilities
+ Language.Haskell.LSP.Types.Capabilities: CompletionItemKindClientCapabilities :: Maybe (List CompletionItemKind) -> CompletionItemKindClientCapabilities
+ Language.Haskell.LSP.Types.Capabilities: DefinitionClientCapabilities :: Maybe Bool -> DefinitionClientCapabilities
+ Language.Haskell.LSP.Types.Capabilities: DidChangeConfigurationClientCapabilities :: Maybe Bool -> DidChangeConfigurationClientCapabilities
+ Language.Haskell.LSP.Types.Capabilities: DidChangeWatchedFilesClientCapabilities :: Maybe Bool -> DidChangeWatchedFilesClientCapabilities
+ Language.Haskell.LSP.Types.Capabilities: DocumentHighlightClientCapabilities :: Maybe Bool -> DocumentHighlightClientCapabilities
+ Language.Haskell.LSP.Types.Capabilities: DocumentLinkClientCapabilities :: Maybe Bool -> DocumentLinkClientCapabilities
+ Language.Haskell.LSP.Types.Capabilities: DocumentSymbolClientCapabilities :: Maybe Bool -> Maybe DocumentSymbolKindClientCapabilities -> Maybe Bool -> DocumentSymbolClientCapabilities
+ Language.Haskell.LSP.Types.Capabilities: DocumentSymbolKindClientCapabilities :: Maybe (List SymbolKind) -> DocumentSymbolKindClientCapabilities
+ Language.Haskell.LSP.Types.Capabilities: ExecuteClientCapabilities :: Maybe Bool -> ExecuteClientCapabilities
+ Language.Haskell.LSP.Types.Capabilities: FoldingRangeClientCapabilities :: Maybe Bool -> Maybe Int -> Maybe Bool -> FoldingRangeClientCapabilities
+ Language.Haskell.LSP.Types.Capabilities: FormattingClientCapabilities :: Maybe Bool -> FormattingClientCapabilities
+ Language.Haskell.LSP.Types.Capabilities: HoverClientCapabilities :: Maybe Bool -> Maybe (List MarkupKind) -> HoverClientCapabilities
+ Language.Haskell.LSP.Types.Capabilities: ImplementationClientCapabilities :: Maybe Bool -> ImplementationClientCapabilities
+ Language.Haskell.LSP.Types.Capabilities: LSPVersion :: Int -> Int -> LSPVersion
+ Language.Haskell.LSP.Types.Capabilities: OnTypeFormattingClientCapabilities :: Maybe Bool -> OnTypeFormattingClientCapabilities
+ Language.Haskell.LSP.Types.Capabilities: PublishDiagnosticsClientCapabilities :: Maybe Bool -> PublishDiagnosticsClientCapabilities
+ Language.Haskell.LSP.Types.Capabilities: RangeFormattingClientCapabilities :: Maybe Bool -> RangeFormattingClientCapabilities
+ Language.Haskell.LSP.Types.Capabilities: ReferencesClientCapabilities :: Maybe Bool -> ReferencesClientCapabilities
+ Language.Haskell.LSP.Types.Capabilities: RenameClientCapabilities :: Maybe Bool -> RenameClientCapabilities
+ Language.Haskell.LSP.Types.Capabilities: SignatureHelpClientCapabilities :: Maybe Bool -> Maybe SignatureInformationClientCapabilities -> SignatureHelpClientCapabilities
+ Language.Haskell.LSP.Types.Capabilities: SignatureInformationClientCapabilities :: Maybe (List MarkupKind) -> SignatureInformationClientCapabilities
+ Language.Haskell.LSP.Types.Capabilities: SymbolClientCapabilities :: Maybe Bool -> Maybe SymbolKindClientCapabilities -> SymbolClientCapabilities
+ Language.Haskell.LSP.Types.Capabilities: SymbolKindClientCapabilities :: Maybe (List SymbolKind) -> SymbolKindClientCapabilities
+ Language.Haskell.LSP.Types.Capabilities: SynchronizationTextDocumentClientCapabilities :: Maybe Bool -> Maybe Bool -> Maybe Bool -> Maybe Bool -> SynchronizationTextDocumentClientCapabilities
+ Language.Haskell.LSP.Types.Capabilities: 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 -> Maybe FoldingRangeClientCapabilities -> TextDocumentClientCapabilities
+ Language.Haskell.LSP.Types.Capabilities: TypeDefinitionClientCapabilities :: Maybe Bool -> TypeDefinitionClientCapabilities
+ Language.Haskell.LSP.Types.Capabilities: WorkspaceClientCapabilities :: Maybe Bool -> Maybe WorkspaceEditClientCapabilities -> Maybe DidChangeConfigurationClientCapabilities -> Maybe DidChangeWatchedFilesClientCapabilities -> Maybe SymbolClientCapabilities -> Maybe ExecuteClientCapabilities -> Maybe Bool -> Maybe Bool -> WorkspaceClientCapabilities
+ Language.Haskell.LSP.Types.Capabilities: WorkspaceEditClientCapabilities :: Maybe Bool -> WorkspaceEditClientCapabilities
+ Language.Haskell.LSP.Types.Capabilities: [$sel:_applyEdit:WorkspaceClientCapabilities] :: WorkspaceClientCapabilities -> Maybe Bool
+ Language.Haskell.LSP.Types.Capabilities: [$sel:_codeAction:TextDocumentClientCapabilities] :: TextDocumentClientCapabilities -> Maybe CodeActionClientCapabilities
+ Language.Haskell.LSP.Types.Capabilities: [$sel:_codeActionKind:CodeActionLiteralSupport] :: CodeActionLiteralSupport -> CodeActionKindClientCapabilities
+ Language.Haskell.LSP.Types.Capabilities: [$sel:_codeActionLiteralSupport:CodeActionClientCapabilities] :: CodeActionClientCapabilities -> Maybe CodeActionLiteralSupport
+ Language.Haskell.LSP.Types.Capabilities: [$sel:_codeLens:TextDocumentClientCapabilities] :: TextDocumentClientCapabilities -> Maybe CodeLensClientCapabilities
+ Language.Haskell.LSP.Types.Capabilities: [$sel:_colorProvider:TextDocumentClientCapabilities] :: TextDocumentClientCapabilities -> Maybe ColorProviderClientCapabilities
+ Language.Haskell.LSP.Types.Capabilities: [$sel:_commitCharactersSupport:CompletionItemClientCapabilities] :: CompletionItemClientCapabilities -> Maybe Bool
+ Language.Haskell.LSP.Types.Capabilities: [$sel:_completion:TextDocumentClientCapabilities] :: TextDocumentClientCapabilities -> Maybe CompletionClientCapabilities
+ Language.Haskell.LSP.Types.Capabilities: [$sel:_completionItem:CompletionClientCapabilities] :: CompletionClientCapabilities -> Maybe CompletionItemClientCapabilities
+ Language.Haskell.LSP.Types.Capabilities: [$sel:_completionItemKind:CompletionClientCapabilities] :: CompletionClientCapabilities -> Maybe CompletionItemKindClientCapabilities
+ Language.Haskell.LSP.Types.Capabilities: [$sel:_configuration:WorkspaceClientCapabilities] :: WorkspaceClientCapabilities -> Maybe Bool
+ Language.Haskell.LSP.Types.Capabilities: [$sel:_contentFormat:HoverClientCapabilities] :: HoverClientCapabilities -> Maybe (List MarkupKind)
+ Language.Haskell.LSP.Types.Capabilities: [$sel:_contextSupport:CompletionClientCapabilities] :: CompletionClientCapabilities -> Maybe Bool
+ Language.Haskell.LSP.Types.Capabilities: [$sel:_definition:TextDocumentClientCapabilities] :: TextDocumentClientCapabilities -> Maybe DefinitionClientCapabilities
+ Language.Haskell.LSP.Types.Capabilities: [$sel:_deprecatedSupport:CompletionItemClientCapabilities] :: CompletionItemClientCapabilities -> Maybe Bool
+ Language.Haskell.LSP.Types.Capabilities: [$sel:_didChangeConfiguration:WorkspaceClientCapabilities] :: WorkspaceClientCapabilities -> Maybe DidChangeConfigurationClientCapabilities
+ Language.Haskell.LSP.Types.Capabilities: [$sel:_didChangeWatchedFiles:WorkspaceClientCapabilities] :: WorkspaceClientCapabilities -> Maybe DidChangeWatchedFilesClientCapabilities
+ Language.Haskell.LSP.Types.Capabilities: [$sel:_didSave:SynchronizationTextDocumentClientCapabilities] :: SynchronizationTextDocumentClientCapabilities -> Maybe Bool
+ Language.Haskell.LSP.Types.Capabilities: [$sel:_documentChanges:WorkspaceEditClientCapabilities] :: WorkspaceEditClientCapabilities -> Maybe Bool
+ Language.Haskell.LSP.Types.Capabilities: [$sel:_documentHighlight:TextDocumentClientCapabilities] :: TextDocumentClientCapabilities -> Maybe DocumentHighlightClientCapabilities
+ Language.Haskell.LSP.Types.Capabilities: [$sel:_documentLink:TextDocumentClientCapabilities] :: TextDocumentClientCapabilities -> Maybe DocumentLinkClientCapabilities
+ Language.Haskell.LSP.Types.Capabilities: [$sel:_documentSymbol:TextDocumentClientCapabilities] :: TextDocumentClientCapabilities -> Maybe DocumentSymbolClientCapabilities
+ Language.Haskell.LSP.Types.Capabilities: [$sel:_documentationFormat:CompletionItemClientCapabilities] :: CompletionItemClientCapabilities -> Maybe (List MarkupKind)
+ Language.Haskell.LSP.Types.Capabilities: [$sel:_dynamicRegistration:CodeActionClientCapabilities] :: CodeActionClientCapabilities -> Maybe Bool
+ Language.Haskell.LSP.Types.Capabilities: [$sel:_dynamicRegistration:CodeLensClientCapabilities] :: CodeLensClientCapabilities -> Maybe Bool
+ Language.Haskell.LSP.Types.Capabilities: [$sel:_dynamicRegistration:ColorProviderClientCapabilities] :: ColorProviderClientCapabilities -> Maybe Bool
+ Language.Haskell.LSP.Types.Capabilities: [$sel:_dynamicRegistration:CompletionClientCapabilities] :: CompletionClientCapabilities -> Maybe Bool
+ Language.Haskell.LSP.Types.Capabilities: [$sel:_dynamicRegistration:DefinitionClientCapabilities] :: DefinitionClientCapabilities -> Maybe Bool
+ Language.Haskell.LSP.Types.Capabilities: [$sel:_dynamicRegistration:DidChangeConfigurationClientCapabilities] :: DidChangeConfigurationClientCapabilities -> Maybe Bool
+ Language.Haskell.LSP.Types.Capabilities: [$sel:_dynamicRegistration:DidChangeWatchedFilesClientCapabilities] :: DidChangeWatchedFilesClientCapabilities -> Maybe Bool
+ Language.Haskell.LSP.Types.Capabilities: [$sel:_dynamicRegistration:DocumentHighlightClientCapabilities] :: DocumentHighlightClientCapabilities -> Maybe Bool
+ Language.Haskell.LSP.Types.Capabilities: [$sel:_dynamicRegistration:DocumentLinkClientCapabilities] :: DocumentLinkClientCapabilities -> Maybe Bool
+ Language.Haskell.LSP.Types.Capabilities: [$sel:_dynamicRegistration:DocumentSymbolClientCapabilities] :: DocumentSymbolClientCapabilities -> Maybe Bool
+ Language.Haskell.LSP.Types.Capabilities: [$sel:_dynamicRegistration:ExecuteClientCapabilities] :: ExecuteClientCapabilities -> Maybe Bool
+ Language.Haskell.LSP.Types.Capabilities: [$sel:_dynamicRegistration:FoldingRangeClientCapabilities] :: FoldingRangeClientCapabilities -> Maybe Bool
+ Language.Haskell.LSP.Types.Capabilities: [$sel:_dynamicRegistration:FormattingClientCapabilities] :: FormattingClientCapabilities -> Maybe Bool
+ Language.Haskell.LSP.Types.Capabilities: [$sel:_dynamicRegistration:HoverClientCapabilities] :: HoverClientCapabilities -> Maybe Bool
+ Language.Haskell.LSP.Types.Capabilities: [$sel:_dynamicRegistration:ImplementationClientCapabilities] :: ImplementationClientCapabilities -> Maybe Bool
+ Language.Haskell.LSP.Types.Capabilities: [$sel:_dynamicRegistration:OnTypeFormattingClientCapabilities] :: OnTypeFormattingClientCapabilities -> Maybe Bool
+ Language.Haskell.LSP.Types.Capabilities: [$sel:_dynamicRegistration:RangeFormattingClientCapabilities] :: RangeFormattingClientCapabilities -> Maybe Bool
+ Language.Haskell.LSP.Types.Capabilities: [$sel:_dynamicRegistration:ReferencesClientCapabilities] :: ReferencesClientCapabilities -> Maybe Bool
+ Language.Haskell.LSP.Types.Capabilities: [$sel:_dynamicRegistration:RenameClientCapabilities] :: RenameClientCapabilities -> Maybe Bool
+ Language.Haskell.LSP.Types.Capabilities: [$sel:_dynamicRegistration:SignatureHelpClientCapabilities] :: SignatureHelpClientCapabilities -> Maybe Bool
+ Language.Haskell.LSP.Types.Capabilities: [$sel:_dynamicRegistration:SymbolClientCapabilities] :: SymbolClientCapabilities -> Maybe Bool
+ Language.Haskell.LSP.Types.Capabilities: [$sel:_dynamicRegistration:SynchronizationTextDocumentClientCapabilities] :: SynchronizationTextDocumentClientCapabilities -> Maybe Bool
+ Language.Haskell.LSP.Types.Capabilities: [$sel:_dynamicRegistration:TypeDefinitionClientCapabilities] :: TypeDefinitionClientCapabilities -> Maybe Bool
+ Language.Haskell.LSP.Types.Capabilities: [$sel:_executeCommand:WorkspaceClientCapabilities] :: WorkspaceClientCapabilities -> Maybe ExecuteClientCapabilities
+ Language.Haskell.LSP.Types.Capabilities: [$sel:_experimental:ClientCapabilities] :: ClientCapabilities -> Maybe Object
+ Language.Haskell.LSP.Types.Capabilities: [$sel:_foldingRange:TextDocumentClientCapabilities] :: TextDocumentClientCapabilities -> Maybe FoldingRangeClientCapabilities
+ Language.Haskell.LSP.Types.Capabilities: [$sel:_formatting:TextDocumentClientCapabilities] :: TextDocumentClientCapabilities -> Maybe FormattingClientCapabilities
+ Language.Haskell.LSP.Types.Capabilities: [$sel:_hierarchicalDocumentSymbolSupport:DocumentSymbolClientCapabilities] :: DocumentSymbolClientCapabilities -> Maybe Bool
+ Language.Haskell.LSP.Types.Capabilities: [$sel:_hover:TextDocumentClientCapabilities] :: TextDocumentClientCapabilities -> Maybe HoverClientCapabilities
+ Language.Haskell.LSP.Types.Capabilities: [$sel:_implementation:TextDocumentClientCapabilities] :: TextDocumentClientCapabilities -> Maybe ImplementationClientCapabilities
+ Language.Haskell.LSP.Types.Capabilities: [$sel:_lineFoldingOnly:FoldingRangeClientCapabilities] :: FoldingRangeClientCapabilities -> Maybe Bool
+ Language.Haskell.LSP.Types.Capabilities: [$sel:_onTypeFormatting:TextDocumentClientCapabilities] :: TextDocumentClientCapabilities -> Maybe OnTypeFormattingClientCapabilities
+ Language.Haskell.LSP.Types.Capabilities: [$sel:_preselectSupport:CompletionItemClientCapabilities] :: CompletionItemClientCapabilities -> Maybe Bool
+ Language.Haskell.LSP.Types.Capabilities: [$sel:_publishDiagnostics:TextDocumentClientCapabilities] :: TextDocumentClientCapabilities -> Maybe PublishDiagnosticsClientCapabilities
+ Language.Haskell.LSP.Types.Capabilities: [$sel:_rangeFormatting:TextDocumentClientCapabilities] :: TextDocumentClientCapabilities -> Maybe RangeFormattingClientCapabilities
+ Language.Haskell.LSP.Types.Capabilities: [$sel:_rangeLimit:FoldingRangeClientCapabilities] :: FoldingRangeClientCapabilities -> Maybe Int
+ Language.Haskell.LSP.Types.Capabilities: [$sel:_references:TextDocumentClientCapabilities] :: TextDocumentClientCapabilities -> Maybe ReferencesClientCapabilities
+ Language.Haskell.LSP.Types.Capabilities: [$sel:_relatedInformation:PublishDiagnosticsClientCapabilities] :: PublishDiagnosticsClientCapabilities -> Maybe Bool
+ Language.Haskell.LSP.Types.Capabilities: [$sel:_rename:TextDocumentClientCapabilities] :: TextDocumentClientCapabilities -> Maybe RenameClientCapabilities
+ Language.Haskell.LSP.Types.Capabilities: [$sel:_signatureHelp:TextDocumentClientCapabilities] :: TextDocumentClientCapabilities -> Maybe SignatureHelpClientCapabilities
+ Language.Haskell.LSP.Types.Capabilities: [$sel:_signatureInformation:SignatureHelpClientCapabilities] :: SignatureHelpClientCapabilities -> Maybe SignatureInformationClientCapabilities
+ Language.Haskell.LSP.Types.Capabilities: [$sel:_snippetSupport:CompletionItemClientCapabilities] :: CompletionItemClientCapabilities -> Maybe Bool
+ Language.Haskell.LSP.Types.Capabilities: [$sel:_symbol:WorkspaceClientCapabilities] :: WorkspaceClientCapabilities -> Maybe SymbolClientCapabilities
+ Language.Haskell.LSP.Types.Capabilities: [$sel:_symbolKind:DocumentSymbolClientCapabilities] :: DocumentSymbolClientCapabilities -> Maybe DocumentSymbolKindClientCapabilities
+ Language.Haskell.LSP.Types.Capabilities: [$sel:_symbolKind:SymbolClientCapabilities] :: SymbolClientCapabilities -> Maybe SymbolKindClientCapabilities
+ Language.Haskell.LSP.Types.Capabilities: [$sel:_synchronization:TextDocumentClientCapabilities] :: TextDocumentClientCapabilities -> Maybe SynchronizationTextDocumentClientCapabilities
+ Language.Haskell.LSP.Types.Capabilities: [$sel:_textDocument:ClientCapabilities] :: ClientCapabilities -> Maybe TextDocumentClientCapabilities
+ Language.Haskell.LSP.Types.Capabilities: [$sel:_typeDefinition:TextDocumentClientCapabilities] :: TextDocumentClientCapabilities -> Maybe TypeDefinitionClientCapabilities
+ Language.Haskell.LSP.Types.Capabilities: [$sel:_valueSet:CodeActionKindClientCapabilities] :: CodeActionKindClientCapabilities -> List CodeActionKind
+ Language.Haskell.LSP.Types.Capabilities: [$sel:_valueSet:CompletionItemKindClientCapabilities] :: CompletionItemKindClientCapabilities -> Maybe (List CompletionItemKind)
+ Language.Haskell.LSP.Types.Capabilities: [$sel:_valueSet:DocumentSymbolKindClientCapabilities] :: DocumentSymbolKindClientCapabilities -> Maybe (List SymbolKind)
+ Language.Haskell.LSP.Types.Capabilities: [$sel:_valueSet:SymbolKindClientCapabilities] :: SymbolKindClientCapabilities -> Maybe (List SymbolKind)
+ Language.Haskell.LSP.Types.Capabilities: [$sel:_willSave:SynchronizationTextDocumentClientCapabilities] :: SynchronizationTextDocumentClientCapabilities -> Maybe Bool
+ Language.Haskell.LSP.Types.Capabilities: [$sel:_willSaveWaitUntil:SynchronizationTextDocumentClientCapabilities] :: SynchronizationTextDocumentClientCapabilities -> Maybe Bool
+ Language.Haskell.LSP.Types.Capabilities: [$sel:_workspace:ClientCapabilities] :: ClientCapabilities -> Maybe WorkspaceClientCapabilities
+ Language.Haskell.LSP.Types.Capabilities: [$sel:_workspaceEdit:WorkspaceClientCapabilities] :: WorkspaceClientCapabilities -> Maybe WorkspaceEditClientCapabilities
+ Language.Haskell.LSP.Types.Capabilities: [$sel:_workspaceFolders:WorkspaceClientCapabilities] :: WorkspaceClientCapabilities -> Maybe Bool
+ Language.Haskell.LSP.Types.Capabilities: [$sel:documentationFormat:SignatureInformationClientCapabilities] :: SignatureInformationClientCapabilities -> Maybe (List MarkupKind)
+ Language.Haskell.LSP.Types.Capabilities: capsForVersion :: LSPVersion -> ClientCapabilities
+ Language.Haskell.LSP.Types.Capabilities: data ClientCapabilities
+ Language.Haskell.LSP.Types.Capabilities: data CodeActionClientCapabilities
+ Language.Haskell.LSP.Types.Capabilities: data CodeActionKindClientCapabilities
+ Language.Haskell.LSP.Types.Capabilities: data CodeActionLiteralSupport
+ Language.Haskell.LSP.Types.Capabilities: data CodeLensClientCapabilities
+ Language.Haskell.LSP.Types.Capabilities: data ColorProviderClientCapabilities
+ Language.Haskell.LSP.Types.Capabilities: data CompletionClientCapabilities
+ Language.Haskell.LSP.Types.Capabilities: data CompletionItemClientCapabilities
+ Language.Haskell.LSP.Types.Capabilities: data CompletionItemKindClientCapabilities
+ Language.Haskell.LSP.Types.Capabilities: data DefinitionClientCapabilities
+ Language.Haskell.LSP.Types.Capabilities: data DidChangeConfigurationClientCapabilities
+ Language.Haskell.LSP.Types.Capabilities: data DidChangeWatchedFilesClientCapabilities
+ Language.Haskell.LSP.Types.Capabilities: data DocumentHighlightClientCapabilities
+ Language.Haskell.LSP.Types.Capabilities: data DocumentLinkClientCapabilities
+ Language.Haskell.LSP.Types.Capabilities: data DocumentSymbolClientCapabilities
+ Language.Haskell.LSP.Types.Capabilities: data DocumentSymbolKindClientCapabilities
+ Language.Haskell.LSP.Types.Capabilities: data ExecuteClientCapabilities
+ Language.Haskell.LSP.Types.Capabilities: data FoldingRangeClientCapabilities
+ Language.Haskell.LSP.Types.Capabilities: data FormattingClientCapabilities
+ Language.Haskell.LSP.Types.Capabilities: data HoverClientCapabilities
+ Language.Haskell.LSP.Types.Capabilities: data ImplementationClientCapabilities
+ Language.Haskell.LSP.Types.Capabilities: data LSPVersion
+ Language.Haskell.LSP.Types.Capabilities: data OnTypeFormattingClientCapabilities
+ Language.Haskell.LSP.Types.Capabilities: data PublishDiagnosticsClientCapabilities
+ Language.Haskell.LSP.Types.Capabilities: data RangeFormattingClientCapabilities
+ Language.Haskell.LSP.Types.Capabilities: data ReferencesClientCapabilities
+ Language.Haskell.LSP.Types.Capabilities: data RenameClientCapabilities
+ Language.Haskell.LSP.Types.Capabilities: data SignatureHelpClientCapabilities
+ Language.Haskell.LSP.Types.Capabilities: data SignatureInformationClientCapabilities
+ Language.Haskell.LSP.Types.Capabilities: data SymbolClientCapabilities
+ Language.Haskell.LSP.Types.Capabilities: data SymbolKindClientCapabilities
+ Language.Haskell.LSP.Types.Capabilities: data SynchronizationTextDocumentClientCapabilities
+ Language.Haskell.LSP.Types.Capabilities: data TextDocumentClientCapabilities
+ Language.Haskell.LSP.Types.Capabilities: data TypeDefinitionClientCapabilities
+ Language.Haskell.LSP.Types.Capabilities: data WorkspaceClientCapabilities
+ Language.Haskell.LSP.Types.Capabilities: data WorkspaceEditClientCapabilities
+ Language.Haskell.LSP.Types.Capabilities: fullCaps :: ClientCapabilities
+ Language.Haskell.LSP.Types.Constants: customModifier :: String -> String
+ Language.Haskell.LSP.Types.Constants: lspOptions :: Options
+ Language.Haskell.LSP.Types.MessageFuncs: fmClientCancelNotification :: LspId -> CancelNotification
+ Language.Haskell.LSP.Types.MessageFuncs: fmClientCodeActionRequest :: LspId -> CodeActionParams -> CodeActionRequest
+ Language.Haskell.LSP.Types.MessageFuncs: fmClientCodeLensRequest :: LspId -> CodeLensParams -> CodeLensRequest
+ Language.Haskell.LSP.Types.MessageFuncs: fmClientCodeLensResolveRequest :: LspId -> CodeLens -> CodeLensResolveRequest
+ Language.Haskell.LSP.Types.MessageFuncs: fmClientCompletionItemResolveRequest :: LspId -> CompletionItem -> CompletionItemResolveRequest
+ Language.Haskell.LSP.Types.MessageFuncs: fmClientCompletionRequest :: LspId -> CompletionParams -> CompletionRequest
+ Language.Haskell.LSP.Types.MessageFuncs: fmClientDefinitionRequest :: LspId -> TextDocumentPositionParams -> DefinitionRequest
+ Language.Haskell.LSP.Types.MessageFuncs: fmClientDidChangeConfigurationNotification :: DidChangeConfigurationParams -> DidChangeConfigurationNotification
+ Language.Haskell.LSP.Types.MessageFuncs: fmClientDidChangeTextDocumentNotification :: DidChangeTextDocumentParams -> DidChangeTextDocumentNotification
+ Language.Haskell.LSP.Types.MessageFuncs: fmClientDidChangeWatchedFilesNotification :: DidChangeWatchedFilesParams -> DidChangeWatchedFilesNotification
+ Language.Haskell.LSP.Types.MessageFuncs: fmClientDidCloseTextDocumentNotification :: DidCloseTextDocumentParams -> DidCloseTextDocumentNotification
+ Language.Haskell.LSP.Types.MessageFuncs: fmClientDidOpenTextDocumentNotification :: DidOpenTextDocumentParams -> DidOpenTextDocumentNotification
+ Language.Haskell.LSP.Types.MessageFuncs: fmClientDidSaveTextDocumentNotification :: DidSaveTextDocumentParams -> DidSaveTextDocumentNotification
+ Language.Haskell.LSP.Types.MessageFuncs: fmClientDocumentFormattingRequest :: LspId -> DocumentFormattingParams -> DocumentFormattingRequest
+ Language.Haskell.LSP.Types.MessageFuncs: fmClientDocumentHighlightRequest :: LspId -> TextDocumentPositionParams -> DocumentHighlightRequest
+ Language.Haskell.LSP.Types.MessageFuncs: fmClientDocumentLinkRequest :: LspId -> DocumentLinkParams -> DocumentLinkRequest
+ Language.Haskell.LSP.Types.MessageFuncs: fmClientDocumentLinkResolveRequest :: LspId -> DocumentLink -> DocumentLinkResolveRequest
+ Language.Haskell.LSP.Types.MessageFuncs: fmClientDocumentOnTypeFormattingRequest :: LspId -> DocumentOnTypeFormattingParams -> DocumentOnTypeFormattingRequest
+ Language.Haskell.LSP.Types.MessageFuncs: fmClientDocumentRangeFormattingRequest :: LspId -> DocumentRangeFormattingParams -> DocumentRangeFormattingRequest
+ Language.Haskell.LSP.Types.MessageFuncs: fmClientDocumentSymbolRequest :: LspId -> DocumentSymbolParams -> DocumentSymbolRequest
+ Language.Haskell.LSP.Types.MessageFuncs: fmClientExecuteCommandRequest :: LspId -> ExecuteCommandParams -> ExecuteCommandRequest
+ Language.Haskell.LSP.Types.MessageFuncs: fmClientExitNotification :: ExitNotification
+ Language.Haskell.LSP.Types.MessageFuncs: fmClientHoverRequest :: LspId -> TextDocumentPositionParams -> HoverRequest
+ Language.Haskell.LSP.Types.MessageFuncs: fmClientInitializeRequest :: LspId -> InitializeParams -> InitializeRequest
+ Language.Haskell.LSP.Types.MessageFuncs: fmClientInitializedNotification :: InitializedNotification
+ Language.Haskell.LSP.Types.MessageFuncs: fmClientReferencesRequest :: LspId -> ReferenceParams -> ReferencesRequest
+ Language.Haskell.LSP.Types.MessageFuncs: fmClientRenameRequest :: LspId -> RenameParams -> RenameRequest
+ Language.Haskell.LSP.Types.MessageFuncs: fmClientShutdownRequest :: LspId -> Maybe Value -> ShutdownRequest
+ Language.Haskell.LSP.Types.MessageFuncs: fmClientSignatureHelpRequest :: LspId -> TextDocumentPositionParams -> SignatureHelpRequest
+ Language.Haskell.LSP.Types.MessageFuncs: fmClientWillSaveTextDocumentNotification :: WillSaveTextDocumentParams -> WillSaveTextDocumentNotification
+ Language.Haskell.LSP.Types.MessageFuncs: fmClientWillSaveWaitUntilRequest :: LspId -> WillSaveTextDocumentParams -> WillSaveWaitUntilTextDocumentRequest
+ Language.Haskell.LSP.Types.MessageFuncs: fmClientWorkspaceSymbolRequest :: LspId -> WorkspaceSymbolParams -> WorkspaceSymbolRequest
+ Language.Haskell.LSP.Types.MessageFuncs: fmServerApplyWorkspaceEditRequest :: LspId -> ApplyWorkspaceEditParams -> ApplyWorkspaceEditRequest
+ Language.Haskell.LSP.Types.MessageFuncs: fmServerLogMessageNotification :: MessageType -> Text -> LogMessageNotification
+ Language.Haskell.LSP.Types.MessageFuncs: fmServerPublishDiagnosticsNotification :: PublishDiagnosticsParams -> PublishDiagnosticsNotification
+ Language.Haskell.LSP.Types.MessageFuncs: fmServerRegisterCapabilityRequest :: LspId -> RegistrationParams -> RegisterCapabilityRequest
+ Language.Haskell.LSP.Types.MessageFuncs: fmServerShowMessageNotification :: MessageType -> Text -> ShowMessageNotification
+ Language.Haskell.LSP.Types.MessageFuncs: fmServerShowMessageRequest :: LspId -> ShowMessageRequestParams -> ShowMessageRequest
+ Language.Haskell.LSP.Types.MessageFuncs: fmServerTelemetryNotification :: Value -> TelemetryNotification
+ Language.Haskell.LSP.Types.MessageFuncs: fmServerUnregisterCapabilityRequest :: LspId -> UnregistrationParams -> UnregisterCapabilityRequest
+ Language.Haskell.LSP.Types.Utils: rdrop :: Int -> [a] -> [a]

Files

ChangeLog.md view
@@ -1,5 +1,22 @@ # Revision history for haskell-lsp-types +## 0.7.0.0 -- 2018-08-14++* Update CompletionItem+ * Add `commitCharacters` field+ * Add `MarkupContent` option for `documentation`+ * Add `preselect` field+* Add CompletionContext+* Add new server capabilities+* Add workspace folder support+* Add document color and color presentation+* Add folding range support+* Add goto type support+* s/TH/Types/g+ * Move all types into haskell-lsp-types+ * Hide Language.Haskell.LSP.TH.DataTypesJSON - Use Language.Haskell.LSP.Types instead+* Add lenses for Language.Haskell.LSP.Types.Capabilities+ ## 0.6.0.0  -- 2018-08-06  * Add new DocumentSymbol type and hierarchal support
haskell-lsp-types.cabal view
@@ -1,5 +1,5 @@ name:                haskell-lsp-types-version:             0.6.0.0+version:             0.7.0.0 synopsis:            Haskell library for the Microsoft Language Server Protocol, data types  description:         An implementation of the types to allow language implementors to@@ -17,24 +17,30 @@ cabal-version:       >=1.10  library-  exposed-modules:     Language.Haskell.LSP.TH.ClientCapabilities-                     , Language.Haskell.LSP.TH.Constants-                     , Language.Haskell.LSP.TH.DataTypesJSON-                     , Language.Haskell.LSP.TH.MessageFuncs-                     , Language.Haskell.LSP.TH.Utils-  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.TextDocument-                     , Language.Haskell.LSP.TH.Uri-                     , Language.Haskell.LSP.TH.WorkspaceEdit+  exposed-modules:     Language.Haskell.LSP.Types+                     , Language.Haskell.LSP.Types.Capabilities+                     , Language.Haskell.LSP.Types.Constants+                     , Language.Haskell.LSP.Types.MessageFuncs+                     , Language.Haskell.LSP.Types.Utils+  other-modules:       Language.Haskell.LSP.Types.ClientCapabilities+                     , Language.Haskell.LSP.Types.CodeAction+                     , Language.Haskell.LSP.Types.Color+                     , Language.Haskell.LSP.Types.Command+                     , Language.Haskell.LSP.Types.Completion+                     , Language.Haskell.LSP.Types.DataTypesJSON+                     , Language.Haskell.LSP.Types.Diagnostic+                     , Language.Haskell.LSP.Types.DocumentFilter+                     , Language.Haskell.LSP.Types.FoldingRange+                     , Language.Haskell.LSP.Types.Lens+                     , Language.Haskell.LSP.Types.List+                     , Language.Haskell.LSP.Types.Location+                     , Language.Haskell.LSP.Types.MarkupContent+                     , Language.Haskell.LSP.Types.Message+                     , Language.Haskell.LSP.Types.Symbol+                     , Language.Haskell.LSP.Types.TextDocument+                     , Language.Haskell.LSP.Types.Uri+                     , Language.Haskell.LSP.Types.WorkspaceEdit+                     , Language.Haskell.LSP.Types.WorkspaceFolders  -- other-extensions:   ghc-options:         -Wall   -- ghc-options:         -Werror
− src/Language/Haskell/LSP/TH/ClientCapabilities.hs
@@ -1,1013 +0,0 @@-{-# LANGUAGE DuplicateRecordFields #-}-{-# LANGUAGE TemplateHaskell       #-}--module Language.Haskell.LSP.TH.ClientCapabilities where--import           Data.Aeson.TH-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--{-# ANN module "HLint: ignore Use newtype instead of data" #-}---- ----------------------------------------------------------------------{--New in 3.0-------------/**- * Workspace specific client capabilities.- */-export interface WorkspaceClientCapabilities {-        /**-         * The client supports applying batch edits to the workspace by supporting-         * the request 'workspace/applyEdit'-         */-        applyEdit?: boolean;--        /**-         * Capabilities specific to `WorkspaceEdit`s-         */-        workspaceEdit?: {-                /**-                 * The client supports versioned document changes in `WorkspaceEdit`s-                 */-                documentChanges?: boolean;-        };--        /**-         * Capabilities specific to the `workspace/didChangeConfiguration` notification.-         */-        didChangeConfiguration?: {-                /**-                 * Did change configuration notification supports dynamic registration.-                 */-                dynamicRegistration?: boolean;-        };--        /**-         * Capabilities specific to the `workspace/didChangeWatchedFiles` notification.-         */-        didChangeWatchedFiles?: {-                /**-                 * Did change watched files notification supports dynamic registration.-                 */-                dynamicRegistration?: boolean;-        };--        /**-         * Capabilities specific to the `workspace/symbol` request.-         */-        symbol?: {-                /**-                 * 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[];-                }-        };--        /**-         * Capabilities specific to the `workspace/executeCommand` request.-         */-        executeCommand?: {-                /**-                 * Execute command supports dynamic registration.-                 */-                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;-}--}---- ---------------------------------------data WorkspaceEditClientCapabilities =-  WorkspaceEditClientCapabilities-  { _documentChanges :: Maybe Bool -- ^The client supports versioned document-                                   -- changes in `WorkspaceEdit`s-  } deriving (Show, Read, Eq)--$(deriveJSON lspOptions ''WorkspaceEditClientCapabilities)---- ---------------------------------------data DidChangeConfigurationClientCapabilities =-  DidChangeConfigurationClientCapabilities-    { _dynamicRegistration :: Maybe Bool -- ^Did change configuration-                                         -- notification supports dynamic-                                         -- registration.-    } deriving (Show, Read, Eq)--$(deriveJSON lspOptions ''DidChangeConfigurationClientCapabilities)---- ---------------------------------------data DidChangeWatchedFilesClientCapabilities =-  DidChangeWatchedFilesClientCapabilities-    { _dynamicRegistration :: Maybe Bool -- ^Did change watched files-                                         -- notification supports dynamic-                                         -- registration.-    } deriving (Show, Read, Eq)--$(deriveJSON lspOptions ''DidChangeWatchedFilesClientCapabilities)---- ---------------------------------------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)---- ---------------------------------------data ExecuteClientCapabilities =-  ExecuteClientCapabilities-    { _dynamicRegistration :: Maybe Bool -- ^Execute command supports dynamic-                                         -- registration.-    } deriving (Show, Read, Eq)--$(deriveJSON lspOptions ''ExecuteClientCapabilities)---- ---------------------------------------data WorkspaceClientCapabilities =-  WorkspaceClientCapabilities-    { -- | The client supports applying batch edits to the workspace by supporting-      -- the request 'workspace/applyEdit'-      _applyEdit :: Maybe Bool--      -- | Capabilities specific to `WorkspaceEdit`s-    , _workspaceEdit :: Maybe WorkspaceEditClientCapabilities--      -- | Capabilities specific to the `workspace/didChangeConfiguration` notification.-    , _didChangeConfiguration :: Maybe DidChangeConfigurationClientCapabilities--       -- | Capabilities specific to the `workspace/didChangeWatchedFiles` notification.-    , _didChangeWatchedFiles :: Maybe DidChangeWatchedFilesClientCapabilities--      -- | Capabilities specific to the `workspace/symbol` request.-    , _symbol :: Maybe SymbolClientCapabilities--      -- | 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 def---- ----------------------------------------------------------------------{--New in 3.0------------/**- * Text document specific client capabilities.- */-export interface TextDocumentClientCapabilities {--        synchronization?: {-                /**-                 * Whether text document synchronization supports dynamic registration.-                 */-                dynamicRegistration?: boolean;--                /**-                 * The client supports sending will save notifications.-                 */-                willSave?: boolean;--                /**-                 * The client supports sending a will save request and-                 * waits for a response providing text edits which will-                 * be applied to the document before it is saved.-                 */-                willSaveWaitUntil?: boolean;--                /**-                 * The client supports did save notifications.-                 */-                didSave?: boolean;-        }--        /**-         * Capabilities specific to the `textDocument/completion`-         */-        completion?: {-                /**-                 * Whether completion supports dynamic registration.-                 */-                dynamicRegistration?: boolean;--                /**-                 * The client supports the following `CompletionItem` specific-                 * capabilities.-                 */-                completionItem?: {-                        /**-                         * 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?: 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;-        };--        /**-         * Capabilities specific to the `textDocument/hover`-         */-        hover?: {-                /**-                 * 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[];-        };--        /**-         * Capabilities specific to the `textDocument/signatureHelp`-         */-        signatureHelp?: {-                /**-                 * 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[];-                };-        };--        /**-         * Capabilities specific to the `textDocument/references`-         */-        references?: {-                /**-                 * Whether references supports dynamic registration.-                 */-                dynamicRegistration?: boolean;-        };--        /**-         * Capabilities specific to the `textDocument/documentHighlight`-         */-        documentHighlight?: {-                /**-                 * Whether document highlight supports dynamic registration.-                 */-                dynamicRegistration?: boolean;-        };--        /**-         * Capabilities specific to the `textDocument/documentSymbol`-         */-        documentSymbol?: {-                /**-                 * 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[];-                }-        };--        /**-         * Capabilities specific to the `textDocument/formatting`-         */-        formatting?: {-                /**-                 * Whether formatting supports dynamic registration.-                 */-                dynamicRegistration?: boolean;-        };--        /**-         * Capabilities specific to the `textDocument/rangeFormatting`-         */-        rangeFormatting?: {-                /**-                 * Whether range formatting supports dynamic registration.-                 */-                dynamicRegistration?: boolean;-        };--        /**-         * Capabilities specific to the `textDocument/onTypeFormatting`-         */-        onTypeFormatting?: {-                /**-                 * Whether on type formatting supports dynamic registration.-                 */-                dynamicRegistration?: boolean;-        };--        /**-         * Capabilities specific to the `textDocument/definition`-         */-        definition?: {-                /**-                 * Whether definition supports dynamic registration.-                 */-                dynamicRegistration?: boolean;-        };--        /**-         * 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?: {-                /**-                 * 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[];-                        };-                };-        };--        /**-         * Capabilities specific to the `textDocument/codeLens`-         */-        codeLens?: {-                /**-                 * Whether code lens supports dynamic registration.-                 */-                dynamicRegistration?: boolean;-        };--        /**-         * Capabilities specific to the `textDocument/documentLink`-         */-        documentLink?: {-                /**-                 * Whether document link supports dynamic registration.-                 */-                dynamicRegistration?: boolean;-        };--        /**-         * 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?: {-                /**-                 * Whether rename supports dynamic registration.-                 */-                dynamicRegistration?: boolean;-        };--        /**-         * Capabilities specific to `textDocument/publishDiagnostics`.-         */-        publishDiagnostics?: {-                /**-                 * Whether the clients accepts diagnostics with related information.-                 */-                relatedInformation?: boolean;-        };-}---}---- ----------------------------------------- TODO:AZ: this name is Java-ridiculously long-data SynchronizationTextDocumentClientCapabilities =-  SynchronizationTextDocumentClientCapabilities-    { -- | Whether text document synchronization supports dynamic registration.-      _dynamicRegistration :: Maybe Bool--      -- | The client supports sending will save notifications.-    , _willSave :: Maybe Bool--      -- | The client supports sending a will save request and waits for a-      -- response providing text edits which will be applied to the document-      -- before it is saved.-    , _willSaveWaitUntil :: Maybe Bool--      -- | The client supports did save notifications.-    , _didSave :: Maybe Bool-    } deriving (Show, Read, Eq)--$(deriveJSON lspOptions ''SynchronizationTextDocumentClientCapabilities)--instance Default SynchronizationTextDocumentClientCapabilities where-  def = SynchronizationTextDocumentClientCapabilities def def def def---- ---------------------------------------data CompletionItemClientCapabilities =-  CompletionItemClientCapabilities-    { -- | 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)---- ---------------------------------------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-    { -- | 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)---- ---------------------------------------data ReferencesClientCapabilities =-  ReferencesClientCapabilities-    { _dynamicRegistration :: Maybe Bool-    } deriving (Show, Read, Eq)--$(deriveJSON lspOptions ''ReferencesClientCapabilities)---- ---------------------------------------data DocumentHighlightClientCapabilities =-  DocumentHighlightClientCapabilities-    { _dynamicRegistration :: Maybe Bool-    } deriving (Show, Read, Eq)--$(deriveJSON lspOptions ''DocumentHighlightClientCapabilities)---- ---------------------------------------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-    { -- | Whether document symbol supports dynamic registration.-      _dynamicRegistration :: Maybe Bool-      -- | Specific capabilities for the `SymbolKind`.-    , _symbolKind :: Maybe DocumentSymbolKindClientCapabilities-    , _hierarchicalDocumentSymbolSupport :: Maybe Bool-    } deriving (Show, Read, Eq)--$(deriveJSON lspOptions ''DocumentSymbolClientCapabilities)---- ---------------------------------------data FormattingClientCapabilities =-  FormattingClientCapabilities-    { _dynamicRegistration :: Maybe Bool-    } deriving (Show, Read, Eq)--$(deriveJSON lspOptions ''FormattingClientCapabilities)---- ---------------------------------------data RangeFormattingClientCapabilities =-  RangeFormattingClientCapabilities-    { _dynamicRegistration :: Maybe Bool-    } deriving (Show, Read, Eq)--$(deriveJSON lspOptions ''RangeFormattingClientCapabilities)---- ---------------------------------------data OnTypeFormattingClientCapabilities =-  OnTypeFormattingClientCapabilities-    { _dynamicRegistration :: Maybe Bool-    } deriving (Show, Read, Eq)--$(deriveJSON lspOptions ''OnTypeFormattingClientCapabilities)---- ---------------------------------------data DefinitionClientCapabilities =-  DefinitionClientCapabilities-    { _dynamicRegistration :: Maybe Bool-    } deriving (Show, Read, Eq)--$(deriveJSON lspOptions ''DefinitionClientCapabilities)---- ---------------------------------------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)--$(deriveJSON lspOptions ''CodeActionKindClientCapabilities)--instance Default CodeActionKindClientCapabilities where-  def = CodeActionKindClientCapabilities (List allKinds)-    where allKinds = [ CodeActionQuickFix-                     , CodeActionRefactor-                     , CodeActionRefactorExtract-                     , CodeActionRefactorInline-                     , CodeActionRefactorRewrite-                     , CodeActionSource-                     , CodeActionSourceOrganizeImports-                     ]--data CodeActionLiteralSupport =-  CodeActionLiteralSupport-    { _codeActionKind :: CodeActionKindClientCapabilities -- ^ The code action kind is support with the following value set.-    } deriving (Show, Read, Eq)--$(deriveJSON lspOptions ''CodeActionLiteralSupport)--data CodeActionClientCapabilities =-  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-    } deriving (Show, Read, Eq)--$(deriveJSON lspOptions ''CodeActionClientCapabilities)---- ---------------------------------------data CodeLensClientCapabilities =-  CodeLensClientCapabilities-    { _dynamicRegistration :: Maybe Bool-    } deriving (Show, Read, Eq)--$(deriveJSON lspOptions ''CodeLensClientCapabilities)---- ---------------------------------------data DocumentLinkClientCapabilities =-  DocumentLinkClientCapabilities-    { _dynamicRegistration :: Maybe Bool-    } deriving (Show, Read, Eq)--$(deriveJSON lspOptions ''DocumentLinkClientCapabilities)---- ---------------------------------------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-    } deriving (Show, Read, Eq)--$(deriveJSON lspOptions ''RenameClientCapabilities)---- ---------------------------------------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--      -- | Capabilities specific to the `textDocument/completion`-    , _completion :: Maybe CompletionClientCapabilities--      -- | Capabilities specific to the `textDocument/hover`-    , _hover :: Maybe HoverClientCapabilities--      -- | Capabilities specific to the `textDocument/signatureHelp`-    , _signatureHelp :: Maybe SignatureHelpClientCapabilities--      -- | Capabilities specific to the `textDocument/references`-    , _references :: Maybe ReferencesClientCapabilities--      -- | Capabilities specific to the `textDocument/documentHighlight`-    , _documentHighlight :: Maybe DocumentHighlightClientCapabilities--      -- | Capabilities specific to the `textDocument/documentSymbol`-    , _documentSymbol :: Maybe DocumentSymbolClientCapabilities--      -- | Capabilities specific to the `textDocument/formatting`-    , _formatting :: Maybe FormattingClientCapabilities--      -- | Capabilities specific to the `textDocument/rangeFormatting`-    , _rangeFormatting :: Maybe RangeFormattingClientCapabilities--      -- | Capabilities specific to the `textDocument/onTypeFormatting`-    , _onTypeFormatting :: Maybe OnTypeFormattingClientCapabilities--      -- | 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--      -- | Capabilities specific to the `textDocument/codeLens`-    , _codeLens :: Maybe CodeLensClientCapabilities--      -- | 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-                                       def def def def def def def def-                                       def def def---- ----------------------------------------------------------------------{--New in 3.0---------------ClientCapabilities--now define capabilities for dynamic registration, workspace and text document-features the client supports. The experimental can be used to pass experimential-capabilities under development. For future compatibility a ClientCapabilities-object literal can have more properties set than currently defined. Servers-receiving a ClientCapabilities object literal with unknown properties should-ignore these properties. A missing property should be interpreted as an absence-of the capability. If a property is missing that defines sub properties all sub-properties should be interpreted as an absence of the capability.--Client capabilities got introduced with the version 3.0 of the protocol. They-therefore only describe capabilities that got introduced in 3.x or later.-Capabilities that existed in the 2.x version of the protocol are still mandatory-for clients. Clients cannot opt out of providing them. So even if a client omits-the ClientCapabilities.textDocument.synchronization it is still required that-the client provides text document synchronization (e.g. open, changed and close-notifications).--interface ClientCapabilities {-        /**-         * Workspace specific client capabilities.-         */-        workspace?: WorkspaceClientCapabilities;--        /**-         * Text document specific client capabilities.-         */-        textDocument?: TextDocumentClientCapabilities;--        /**-         * Experimental client capabilities.-         */-        experimental?: any;-}--}--data ClientCapabilities =-  ClientCapabilities-    { _workspace    :: Maybe WorkspaceClientCapabilities-    , _textDocument :: Maybe TextDocumentClientCapabilities-    , _experimental :: Maybe A.Object-    } deriving (Show, Read, Eq)--$(deriveJSON lspOptions ''ClientCapabilities)--instance Default ClientCapabilities where-  def = ClientCapabilities def def def
− src/Language/Haskell/LSP/TH/CodeAction.hs
@@ -1,293 +0,0 @@-{-# LANGUAGE DuplicateRecordFields      #-}-{-# LANGUAGE OverloadedStrings          #-}-{-# LANGUAGE TemplateHaskell            #-}-module Language.Haskell.LSP.TH.CodeAction where--import           Control.Applicative-import qualified Data.Aeson                    as A-import           Data.Aeson.TH-import           Data.Aeson.Types-import           Data.Text                      ( Text )-import           Language.Haskell.LSP.TH.Command-import           Language.Haskell.LSP.TH.Constants-import           Language.Haskell.LSP.TH.Diagnostic-import           Language.Haskell.LSP.TH.List-import           Language.Haskell.LSP.TH.Location-import           Language.Haskell.LSP.TH.Message-import           Language.Haskell.LSP.TH.TextDocument-import           Language.Haskell.LSP.TH.WorkspaceEdit---{--Code Action Request--https://github.com/Microsoft/language-server-protocol/blob/master/protocol.md#code-action-request--The code action request is sent from the client to the server tocompute commands-for a given text document and range. These commands are typically code fixes to-either fix problems or to beautify/refactor code. The result of a-textDocument/codeAction request is an array of Command literals which are-typically presented in the user interface. When the command is selected the-server should be contacted again (via the workspace/executeCommand) request to-execute the command.--Since version 3.8.0: support for CodeAction litarals to enable the following-scenarios:--the ability to directly return a workspace edit from e code action request. This-avoids having another server roundtrip to execute an actual code action. However-server providers should be aware that if the code action is expensive to compute-or the edits are huge it might still be beneficial if the result is imply a-command and the actual edit is only computed when needed. the ability to group-code actions using a kind. Clients are allowed to ignore that information.-However it allows them to better group code action for example into-corresponding menus (e.g. all refactor code actions into a refactor menu).-Clients need to announce there support code action literals and code action-kinds via the corresponding client capability-textDocument.codeAction.codeActionLiteralSupport.--Request--    method: 'textDocument/codeAction'-    params: CodeActionParams defined as follows:--/**- * Params for the CodeActionRequest- */-interface CodeActionParams {-	/**-	 * The document in which the command was invoked.-	 */-	textDocument: TextDocumentIdentifier;--	/**-	 * The range for which the command was invoked.-	 */-	range: Range;--	/**-	 * Context carrying additional information.-	 */-	context: CodeActionContext;-}--/**- * The kind of a code action.- *- * Kinds are a hierarchical list of identifiers separated by `.`, e.g. `"refactor.extract.function"`.- *- * The set of kinds is open and client needs to announce the kinds it supports to the server during- * initialization.- */-export type CodeActionKind = string;--/**- * A set of predefined code action kinds- */-export namespace CodeActionKind {-	/**-	 * Base kind for quickfix actions: 'quickfix'-	 */-	export const QuickFix: CodeActionKind = 'quickfix';--	/**-	 * Base kind for refactoring actions: 'refactor'-	 */-	export const Refactor: CodeActionKind = 'refactor';--	/**-	 * Base kind for refactoring extraction actions: 'refactor.extract'-	 *-	 * Example extract actions:-	 *-	 * - Extract method-	 * - Extract function-	 * - Extract variable-	 * - Extract interface from class-	 * - ...-	 */-	export const RefactorExtract: CodeActionKind = 'refactor.extract';--	/**-	 * Base kind for refactoring inline actions: 'refactor.inline'-	 *-	 * Example inline actions:-	 *-	 * - Inline function-	 * - Inline variable-	 * - Inline constant-	 * - ...-	 */-	export const RefactorInline: CodeActionKind = 'refactor.inline';--	/**-	 * Base kind for refactoring rewrite actions: 'refactor.rewrite'-	 *-	 * Example rewrite actions:-	 *-	 * - Convert JavaScript function to class-	 * - Add or remove parameter-	 * - Encapsulate field-	 * - Make method static-	 * - Move method to base class-	 * - ...-	 */-	export const RefactorRewrite: CodeActionKind = 'refactor.rewrite';--	/**-	 * Base kind for source actions: `source`-	 *-	 * Source code actions apply to the entire file.-	 */-	export const Source: CodeActionKind = 'source';--	/**-	 * Base kind for an organize imports source action: `source.organizeImports`-	 */-	export const SourceOrganizeImports: CodeActionKind = 'source.organizeImports';-}--/**- * Contains additional diagnostic information about the context in which- * a code action is run.- */-interface CodeActionContext {-	/**-	 * An array of diagnostics.-	 */-	diagnostics: Diagnostic[];--	/**-	 * Requested kind of actions to return.-	 *-	 * Actions not of this kind are filtered out by the client before being shown. So servers-	 * can omit computing them.-	 */-	only?: CodeActionKind[];-}--Response--    result: (Command | CodeAction)[] | null where CodeAction is defined as follows:-        /**-    * A code action represents a change that can be performed in code, e.g. to fix a problem or-    * to refactor code.-    *-    * A CodeAction must set either `edit` and/or a `command`. If both are supplied, the `edit` is applied first, then the `command` is executed.-    */-    export interface CodeAction {--        /**-        * A short, human-readable, title for this code action.-        */-        title: string;--        /**-        * The kind of the code action.-        *-        * Used to filter code actions.-        */-        kind?: CodeActionKind;--        /**-        * The diagnostics that this code action resolves.-        */-        diagnostics?: Diagnostic[];--        /**-        * The workspace edit this code action performs.-        */-        edit?: WorkspaceEdit;--        /**-        * A command this code action executes. If a code action-        * provides an edit and a command, first the edit is-        * executed and then the command.-        */-        command?: Command;-    }-    error: code and message set in case an exception happens during the code-           action request.---}--data CodeActionKind = CodeActionQuickFix-                    | CodeActionRefactor-                    | CodeActionRefactorExtract-                    | CodeActionRefactorInline-                    | CodeActionRefactorRewrite-                    | CodeActionSource-                    | CodeActionSourceOrganizeImports-                    | CodeActionUnknown Text-  deriving (Read,Show,Eq)--instance ToJSON CodeActionKind where-  toJSON CodeActionQuickFix                   = String "quickfix"-  toJSON CodeActionRefactor                   = String "refactor"-  toJSON CodeActionRefactorExtract            = String "refactor.extract"-  toJSON CodeActionRefactorInline             = String "refactor.inline"-  toJSON CodeActionRefactorRewrite            = String "refactor.rewrite"-  toJSON CodeActionSource                     = String "source"-  toJSON CodeActionSourceOrganizeImports      = String "source.organizeImports"-  toJSON (CodeActionUnknown s)                = String s--instance FromJSON CodeActionKind where-  parseJSON (String "quickfix")               = pure CodeActionQuickFix-  parseJSON (String "refactor")               = pure CodeActionRefactor-  parseJSON (String "refactor.extract")       = pure CodeActionRefactorExtract-  parseJSON (String "refactor.inline")        = pure CodeActionRefactorInline-  parseJSON (String "refactor.rewrite")       = pure CodeActionRefactorRewrite-  parseJSON (String "source")                 = pure CodeActionSource-  parseJSON (String "source.organizeImports") = pure CodeActionSourceOrganizeImports-  parseJSON (String s)                        = pure (CodeActionUnknown s)-  parseJSON _                                 = mempty--data CodeActionContext =-  CodeActionContext-    { _diagnostics :: List Diagnostic-    , only         :: Maybe (List CodeActionKind)-    } deriving (Read,Show,Eq)--deriveJSON lspOptions ''CodeActionContext---data CodeActionParams =-  CodeActionParams-    { _textDocument :: TextDocumentIdentifier-    , _range        :: Range-    , _context      :: CodeActionContext-    } deriving (Read,Show,Eq)--deriveJSON lspOptions ''CodeActionParams--data CodeAction =-  -- | A code action represents a change that can be performed in code, e.g. to fix a problem or-  -- to refactor code.-  ---  -- A CodeAction must set either '_edit' and/or a '_command'. If both are supplied,-  -- the '_edit' is applied first, then the '_command' is executed.-  CodeAction-    { _title       :: Text -- ^ A short, human-readable, title for this code action.-    , _kind        :: Maybe CodeActionKind -- ^ The kind of the code action. Used to filter code actions.-    , _diagnostics :: Maybe (List Diagnostic) -- ^ The diagnostics that this code action resolves.-    , _edit        :: Maybe WorkspaceEdit -- ^ The workspace edit this code action performs.-    , _command     :: Maybe Command -- ^ A command this code action executes. If a code action-                                    -- provides an edit and a command, first the edit is-                                    -- executed and then the command.-    } deriving (Read,Show,Eq)--deriveJSON lspOptions ''CodeAction--data CAResult = CACommand Command-              | CACodeAction CodeAction-  deriving (Read,Show,Eq)--instance FromJSON CAResult where-  parseJSON x = CACommand <$> parseJSON x <|> CACodeAction <$> parseJSON x--instance ToJSON CAResult where-  toJSON (CACommand x) = toJSON x-  toJSON (CACodeAction x) = toJSON x--type CodeActionRequest  = RequestMessage ClientMethod CodeActionParams (List CAResult)-type CodeActionResponse = ResponseMessage (List CAResult)
− src/Language/Haskell/LSP/TH/Command.hs
@@ -1,45 +0,0 @@-{-# LANGUAGE TemplateHaskell            #-}--module Language.Haskell.LSP.TH.Command where--import           Data.Aeson-import           Data.Aeson.TH-import           Data.Text-import           Language.Haskell.LSP.TH.Constants-import           Language.Haskell.LSP.TH.List--- ----------------------------------------------------------------------{--Command--https://github.com/Microsoft/language-server-protocol/blob/master/protocol.md#command--Represents a reference to a command. Provides a title which will be used to-represent a command in the UI. Commands are identitifed using a string-identifier and the protocol currently doesn't specify a set of well known-commands. So executing a command requires some tool extension code.--interface Command {-    /**-     * Title of the command, like `save`.-     */-    title: string;-    /**-     * The identifier of the actual command handler.-     */-    command: string;-    /**-     * Arguments that the command handler should be-     * invoked with.-     */-    arguments?: any[];-}--}--data Command =-  Command-    { _title     :: Text-    , _command   :: Text-    , _arguments :: Maybe (List Value)-    } deriving (Show, Read, Eq)--deriveJSON lspOptions ''Command
− src/Language/Haskell/LSP/TH/Completion.hs
@@ -1,421 +0,0 @@-{-# 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/Constants.hs
@@ -1,17 +0,0 @@--module Language.Haskell.LSP.TH.Constants where--import           Data.Aeson.TH---- ------------------------------------------------------------------------- | Standard options for use when generating JSON instances-lspOptions :: Options-lspOptions = defaultOptions { omitNothingFields = True, fieldLabelModifier = drop 1 }- -- NOTE: This needs to be in a separate file because of the TH stage restriction--customModifier :: String -> String-customModifier "_xdata" = "data"-customModifier "_xtype" = "type"-customModifier xs = drop 1 xs-
− src/Language/Haskell/LSP/TH/DataTypesJSON.hs
@@ -1,2732 +0,0 @@-{-# LANGUAGE CPP                        #-}-{-# LANGUAGE DeriveGeneric              #-}-{-# LANGUAGE DeriveTraversable          #-}-{-# LANGUAGE DuplicateRecordFields      #-}-{-# LANGUAGE FlexibleInstances          #-}-{-# LANGUAGE FunctionalDependencies     #-}-{-# LANGUAGE GeneralizedNewtypeDeriving #-}-{-# LANGUAGE MultiParamTypeClasses      #-}-{-# LANGUAGE OverloadedStrings          #-}-{-# LANGUAGE TemplateHaskell            #-}-{-# LANGUAGE TypeSynonymInstances       #-}--module Language.Haskell.LSP.TH.DataTypesJSON-    ( 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.TextDocument-    , module Language.Haskell.LSP.TH.Uri-    , module Language.Haskell.LSP.TH.WorkspaceEdit-    ) where--import           Control.Applicative-import           Control.Lens.TH                            (makeFieldsNoPrefix)-import qualified Data.Aeson                                 as A-import           Data.Aeson.TH-import           Data.Aeson.Types-import           Data.Text                                  (Text)-import qualified Data.Text                                  as T--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.TextDocument-import           Language.Haskell.LSP.TH.Uri-import           Language.Haskell.LSP.TH.WorkspaceEdit---- =====================================================================--- ACTUAL PROTOCOL -------------------------------------------------------- =====================================================================---- ------------------------------------------------------------------------ Initialize Request--- ----------------------------------------------------------------------{--Initialize Request--https://github.com/Microsoft/language-server-protocol/blob/master/protocol.md#initialize-request--The initialize request is sent as the first request from the client to the server.--Request--    method: 'initialize'-    params: InitializeParams defined as follows:--interface InitializeParams {-        /**-         * The process Id of the parent process that started-         * the server. Is null if the process has not been started by another process.-         * If the parent process is not alive then the server should exit (see exit notification) its process.-         */-        processId: number | null;--        /**-         * The rootPath of the workspace. Is null-         * if no folder is open.-         *-         * @deprecated in favour of rootUri.-         */-        rootPath?: string | null;--        /**-         * The rootUri of the workspace. Is null if no-         * folder is open. If both `rootPath` and `rootUri` are set-         * `rootUri` wins.-         */-        rootUri: DocumentUri | null;--        /**-         * User provided initialization options.-         */-        initializationOptions?: any;--        /**-         * The capabilities provided by the client (editor or tool)-         */-        capabilities: ClientCapabilities;--        /**-         * The initial trace setting. If omitted trace is disabled ('off').-         */-        trace?: 'off' | 'messages' | 'verbose';-}--}--data Trace = TraceOff | TraceMessages | TraceVerbose-           deriving (Show, Read, Eq)--instance A.ToJSON Trace where-  toJSON TraceOff      = A.String (T.pack "off")-  toJSON TraceMessages = A.String (T.pack "messages")-  toJSON TraceVerbose  = A.String (T.pack "verbose")--instance A.FromJSON Trace where-  parseJSON (A.String s) = case T.unpack s of-    "off"      -> return TraceOff-    "messages" -> return TraceMessages-    "verbose"  -> return TraceVerbose-    _          -> mempty-  parseJSON _                               = mempty--data InitializeParams =-  InitializeParams {-    _processId             :: Maybe Int-  , _rootPath              :: Maybe Text -- ^ Deprecated in favour of _rootUri-  , _rootUri               :: Maybe Uri-  , _initializationOptions :: Maybe A.Value-  , _capabilities          :: ClientCapabilities-  , _trace                 :: Maybe Trace-  } deriving (Show, Read, Eq)---deriveJSON lspOptions ''InitializeParams-makeFieldsNoPrefix ''InitializeParams---- ------------------------------------------------------------------------ Initialize Response--- ----------------------------------------------------------------------{---    error.data:--interface InitializeError {-    /**-     * Indicates whether the client should retry to send the-     * initilize request after showing the message provided-     * in the ResponseError.-     */-    retry: boolean;----}-data InitializeError =-  InitializeError-    { _retry :: Bool-    } deriving (Read, Show, Eq)--deriveJSON lspOptions ''InitializeError-makeFieldsNoPrefix ''InitializeError---- ----------------------------------------------------------------------{--The server can signal the following capabilities:--/**- * Defines how the host (editor) should sync document changes to the language server.- */-enum TextDocumentSyncKind {-    /**-     * Documents should not be synced at all.-     */-    None = 0,-    /**-     * Documents are synced by always sending the full content of the document.-     */-    Full = 1,-    /**-     * Documents are synced by sending the full content on open. After that only incremental-     * updates to the document are sent.-     */-    Incremental = 2-}--}---- ^ Note: Omitting this parameter from the capabilities is effectively a fourth--- state, where DidSave events are generated without sending document contents.-data TextDocumentSyncKind = TdSyncNone-                          | TdSyncFull-                          | TdSyncIncremental-       deriving (Read,Eq,Show)--instance A.ToJSON TextDocumentSyncKind where-  toJSON TdSyncNone        = A.Number 0-  toJSON TdSyncFull        = A.Number 1-  toJSON TdSyncIncremental = A.Number 2--instance A.FromJSON TextDocumentSyncKind where-  parseJSON (A.Number 0) = pure TdSyncNone-  parseJSON (A.Number 1) = pure TdSyncFull-  parseJSON (A.Number 2) = pure TdSyncIncremental-  parseJSON _            = mempty---- ----------------------------------------------------------------------{--/**- * Completion options.- */-interface CompletionOptions {-    /**-     * The server provides support to resolve additional information for a completion item.-     */-    resolveProvider?: boolean;--    /**-     * The characters that trigger completion automatically.-     */-    triggerCharacters?: string[];-}--}--data CompletionOptions =-  CompletionOptions-    { _resolveProvider   :: Maybe Bool-    , _triggerCharacters :: Maybe [String]-    } deriving (Read,Show,Eq)--deriveJSON lspOptions {omitNothingFields = True } ''CompletionOptions-makeFieldsNoPrefix ''CompletionOptions---- ----------------------------------------------------------------------{--/**- * Signature help options.- */-interface SignatureHelpOptions {-    /**-     * The characters that trigger signature help automatically.-     */-    triggerCharacters?: string[];--}--data SignatureHelpOptions =-  SignatureHelpOptions-    { _triggerCharacters :: Maybe [String]-    } deriving (Read,Show,Eq)--deriveJSON lspOptions ''SignatureHelpOptions-makeFieldsNoPrefix ''SignatureHelpOptions---- ----------------------------------------------------------------------{--/**- * Code Lens options.- */-interface CodeLensOptions {-    /**-     * Code lens has a resolve provider as well.-     */-    resolveProvider?: boolean;-}--}--data CodeLensOptions =-  CodeLensOptions-    { _resolveProvider :: Maybe Bool-    } deriving (Read,Show,Eq)--deriveJSON lspOptions ''CodeLensOptions-makeFieldsNoPrefix ''CodeLensOptions---- ----------------------------------------------------------------------{--/**- * Format document on type options- */-interface DocumentOnTypeFormattingOptions {-    /**-     * A character on which formatting should be triggered, like `}`.-     */-    firstTriggerCharacter: string;-    /**-     * More trigger characters.-     */-    moreTriggerCharacter?: string[]-}--}-data DocumentOnTypeFormattingOptions =-  DocumentOnTypeFormattingOptions-    { _firstTriggerCharacter :: Text-    , _moreTriggerCharacter  :: Maybe [String]-    } deriving (Read,Show,Eq)--deriveJSON lspOptions ''DocumentOnTypeFormattingOptions-makeFieldsNoPrefix ''DocumentOnTypeFormattingOptions---- ----------------------------------------------------------------------{--New in 3.0-------------/**- * Document link options- */-export interface DocumentLinkOptions {-        /**-         * Document links have a resolve provider as well.-         */-        resolveProvider?: boolean;-}--}--data DocumentLinkOptions =-  DocumentLinkOptions-    { -- |Document links have a resolve provider as well.-      _resolveProvider :: Maybe Bool-    } deriving (Show, Read, Eq)--deriveJSON lspOptions ''DocumentLinkOptions-makeFieldsNoPrefix ''DocumentLinkOptions---- -----------------------------------------------------------------------{--New in 3.0--------------/**- * Execute command options.- */-export interface ExecuteCommandOptions {-        /**-         * The commands to be executed on the server-         */-        commands: string[]-}--}--data ExecuteCommandOptions =-  ExecuteCommandOptions-    { -- | The commands to be executed on the server-      _commands :: List Text-    } deriving (Show, Read, Eq)--deriveJSON lspOptions ''ExecuteCommandOptions-makeFieldsNoPrefix ''ExecuteCommandOptions---- ----------------------------------------------------------------------{--New in 3.0------------/**- * Save options.- */-export interface SaveOptions {-        /**-         * The client is supposed to include the content on save.-         */-        includeText?: boolean;-}--}-data SaveOptions =-  SaveOptions-    { -- |The client is supposed to include the content on save.-      _includeText :: Maybe Bool-    } deriving (Show, Read, Eq)--deriveJSON lspOptions ''SaveOptions-makeFieldsNoPrefix ''SaveOptions---- ----------------------------------------------------------------------{--New in 3.0-------------export interface TextDocumentSyncOptions {-        /**-         * Open and close notifications are sent to the server.-         */-        openClose?: boolean;-        /**-         * Change notificatins are sent to the server. See TextDocumentSyncKind.None, TextDocumentSyncKind.Full-         * and TextDocumentSyncKindIncremental.-         */-        change?: number;-        /**-         * Will save notifications are sent to the server.-         */-        willSave?: boolean;-        /**-         * Will save wait until requests are sent to the server.-         */-        willSaveWaitUntil?: boolean;-        /**-         * Save notifications are sent to the server.-         */-        save?: SaveOptions;-}--}--data TextDocumentSyncOptions =-  TextDocumentSyncOptions-    { -- | Open and close notifications are sent to the server.-      _openClose         :: Maybe Bool--      -- | Change notificatins are sent to the server. See-      -- TextDocumentSyncKind.None, TextDocumentSyncKind.Full and-      -- TextDocumentSyncKindIncremental.-    , _change            :: Maybe TextDocumentSyncKind--      -- | Will save notifications are sent to the server.-    , _willSave          :: Maybe Bool--      -- | Will save wait until requests are sent to the server.-    , _willSaveWaitUntil :: Maybe Bool--      -- |Save notifications are sent to the server.-    , _save              :: Maybe SaveOptions-    } deriving (Show, Read, Eq)--deriveJSON lspOptions ''TextDocumentSyncOptions-makeFieldsNoPrefix ''TextDocumentSyncOptions---- ----------------------------------------------------------------------{---Extended in 3.0------------------interface ServerCapabilities {-        /**-         * Defines how text documents are synced. Is either a detailed structure defining each notification or-         * for backwards compatibility the TextDocumentSyncKind number.-         */-        textDocumentSync?: TextDocumentSyncOptions | number;-        /**-         * The server provides hover support.-         */-        hoverProvider?: boolean;-        /**-         * The server provides completion support.-         */-        completionProvider?: CompletionOptions;-        /**-         * The server provides signature help support.-         */-        signatureHelpProvider?: SignatureHelpOptions;-        /**-         * The server provides goto definition support.-         */-        definitionProvider?: boolean;-        /**-         * The server provides find references support.-         */-        referencesProvider?: boolean;-        /**-         * The server provides document highlight support.-         */-        documentHighlightProvider?: boolean;-        /**-         * The server provides document symbol support.-         */-        documentSymbolProvider?: boolean;-        /**-         * The server provides workspace symbol support.-         */-        workspaceSymbolProvider?: boolean;-        /**-         * The server provides code actions.-         */-        codeActionProvider?: boolean;-        /**-         * The server provides code lens.-         */-        codeLensProvider?: CodeLensOptions;-        /**-         * The server provides document formatting.-         */-        documentFormattingProvider?: boolean;-        /**-         * The server provides document range formatting.-         */-        documentRangeFormattingProvider?: boolean;-        /**-         * The server provides document formatting on typing.-         */-        documentOnTypeFormattingProvider?: DocumentOnTypeFormattingOptions;-        /**-         * The server provides rename support.-         */-        renameProvider?: boolean;-        /**-         * The server provides document link support.-         */-        documentLinkProvider?: DocumentLinkOptions;-        /**-         * The server provides execute command support.-         */-        executeCommandProvider?: ExecuteCommandOptions;-        /**-         * Experimental server capabilities.-         */-        experimental?: any;-}--}---- | Wrapper for TextDocumentSyncKind fallback.-data TDS = TDSOptions TextDocumentSyncOptions-         | TDSKind TextDocumentSyncKind-    deriving (Show, Read, Eq)--instance FromJSON TDS where-    parseJSON x = TDSOptions <$> parseJSON x <|> TDSKind <$> parseJSON x-    -instance ToJSON TDS where-    toJSON (TDSOptions x) = toJSON x-    toJSON (TDSKind x) = toJSON x-      -data InitializeResponseCapabilitiesInner =-  InitializeResponseCapabilitiesInner-    { _textDocumentSync                 :: Maybe TDS-    , _hoverProvider                    :: Maybe Bool-    , _completionProvider               :: Maybe CompletionOptions-    , _signatureHelpProvider            :: Maybe SignatureHelpOptions-    , _definitionProvider               :: Maybe Bool-    , _referencesProvider               :: Maybe Bool-    , _documentHighlightProvider        :: Maybe Bool-    , _documentSymbolProvider           :: Maybe Bool-    , _workspaceSymbolProvider          :: Maybe Bool-    , _codeActionProvider               :: Maybe Bool-    , _codeLensProvider                 :: Maybe CodeLensOptions-    , _documentFormattingProvider       :: Maybe Bool-    , _documentRangeFormattingProvider  :: Maybe Bool-    , _documentOnTypeFormattingProvider :: Maybe DocumentOnTypeFormattingOptions-    , _renameProvider                   :: Maybe Bool-    -- Following are new in 3.0-    , _documentLinkProvider             :: Maybe DocumentLinkOptions-    , _executeCommandProvider           :: Maybe ExecuteCommandOptions-    , _experimental                     :: Maybe A.Value-    } deriving (Show, Read, Eq)--deriveJSON lspOptions ''InitializeResponseCapabilitiesInner-makeFieldsNoPrefix ''InitializeResponseCapabilitiesInner---- ------------------------------------------------------------------------ |---   Information about the capabilities of a language server----data InitializeResponseCapabilities =-  InitializeResponseCapabilities {-    _capabilities :: InitializeResponseCapabilitiesInner-  } deriving (Show, Read, Eq)--deriveJSON lspOptions ''InitializeResponseCapabilities-makeFieldsNoPrefix ''InitializeResponseCapabilities---- -----------------------------------------------------------------------type InitializeResponse = ResponseMessage InitializeResponseCapabilities--type InitializeRequest = RequestMessage ClientMethod InitializeParams InitializeResponseCapabilities--{--    error.code:--/**- * Known error codes for an `InitializeError`;- */-export namespace InitializeError {-        /**-         * If the protocol version provided by the client can't be handled by the server.-         * @deprecated This initialize error got replaced by client capabilities. There is-         * no version handshake in version 3.0x-         */-        export const unknownProtocolVersion: number = 1;-}--    error.data:--interface InitializeError {-        /**-         * Indicates whether the client execute the following retry logic:-         * (1) show the message provided by the ResponseError to the user-         * (2) user selects retry or cancel-         * (3) if user selected retry the initialize method is sent again.-         */-        retry: boolean;-}--}---- -----------------------------------------------------------------------{--New in 3.0------------Initialized Notification--The initialized notification is sent from the client to the server after the-client is fully initialized and is able to listen to arbritary requests and-notifications sent from the server.--Notification:--    method: 'initialized'-    params: void---}--data InitializedParams =-  InitializedParams-    {-    } deriving (Show, Read, Eq)--instance A.FromJSON InitializedParams where-  parseJSON (A.Object _) = pure InitializedParams-  parseJSON _            = mempty--instance A.ToJSON InitializedParams where-  toJSON InitializedParams = A.Object mempty--type InitializedNotification = NotificationMessage ClientMethod (Maybe InitializedParams)---- ----------------------------------------------------------------------{--Shutdown Request--https://github.com/Microsoft/language-server-protocol/blob/master/protocol.md#shutdown-request--The shutdown request is sent from the client to the server. It asks the server-to shut down, but to not exit (otherwise the response might not be delivered-correctly to the client). There is a separate exit notification that asks the-server to exit.--Request--    method: 'shutdown'-    params: undefined--Response--    result: undefined-    error: code and message set in case an exception happens during shutdown request.----}--type ShutdownRequest  = RequestMessage ClientMethod (Maybe A.Value) Text-type ShutdownResponse = ResponseMessage Text---- ----------------------------------------------------------------------{--Exit Notification--https://github.com/Microsoft/language-server-protocol/blob/master/protocol.md#exit-notification--A notification to ask the server to exit its process.--Notification--    method: 'exit'---}---- |---   Notification from the server to actually exit now, after shutdown acked----data ExitParams =-  ExitParams-    {-    } deriving (Show, Read, Eq)--deriveJSON defaultOptions ''ExitParams--type ExitNotification = NotificationMessage ClientMethod (Maybe ExitParams)---- ----------------------------------------------------------------------{--ShowMessage Notification--https://github.com/Microsoft/language-server-protocol/blob/master/protocol.md#showmessage-notification--The show message notification is sent from a server to a client to ask the-client to display a particular message in the user interface.--Notification:--    method: 'window/showMessage'-    params: ShowMessageParams defined as follows:--interface ShowMessageParams {-    /**-     * The message type. See {@link MessageType}.-     */-    type: number;--    /**-     * The actual message.-     */-    message: string;-}--Where the type is defined as follows:--enum MessageType {-    /**-     * An error message.-     */-    Error = 1,-    /**-     * A warning message.-     */-    Warning = 2,-    /**-     * An information message.-     */-    Info = 3,-    /**-     * A log message.-     */-    Log = 4-}--}-data MessageType = MtError   -- ^ Error = 1,-                 | MtWarning -- ^ Warning = 2,-                 | MtInfo    -- ^ Info = 3,-                 | MtLog     -- ^ Log = 4-        deriving (Eq,Ord,Show,Read,Enum)--instance A.ToJSON MessageType where-  toJSON MtError   = A.Number 1-  toJSON MtWarning = A.Number 2-  toJSON MtInfo    = A.Number 3-  toJSON MtLog     = A.Number 4--instance A.FromJSON MessageType where-  parseJSON (A.Number 1) = pure MtError-  parseJSON (A.Number 2) = pure MtWarning-  parseJSON (A.Number 3) = pure MtInfo-  parseJSON (A.Number 4) = pure MtLog-  parseJSON _            = mempty---- ------------------------------------------data ShowMessageParams =-  ShowMessageParams {-    _xtype   :: MessageType-  , _message :: Text-  } deriving (Show, Read, Eq)--deriveJSON lspOptions{ fieldLabelModifier = customModifier } ''ShowMessageParams-makeFieldsNoPrefix ''ShowMessageParams--type ShowMessageNotification = NotificationMessage ServerMethod ShowMessageParams---- ----------------------------------------------------------------------{--ShowMessage Request--https://github.com/Microsoft/language-server-protocol/blob/master/protocol.md#showmessage-request--    New: The show message request is sent from a server to a client to ask the-    client to display a particular message in the user interface. In addition to-    the show message notification the request allows to pass actions and to wait-    for an answer from the client.--Request:--    method: 'window/showMessageRequest'-    params: ShowMessageRequestParams defined as follows:--Response:--    result: the selected MessageActionItem-    error: code and message set in case an exception happens during showing a message.--interface ShowMessageRequestParams {-    /**-     * The message type. See {@link MessageType}-     */-    type: number;--    /**-     * The actual message-     */-    message: string;--    /**-     * The message action items to present.-     */-    actions?: MessageActionItem[];-}--Where the MessageActionItem is defined as follows:--interface MessageActionItem {-    /**-     * A short title like 'Retry', 'Open Log' etc.-     */-    title: string;-}--}--data MessageActionItem =-  MessageActionItem-    { _title :: Text-    } deriving (Show,Read,Eq)--deriveJSON lspOptions ''MessageActionItem-makeFieldsNoPrefix ''MessageActionItem---data ShowMessageRequestParams =-  ShowMessageRequestParams-    { _xtype   :: MessageType-    , _message :: Text-    , _actions :: Maybe [MessageActionItem]-    } deriving (Show,Read,Eq)--deriveJSON lspOptions{ fieldLabelModifier = customModifier } ''ShowMessageRequestParams-makeFieldsNoPrefix ''ShowMessageRequestParams--type ShowMessageRequest = RequestMessage ServerMethod ShowMessageRequestParams Text-type ShowMessageResponse = ResponseMessage Text---- ----------------------------------------------------------------------{--LogMessage Notification--https://github.com/Microsoft/language-server-protocol/blob/master/protocol.md#logmessage-notification--The log message notification is sent from the server to the client to ask the-client to log a particular message.--Notification:--    method: 'window/logMessage'-    params: LogMessageParams defined as follows:--interface LogMessageParams {-    /**-     * The message type. See {@link MessageType}-     */-    type: number;--    /**-     * The actual message-     */-    message: string;-}--Where type is defined as above.--}--data LogMessageParams =-  LogMessageParams {-    _xtype   :: MessageType-  , _message :: Text-  } deriving (Show, Read, Eq)--deriveJSON lspOptions{ fieldLabelModifier = customModifier } ''LogMessageParams-makeFieldsNoPrefix ''LogMessageParams---type LogMessageNotification = NotificationMessage ServerMethod LogMessageParams---- ----------------------------------------------------------------------{--Telemetry Notification--https://github.com/Microsoft/language-server-protocol/blob/master/protocol.md#telemetry-notification--    New: The telemetry notification is sent from the server to the client to ask-    the client to log a telemetry event.--Notification:--    method: 'telemetry/event'-    params: 'any'--}---type TelemetryNotification = NotificationMessage ServerMethod A.Value---- ----------------------------------------------------------------------{--New in 3.0-------------Register Capability--The client/registerCapability request is sent from the server to the client to-register for a new capability on the client side. Not all clients need to-support dynamic capability registration. A client opts in via the-ClientCapabilities.dynamicRegistration property.--Request:--    method: 'client/registerCapability'-    params: RegistrationParams--Where RegistrationParams are defined as follows:--/**- * General paramters to to regsiter for a capability.- */-export interface Registration {-        /**-         * The id used to register the request. The id can be used to deregister-         * the request again.-         */-        id: string;--        /**-         * The method / capability to register for.-         */-        method: string;--        /**-         * Options necessary for the registration.-         */-        registerOptions?: any;-}--export interface RegistrationParams {-        registrations: Registration[];-}--}--data Registration =-  Registration-    { -- |The id used to register the request. The id can be used to deregister-      -- the request again.-      _id              :: Text--       -- | The method / capability to register for.-    , _method          :: ClientMethod--      -- | Options necessary for the registration.-    , _registerOptions :: Maybe A.Value-    } deriving (Show, Read, Eq)--deriveJSON lspOptions ''Registration-makeFieldsNoPrefix ''Registration--data RegistrationParams =-  RegistrationParams-    { _registrations :: List Registration-    } deriving (Show, Read, Eq)--deriveJSON lspOptions ''RegistrationParams-makeFieldsNoPrefix ''RegistrationParams---- |Note: originates at the server-type RegisterCapabilityRequest = RequestMessage ServerMethod RegistrationParams ()--type RegisterCapabilityResponse = ResponseMessage ()---- ---------------------------------------{--Since most of the registration options require to specify a document selector-there is a base interface that can be used.--export interface TextDocumentRegistrationOptions {-        /**-         * A document selector to identify the scope of the registration. If set to null-         * the document selector provided on the client side will be used.-         */-        documentSelector: DocumentSelector | null;-}--}--data TextDocumentRegistrationOptions =-  TextDocumentRegistrationOptions-    { _documentSelector :: Maybe DocumentSelector-    } deriving (Show, Read, Eq)--deriveJSON lspOptions ''TextDocumentRegistrationOptions-makeFieldsNoPrefix ''TextDocumentRegistrationOptions---- ----------------------------------------------------------------------{--New in 3.0-------------Unregister Capability--The client/unregisterCapability request is sent from the server to the client to-unregister a previously register capability.--Request:--    method: 'client/unregisterCapability'-    params: UnregistrationParams--Where UnregistrationParams are defined as follows:--/**- * General parameters to unregister a capability.- */-export interface Unregistration {-        /**-         * The id used to unregister the request or notification. Usually an id-         * provided during the register request.-         */-        id: string;--        /**-         * The method / capability to unregister for.-         */-        method: string;-}--export interface UnregistrationParams {-        unregisterations: Unregistration[];-}--}--data Unregistration =-  Unregistration-    { -- | The id used to unregister the request or notification. Usually an id-      -- provided during the register request.-      _id     :: Text--       -- |The method / capability to unregister for.-    , _method :: Text-    } deriving (Show, Read, Eq)--deriveJSON lspOptions ''Unregistration-makeFieldsNoPrefix ''Unregistration--data UnregistrationParams =-  UnregistrationParams-    { _unregistrations :: List Unregistration-    } deriving (Show, Read, Eq)--deriveJSON lspOptions ''UnregistrationParams-makeFieldsNoPrefix ''UnregistrationParams--type UnregisterCapabilityRequest = RequestMessage ServerMethod UnregistrationParams ()--type UnregisterCapabilityResponse = ResponseMessage ()---- ----------------------------------------------------------------------{--DidChangeConfiguration Notification--https://github.com/Microsoft/language-server-protocol/blob/master/protocol.md#didchangeconfiguration-notification--A notification sent from the client to the server to signal the change of-configuration settings.--Notification:--    method: 'workspace/didChangeConfiguration',-    params: DidChangeConfigurationParams defined as follows:--interface DidChangeConfigurationParams {-    /**-     * The actual changed settings-     */-    settings: any;-}--}--data DidChangeConfigurationParams =-  DidChangeConfigurationParams {-    _settings :: A.Value-  } deriving (Show, Read, Eq)--deriveJSON lspOptions ''DidChangeConfigurationParams-makeFieldsNoPrefix ''DidChangeConfigurationParams---type DidChangeConfigurationNotification = NotificationMessage ClientMethod DidChangeConfigurationParams---- ----------------------------------------------------------------------{--DidOpenTextDocument Notification--https://github.com/Microsoft/language-server-protocol/blob/master/protocol.md#didopentextdocument-notification--The document open notification is sent from the client to the server to signal-newly opened text documents. The document's truth is now managed by the client-and the server must not try to read the document's truth using the document's-uri.--Notification:--    method: 'textDocument/didOpen'-    params: DidOpenTextDocumentParams defined as follows:--interface DidOpenTextDocumentParams {-    /**-     * The document that was opened.-     */-    textDocument: TextDocumentItem;-}--Registration Options: TextDocumentRegistrationOptions--}--data DidOpenTextDocumentParams =-  DidOpenTextDocumentParams {-    _textDocument :: TextDocumentItem-  } deriving (Show, Read, Eq)--deriveJSON lspOptions ''DidOpenTextDocumentParams-makeFieldsNoPrefix ''DidOpenTextDocumentParams--type DidOpenTextDocumentNotification = NotificationMessage ClientMethod DidOpenTextDocumentParams---- ----------------------------------------------------------------------{--DidChangeTextDocument Notification--https://github.com/Microsoft/language-server-protocol/blob/master/protocol.md#didchangetextdocument-notification--    Changed: The document change notification is sent from the client to the-    server to signal changes to a text document. In 2.0 the shape of the params-    has changed to include proper version numbers and language ids.--Notification:--    method: 'textDocument/didChange'-    params: DidChangeTextDocumentParams defined as follows:--interface DidChangeTextDocumentParams {-    /**-     * The document that did change. The version number points-     * to the version after all provided content changes have-     * been applied.-     */-    textDocument: VersionedTextDocumentIdentifier;--    /**-     * The actual content changes.-     */-    contentChanges: TextDocumentContentChangeEvent[];-}--/**- * An event describing a change to a text document. If range and rangeLength are omitted- * the new text is considered to be the full content of the document.- */-interface TextDocumentContentChangeEvent {-    /**-     * The range of the document that changed.-     */-    range?: Range;--    /**-     * The length of the range that got replaced.-     */-    rangeLength?: number;--    /**-     * The new text of the document.-     */-    text: string;-}--}-data TextDocumentContentChangeEvent =-  TextDocumentContentChangeEvent-    { _range       :: Maybe Range-    , _rangeLength :: Maybe Int-    , _text        :: Text-    } deriving (Read,Show,Eq)--deriveJSON lspOptions { omitNothingFields = True } ''TextDocumentContentChangeEvent-makeFieldsNoPrefix ''TextDocumentContentChangeEvent---- ---------------------------------------data DidChangeTextDocumentParams =-  DidChangeTextDocumentParams-    { _textDocument   :: VersionedTextDocumentIdentifier-    , _contentChanges :: List TextDocumentContentChangeEvent-    } deriving (Show,Read,Eq)--deriveJSON lspOptions ''DidChangeTextDocumentParams-makeFieldsNoPrefix ''DidChangeTextDocumentParams--type DidChangeTextDocumentNotification = NotificationMessage ClientMethod DidChangeTextDocumentParams-{--New in 3.0-------------Registration Options: TextDocumentChangeRegistrationOptions defined as follows:--/**- * Descibe options to be used when registered for text document change events.- */-export interface TextDocumentChangeRegistrationOptions extends TextDocumentRegistrationOptions {-        /**-         * How documents are synced to the server. See TextDocumentSyncKind.Full-         * and TextDocumentSyncKindIncremental.-         */-        syncKind: number;-}--}--data TextDocumentChangeRegistrationOptions =-  TextDocumentChangeRegistrationOptions-    { _documentSelector :: Maybe DocumentSelector-    , _syncKind         :: TextDocumentSyncKind-    } deriving (Show, Read, Eq)--deriveJSON lspOptions ''TextDocumentChangeRegistrationOptions-makeFieldsNoPrefix ''TextDocumentChangeRegistrationOptions---- ----------------------------------------------------------------------{---New in 3.0-------------WillSaveTextDocument Notification--The document will save notification is sent from the client to the server before-the document is actually saved.--Notification:--    method: 'textDocument/willSave'-    params: WillSaveTextDocumentParams defined as follows:--/**- * The parameters send in a will save text document notification.- */-export interface WillSaveTextDocumentParams {-        /**-         * The document that will be saved.-         */-        textDocument: TextDocumentIdentifier;--        /**-         * The 'TextDocumentSaveReason'.-         */-        reason: number;-}--/**- * Represents reasons why a text document is saved.- */-export namespace TextDocumentSaveReason {--        /**-         * Manually triggered, e.g. by the user pressing save, by starting debugging,-         * or by an API call.-         */-        export const Manual = 1;--        /**-         * Automatic after a delay.-         */-        export const AfterDelay = 2;--        /**-         * When the editor lost focus.-         */-        export const FocusOut = 3;-}-Registration Options: TextDocumentRegistrationOptions--}--data TextDocumentSaveReason-  = SaveManual-         -- ^ Manually triggered, e.g. by the user pressing save, by starting-         -- debugging, or by an API call.-  | SaveAfterDelay -- ^ Automatic after a delay-  | SaveFocusOut   -- ^ When the editor lost focus-  deriving (Show, Read, Eq)--instance A.ToJSON TextDocumentSaveReason where-  toJSON SaveManual     = A.Number 1-  toJSON SaveAfterDelay = A.Number 2-  toJSON SaveFocusOut   = A.Number 3--instance A.FromJSON TextDocumentSaveReason where-  parseJSON (A.Number 1) = pure SaveManual-  parseJSON (A.Number 2) = pure SaveAfterDelay-  parseJSON (A.Number 3) = pure SaveFocusOut-  parseJSON _            = mempty--data WillSaveTextDocumentParams =-  WillSaveTextDocumentParams-    { _textDocument :: TextDocumentIdentifier-    , _reason       :: TextDocumentSaveReason-    } deriving (Show, Read, Eq)--deriveJSON lspOptions ''WillSaveTextDocumentParams-makeFieldsNoPrefix ''WillSaveTextDocumentParams--type WillSaveTextDocumentNotification = NotificationMessage ClientMethod WillSaveTextDocumentParams---- ----------------------------------------------------------------------{--New in 3.0-------------WillSaveWaitUntilTextDocument Request--The document will save request is sent from the client to the server before the-document is actually saved. The request can return an array of TextEdits which-will be applied to the text document before it is saved. Please note that-clients might drop results if computing the text edits took too long or if a-server constantly fails on this request. This is done to keep the save fast and-reliable.--Request:--    method: 'textDocument/willSaveWaitUntil'-    params: WillSaveTextDocumentParams--Response:--    result: TextEdit[]-    error: code and message set in case an exception happens during the willSaveWaitUntil request.--Registration Options: TextDocumentRegistrationOptions--}--type WillSaveWaitUntilTextDocumentRequest = RequestMessage ClientMethod WillSaveTextDocumentParams (List TextEdit)-type WillSaveWaitUntilTextDocumentResponse = ResponseMessage (List TextEdit)---- ----------------------------------------------------------------------{--DidSaveTextDocument Notification--https://github.com/Microsoft/language-server-protocol/blob/master/protocol.md#didsavetextdocument-notification--    New: The document save notification is sent from the client to the server-    when the document was saved in the client.--    method: 'textDocument/didSave'-    params: DidSaveTextDocumentParams defined as follows:--interface DidSaveTextDocumentParams {-    /**-     * The document that was saved.-     */-    textDocument: TextDocumentIdentifier;-}--}-data DidSaveTextDocumentParams =-  DidSaveTextDocumentParams-    { _textDocument :: TextDocumentIdentifier-    } deriving (Read,Show,Eq)--deriveJSON lspOptions ''DidSaveTextDocumentParams-makeFieldsNoPrefix ''DidSaveTextDocumentParams--type DidSaveTextDocumentNotification = NotificationMessage ClientMethod DidSaveTextDocumentParams------ ----------------------------------------------------------------------{--DidCloseTextDocument Notification--https://github.com/Microsoft/language-server-protocol/blob/master/protocol.md#didclosetextdocument-notification--The document close notification is sent from the client to the server when the-document got closed in the client. The document's truth now exists where the-document's uri points to (e.g. if the document's uri is a file uri the truth now-exists on disk).--    Changed: In 2.0 the params are of type DidCloseTextDocumentParams which-    contains a reference to a text document.--Notification:--    method: 'textDocument/didClose'-    params: DidCloseTextDocumentParams defined as follows:--interface DidCloseTextDocumentParams {-    /**-     * The document that was closed.-     */-    textDocument: TextDocumentIdentifier;-}--}-data DidCloseTextDocumentParams =-  DidCloseTextDocumentParams-    { _textDocument :: TextDocumentIdentifier-    } deriving (Read,Show,Eq)--deriveJSON lspOptions ''DidCloseTextDocumentParams-makeFieldsNoPrefix ''DidCloseTextDocumentParams---type DidCloseTextDocumentNotification = NotificationMessage ClientMethod DidCloseTextDocumentParams---- ----------------------------------------------------------------------{--DidChangeWatchedFiles Notification--https://github.com/Microsoft/language-server-protocol/blob/master/protocol.md#didchangewatchedfiles-notification--The watched files notification is sent from the client to the server when the-client detects changes to files watched by the language client.--Notification:--    method: 'workspace/didChangeWatchedFiles'-    params: DidChangeWatchedFilesParams defined as follows:--interface DidChangeWatchedFilesParams {-    /**-     * The actual file events.-     */-    changes: FileEvent[];-}--Where FileEvents are described as follows:--/**- * The file event type.- */-enum FileChangeType {-    /**-     * The file got created.-     */-    Created = 1,-    /**-     * The file got changed.-     */-    Changed = 2,-    /**-     * The file got deleted.-     */-    Deleted = 3-}--/**- * An event describing a file change.- */-interface FileEvent {-    /**-     * The file's URI.-     */-    uri: string;-    /**-     * The change type.-     */-    type: number;--}-data FileChangeType = FcCreated-                    | FcChanged-                    | FcDeleted-       deriving (Read,Show,Eq)--instance A.ToJSON FileChangeType where-  toJSON FcCreated = A.Number 1-  toJSON FcChanged = A.Number 2-  toJSON FcDeleted = A.Number 3--instance A.FromJSON FileChangeType where-  parseJSON (A.Number 1) = pure FcCreated-  parseJSON (A.Number 2) = pure FcChanged-  parseJSON (A.Number 3) = pure FcDeleted-  parseJSON _            = mempty----- ---------------------------------------data FileEvent =-  FileEvent-    { _uri   :: Uri-    , _xtype :: FileChangeType-    } deriving (Read,Show,Eq)--deriveJSON lspOptions{ fieldLabelModifier = customModifier } ''FileEvent-makeFieldsNoPrefix ''FileEvent--data DidChangeWatchedFilesParams =-  DidChangeWatchedFilesParams-    { _changes :: List FileEvent-    } deriving (Read,Show,Eq)--deriveJSON lspOptions ''DidChangeWatchedFilesParams-makeFieldsNoPrefix ''DidChangeWatchedFilesParams---type DidChangeWatchedFilesNotification = NotificationMessage ClientMethod DidChangeWatchedFilesParams---- ----------------------------------------------------------------------{--PublishDiagnostics Notification--https://github.com/Microsoft/language-server-protocol/blob/master/protocol.md#publishdiagnostics-notification--Diagnostics notification are sent from the server to the client to signal-results of validation runs.--Notification--    method: 'textDocument/publishDiagnostics'-    params: PublishDiagnosticsParams defined as follows:--interface PublishDiagnosticsParams {-    /**-     * The URI for which diagnostic information is reported.-     */-    uri: string;--    /**-     * An array of diagnostic information items.-     */-    diagnostics: Diagnostic[];-}--}--data PublishDiagnosticsParams =-  PublishDiagnosticsParams-    { _uri         :: Uri-    , _diagnostics :: List Diagnostic-    } deriving (Read,Show,Eq)--deriveJSON lspOptions ''PublishDiagnosticsParams-makeFieldsNoPrefix ''PublishDiagnosticsParams---type PublishDiagnosticsNotification = NotificationMessage ServerMethod PublishDiagnosticsParams---- ----------------------------------------------------------------------{--Hover Request--The hover request is sent from the client to the server to request hover-information at a given text document position.--    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/hover'-    params: TextDocumentPositionParams--Response--    result: Hover defined as follows:--/**- * The result of a hove request.- */-interface Hover {-    /**-     * The hover's content-     */-    contents: MarkedString | MarkedString[];--    /**-     * An optional range-     */-    range?: Range;-}--Where MarkedString is defined as follows:-/**- * MarkedString can be used to render human readable text. It is either a markdown string- * or a code-block that provides a language and a code snippet. The language identifier- * is sematically equal to the optional language identifier in fenced code blocks in GitHub- * issues. See https://help.github.com/articles/creating-and-highlighting-code-blocks/#syntax-highlighting- *- * The pair of a language and a value is an equivalent to markdown:- * ```${language}- * ${value}- * ```- *- * Note that markdown strings will be sanitized - that means html will be escaped.- */-type MarkedString = string | { language: string; value: string };--    error: code and message set in case an exception happens during the hover-    request.--Registration Options: TextDocumentRegistrationOptions---}--data LanguageString =-  LanguageString-    { _language :: Text-    , _value    :: Text-    } deriving (Read,Show,Eq)--deriveJSON lspOptions ''LanguageString-makeFieldsNoPrefix ''LanguageString--data MarkedString =-    PlainString T.Text-  | CodeString LanguageString-    deriving (Eq,Read,Show)--instance ToJSON MarkedString where-  toJSON (PlainString x) = toJSON x-  toJSON (CodeString  x) = toJSON x-instance FromJSON MarkedString where-  parseJSON (A.String t) = pure $ PlainString t-  parseJSON o            = CodeString <$> parseJSON o--data Hover =-  Hover-    { _contents :: List MarkedString-    , _range    :: Maybe Range-    } deriving (Read,Show,Eq)--deriveJSON lspOptions ''Hover-makeFieldsNoPrefix ''Hover---type HoverRequest = RequestMessage ClientMethod TextDocumentPositionParams Hover-type HoverResponse = ResponseMessage Hover---- ----------------------------------------------------------------------{--Signature Help Request--https://github.com/Microsoft/language-server-protocol/blob/master/protocol.md#signature-help-request--The signature help request is sent from the client to the server to request-signature information at a given cursor position.--    Changed: In 2.0 the request uses TextDocumentPositionParams with proper-    textDocument and position properties. In 1.0 the uri of the referenced text-    document was inlined into the params object.--Request--    method: 'textDocument/signatureHelp'-    params: TextDocumentPositionParams--Response--    result: SignatureHelp defined as follows:--/**- * Signature help represents the signature of something- * callable. There can be multiple signature but only one- * active and only one active parameter.- */-interface SignatureHelp {-    /**-     * One or more signatures.-     */-    signatures: SignatureInformation[];--    /**-     * The active signature.-     */-    activeSignature?: number;--    /**-     * The active parameter of the active signature.-     */-    activeParameter?: number;-}--/**- * Represents the signature of something callable. A signature- * can have a label, like a function-name, a doc-comment, and- * a set of parameters.- */-interface SignatureInformation {-    /**-     * The label of this signature. Will be shown in-     * the UI.-     */-    label: string;--    /**-     * The human-readable doc-comment of this signature. Will be shown-     * in the UI but can be omitted.-     */-    documentation?: string;--    /**-     * The parameters of this signature.-     */-    parameters?: ParameterInformation[];-}--/**- * Represents a parameter of a callable-signature. A parameter can- * have a label and a doc-comment.- */-interface ParameterInformation {-    /**-     * The label of this signature. Will be shown in-     * the UI.-     */-    label: string;--    /**-     * The human-readable doc-comment of this signature. Will be shown-     * in the UI but can be omitted.-     */-    documentation?: string;-}--    error: code and message set in case an exception happens during the-    signature help request.--}---data ParameterInformation =-  ParameterInformation-    { _label         :: Text-    , _documentation :: Maybe Text-    } deriving (Read,Show,Eq)-deriveJSON lspOptions ''ParameterInformation-makeFieldsNoPrefix ''ParameterInformation----- ---------------------------------------data SignatureInformation =-  SignatureInformation-    { _label         :: Text-    , _documentation :: Maybe Text-    , _parameters    :: Maybe [ParameterInformation]-    } deriving (Read,Show,Eq)--deriveJSON lspOptions ''SignatureInformation-makeFieldsNoPrefix ''SignatureInformation--data SignatureHelp =-  SignatureHelp-    { _signatures      :: List SignatureInformation-    , _activeSignature :: Maybe Int -- ^ The active signature-    , _activeParameter :: Maybe Int -- ^ The active parameter of the active signature-    } deriving (Read,Show,Eq)--deriveJSON lspOptions ''SignatureHelp-makeFieldsNoPrefix ''SignatureHelp--type SignatureHelpRequest = RequestMessage ClientMethod TextDocumentPositionParams SignatureHelp-type SignatureHelpResponse = ResponseMessage SignatureHelp---- --------------------------------------{--New in 3.0------------Registration Options: SignatureHelpRegistrationOptions defined as follows:--export interface SignatureHelpRegistrationOptions extends TextDocumentRegistrationOptions {-        /**-         * The characters that trigger signature help-         * automatically.-         */-        triggerCharacters?: string[];-}--}--data SignatureHelpRegistrationOptions =-  SignatureHelpRegistrationOptions-    { _documentSelector  :: Maybe DocumentSelector-    , _triggerCharacters :: Maybe (List String)-    } deriving (Show, Read, Eq)--deriveJSON lspOptions ''SignatureHelpRegistrationOptions-makeFieldsNoPrefix ''SignatureHelpRegistrationOptions---- ----------------------------------------------------------------------{--Goto Definition Request--https://github.com/Microsoft/language-server-protocol/blob/master/protocol.md#goto-definition-request--The goto definition request is sent from the client to the server to resolve the-definition location of a symbol at a given text document position.--    Changed: In 2.0 the request uses TextDocumentPositionParams with proper-    textDocument and position properties. In 1.0 the uri of the referenced text-    document was inlined into the params object.--Request--    method: 'textDocument/definition'-    params: TextDocumentPositionParams--Response:--    result: Location | Location[]-    error: code and message set in case an exception happens during the definition request.----}---- {"jsonrpc":"2.0","id":1,"method":"textDocument/definition","params":{"textDocument":{"uri":"file:///tmp/Foo.hs"},"position":{"line":1,"character":8}}}--data LocationResponseParams = SingleLoc Location | MultiLoc [Location]-  deriving (Eq,Read,Show)--instance A.ToJSON LocationResponseParams where-  toJSON (SingleLoc x) = toJSON x-  toJSON (MultiLoc xs) = toJSON xs--instance A.FromJSON LocationResponseParams where-  parseJSON xs@(A.Array _) = MultiLoc <$> parseJSON xs-  parseJSON x              = SingleLoc <$> parseJSON x--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--The references request is sent from the client to the server to resolve-project-wide references for the symbol denoted by the given text document-position.--    Changed: In 2.0 the request uses TextDocumentPositionParams with proper-    textDocument and position properties. In 1.0 the uri of the referenced text-    document was inlined into the params object.--Request--    method: 'textDocument/references'-    params: ReferenceParams defined as follows:--interface ReferenceParams extends TextDocumentPositionParams {-    context: ReferenceContext-}--interface ReferenceContext {-    /**-     * Include the declaration of the current symbol.-     */-    includeDeclaration: boolean;-}--Response:--    result: Location[]-    error: code and message set in case an exception happens during the-           reference request.--}--data ReferenceContext =-  ReferenceContext-    { _includeDeclaration :: Bool-    } deriving (Read,Show,Eq)--deriveJSON lspOptions ''ReferenceContext-makeFieldsNoPrefix ''ReferenceContext---data ReferenceParams =-  ReferenceParams-    { _textDocument :: TextDocumentIdentifier-    , _position     :: Position-    , _context      :: ReferenceContext-    } deriving (Read,Show,Eq)--deriveJSON lspOptions ''ReferenceParams-makeFieldsNoPrefix ''ReferenceParams---type ReferencesRequest  = RequestMessage ClientMethod ReferenceParams (List Location)-type ReferencesResponse = ResponseMessage (List Location)---- ----------------------------------------------------------------------{--Document Highlights Request--https://github.com/Microsoft/language-server-protocol/blob/master/protocol.md#document-highlights-request--The document highlight request is sent from the client to the server to resolve-a document highlights for a given text document position. For programming-languages this usually highlights all references to the symbol scoped to this-file. However we kept 'textDocument/documentHighlight' and-'textDocument/references' separate requests since the first one is allowed to be-more fuzzy. Symbol matches usually have a DocumentHighlightKind of Read or Write-whereas fuzzy or textual matches use Textas the kind.--    Changed: In 2.0 the request uses TextDocumentPositionParams with proper-    textDocument and position properties. In 1.0 the uri of the referenced text-    document was inlined into the params object.--Request--    method: 'textDocument/documentHighlight'-    params: TextDocumentPositionParams--Response--    result: DocumentHighlight[] defined as follows:--/**- * A document highlight is a range inside a text document which deserves- * special attention. Usually a document highlight is visualized by changing- * the background color of its range.- *- */-interface DocumentHighlight {-    /**-     * The range this highlight applies to.-     */-    range: Range;--    /**-     * The highlight kind, default is DocumentHighlightKind.Text.-     */-    kind?: number;-}--/**- * A document highlight kind.- */-enum DocumentHighlightKind {-    /**-     * A textual occurrance.-     */-    Text = 1,--    /**-     * Read-access of a symbol, like reading a variable.-     */-    Read = 2,--    /**-     * Write-access of a symbol, like writing to a variable.-     */-    Write = 3-}--    error: code and message set in case an exception happens during the document-           highlight request.--Registration Options: TextDocumentRegistrationOptions---}--data DocumentHighlightKind = HkText | HkRead | HkWrite-  deriving (Read,Show,Eq)--instance A.ToJSON DocumentHighlightKind where-  toJSON HkText  = A.Number 1-  toJSON HkRead  = A.Number 2-  toJSON HkWrite = A.Number 3--instance A.FromJSON DocumentHighlightKind where-  parseJSON (A.Number 1) = pure HkText-  parseJSON (A.Number 2) = pure HkRead-  parseJSON (A.Number 3) = pure HkWrite-  parseJSON _            = mempty---- ---------------------------------------data DocumentHighlight =-  DocumentHighlight-    { _range :: Range-    , _kind  :: Maybe DocumentHighlightKind-    } deriving (Read,Show,Eq)--deriveJSON lspOptions ''DocumentHighlight-makeFieldsNoPrefix ''DocumentHighlight--type DocumentHighlightRequest = RequestMessage ClientMethod TextDocumentPositionParams (List DocumentHighlight)-type DocumentHighlightsResponse = ResponseMessage (List DocumentHighlight)---- ----------------------------------------------------------------------{--Workspace Symbols Request--https://github.com/Microsoft/language-server-protocol/blob/master/protocol.md#workspace-symbols-request--The workspace symbol request is sent from the client to the server to list-project-wide symbols matching the query string.--Request--    method: 'workspace/symbol'-    params: WorkspaceSymbolParams defined as follows:--/**- * The parameters of a Workspace Symbol Request.- */-interface WorkspaceSymbolParams {-    /**-     * A non-empty query string-     */-    query: string;-}--Response--    result: SymbolInformation[] as defined above.-    error: code and message set in case an exception happens during the-           workspace symbol request.--}--data WorkspaceSymbolParams =-  WorkspaceSymbolParams-    { _query :: Text-    } deriving (Read,Show,Eq)--deriveJSON lspOptions ''WorkspaceSymbolParams-makeFieldsNoPrefix ''WorkspaceSymbolParams--type WorkspaceSymbolRequest  = RequestMessage ClientMethod WorkspaceSymbolParams (List SymbolInformation)-type WorkspaceSymbolsResponse = ResponseMessage (List SymbolInformation)---- ----------------------------------------------------------------------{--Code Lens Request--The code lens request is sent from the client to the server to compute code-lenses for a given text document.--    Changed: In 2.0 the request uses CodeLensParams instead of a single uri.--Request--    method: 'textDocument/codeLens'-    params: CodeLensParams defined as follows:--interface CodeLensParams {-    /**-     * The document to request code lens for.-     */-    textDocument: TextDocumentIdentifier;-}--Response--    result: CodeLens[] defined as follows:--/**- * A code lens represents a command that should be shown along with- * source text, like the number of references, a way to run tests, etc.- *- * A code lens is _unresolved_ when no command is associated to it. For performance- * reasons the creation of a code lens and resolving should be done in two stages.- */-interface CodeLens {-    /**-     * The range in which this code lens is valid. Should only span a single line.-     */-    range: Range;--    /**-     * The command this code lens represents.-     */-    command?: Command;--    /**-     * A data entry field that is preserved on a code lens item between-     * a code lens and a code lens resolve request.-     */-    data?: any-}--    error: code and message set in case an exception happens during the code-           lens request.--}--data CodeLensParams =-  CodeLensParams-    { _textDocument :: TextDocumentIdentifier-    } deriving (Read,Show,Eq)--deriveJSON lspOptions ''CodeLensParams-makeFieldsNoPrefix ''CodeLensParams----- ---------------------------------------data CodeLens =-  CodeLens-    { _range   :: Range-    , _command :: Maybe Command-    , _xdata   :: Maybe A.Value-    } deriving (Read,Show,Eq)--deriveJSON lspOptions{ fieldLabelModifier = customModifier } ''CodeLens-makeFieldsNoPrefix ''CodeLens---type CodeLensRequest = RequestMessage ClientMethod CodeLensParams (List CodeLens)-type CodeLensResponse = ResponseMessage (List CodeLens)---- --------------------------------------{--Registration Options: CodeLensRegistrationOptions defined as follows:--export interface CodeLensRegistrationOptions extends TextDocumentRegistrationOptions {-        /**-         * Code lens has a resolve provider as well.-         */-        resolveProvider?: boolean;-}--}--data CodeLensRegistrationOptions =-  CodeLensRegistrationOptions-    { _documentSelector :: Maybe DocumentSelector-    , _resolveProvider  :: Maybe Bool-    } deriving (Show, Read, Eq)--deriveJSON lspOptions ''CodeLensRegistrationOptions-makeFieldsNoPrefix ''CodeLensRegistrationOptions---- ----------------------------------------------------------------------{--Code Lens Resolve Request--https://github.com/Microsoft/language-server-protocol/blob/master/protocol.md#code-lens-resolve-request--The code lens resolve request is sent from the client to the server to resolve-the command for a given code lens item.--Request--    method: 'codeLens/resolve'-    params: CodeLens--Response--    result: CodeLens-    error: code and message set in case an exception happens during the code-           lens resolve request.----}--type CodeLensResolveRequest  = RequestMessage ClientMethod CodeLens (List CodeLens)-type CodeLensResolveResponse = ResponseMessage (List CodeLens)---- ----------------------------------------------------------------------{--New in 3.0-------------Document Link Request--The document links request is sent from the client to the server to request the-location of links in a document.--Request:--    method: 'textDocument/documentLink'-    params: DocumentLinkParams, defined as follows--interface DocumentLinkParams {-        /**-         * The document to provide document links for.-         */-        textDocument: TextDocumentIdentifier;-}--Response:--    result: An array of DocumentLink, or null.--/**- * A document link is a range in a text document that links to an internal or external resource, like another- * text document or a web site.- */-interface DocumentLink {-        /**-         * The range this link applies to.-         */-        range: Range;-        /**-         * The uri this link points to. If missing a resolve request is sent later.-         */-        target?: DocumentUri;-}--    error: code and message set in case an exception happens during the document link request.--Registration Options: DocumentLinkRegistrationOptions defined as follows:--export interface DocumentLinkRegistrationOptions extends TextDocumentRegistrationOptions {-        /**-         * Document links have a resolve provider as well.-         */-        resolveProvider?: boolean;-}--}--data DocumentLinkParams =-  DocumentLinkParams-    { _textDocument :: TextDocumentIdentifier-    } deriving (Read,Show,Eq)--deriveJSON lspOptions ''DocumentLinkParams-makeFieldsNoPrefix ''DocumentLinkParams--data DocumentLink =-  DocumentLink-    { _range  :: Range-    , _target :: Maybe Text-    } deriving (Show, Read, Eq)--deriveJSON lspOptions ''DocumentLink-makeFieldsNoPrefix ''DocumentLink--type DocumentLinkRequest = RequestMessage ClientMethod DocumentLinkParams (List DocumentLink)-type DocumentLinkResponse = ResponseMessage (List DocumentLink)---- ----------------------------------------------------------------------{--New in 3.0-------------Document Link Resolve Request--The document link resolve request is sent from the client to the server to resolve the target of a given document link.--Request:--    method: 'documentLink/resolve'-    params: DocumentLink--Response:--    result: DocumentLink-    error: code and message set in case an exception happens during the document link resolve request.---}--type DocumentLinkResolveRequest  = RequestMessage ClientMethod DocumentLink DocumentLink-type DocumentLinkResolveResponse = ResponseMessage DocumentLink---- ----------------------------------------------------------------------{--Document Formatting Request--https://github.com/Microsoft/language-server-protocol/blob/master/protocol.md#document-formatting-request--The document formatting request is sent from the server to the client to format-a whole document.--Request--    method: 'textDocument/formatting'-    params: DocumentFormattingParams defined as follows--interface DocumentFormattingParams {-    /**-     * The document to format.-     */-    textDocument: TextDocumentIdentifier;--    /**-     * The format options.-     */-    options: FormattingOptions;-}--/**- * Value-object describing what options formatting should use.- */-interface FormattingOptions {-    /**-     * Size of a tab in spaces.-     */-    tabSize: number;--    /**-     * Prefer spaces over tabs.-     */-    insertSpaces: boolean;--    /**-     * Signature for further properties.-     */-    [key: string]: boolean | number | string;-}--Response--    result: TextEdit[] describing the modification to the document to be-            formatted.-    error: code and message set in case an exception happens during the-           formatting request.--Registration Options: TextDocumentRegistrationOptions--}--data FormattingOptions =-  FormattingOptions-    { _tabSize      :: Int-    , _insertSpaces :: Bool -- ^ Prefer spaces over tabs-    -- Note: May be more properties-    } deriving (Read,Show,Eq)--deriveJSON lspOptions ''FormattingOptions-makeFieldsNoPrefix ''FormattingOptions--data DocumentFormattingParams =-  DocumentFormattingParams-    { _textDocument :: TextDocumentIdentifier-    , _options      :: FormattingOptions-    } deriving (Show,Read,Eq)--deriveJSON lspOptions ''DocumentFormattingParams-makeFieldsNoPrefix ''DocumentFormattingParams--type DocumentFormattingRequest  = RequestMessage ClientMethod DocumentFormattingParams (List TextEdit)-type DocumentFormattingResponse = ResponseMessage (List TextEdit)---- ----------------------------------------------------------------------{--Document Range Formatting Request--https://github.com/Microsoft/language-server-protocol/blob/master/protocol.md#document-range-formatting-request--The document range formatting request is sent from the client to the server to-format a given range in a document.--Request--    method: 'textDocument/rangeFormatting',-    params: DocumentRangeFormattingParams defined as follows--interface DocumentRangeFormattingParams {-    /**-     * The document to format.-     */-    textDocument: TextDocumentIdentifier;--    /**-     * The range to format-     */-    range: Range;--    /**-     * The format options-     */-    options: FormattingOptions;-}--Response--    result: TextEdit[] describing the modification to the document to be-            formatted.-    error: code and message set in case an exception happens during the range-           formatting request.--}--data DocumentRangeFormattingParams =-  DocumentRangeFormattingParams-    { _textDocument :: TextDocumentIdentifier-    , _range        :: Range-    , _options      :: FormattingOptions-    } deriving (Read,Show,Eq)--deriveJSON lspOptions ''DocumentRangeFormattingParams-makeFieldsNoPrefix ''DocumentRangeFormattingParams--type DocumentRangeFormattingRequest  = RequestMessage ClientMethod DocumentRangeFormattingParams (List TextEdit)-type DocumentRangeFormattingResponse = ResponseMessage (List TextEdit)---- ----------------------------------------------------------------------{--Document on Type Formatting Request--https://github.com/Microsoft/language-server-protocol/blob/master/protocol.md#document-on-type-formatting-request--The document on type formatting request is sent from the client to the server to-format parts of the document during typing.--Request--    method: 'textDocument/onTypeFormatting'-    params: DocumentOnTypeFormattingParams defined as follows--interface DocumentOnTypeFormattingParams {-    /**-     * The document to format.-     */-    textDocument: TextDocumentIdentifier;--    /**-     * The position at which this request was sent.-     */-    position: Position;--    /**-     * The character that has been typed.-     */-    ch: string;--    /**-     * The format options.-     */-    options: FormattingOptions;-}--Response--    result: TextEdit[] describing the modification to the document.-    error: code and message set in case an exception happens during the range-           formatting request.--Registration Options: DocumentOnTypeFormattingRegistrationOptions defined as follows:--export interface DocumentOnTypeFormattingRegistrationOptions extends TextDocumentRegistrationOptions {-        /**-         * A character on which formatting should be triggered, like `}`.-         */-        firstTriggerCharacter: string;-        /**-         * More trigger characters.-         */-        moreTriggerCharacter?: string[]-}--}--data DocumentOnTypeFormattingParams =-  DocumentOnTypeFormattingParams-    { _textDocument :: TextDocumentIdentifier-    , _position     :: Position-    , _ch           :: Text-    , _options      :: FormattingOptions-    } deriving (Read,Show,Eq)--deriveJSON lspOptions ''DocumentOnTypeFormattingParams-makeFieldsNoPrefix ''DocumentOnTypeFormattingParams--type DocumentOnTypeFormattingRequest  = RequestMessage ClientMethod DocumentOnTypeFormattingParams (List TextEdit)-type DocumentOnTypeFormattingResponse = ResponseMessage (List TextEdit)--data DocumentOnTypeFormattingRegistrationOptions =-  DocumentOnTypeFormattingRegistrationOptions-    { _firstTriggerCharacter :: Text-    , _moreTriggerCharacter  :: Maybe (List String)-    } deriving (Show, Read, Eq)--deriveJSON lspOptions ''DocumentOnTypeFormattingRegistrationOptions---- ----------------------------------------------------------------------{--Rename Request--https://github.com/Microsoft/language-server-protocol/blob/master/protocol.md#rename-request--The rename request is sent from the client to the server to perform a-workspace-wide rename of a symbol.--Request--    method: 'textDocument/rename'-    params: RenameParams defined as follows--interface RenameParams {-    /**-     * The document to format.-     */-    textDocument: TextDocumentIdentifier;--    /**-     * The position at which this request was sent.-     */-    position: Position;--    /**-     * The new name of the symbol. If the given name is not valid the-     * request must return a [ResponseError](#ResponseError) with an-     * appropriate message set.-     */-    newName: string;-}--Response--    result: WorkspaceEdit describing the modification to the workspace.-    error: code and message set in case an exception happens during the rename-           request.--Registration Options: TextDocumentRegistrationOptions---}-data RenameParams =-  RenameParams-    { _textDocument :: TextDocumentIdentifier-    , _position     :: Position-    , _newName      :: Text-    } deriving (Show, Read, Eq)--deriveJSON lspOptions ''RenameParams-makeFieldsNoPrefix ''RenameParams----- {\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"textDocument/rename\",\"params\":{\"textDocument\":{\"uri\":\"file:///home/alanz/mysrc/github/alanz/haskell-lsp/src/HieVscode.hs\"},\"position\":{\"line\":37,\"character\":17},\"newName\":\"getArgs'\"}}--type RenameRequest  = RequestMessage ClientMethod RenameParams WorkspaceEdit-type RenameResponse = ResponseMessage WorkspaceEdit---- ----------------------------------------------------------------------{--New in 3.0-------------Execute a command--The workspace/executeCommand request is sent from the client to the server to-trigger command execution on the server. In most cases the server creates a-WorkspaceEdit structure and applies the changes to the workspace using the-request workspace/applyEdit which is sent from the server to the client.--Request:--    method: 'workspace/executeCommand'-    params: ExecuteCommandParams defined as follows:--export interface ExecuteCommandParams {--        /**-         * The identifier of the actual command handler.-         */-        command: string;-        /**-         * Arguments that the command should be invoked with.-         */-        arguments?: any[];-}--The arguments are typically specified when a command is returned from the server-to the client. Example requests that return a command are-textDocument/codeAction or textDocument/codeLens.--Response:--    result: any-    error: code and message set in case an exception happens during the request.--Registration Options: ExecuteCommandRegistrationOptions defined as follows:--/**- * Execute command registration options.- */-export interface ExecuteCommandRegistrationOptions {-        /**-         * The commands to be executed on the server-         */-        commands: string[]-}--}--data ExecuteCommandParams =-  ExecuteCommandParams-    { _command   :: Text-    , _arguments :: Maybe (List A.Value)-    } deriving (Show, Read, Eq)--deriveJSON lspOptions ''ExecuteCommandParams-makeFieldsNoPrefix ''ExecuteCommandParams--type ExecuteCommandRequest = RequestMessage ClientMethod ExecuteCommandParams A.Value-type ExecuteCommandResponse = ResponseMessage A.Value--data ExecuteCommandRegistrationOptions =-  ExecuteCommandRegistrationOptions-    { _commands :: List Text-    } deriving (Show, Read, Eq)--deriveJSON lspOptions ''ExecuteCommandRegistrationOptions-makeFieldsNoPrefix ''ExecuteCommandRegistrationOptions---- ----------------------------------------------------------------------{--New in 3.0-------------Applies a WorkspaceEdit--The workspace/applyEdit request is sent from the server to the client to modify-resource on the client side.--Request:--    method: 'workspace/applyEdit'-    params: ApplyWorkspaceEditParams defined as follows:--export interface ApplyWorkspaceEditParams {-        /**-         * The edits to apply.-         */-        edit: WorkspaceEdit;-}--Response:--    result: ApplyWorkspaceEditResponse defined as follows:--export interface ApplyWorkspaceEditResponse {-        /**-         * Indicates whether the edit was applied or not.-         */-        applied: boolean;-}--    error: code and message set in case an exception happens during the request.---}-data ApplyWorkspaceEditParams =-  ApplyWorkspaceEditParams-    { _edit :: WorkspaceEdit-    } deriving (Show, Read, Eq)--deriveJSON lspOptions ''ApplyWorkspaceEditParams-makeFieldsNoPrefix ''ApplyWorkspaceEditParams--data ApplyWorkspaceEditResponseBody =-  ApplyWorkspaceEditResponseBody-    { _applied :: Bool-    } deriving (Show, Read, Eq)--deriveJSON lspOptions ''ApplyWorkspaceEditResponseBody-makeFieldsNoPrefix ''ApplyWorkspaceEditResponseBody---- | Sent from the server to the client-type ApplyWorkspaceEditRequest  = RequestMessage ServerMethod ApplyWorkspaceEditParams ApplyWorkspaceEditResponseBody-type ApplyWorkspaceEditResponse = ResponseMessage ApplyWorkspaceEditResponseBody---- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%---- -----------------------------------------------------------------------data TraceParams =-  TraceParams {-    _value :: Text-  } deriving (Show, Read, Eq)--deriveJSON lspOptions ''TraceParams-makeFieldsNoPrefix ''TraceParams---data TraceNotification =-  TraceNotification {-    _params :: TraceParams-  } deriving (Show, Read, Eq)--deriveJSON lspOptions ''TraceNotification-makeFieldsNoPrefix ''TraceNotification------ ------------------------------------------------------------------------- Generating lenses--- Need to do this all in one file or else we get duplicate functions---- Location-makeFieldsNoPrefix ''Position-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-makeFieldsNoPrefix ''TextDocumentEdit-makeFieldsNoPrefix ''WorkspaceEdit---- Message-makeFieldsNoPrefix ''RequestMessage-makeFieldsNoPrefix ''ResponseError-makeFieldsNoPrefix ''ResponseMessage-makeFieldsNoPrefix ''NotificationMessage-makeFieldsNoPrefix ''CancelParams---- TextDocument-makeFieldsNoPrefix ''TextDocumentItem-makeFieldsNoPrefix ''TextDocumentIdentifier-makeFieldsNoPrefix ''TextDocumentPositionParams---- Command-makeFieldsNoPrefix ''Command---- Diagnostic-makeFieldsNoPrefix ''Diagnostic-makeFieldsNoPrefix ''DiagnosticRelatedInformation---- Symbol-makeFieldsNoPrefix ''DocumentSymbolParams-makeFieldsNoPrefix ''DocumentSymbol-makeFieldsNoPrefix ''SymbolInformation
− src/Language/Haskell/LSP/TH/Diagnostic.hs
@@ -1,139 +0,0 @@-{-# LANGUAGE DuplicateRecordFields      #-}-{-# LANGUAGE TemplateHaskell            #-}--module Language.Haskell.LSP.TH.Diagnostic where--import qualified Data.Aeson                                 as A-import           Data.Aeson.TH-import           Data.Text-import           Language.Haskell.LSP.TH.Constants-import           Language.Haskell.LSP.TH.List-import           Language.Haskell.LSP.TH.Location---- ----------------------------------------------------------------------{--The protocol currently supports the following diagnostic severities:--enum DiagnosticSeverity {-    /**-     * Reports an error.-     */-    Error = 1,-    /**-     * Reports a warning.-     */-    Warning = 2,-    /**-     * Reports an information.-     */-    Information = 3,-    /**-     * Reports a hint.-     */-    Hint = 4-}--}-data DiagnosticSeverity-  = DsError   -- ^ Error = 1,-  | DsWarning -- ^ Warning = 2,-  | DsInfo    -- ^ Info = 3,-  | DsHint    -- ^ Hint = 4-  deriving (Eq,Ord,Show,Read)--instance A.ToJSON DiagnosticSeverity where-  toJSON DsError   = A.Number 1-  toJSON DsWarning = A.Number 2-  toJSON DsInfo    = A.Number 3-  toJSON DsHint    = A.Number 4--instance A.FromJSON DiagnosticSeverity where-  parseJSON (A.Number 1) = pure DsError-  parseJSON (A.Number 2) = pure DsWarning-  parseJSON (A.Number 3) = pure DsInfo-  parseJSON (A.Number 4) = pure DsHint-  parseJSON _            = mempty---- ----------------------------------------------------------------------{--Represents a related message and source code location for a diagnostic. This should be-used to point to code locations that cause or related to a diagnostics, e.g when duplicating-a symbol in a scope.--export interface DiagnosticRelatedInformation {-  /**-   * The location of this related diagnostic information.-   */-  location: Location;--  /**-   * The message of this related diagnostic information.-   */-  message: string;-}--}--data DiagnosticRelatedInformation =-  DiagnosticRelatedInformation-    { _location :: Location-    , _message  :: Text-    } deriving (Show, Read, Eq, Ord)--deriveJSON lspOptions ''DiagnosticRelatedInformation---- ----------------------------------------------------------------------{--Diagnostic--https://github.com/Microsoft/language-server-protocol/blob/master/protocol.md#diagnostic--Represents a diagnostic, such as a compiler error or warning. Diagnostic objects-are only valid in the scope of a resource.--interface Diagnostic {-    /**-     * The range at which the message applies.-     */-    range: Range;--    /**-     * The diagnostic's severity. Can be omitted. If omitted it is up to the-     * client to interpret diagnostics as error, warning, info or hint.-     */-    severity?: number;--    /**-     * The diagnostic's code. Can be omitted.-     */-    code?: number | string;--    /**-     * A human-readable string describing the source of this-     * diagnostic, e.g. 'typescript' or 'super lint'.-     */-    source?: string;--    /**-     * The diagnostic's message.-     */-    message: string;--    /**-     * An array of related diagnostic information, e.g. when symbol-names within-     * a scope collide all definitions can be marked via this property.-     */-    relatedInformation?: DiagnosticRelatedInformation[];-}--}--type DiagnosticSource = Text-data Diagnostic =-  Diagnostic-    { _range              :: Range-    , _severity           :: Maybe DiagnosticSeverity-    , _code               :: Maybe Text -- Note: Protocol allows Int too.-    , _source             :: Maybe DiagnosticSource-    , _message            :: Text-    , _relatedInformation :: Maybe (List DiagnosticRelatedInformation)-    } deriving (Show, Read, Eq, Ord)--deriveJSON lspOptions ''Diagnostic
− src/Language/Haskell/LSP/TH/DocumentFilter.hs
@@ -1,55 +0,0 @@-{-# 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/List.hs
@@ -1,26 +0,0 @@--- Need to split these types out into a separate module since--- ClientCapabilities also depends on them-{-# LANGUAGE CPP #-}-{-# LANGUAGE GeneralizedNewtypeDeriving #-}-{-# LANGUAGE DeriveTraversable          #-}-module Language.Haskell.LSP.TH.List where--import qualified Data.Aeson                                 as A-import           Data.Aeson.Types---- | This data type is used to host a FromJSON instance for the encoding used by--- elisp, where an empty list shows up as "null"-newtype List a = List [a]-                deriving (Show,Read,Eq,Ord,Monoid,Functor,Foldable,Traversable)--instance (A.ToJSON a) => A.ToJSON (List a) where-  toJSON (List ls) = toJSON ls--instance (A.FromJSON a) => A.FromJSON (List a) where-  parseJSON A.Null = return (List [])-  parseJSON v      = List <$> parseJSON v--#if __GLASGOW_HASKELL__ >= 804-instance Semigroup (List a) where-  (<>) = mappend-#endif
− src/Language/Haskell/LSP/TH/Location.hs
@@ -1,93 +0,0 @@-{-# LANGUAGE TemplateHaskell            #-}-module Language.Haskell.LSP.TH.Location where--import           Data.Aeson.TH-import           Language.Haskell.LSP.TH.Constants-import           Language.Haskell.LSP.TH.Uri---- -----------------------------------------------------------------------{--The current protocol is talored for textual documents which content can be-represented as a string. There is currently no support for binary documents.-Positions inside a document (see Position definition below) are expressed as a-zero-based line and character offset. To ensure that both client and server-split the string into the same line representation the protocol specs the-following end of line sequences: '\n', '\r\n' and '\r'.--export const EOL: string[] = ['\n', '\r\n', '\r'];--}-{--https://github.com/Microsoft/language-server-protocol/blob/master/protocol.md#position--Position in a text document expressed as zero-based line and character offset. A-position is between two characters like an 'insert' cursor in a editor.--interface Position {-    /**-     * Line position in a document (zero-based).-     */-    line: number;--    /**-     * Character offset on a line in a document (zero-based).-     */-    character: number;-}--}-data Position =-  Position-    { _line      :: Int-    , _character :: Int-    } deriving (Show, Read, Eq, Ord)--deriveJSON lspOptions ''Position---- ----------------------------------------------------------------------{--https://github.com/Microsoft/language-server-protocol/blob/master/protocol.md#range--A range in a text document expressed as (zero-based) start and end positions. A-range is comparable to a selection in an editor. Therefore the end position is-exclusive.--interface Range {-    /**-     * The range's start position.-     */-    start: Position;--    /**-     * The range's end position.-     */-    end: Position;-}--}--data Range =-  Range-    { _start :: Position-    , _end   :: Position-    } deriving (Show, Read, Eq, Ord)--deriveJSON lspOptions ''Range---- ----------------------------------------------------------------------{--https://github.com/Microsoft/language-server-protocol/blob/master/protocol.md#location--Represents a location inside a resource, such as a line inside a text file.--interface Location {-    uri: string;-    range: Range;-}--}--data Location =-  Location-    { _uri   :: Uri-    , _range :: Range-    } deriving (Show, Read, Eq, Ord)--deriveJSON lspOptions ''Location
− src/Language/Haskell/LSP/TH/MarkupContent.hs
@@ -1,122 +0,0 @@-{-# 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
@@ -1,420 +0,0 @@-{-# LANGUAGE DuplicateRecordFields      #-}-{-# LANGUAGE OverloadedStrings          #-}-{-# LANGUAGE TemplateHaskell            #-}-module Language.Haskell.LSP.TH.Message where--import qualified Data.Aeson                                 as A-import           Data.Aeson.TH-import           Data.Aeson.Types-import           Data.Hashable--- For <= 8.2.2-import           Data.Monoid                                ((<>))-import           Data.Text                                  (Text)-import qualified Data.Text                                  as T-import           Language.Haskell.LSP.TH.Constants----- | Id used for a request, Can be either a String or an Int-data LspId = IdInt Int | IdString Text-            deriving (Show,Read,Eq,Ord)--instance A.ToJSON LspId where-  toJSON (IdInt i)    = toJSON i-  toJSON (IdString s) = toJSON s--instance A.FromJSON LspId where-  parseJSON v@(A.Number _) = IdInt <$> parseJSON v-  parseJSON  (A.String  s) = return (IdString s)-  parseJSON _              = mempty--instance Hashable LspId where-  hashWithSalt salt (IdInt i) = hashWithSalt salt i-  hashWithSalt salt (IdString s) = hashWithSalt salt s---- ------------------------------------------------------------------------- | Id used for a response, Can be either a String or an Int, or Null. If a--- request doesn't provide a result value the receiver of a request still needs--- to return a response message to conform to the JSON RPC specification. The--- result property of the ResponseMessage should be set to null in this case to--- signal a successful request.-data LspIdRsp = IdRspInt Int | IdRspString Text | IdRspNull-            deriving (Show,Read,Eq)--instance A.ToJSON LspIdRsp where-  toJSON (IdRspInt i)    = toJSON i-  toJSON (IdRspString s) = toJSON s-  toJSON IdRspNull       = A.Null--instance A.FromJSON LspIdRsp where-  parseJSON v@(A.Number _) = IdRspInt <$> parseJSON v-  parseJSON  (A.String  s) = return $ IdRspString s-  parseJSON  A.Null        = return IdRspNull-  parseJSON _              = mempty--instance Hashable LspIdRsp where-  hashWithSalt salt (IdRspInt i) = hashWithSalt salt i-  hashWithSalt salt (IdRspString s) = hashWithSalt salt s-  hashWithSalt _ IdRspNull = 0---- | Converts an LspId to its LspIdRsp counterpart.-responseId :: LspId -> LspIdRsp-responseId (IdInt    i) = IdRspInt i-responseId (IdString s) = IdRspString s---- | Converts an LspIdRsp to its LspId counterpart.-requestId :: LspIdRsp -> LspId-requestId (IdRspInt    i) = IdInt i-requestId (IdRspString s) = IdString s-requestId IdRspNull       = error "Null response id"---- ------------------------------------------------------------------------- Client Methods-data ClientMethod =- -- General-   Initialize- | Initialized- | Shutdown- | Exit- | CancelRequest- -- Workspace- | WorkspaceDidChangeConfiguration- | WorkspaceDidChangeWatchedFiles- | WorkspaceSymbol- | WorkspaceExecuteCommand- -- Document- | TextDocumentDidOpen- | TextDocumentDidChange- | TextDocumentWillSave- | TextDocumentWillSaveWaitUntil- | TextDocumentDidSave- | TextDocumentDidClose- | TextDocumentCompletion- | CompletionItemResolve- | TextDocumentHover- | TextDocumentSignatureHelp- | TextDocumentReferences- | TextDocumentDocumentHighlight- | TextDocumentDocumentSymbol- | TextDocumentFormatting- | TextDocumentRangeFormatting- | TextDocumentOnTypeFormatting- | TextDocumentDefinition- | TextDocumentImplementation- | TextDocumentCodeAction- | TextDocumentCodeLens- | CodeLensResolve- | TextDocumentDocumentLink- | DocumentLinkResolve- | TextDocumentRename- -- Messages of the form $/message- -- Implementation Dependent, can be ignored- | Misc Text-   deriving (Eq,Ord,Read,Show)--instance A.FromJSON ClientMethod where-  -- General-  parseJSON (A.String "initialize")                       = return Initialize-  parseJSON (A.String "initialized")                      = return Initialized-  parseJSON (A.String "shutdown")                         = return Shutdown-  parseJSON (A.String "exit")                             = return Exit-  parseJSON (A.String "$/cancelRequest")                  = return CancelRequest- -- Workspace-  parseJSON (A.String "workspace/didChangeConfiguration") = return WorkspaceDidChangeConfiguration-  parseJSON (A.String "workspace/didChangeWatchedFiles")  = return WorkspaceDidChangeWatchedFiles-  parseJSON (A.String "workspace/symbol")                 = return WorkspaceSymbol-  parseJSON (A.String "workspace/executeCommand")         = return WorkspaceExecuteCommand- -- Document-  parseJSON (A.String "textDocument/didOpen")             = return TextDocumentDidOpen-  parseJSON (A.String "textDocument/didChange")           = return TextDocumentDidChange-  parseJSON (A.String "textDocument/willSave")            = return TextDocumentWillSave-  parseJSON (A.String "textDocument/willSaveWaitUntil")   = return TextDocumentWillSaveWaitUntil-  parseJSON (A.String "textDocument/didSave")             = return TextDocumentDidSave-  parseJSON (A.String "textDocument/didClose")            = return TextDocumentDidClose-  parseJSON (A.String "textDocument/completion")          = return TextDocumentCompletion-  parseJSON (A.String "completionItem/resolve")           = return CompletionItemResolve-  parseJSON (A.String "textDocument/hover")               = return TextDocumentHover-  parseJSON (A.String "textDocument/signatureHelp")       = return TextDocumentSignatureHelp-  parseJSON (A.String "textDocument/references")          = return TextDocumentReferences-  parseJSON (A.String "textDocument/documentHighlight")   = return TextDocumentDocumentHighlight-  parseJSON (A.String "textDocument/documentSymbol")      = return TextDocumentDocumentSymbol-  parseJSON (A.String "textDocument/formatting")          = return TextDocumentFormatting-  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-  parseJSON (A.String "textDocument/documentLink")        = return TextDocumentDocumentLink-  parseJSON (A.String "documentLink/resolve")             = return DocumentLinkResolve-  parseJSON (A.String "textDocument/rename")              = return TextDocumentRename-  parseJSON (A.String x)                                  = if T.isPrefixOf "$/" x-                                                               then return $ Misc (T.drop 2 x)-                                                            else mempty-  parseJSON _                                             = mempty--instance A.ToJSON ClientMethod where-  -- General-  toJSON Initialize                      = A.String "initialize"-  toJSON Initialized                     = A.String "initialized"-  toJSON Shutdown                        = A.String "shutdown"-  toJSON Exit                            = A.String "exit"-  toJSON CancelRequest                   = A.String "$/cancelRequest"-  -- Workspace-  toJSON WorkspaceDidChangeConfiguration = A.String "workspace/didChangeConfiguration"-  toJSON WorkspaceDidChangeWatchedFiles  = A.String "workspace/didChangeWatchedFiles"-  toJSON WorkspaceSymbol                 = A.String "workspace/symbol"-  toJSON WorkspaceExecuteCommand         = A.String "workspace/executeCommand"-  -- Document-  toJSON TextDocumentDidOpen             = A.String "textDocument/didOpen"-  toJSON TextDocumentDidChange           = A.String "textDocument/didChange"-  toJSON TextDocumentWillSave            = A.String "textDocument/willSave"-  toJSON TextDocumentWillSaveWaitUntil   = A.String "textDocument/willSaveWaitUntil"-  toJSON TextDocumentDidSave             = A.String "textDocument/didSave"-  toJSON TextDocumentDidClose            = A.String "textDocument/didClose"-  toJSON TextDocumentCompletion          = A.String "textDocument/completion"-  toJSON CompletionItemResolve           = A.String "completionItem/resolve"-  toJSON TextDocumentHover               = A.String "textDocument/hover"-  toJSON TextDocumentSignatureHelp       = A.String "textDocument/signatureHelp"-  toJSON TextDocumentReferences          = A.String "textDocument/references"-  toJSON TextDocumentDocumentHighlight   = A.String "textDocument/documentHighlight"-  toJSON TextDocumentDocumentSymbol      = A.String "textDocument/documentSymbol"-  toJSON TextDocumentFormatting          = A.String "textDocument/formatting"-  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"-  toJSON TextDocumentRename              = A.String "textDocument/rename"-  toJSON TextDocumentDocumentLink        = A.String "textDocument/documentLink"-  toJSON DocumentLinkResolve             = A.String "documentLink/resolve"-  toJSON (Misc xs)                       = A.String $ "$/" <> xs--data ServerMethod =-  -- Window-    WindowShowMessage-  | WindowShowMessageRequest-  | WindowLogMessage-  | TelemetryEvent-  -- Client-  | ClientRegisterCapability-  | ClientUnregisterCapability-  -- Workspace-  | WorkspaceApplyEdit-  -- Document-  | TextDocumentPublishDiagnostics-  -- Cancelling-  | CancelRequestServer-   deriving (Eq,Ord,Read,Show)--instance A.FromJSON ServerMethod where-  -- Window-  parseJSON (A.String "window/showMessage")              = return WindowShowMessage-  parseJSON (A.String "window/showMessageRequest")       = return WindowShowMessageRequest-  parseJSON (A.String "window/logMessage")               = return WindowLogMessage-  parseJSON (A.String "telemetry/event")                 = return TelemetryEvent-  -- Client-  parseJSON (A.String "client/registerCapability")       = return ClientRegisterCapability-  parseJSON (A.String "client/unregisterCapability")     = return ClientUnregisterCapability-  -- Workspace-  parseJSON (A.String "workspace/applyEdit")             = return WorkspaceApplyEdit-  -- Document-  parseJSON (A.String "textDocument/publishDiagnostics") = return TextDocumentPublishDiagnostics-  -- Cancelling-  parseJSON (A.String "$/cancelRequest")                 = return CancelRequestServer-  parseJSON _                                            = mempty--instance A.ToJSON ServerMethod where-  -- Window-  toJSON WindowShowMessage = A.String "window/showMessage"-  toJSON WindowShowMessageRequest = A.String "window/showMessageRequest"-  toJSON WindowLogMessage = A.String "window/logMessage"-  toJSON TelemetryEvent = A.String "telemetry/event"-  -- Client-  toJSON ClientRegisterCapability = A.String "client/registerCapability"-  toJSON ClientUnregisterCapability = A.String "client/unregisterCapability"-  -- Workspace-  toJSON WorkspaceApplyEdit = A.String "workspace/applyEdit"-  -- Document-  toJSON TextDocumentPublishDiagnostics = A.String "textDocument/publishDiagnostics"-  -- Cancelling-  toJSON CancelRequestServer = A.String "$/cancelRequest"--data RequestMessage m req resp =-  RequestMessage-    { _jsonrpc :: Text-    , _id      :: LspId-    , _method  :: m-    , _params  :: req-    } deriving (Read,Show,Eq)--deriveJSON lspOptions ''RequestMessage---- ----------------------------------------------------------------------{--interface ResponseError<D> {-    /**-     * A number indicating the error type that occurred.-     */-    code: number;--    /**-     * A string providing a short description of the error.-     */-    message: string;--    /**-     * A Primitive or Structured value that contains additional-     * information about the error. Can be omitted.-     */-    data?: D;-}--export namespace ErrorCodes {-        // Defined by JSON RPC-        export const ParseError: number = -32700;-        export const InvalidRequest: number = -32600;-        export const MethodNotFound: number = -32601;-        export const InvalidParams: number = -32602;-        export const InternalError: number = -32603;-        export const serverErrorStart: number = -32099;-        export const serverErrorEnd: number = -32000;-        export const ServerNotInitialized: number = -32002;-        export const UnknownErrorCode: number = -32001;--        // Defined by the protocol.-        export const RequestCancelled: number = -32800;-}--}--data ErrorCode = ParseError-               | InvalidRequest-               | MethodNotFound-               | InvalidParams-               | InternalError-               | ServerErrorStart-               | ServerErrorEnd-               | ServerNotInitialized-               | UnknownErrorCode-               | RequestCancelled-               -- ^ Note: server error codes are reserved from -32099 to -32000-               deriving (Read,Show,Eq)--instance A.ToJSON ErrorCode where-  toJSON ParseError           = A.Number (-32700)-  toJSON InvalidRequest       = A.Number (-32600)-  toJSON MethodNotFound       = A.Number (-32601)-  toJSON InvalidParams        = A.Number (-32602)-  toJSON InternalError        = A.Number (-32603)-  toJSON ServerErrorStart     = A.Number (-32099)-  toJSON ServerErrorEnd       = A.Number (-32000)-  toJSON ServerNotInitialized = A.Number (-32002)-  toJSON UnknownErrorCode     = A.Number (-32001)-  toJSON RequestCancelled     = A.Number (-32800)--instance A.FromJSON ErrorCode where-  parseJSON (A.Number (-32700)) = pure ParseError-  parseJSON (A.Number (-32600)) = pure InvalidRequest-  parseJSON (A.Number (-32601)) = pure MethodNotFound-  parseJSON (A.Number (-32602)) = pure InvalidParams-  parseJSON (A.Number (-32603)) = pure InternalError-  parseJSON (A.Number (-32099)) = pure ServerErrorStart-  parseJSON (A.Number (-32000)) = pure ServerErrorEnd-  parseJSON (A.Number (-32002)) = pure ServerNotInitialized-  parseJSON (A.Number (-32001)) = pure UnknownErrorCode-  parseJSON (A.Number (-32800)) = pure RequestCancelled-  parseJSON _                   = mempty---- ---------------------------------------data ResponseError =-  ResponseError-    { _code    :: ErrorCode-    , _message :: Text-    , _xdata   :: Maybe A.Value-    } deriving (Read,Show,Eq)--deriveJSON lspOptions{ fieldLabelModifier = customModifier } ''ResponseError---- -----------------------------------------------------------------------data ResponseMessage a =-  ResponseMessage-    { _jsonrpc :: Text-    , _id      :: LspIdRsp-    , _result  :: Maybe a-    , _error   :: Maybe ResponseError-    } deriving (Read,Show,Eq)--deriveJSON lspOptions ''ResponseMessage--type ErrorResponse = ResponseMessage ()---- -----------------------------------------------------------------------type BareResponseMessage = ResponseMessage A.Value---- ----------------------------------------------------------------------{--$ Notifications and Requests--Notification and requests ids starting with '$/' are messages which are protocol-implementation dependent and might not be implementable in all clients or-servers. For example if the server implementation uses a single threaded-synchronous programming language then there is little a server can do to react-to a '$/cancelRequest'. If a server or client receives notifications or requests-starting with '$/' it is free to ignore them if they are unknown.--}--data NotificationMessage m a =-  NotificationMessage-    { _jsonrpc :: Text-    , _method  :: m-    , _params  :: a-    } deriving (Read,Show,Eq)--deriveJSON lspOptions ''NotificationMessage---- ----------------------------------------------------------------------{--Cancellation Support--https://github.com/Microsoft/language-server-protocol/blob/master/protocol.md#cancellation-support--    New: The base protocol now offers support for request cancellation. To-    cancel a request, a notification message with the following properties is-    sent:--Notification:--    method: '$/cancelRequest'-    params: CancelParams defined as follows:--interface CancelParams {-    /**-     * The request id to cancel.-     */-    id: number | string;-}--A request that got canceled still needs to return from the server and send a-response back. It can not be left open / hanging. This is in line with the JSON-RPC protocol that requires that every request sends a response back. In addition-it allows for returning partial results on cancel.--}--data CancelParams =-  CancelParams-    { _id :: LspId-    } deriving (Read,Show,Eq)--deriveJSON lspOptions ''CancelParams--type CancelNotification = NotificationMessage ClientMethod CancelParams-type CancelNotificationServer = NotificationMessage ServerMethod CancelParams---- ---------------------------------------------------------------------
− src/Language/Haskell/LSP/TH/MessageFuncs.hs
@@ -1,310 +0,0 @@-{-# LANGUAGE GADTs               #-}-{-# LANGUAGE MultiWayIf          #-}-{-# LANGUAGE BinaryLiterals      #-}-{-# LANGUAGE OverloadedStrings   #-}-{-# LANGUAGE RankNTypes          #-}-{-# LANGUAGE ScopedTypeVariables #-}--module Language.Haskell.LSP.TH.MessageFuncs (-  -- * General-    fmClientInitializeRequest-  , fmClientInitializedNotification-  , fmClientShutdownRequest-  , fmClientExitNotification-  , fmClientCancelNotification--  -- * Window-  , fmServerShowMessageNotification-  , fmServerShowMessageRequest-  , fmServerLogMessageNotification-  , fmServerTelemetryNotification--  -- * Client-  , fmServerRegisterCapabilityRequest-  , fmServerUnregisterCapabilityRequest--  -- * Workspace-  , fmClientDidChangeConfigurationNotification-  , fmClientDidChangeWatchedFilesNotification-  , fmClientWorkspaceSymbolRequest-  , fmClientExecuteCommandRequest-  , fmServerApplyWorkspaceEditRequest--  -- * Document-  , fmServerPublishDiagnosticsNotification-  , fmClientDidOpenTextDocumentNotification-  , fmClientDidChangeTextDocumentNotification-  , fmClientWillSaveTextDocumentNotification-  , fmClientWillSaveWaitUntilRequest-  , fmClientDidSaveTextDocumentNotification-  , fmClientDidCloseTextDocumentNotification-  , fmClientCompletionRequest-  , fmClientCompletionItemResolveRequest-  , fmClientHoverRequest-  , fmClientSignatureHelpRequest-  , fmClientReferencesRequest-  , fmClientDocumentHighlightRequest-  , fmClientDocumentSymbolRequest-  , fmClientDocumentFormattingRequest-  , fmClientDocumentRangeFormattingRequest-  , fmClientDocumentOnTypeFormattingRequest-  , fmClientDefinitionRequest-  , fmClientCodeActionRequest-  , fmClientCodeLensRequest-  , fmClientCodeLensResolveRequest-  , fmClientDocumentLinkRequest-  , fmClientDocumentLinkResolveRequest-  , fmClientRenameRequest-  ) where--import qualified Data.Aeson as J-import           Data.Text ( Text )-import qualified Language.Haskell.LSP.TH.DataTypesJSON      as J---- ----------------------------------------------------------------------{-# ANN module ("HLint: ignore Eta reduce"         :: String) #-}-{-# ANN module ("HLint: ignore Redundant do"       :: String) #-}-{-# ANN module ("HLint: ignore Reduce duplication" :: String) #-}--- ------------------------------------------------------------------------- ------------------------------------------------------------------------- General--- -------------------------------------------------------------------------- * :leftwards_arrow_with_hook: [initialize](#initialize)--fmClientInitializeRequest :: J.LspId -> J.InitializeParams -> J.InitializeRequest-fmClientInitializeRequest rid params-  = J.RequestMessage  "2.0" rid J.Initialize params---- ------------------------------------------------------------------------- * **New** :arrow_right: [initialized](#initialized)---- | From 3.0-fmClientInitializedNotification :: J.InitializedNotification-fmClientInitializedNotification = J.NotificationMessage "2.0" J.Initialized Nothing---- ------------------------------------------------------------------------- * :leftwards_arrow_with_hook: [shutdown](#shutdown)--fmClientShutdownRequest :: J.LspId -> Maybe J.Value -> J.ShutdownRequest-fmClientShutdownRequest rid params-  = J.RequestMessage  "2.0" rid J.Shutdown params---- ------------------------------------------------------------------------- * :arrow_right: [exit](#exit)--fmClientExitNotification :: J.ExitNotification-fmClientExitNotification = J.NotificationMessage "2.0" J.Exit Nothing---- ------------------------------------------------------------------------- * :arrow_right: [$/cancelRequest](#cancelRequest)--fmClientCancelNotification :: J.LspId -> J.CancelNotification-fmClientCancelNotification idToCancel-  = J.NotificationMessage "2.0" J.CancelRequest  (J.CancelParams idToCancel)---- ------------------------------------------------------------------------- Window--- -------------------------------------------------------------------------- * :arrow_left: [window/showMessage](#window_showMessage)--fmServerShowMessageNotification :: J.MessageType -> Text -> J.ShowMessageNotification-fmServerShowMessageNotification mt msg-  = J.NotificationMessage "2.0" J.WindowShowMessage (J.ShowMessageParams mt msg)---- ------------------------------------------------------------------------- * :arrow_right_hook: [window/showMessageRequest](#window_showMessageRequest)--fmServerShowMessageRequest :: J.LspId -> J.ShowMessageRequestParams -> J.ShowMessageRequest-fmServerShowMessageRequest rid params-  = J.RequestMessage  "2.0" rid J.WindowShowMessageRequest params---- ------------------------------------------------------------------------- * :arrow_left: [window/logMessage](#window_logMessage)--fmServerLogMessageNotification :: J.MessageType -> Text -> J.LogMessageNotification-fmServerLogMessageNotification mt msg-  = J.NotificationMessage "2.0" J.WindowLogMessage (J.LogMessageParams mt msg)---- ------------------------------------------------------------------------- * :arrow_left: [telemetry/event](#telemetry_event)--fmServerTelemetryNotification :: J.Value  -> J.TelemetryNotification-fmServerTelemetryNotification params-  = J.NotificationMessage "2.0" J.TelemetryEvent params---- -------------------------------------------------------------------------  Client--- -------------------------------------------------------------------------- * :arrow_right_hook: [client/registerCapability](#client_registerCapability)--- | from 3.0-fmServerRegisterCapabilityRequest :: J.LspId -> J.RegistrationParams -> J.RegisterCapabilityRequest-fmServerRegisterCapabilityRequest rid params-  = J.RequestMessage  "2.0" rid J.ClientRegisterCapability params---- * :arrow_right_hook: [client/unregisterCapability](#client_unregisterCapability)--- | from 3.0-fmServerUnregisterCapabilityRequest :: J.LspId -> J.UnregistrationParams -> J.UnregisterCapabilityRequest-fmServerUnregisterCapabilityRequest rid params-  = J.RequestMessage  "2.0" rid J.ClientUnregisterCapability params---- ------------------------------------------------------------------------- Workspace--- -------------------------------------------------------------------------- * :arrow_right: [workspace/didChangeConfiguration](#workspace_didChangeConfiguration)-fmClientDidChangeConfigurationNotification :: J.DidChangeConfigurationParams -> J.DidChangeConfigurationNotification-fmClientDidChangeConfigurationNotification params-  = J.NotificationMessage "2.0" J.WorkspaceDidChangeConfiguration params---- * :arrow_right: [workspace/didChangeWatchedFiles](#workspace_didChangeWatchedFiles)-fmClientDidChangeWatchedFilesNotification :: J.DidChangeWatchedFilesParams -> J.DidChangeWatchedFilesNotification-fmClientDidChangeWatchedFilesNotification params-  = J.NotificationMessage "2.0" J.WorkspaceDidChangeWatchedFiles params---- * :leftwards_arrow_with_hook: [workspace/symbol](#workspace_symbol)-fmClientWorkspaceSymbolRequest :: J.LspId -> J.WorkspaceSymbolParams -> J.WorkspaceSymbolRequest-fmClientWorkspaceSymbolRequest rid params-  = J.RequestMessage  "2.0" rid J.WorkspaceSymbol params---- * **New** :leftwards_arrow_with_hook: [workspace/executeCommand](#workspace_executeCommand)--- | From 3.0-fmClientExecuteCommandRequest :: J.LspId -> J.ExecuteCommandParams -> J.ExecuteCommandRequest-fmClientExecuteCommandRequest rid params-  = J.RequestMessage  "2.0" rid J.WorkspaceExecuteCommand params---- * **New** :arrow_right_hook: [workspace/applyEdit](#workspace_applyEdit)--- | From 3.0-fmServerApplyWorkspaceEditRequest :: J.LspId -> J.ApplyWorkspaceEditParams -> J.ApplyWorkspaceEditRequest-fmServerApplyWorkspaceEditRequest rid params-  = J.RequestMessage  "2.0" rid J.WorkspaceApplyEdit params---- ----------------------------------------------------------------------- -- Document--- -------------------------------------------------------------------------- * :arrow_left: [textDocument/publishDiagnostics](#textDocument_publishDiagnostics)-fmServerPublishDiagnosticsNotification :: J.PublishDiagnosticsParams -> J.PublishDiagnosticsNotification-fmServerPublishDiagnosticsNotification params-  = J.NotificationMessage "2.0" J.TextDocumentPublishDiagnostics params---- * :arrow_right: [textDocument/didOpen](#textDocument_didOpen)-fmClientDidOpenTextDocumentNotification :: J.DidOpenTextDocumentParams -> J.DidOpenTextDocumentNotification-fmClientDidOpenTextDocumentNotification params-  = J.NotificationMessage "2.0" J.TextDocumentDidOpen params---- * :arrow_right: [textDocument/didChange](#textDocument_didChange)-fmClientDidChangeTextDocumentNotification :: J.DidChangeTextDocumentParams -> J.DidChangeTextDocumentNotification-fmClientDidChangeTextDocumentNotification params-  = J.NotificationMessage "2.0" J.TextDocumentDidChange params---- * :arrow_right: [textDocument/willSave](#textDocument_willSave)-fmClientWillSaveTextDocumentNotification :: J.WillSaveTextDocumentParams -> J.WillSaveTextDocumentNotification-fmClientWillSaveTextDocumentNotification params-  = J.NotificationMessage "2.0" J.TextDocumentWillSave params---- * **New** :leftwards_arrow_with_hook: [textDocument/willSaveWaitUntil](#textDocument_willSaveWaitUntil)--- | From 3.0-fmClientWillSaveWaitUntilRequest :: J.LspId -> J.WillSaveTextDocumentParams -> J.WillSaveWaitUntilTextDocumentRequest-fmClientWillSaveWaitUntilRequest rid params-  = J.RequestMessage "2.0" rid J.TextDocumentWillSaveWaitUntil params---- * **New** :arrow_right: [textDocument/didSave](#textDocument_didSave)--- | 3.0-fmClientDidSaveTextDocumentNotification :: J.DidSaveTextDocumentParams -> J.DidSaveTextDocumentNotification-fmClientDidSaveTextDocumentNotification params-  = J.NotificationMessage "2.0" J.TextDocumentDidSave params---- * :arrow_right: [textDocument/didClose](#textDocument_didClose)-fmClientDidCloseTextDocumentNotification :: J.DidCloseTextDocumentParams -> J.DidCloseTextDocumentNotification-fmClientDidCloseTextDocumentNotification params-  = J.NotificationMessage "2.0" J.TextDocumentDidClose params---- * :leftwards_arrow_with_hook: [textDocument/completion](#textDocument_completion)-fmClientCompletionRequest :: J.LspId -> J.TextDocumentPositionParams -> J.CompletionRequest-fmClientCompletionRequest rid params-  = J.RequestMessage "2.0" rid J.TextDocumentCompletion params---- * :leftwards_arrow_with_hook: [completionItem/resolve](#completionItem_resolve)-fmClientCompletionItemResolveRequest :: J.LspId -> J.CompletionItem -> J.CompletionItemResolveRequest-fmClientCompletionItemResolveRequest rid params-  = J.RequestMessage "2.0" rid J.CompletionItemResolve params---- * :leftwards_arrow_with_hook: [textDocument/hover](#textDocument_hover)-fmClientHoverRequest :: J.LspId -> J.TextDocumentPositionParams -> J.HoverRequest-fmClientHoverRequest rid params-  = J.RequestMessage "2.0" rid J.TextDocumentHover params---- * :leftwards_arrow_with_hook: [textDocument/signatureHelp](#textDocument_signatureHelp)-fmClientSignatureHelpRequest :: J.LspId -> J.TextDocumentPositionParams -> J.SignatureHelpRequest-fmClientSignatureHelpRequest rid params-  = J.RequestMessage "2.0" rid J.TextDocumentSignatureHelp params---- * :leftwards_arrow_with_hook: [textDocument/references](#textDocument_references)-fmClientReferencesRequest :: J.LspId -> J.ReferenceParams -> J.ReferencesRequest-fmClientReferencesRequest rid params-  = J.RequestMessage "2.0" rid J.TextDocumentReferences params---- * :leftwards_arrow_with_hook: [textDocument/documentHighlight](#textDocument_documentHighlight)-fmClientDocumentHighlightRequest :: J.LspId -> J.TextDocumentPositionParams -> J.DocumentHighlightRequest-fmClientDocumentHighlightRequest rid params-  = J.RequestMessage "2.0" rid J.TextDocumentDocumentHighlight params---- * :leftwards_arrow_with_hook: [textDocument/documentSymbol](#textDocument_documentSymbol)-fmClientDocumentSymbolRequest :: J.LspId -> J.DocumentSymbolParams -> J.DocumentSymbolRequest-fmClientDocumentSymbolRequest rid params-  = J.RequestMessage "2.0" rid J.TextDocumentDocumentSymbol params---- * :leftwards_arrow_with_hook: [textDocument/formatting](#textDocument_formatting)-fmClientDocumentFormattingRequest :: J.LspId -> J.DocumentFormattingParams -> J.DocumentFormattingRequest-fmClientDocumentFormattingRequest rid params-  = J.RequestMessage "2.0" rid J.TextDocumentFormatting params---- * :leftwards_arrow_with_hook: [textDocument/rangeFormatting](#textDocument_rangeFormatting)-fmClientDocumentRangeFormattingRequest :: J.LspId -> J.DocumentRangeFormattingParams -> J.DocumentRangeFormattingRequest-fmClientDocumentRangeFormattingRequest rid params-  = J.RequestMessage "2.0" rid J.TextDocumentRangeFormatting params---- * :leftwards_arrow_with_hook: [textDocument/onTypeFormatting](#textDocument_onTypeFormatting)-fmClientDocumentOnTypeFormattingRequest :: J.LspId -> J.DocumentOnTypeFormattingParams -> J.DocumentOnTypeFormattingRequest-fmClientDocumentOnTypeFormattingRequest rid params-  = J.RequestMessage "2.0" rid J.TextDocumentOnTypeFormatting params---- * :leftwards_arrow_with_hook: [textDocument/definition](#textDocument_definition)-fmClientDefinitionRequest :: J.LspId -> J.TextDocumentPositionParams -> J.DefinitionRequest-fmClientDefinitionRequest rid params-  = J.RequestMessage "2.0" rid J.TextDocumentDefinition params---- * :leftwards_arrow_with_hook: [textDocument/codeAction](#textDocument_codeAction)-fmClientCodeActionRequest :: J.LspId -> J.CodeActionParams -> J.CodeActionRequest-fmClientCodeActionRequest rid params-  = J.RequestMessage "2.0" rid J.TextDocumentCodeAction params---- * :leftwards_arrow_with_hook: [textDocument/codeLens](#textDocument_codeLens)-fmClientCodeLensRequest :: J.LspId -> J.CodeLensParams -> J.CodeLensRequest-fmClientCodeLensRequest rid params-  = J.RequestMessage "2.0" rid J.TextDocumentCodeLens params---- * :leftwards_arrow_with_hook: [codeLens/resolve](#codeLens_resolve)-fmClientCodeLensResolveRequest :: J.LspId -> J.CodeLens -> J.CodeLensResolveRequest-fmClientCodeLensResolveRequest rid params-  = J.RequestMessage "2.0" rid J.CodeLensResolve params---- * :leftwards_arrow_with_hook: [textDocument/documentLink](#textDocument_documentLink)-fmClientDocumentLinkRequest :: J.LspId -> J.DocumentLinkParams -> J.DocumentLinkRequest-fmClientDocumentLinkRequest rid params-  = J.RequestMessage "2.0" rid J.TextDocumentDocumentLink params---- * :leftwards_arrow_with_hook: [documentLink/resolve](#documentLink_resolve)-fmClientDocumentLinkResolveRequest :: J.LspId -> J.DocumentLink -> J.DocumentLinkResolveRequest-fmClientDocumentLinkResolveRequest rid params-  = J.RequestMessage "2.0" rid J.DocumentLinkResolve params---- * :leftwards_arrow_with_hook: [textDocument/rename](#textDocument_rename)-fmClientRenameRequest :: J.LspId -> J.RenameParams -> J.RenameRequest-fmClientRenameRequest rid params-  = J.RequestMessage "2.0" rid J.TextDocumentRename params-
− src/Language/Haskell/LSP/TH/Symbol.hs
@@ -1,271 +0,0 @@-{-# LANGUAGE TemplateHaskell            #-}-{-# LANGUAGE DuplicateRecordFields      #-}-module Language.Haskell.LSP.TH.Symbol where--import           Control.Applicative-import           Data.Aeson-import           Data.Aeson.TH-import           Data.Scientific-import           Data.Text                                      (Text)-import           Language.Haskell.LSP.TH.Constants-import           Language.Haskell.LSP.TH.TextDocument-import           Language.Haskell.LSP.TH.List-import           Language.Haskell.LSP.TH.Location-import           Language.Haskell.LSP.TH.Message---- ----------------------------------------------------------------------{--Document Symbols Request--https://github.com/Microsoft/language-server-protocol/blob/master/protocol.md#document-symbols-request--The document symbol request is sent from the client to the server to list all-symbols found in a given text document.--    Changed: In 2.0 the request uses DocumentSymbolParams instead of a single-             uri.--Request--    method: 'textDocument/documentSymbol'-    params: DocumentSymbolParams defined as follows:--interface DocumentSymbolParams {-    /**-     * The text document.-     */-    textDocument: TextDocumentIdentifier;-}--Response--    result: SymbolInformation[] defined as follows:--/**- * Represents information about programming constructs like variables, classes,- * interfaces etc.- */-interface SymbolInformation {-    /**-     * The name of this symbol.-     */-    name: string;--    /**-     * The kind of this symbol.-     */-    kind: number;--    /**-     * The location of this symbol.-     */-    location: Location;--    /**-     * The name of the symbol containing this symbol.-     */-    containerName?: string;-}--Where the kind is defined like this:--/**- * A symbol kind.- */-export enum SymbolKind {-    File = 1,-    Module = 2,-    Namespace = 3,-    Package = 4,-    Class = 5,-    Method = 6,-    Property = 7,-    Field = 8,-    Constructor = 9,-    Enum = 10,-    Interface = 11,-    Function = 12,-    Variable = 13,-    Constant = 14,-    Text = 15,-    Number = 16,-    Boolean = 17,-    Array = 18,-}--    error: code and message set in case an exception happens during the document-           symbol request.--Registration Options: TextDocumentRegistrationOptions--}--data DocumentSymbolParams =-  DocumentSymbolParams-    { _textDocument :: TextDocumentIdentifier-    } deriving (Read,Show,Eq)--deriveJSON lspOptions ''DocumentSymbolParams---- ---------------------------------------data SymbolKind-    = SkFile-    | SkModule-    | SkNamespace-    | SkPackage-    | SkClass-    | SkMethod-    | SkProperty-    | SkField-    | SkConstructor-    | SkEnum-    | SkInterface-    | SkFunction-    | SkVariable-    | SkConstant-    | SkString-    | SkNumber-    | SkBoolean-    | SkArray-    | SkObject-    | SkKey-    | SkNull-    | SkEnumMember-    | SkStruct-    | SkEvent-    | SkOperator-    | SkTypeParameter-    | SkUnknown Scientific-    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 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-  toJSON (SkUnknown x)   = Number x--instance FromJSON SymbolKind where-  parseJSON (Number  1) = pure SkFile-  parseJSON (Number  2) = pure SkModule-  parseJSON (Number  3) = pure SkNamespace-  parseJSON (Number  4) = pure SkPackage-  parseJSON (Number  5) = pure SkClass-  parseJSON (Number  6) = pure SkMethod-  parseJSON (Number  7) = pure SkProperty-  parseJSON (Number  8) = pure SkField-  parseJSON (Number  9) = pure SkConstructor-  parseJSON (Number 10) = pure SkEnum-  parseJSON (Number 11) = pure SkInterface-  parseJSON (Number 12) = pure SkFunction-  parseJSON (Number 13) = pure SkVariable-  parseJSON (Number 14) = pure SkConstant-  parseJSON (Number 15) = pure SkString-  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 (Number x)  = pure (SkUnknown x)-  parseJSON _           = mempty---- ------------------------------------------------------------------------- | Represents programming constructs like variables, classes, interfaces etc.--- that appear in a document. Document symbols can be hierarchical and they--- have two ranges: one that encloses its definition and one that points to its--- most interesting range, e.g. the range of an identifier.-data DocumentSymbol =-  DocumentSymbol-    { _name           :: Text -- ^ The name of this symbol.-    -- | More detail for this symbol, e.g the signature of a function. If not-    -- provided the name is used.-    , _detail         :: Maybe Text-    , _kind           :: SymbolKind -- ^ The kind of this symbol.-    , _deprecated     :: Maybe Bool -- ^ Indicates if this symbol is deprecated.-    -- | The range enclosing this symbol not including leading/trailing-    -- whitespace but everything else like comments. This information is-    -- typically used to determine if the the clients cursor is inside the symbol-    -- to reveal in the symbol in the UI.-    , _range          :: Range-    -- | The range that should be selected and revealed when this symbol is being-    -- picked, e.g the name of a function. Must be contained by the the '_range'.-    , _selectionRange :: Range-    -- | Children of this symbol, e.g. properties of a class.-    , _children       :: Maybe (List DocumentSymbol)-    } deriving (Read,Show,Eq)--deriveJSON lspOptions ''DocumentSymbol---- ------------------------------------------------------------------------- | Represents information about programming constructs like variables, classes,--- interfaces etc.-data SymbolInformation =-  SymbolInformation-    { _name          :: Text -- ^ The name of this symbol.-    , _kind          :: SymbolKind -- ^ The kind of this symbol.-    , _deprecated    :: Maybe Bool -- ^ Indicates if this symbol is deprecated.-    -- | The location of this symbol. The location's range is used by a tool-    -- to reveal the location in the editor. If the symbol is selected in the-    -- tool the range's start information is used to position the cursor. So-    -- the range usually spans more then the actual symbol's name and does-    -- normally include things like visibility modifiers.-    ---    -- The range doesn't have to denote a node range in the sense of a abstract-    -- syntax tree. It can therefore not be used to re-construct a hierarchy of-    -- the symbols.-    , _location      :: Location-    -- | The name of the symbol containing this symbol. This information is for-    -- user interface purposes (e.g. to render a qualifier in the user interface-    -- if necessary). It can't be used to re-infer a hierarchy for the document-    -- symbols.-    , _containerName :: Maybe Text-    } deriving (Read,Show,Eq)--deriveJSON lspOptions ''SymbolInformation---- ---------------------------------------data DSResult = DSDocumentSymbols (List DocumentSymbol)-              | DSSymbolInformation (List SymbolInformation)-  deriving (Read,Show,Eq)--instance FromJSON DSResult where-  parseJSON x = DSDocumentSymbols <$> parseJSON x <|> DSSymbolInformation <$> parseJSON x--instance ToJSON DSResult where-  toJSON (DSDocumentSymbols x) = toJSON x-  toJSON (DSSymbolInformation x) = toJSON x---type DocumentSymbolRequest = RequestMessage ClientMethod DocumentSymbolParams DSResult-type DocumentSymbolsResponse = ResponseMessage DSResult
− src/Language/Haskell/LSP/TH/TextDocument.hs
@@ -1,103 +0,0 @@-{-# 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/Uri.hs
@@ -1,62 +0,0 @@-{-# LANGUAGE GeneralizedNewtypeDeriving #-}-module Language.Haskell.LSP.TH.Uri where--import qualified Data.Aeson                                 as A-import           Data.Hashable-import           Data.Text                                  (Text)-import qualified Data.Text                                  as T-import           Network.URI-import qualified System.FilePath.Posix                      as FPP-import qualified System.FilePath.Windows                    as FPW-import qualified System.Info--newtype Uri = Uri { getUri :: Text }-  deriving (Eq,Ord,Read,Show,A.FromJSON,A.ToJSON,Hashable,A.ToJSONKey,A.FromJSONKey)--fileScheme :: String-fileScheme = "file:"--windowsOS :: String-windowsOS = "mingw32"--type SystemOS = String--uriToFilePath :: Uri -> Maybe FilePath-uriToFilePath = platformAwareUriToFilePath System.Info.os--platformAwareUriToFilePath :: String -> Uri -> Maybe FilePath-platformAwareUriToFilePath systemOS (Uri uri) = do-  parsedUri <- parseURI $ T.unpack uri-  if uriScheme parsedUri == fileScheme-    then return $ (platformAdjustFromUriPath systemOS . unEscapeString . uriPath) parsedUri-    else Nothing--platformAdjustFromUriPath :: SystemOS -> String -> FilePath-platformAdjustFromUriPath systemOS 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-      in FPW.joinDrive drive $ FPW.joinPath rest--filePathToUri :: FilePath -> Uri-filePathToUri = platformAwareFilePathToUri System.Info.os--platformAwareFilePathToUri :: SystemOS -> FilePath -> Uri-platformAwareFilePathToUri systemOS fp = Uri . T.pack . show $ URI-  { uriScheme = fileScheme-  , uriAuthority = Just $ URIAuth "" "" ""-  , uriPath = platformAdjustToUriPath systemOS fp-  , uriQuery = ""-  , uriFragment = ""-  }--platformAdjustToUriPath :: SystemOS -> FilePath -> String-platformAdjustToUriPath systemOS srcPath =-  if systemOS /= windowsOS then srcPath-    else let-      drive:rest = FPW.splitDirectories srcPath-      leaveCharUnescaped = (/= ':')-      removePathSeparator = filter (not . FPW.isPathSeparator)-      escapedDrive = removePathSeparator $ escapeURIString leaveCharUnescaped drive-      in '/' : FPP.joinPath (escapedDrive : rest)
− src/Language/Haskell/LSP/TH/Utils.hs
@@ -1,6 +0,0 @@-module Language.Haskell.LSP.TH.Utils where---- -----------------------------------------------------------------------rdrop :: Int -> [a] -> [a]-rdrop cnt = reverse . drop cnt . reverse
− src/Language/Haskell/LSP/TH/WorkspaceEdit.hs
@@ -1,160 +0,0 @@-{-# LANGUAGE CPP                        #-}-{-# LANGUAGE DuplicateRecordFields      #-}-{-# LANGUAGE TemplateHaskell            #-}-module Language.Haskell.LSP.TH.WorkspaceEdit where--import           Data.Aeson.TH-import qualified Data.HashMap.Strict                        as H--- For <= 8.2.2-import           Data.Monoid                                ((<>))-import           Data.Text                                  (Text)-import           Language.Haskell.LSP.TH.Constants-import           Language.Haskell.LSP.TH.List-import           Language.Haskell.LSP.TH.Location-import           Language.Haskell.LSP.TH.Uri---- ----------------------------------------------------------------------{--TextEdit--https://github.com/Microsoft/language-server-protocol/blob/master/protocol.md#textedit--A textual edit applicable to a text document.--interface TextEdit {-    /**-     * The range of the text document to be manipulated. To insert-     * text into a document create a range where start === end.-     */-    range: Range;--    /**-     * The string to be inserted. For delete operations use an-     * empty string.-     */-    newText: string;-}----}--data TextEdit =-  TextEdit-    { _range   :: Range-    , _newText :: Text-    } deriving (Show,Read,Eq)--deriveJSON lspOptions ''TextEdit---- ----------------------------------------------------------------------{--VersionedTextDocumentIdentifier--https://github.com/Microsoft/language-server-protocol/blob/master/protocol.md#versionedtextdocumentidentifier--    New: An identifier to denote a specific version of a text document.--interface VersionedTextDocumentIdentifier extends TextDocumentIdentifier {-    /**-	 * The version number of this document. If a versioned text document identifier-	 * is sent from the server to the client and the file is not open in the editor-	 * (the server has not received an open notification before) the server can send-	 * `null` to indicate that the version is known and the content on disk is the-	 * truth (as speced with document content ownership)-	 */-	version: number | null;--}--type TextDocumentVersion = Maybe Int--data VersionedTextDocumentIdentifier =-  VersionedTextDocumentIdentifier-    { _uri     :: Uri-    , _version :: TextDocumentVersion-    } deriving (Show, Read, Eq)--deriveJSON lspOptions ''VersionedTextDocumentIdentifier---- ----------------------------------------------------------------------{--New in 3.0-------------TextDocumentEdit-https://github.com/Microsoft/language-server-protocol/blob/master/protocol.md#new-textdocumentedit--If multiple TextEdits are applied to a text document, all text edits describe-changes made to the initial document version. Execution wise text edits should-applied from the bottom to the top of the text document. Overlapping text edits-are not supported.--export interface TextDocumentEdit {-        /**-         * The text document to change.-         */-        textDocument: VersionedTextDocumentIdentifier;--        /**-         * The edits to be applied.-         */-        edits: TextEdit[];-}---}--data TextDocumentEdit =-  TextDocumentEdit-    { _textDocument :: VersionedTextDocumentIdentifier-    , _edits        :: List TextEdit-    } deriving (Show, Read, Eq)--deriveJSON lspOptions ''TextDocumentEdit---- ----------------------------------------------------------------------{--Changed in 3.0-----------------WorkspaceEdit--https://github.com/Microsoft/language-server-protocol/blob/master/protocol.md#workspaceedit---Changed A workspace edit represents changes to many resources managed in the-workspace. The edit should either provide changes or documentChanges. If-documentChanges are present they are preferred over changes if the client can-handle versioned document edits.--export interface WorkspaceEdit {-        /**-         * Holds changes to existing resources.-         */-        changes?: { [uri: string]: TextEdit[]; };--        /**-         * An array of `TextDocumentEdit`s to express changes to specific a specific-         * version of a text document. Whether a client supports versioned document-         * edits is expressed via `WorkspaceClientCapabilities.versionedWorkspaceEdit`.-         */-        documentChanges?: TextDocumentEdit[];-}--}--type WorkspaceEditMap = H.HashMap Uri (List TextEdit)--data WorkspaceEdit =-  WorkspaceEdit-    { _changes         :: Maybe WorkspaceEditMap-    , _documentChanges :: Maybe (List TextDocumentEdit)-    } deriving (Show, Read, Eq)--instance Monoid WorkspaceEdit where-  mempty = WorkspaceEdit Nothing Nothing-  mappend (WorkspaceEdit a b) (WorkspaceEdit c d) = WorkspaceEdit (a <> c) (b <> d)--deriveJSON lspOptions ''WorkspaceEdit--#if __GLASGOW_HASKELL__ >= 804-instance Semigroup WorkspaceEdit where-  (<>) = mappend-#endif
+ src/Language/Haskell/LSP/Types.hs view
@@ -0,0 +1,40 @@+module Language.Haskell.LSP.Types+  ( module Language.Haskell.LSP.Types.DataTypesJSON+  , module Language.Haskell.LSP.Types.Lens+  , module Language.Haskell.LSP.Types.CodeAction+  , module Language.Haskell.LSP.Types.Color+  , module Language.Haskell.LSP.Types.Command+  , module Language.Haskell.LSP.Types.Completion+  , module Language.Haskell.LSP.Types.Diagnostic+  , module Language.Haskell.LSP.Types.DocumentFilter+  , module Language.Haskell.LSP.Types.FoldingRange+  , module Language.Haskell.LSP.Types.List+  , module Language.Haskell.LSP.Types.Location+  , module Language.Haskell.LSP.Types.MarkupContent+  , module Language.Haskell.LSP.Types.Message+  , module Language.Haskell.LSP.Types.Symbol+  , module Language.Haskell.LSP.Types.TextDocument+  , module Language.Haskell.LSP.Types.Uri+  , module Language.Haskell.LSP.Types.WorkspaceEdit+  , module Language.Haskell.LSP.Types.WorkspaceFolders+  )+where++import           Language.Haskell.LSP.Types.DataTypesJSON+import           Language.Haskell.LSP.Types.Lens+import           Language.Haskell.LSP.Types.CodeAction+import           Language.Haskell.LSP.Types.Color+import           Language.Haskell.LSP.Types.Command+import           Language.Haskell.LSP.Types.Completion+import           Language.Haskell.LSP.Types.Diagnostic+import           Language.Haskell.LSP.Types.DocumentFilter+import           Language.Haskell.LSP.Types.FoldingRange+import           Language.Haskell.LSP.Types.List+import           Language.Haskell.LSP.Types.Location+import           Language.Haskell.LSP.Types.MarkupContent+import           Language.Haskell.LSP.Types.Message+import           Language.Haskell.LSP.Types.Symbol+import           Language.Haskell.LSP.Types.TextDocument+import           Language.Haskell.LSP.Types.Uri+import           Language.Haskell.LSP.Types.WorkspaceEdit+import           Language.Haskell.LSP.Types.WorkspaceFolders
+ src/Language/Haskell/LSP/Types/Capabilities.hs view
@@ -0,0 +1,211 @@+module Language.Haskell.LSP.Types.Capabilities+  (+    module Language.Haskell.LSP.Types.ClientCapabilities+  , fullCaps+  , LSPVersion(..)+  , capsForVersion+  ) where++import Prelude hiding (min)+import Language.Haskell.LSP.Types.ClientCapabilities+import Language.Haskell.LSP.Types++-- | The whole shebang. The real deal.+-- Capabilities for full conformance to the current (v3.10) LSP specification.+fullCaps :: ClientCapabilities+fullCaps = capsForVersion (LSPVersion maxBound maxBound)++-- | A specific version of the LSP specification.+data LSPVersion = LSPVersion Int Int -- ^ Construct a major.minor version++-- | Capabilities for full conformance to the LSP specification up until a version.+-- Some important milestones:+--+-- * 3.9 completion item preselect+-- * 3.8 codeAction literals+-- * 3.7 related information in diagnostics+-- * 3.6 workspace folders, colors, goto type/implementation+-- * 3.4 extended completion item and symbol item kinds+-- * 3.0 dynamic registration+capsForVersion :: LSPVersion -> ClientCapabilities+capsForVersion (LSPVersion maj min) = ClientCapabilities (Just w) (Just td) Nothing+  where+    w = WorkspaceClientCapabilities+          (Just True)+          (Just (WorkspaceEditClientCapabilities (Just True)))+          (Just (DidChangeConfigurationClientCapabilities dynamicReg))+          (Just (DidChangeWatchedFilesClientCapabilities dynamicReg))+          (Just symbolCapabilities)+          (Just (ExecuteClientCapabilities dynamicReg))+          (since 3 6 True)+          (since 3 6 True)++    symbolCapabilities = SymbolClientCapabilities+      dynamicReg+      (since 3 4 symbolKindCapabilities)++    symbolKindCapabilities =+      SymbolKindClientCapabilities (Just sKs)++    sKs+      | maj >= 3 && min >= 4 = List (oldSKs ++ newSKs)+      | otherwise            = List oldSKs++    oldSKs =   [ SkFile+               , SkModule+               , SkNamespace+               , SkPackage+               , SkClass+               , SkMethod+               , SkProperty+               , SkField+               , SkConstructor+               , SkEnum+               , SkInterface+               , SkFunction+               , SkVariable+               , SkConstant+               , SkString+               , SkNumber+               , SkBoolean+               , SkArray+               ]++    newSKs = [ SkObject+             , SkKey+             , SkNull+             , SkEnumMember+             , SkStruct+             , SkEvent+             , SkOperator+             , SkTypeParameter+             ]++    td = TextDocumentClientCapabilities+          (Just sync)+          (Just completionCapability)+          (Just hoverCapability)+          (Just signatureHelpCapability)+          (Just (ReferencesClientCapabilities dynamicReg))+          (Just (DocumentHighlightClientCapabilities dynamicReg))+          (Just documentSymbolCapability)+          (Just (FormattingClientCapabilities (Just True)))+          (Just (RangeFormattingClientCapabilities dynamicReg))+          (Just (OnTypeFormattingClientCapabilities dynamicReg))+          (Just (DefinitionClientCapabilities dynamicReg))+          (since 3 6 (TypeDefinitionClientCapabilities dynamicReg))+          (since 3 6 (ImplementationClientCapabilities dynamicReg))+          (Just codeActionCapability)+          (Just (CodeLensClientCapabilities dynamicReg))+          (Just (DocumentLinkClientCapabilities dynamicReg))+          (since 3 6 (ColorProviderClientCapabilities dynamicReg))+          (Just (RenameClientCapabilities dynamicReg))+          (Just (PublishDiagnosticsClientCapabilities (since 3 7 True)))+          (since 3 10 foldingRangeCapability)+    sync =+      SynchronizationTextDocumentClientCapabilities+        dynamicReg+        (Just True)+        (Just True)+        (Just True)++    completionCapability =+      CompletionClientCapabilities+        dynamicReg+        (Just completionItemCapabilities)+        (since 3 4 completionItemKindCapabilities)+        (since 3 3 True)++    completionItemCapabilities = CompletionItemClientCapabilities+      (Just True)+      (Just True)+      (since 3 3 (List [MkPlainText, MkMarkdown]))+      (Just True)+      (since 3 9 True)++    completionItemKindCapabilities =+      CompletionItemKindClientCapabilities (Just ciKs)++    ciKs+      | maj >= 3 && min >= 4 = List (oldCiKs ++ newCiKs)+      | otherwise            = List oldCiKs++    oldCiKs =   [ CiText+                , CiMethod+                , CiFunction+                , CiConstructor+                , CiField+                , CiVariable+                , CiClass+                , CiInterface+                , CiModule+                , CiProperty+                , CiUnit+                , CiValue+                , CiEnum+                , CiKeyword+                , CiSnippet+                , CiColor+                , CiFile+                , CiReference+                ]++    newCiKs =   [ CiFolder+                , CiEnumMember+                , CiConstant+                , CiStruct+                , CiEvent+                , CiOperator+                , CiTypeParameter+                ]++    hoverCapability =+      HoverClientCapabilities+        dynamicReg+        (since 3 3 (List [MkPlainText, MkMarkdown]))++    codeActionCapability+      = CodeActionClientCapabilities+          dynamicReg+          (since 3 8 (CodeActionLiteralSupport caKs))+    caKs = CodeActionKindClientCapabilities+              (List [ CodeActionQuickFix+                    , CodeActionRefactor+                    , CodeActionRefactorExtract+                    , CodeActionRefactorInline+                    , CodeActionRefactorRewrite+                    , CodeActionSource+                    , CodeActionSourceOrganizeImports+                    ])++    signatureHelpCapability =+      SignatureHelpClientCapabilities+        dynamicReg+        (Just signatureInformationCapability)++    signatureInformationCapability =+      SignatureInformationClientCapabilities+        (Just (List [MkPlainText, MkMarkdown]))++    documentSymbolCapability =+      DocumentSymbolClientCapabilities+        dynamicReg+        (since 3 4 documentSymbolKind)+        (since 3 10 True)++    documentSymbolKind =+      DocumentSymbolKindClientCapabilities+        (Just sKs) -- same as workspace symbol kinds++    foldingRangeCapability =+      FoldingRangeClientCapabilities+        dynamicReg+        Nothing+        (Just False)++    dynamicReg+      | maj >= 3  = Just True+      | otherwise = Nothing+    since x y a+      | maj >= x && min >= y = Just a+      | otherwise            = Nothing
+ src/Language/Haskell/LSP/Types/ClientCapabilities.hs view
@@ -0,0 +1,1058 @@+{-# LANGUAGE DuplicateRecordFields  #-}+{-# LANGUAGE TemplateHaskell        #-}++module Language.Haskell.LSP.Types.ClientCapabilities where++import           Data.Aeson.TH+import qualified Data.Aeson as A+import Data.Default+import Language.Haskell.LSP.Types.Constants+import Language.Haskell.LSP.Types.CodeAction+import Language.Haskell.LSP.Types.Completion+import Language.Haskell.LSP.Types.List+import Language.Haskell.LSP.Types.MarkupContent+import Language.Haskell.LSP.Types.Symbol++-- ---------------------------------------------------------------------+{-+New in 3.0+----------++/**+ * Workspace specific client capabilities.+ */+export interface WorkspaceClientCapabilities {+        /**+         * The client supports applying batch edits to the workspace by supporting+         * the request 'workspace/applyEdit'+         */+        applyEdit?: boolean;++        /**+         * Capabilities specific to `WorkspaceEdit`s+         */+        workspaceEdit?: {+                /**+                 * The client supports versioned document changes in `WorkspaceEdit`s+                 */+                documentChanges?: boolean;+        };++        /**+         * Capabilities specific to the `workspace/didChangeConfiguration` notification.+         */+        didChangeConfiguration?: {+                /**+                 * Did change configuration notification supports dynamic registration.+                 */+                dynamicRegistration?: boolean;+        };++        /**+         * Capabilities specific to the `workspace/didChangeWatchedFiles` notification.+         */+        didChangeWatchedFiles?: {+                /**+                 * Did change watched files notification supports dynamic registration.+                 */+                dynamicRegistration?: boolean;+        };++        /**+         * Capabilities specific to the `workspace/symbol` request.+         */+        symbol?: {+                /**+                 * 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[];+                }+        };++        /**+         * Capabilities specific to the `workspace/executeCommand` request.+         */+        executeCommand?: {+                /**+                 * Execute command supports dynamic registration.+                 */+                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;+}+-}++-- -------------------------------------++data WorkspaceEditClientCapabilities =+  WorkspaceEditClientCapabilities+  { _documentChanges :: Maybe Bool -- ^The client supports versioned document+                                   -- changes in `WorkspaceEdit`s+  } deriving (Show, Read, Eq)++$(deriveJSON lspOptions ''WorkspaceEditClientCapabilities)++-- -------------------------------------++data DidChangeConfigurationClientCapabilities =+  DidChangeConfigurationClientCapabilities+    { _dynamicRegistration :: Maybe Bool -- ^Did change configuration+                                         -- notification supports dynamic+                                         -- registration.+    } deriving (Show, Read, Eq)++$(deriveJSON lspOptions ''DidChangeConfigurationClientCapabilities)++-- -------------------------------------++data DidChangeWatchedFilesClientCapabilities =+  DidChangeWatchedFilesClientCapabilities+    { _dynamicRegistration :: Maybe Bool -- ^Did change watched files+                                         -- notification supports dynamic+                                         -- registration.+    } deriving (Show, Read, Eq)++$(deriveJSON lspOptions ''DidChangeWatchedFilesClientCapabilities)++-- -------------------------------------++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)++-- -------------------------------------++data ExecuteClientCapabilities =+  ExecuteClientCapabilities+    { _dynamicRegistration :: Maybe Bool -- ^Execute command supports dynamic+                                         -- registration.+    } deriving (Show, Read, Eq)++$(deriveJSON lspOptions ''ExecuteClientCapabilities)++-- -------------------------------------++data WorkspaceClientCapabilities =+  WorkspaceClientCapabilities+    { -- | The client supports applying batch edits to the workspace by supporting+      -- the request 'workspace/applyEdit'+      _applyEdit :: Maybe Bool++      -- | Capabilities specific to `WorkspaceEdit`s+    , _workspaceEdit :: Maybe WorkspaceEditClientCapabilities++      -- | Capabilities specific to the `workspace/didChangeConfiguration` notification.+    , _didChangeConfiguration :: Maybe DidChangeConfigurationClientCapabilities++       -- | Capabilities specific to the `workspace/didChangeWatchedFiles` notification.+    , _didChangeWatchedFiles :: Maybe DidChangeWatchedFilesClientCapabilities++      -- | Capabilities specific to the `workspace/symbol` request.+    , _symbol :: Maybe SymbolClientCapabilities++      -- | 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 def++-- ---------------------------------------------------------------------+{-+New in 3.0+----------+/**+ * Text document specific client capabilities.+ */+export interface TextDocumentClientCapabilities {++        synchronization?: {+                /**+                 * Whether text document synchronization supports dynamic registration.+                 */+                dynamicRegistration?: boolean;++                /**+                 * The client supports sending will save notifications.+                 */+                willSave?: boolean;++                /**+                 * The client supports sending a will save request and+                 * waits for a response providing text edits which will+                 * be applied to the document before it is saved.+                 */+                willSaveWaitUntil?: boolean;++                /**+                 * The client supports did save notifications.+                 */+                didSave?: boolean;+        }++        /**+         * Capabilities specific to the `textDocument/completion`+         */+        completion?: {+                /**+                 * Whether completion supports dynamic registration.+                 */+                dynamicRegistration?: boolean;++                /**+                 * The client supports the following `CompletionItem` specific+                 * capabilities.+                 */+                completionItem?: {+                        /**+                         * 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?: 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;+        };++        /**+         * Capabilities specific to the `textDocument/hover`+         */+        hover?: {+                /**+                 * 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[];+        };++        /**+         * Capabilities specific to the `textDocument/signatureHelp`+         */+        signatureHelp?: {+                /**+                 * 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[];+                };+        };++        /**+         * Capabilities specific to the `textDocument/references`+         */+        references?: {+                /**+                 * Whether references supports dynamic registration.+                 */+                dynamicRegistration?: boolean;+        };++        /**+         * Capabilities specific to the `textDocument/documentHighlight`+         */+        documentHighlight?: {+                /**+                 * Whether document highlight supports dynamic registration.+                 */+                dynamicRegistration?: boolean;+        };++        /**+         * Capabilities specific to the `textDocument/documentSymbol`+         */+        documentSymbol?: {+                /**+                 * 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[];+                }+        };++        /**+         * Capabilities specific to the `textDocument/formatting`+         */+        formatting?: {+                /**+                 * Whether formatting supports dynamic registration.+                 */+                dynamicRegistration?: boolean;+        };++        /**+         * Capabilities specific to the `textDocument/rangeFormatting`+         */+        rangeFormatting?: {+                /**+                 * Whether range formatting supports dynamic registration.+                 */+                dynamicRegistration?: boolean;+        };++        /**+         * Capabilities specific to the `textDocument/onTypeFormatting`+         */+        onTypeFormatting?: {+                /**+                 * Whether on type formatting supports dynamic registration.+                 */+                dynamicRegistration?: boolean;+        };++        /**+         * Capabilities specific to the `textDocument/definition`+         */+        definition?: {+                /**+                 * Whether definition supports dynamic registration.+                 */+                dynamicRegistration?: boolean;+        };++        /**+         * 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?: {+                /**+                 * 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[];+                        };+                };+        };++        /**+         * Capabilities specific to the `textDocument/codeLens`+         */+        codeLens?: {+                /**+                 * Whether code lens supports dynamic registration.+                 */+                dynamicRegistration?: boolean;+        };++        /**+         * Capabilities specific to the `textDocument/documentLink`+         */+        documentLink?: {+                /**+                 * Whether document link supports dynamic registration.+                 */+                dynamicRegistration?: boolean;+        };++        /**+         * 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?: {+                /**+                 * Whether rename supports dynamic registration.+                 */+                dynamicRegistration?: boolean;+        };++        /**+         * Capabilities specific to `textDocument/publishDiagnostics`.+         */+        publishDiagnostics?: {+                /**+                 * Whether the clients accepts diagnostics with related information.+                 */+                relatedInformation?: boolean;+        };+        +        /**+	 * Capabilities specific to `textDocument/foldingRange` requests.+	 * +	 * Since 3.10.0+	 */+	foldingRange?: {+		/**+		 * Whether implementation supports dynamic registration for folding range providers. If this is set to `true`+		 * the client supports the new `(FoldingRangeProviderOptions & TextDocumentRegistrationOptions & StaticRegistrationOptions)`+		 * return value for the corresponding server capability as well.+		 */+		dynamicRegistration?: boolean;+		/**+		 * The maximum number of folding ranges that the client prefers to receive per document. The value serves as a+		 * hint, servers are free to follow the limit.+		 */+		rangeLimit?: number;+		/**+		 * If set, the client signals that it only supports folding complete lines. If set, client will+		 * ignore specified `startCharacter` and `endCharacter` properties in a FoldingRange.+		 */+		lineFoldingOnly?: boolean;+	};+}++-}++-- -------------------------------------++-- TODO:AZ: this name is Java-ridiculously long+data SynchronizationTextDocumentClientCapabilities =+  SynchronizationTextDocumentClientCapabilities+    { -- | Whether text document synchronization supports dynamic registration.+      _dynamicRegistration :: Maybe Bool++      -- | The client supports sending will save notifications.+    , _willSave :: Maybe Bool++      -- | The client supports sending a will save request and waits for a+      -- response providing text edits which will be applied to the document+      -- before it is saved.+    , _willSaveWaitUntil :: Maybe Bool++      -- | The client supports did save notifications.+    , _didSave :: Maybe Bool+    } deriving (Show, Read, Eq)++$(deriveJSON lspOptions ''SynchronizationTextDocumentClientCapabilities)++instance Default SynchronizationTextDocumentClientCapabilities where+  def = SynchronizationTextDocumentClientCapabilities def def def def++-- -------------------------------------++data CompletionItemClientCapabilities =+  CompletionItemClientCapabilities+    { -- | 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)++-- -------------------------------------++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+    { -- | 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)++-- -------------------------------------++data ReferencesClientCapabilities =+  ReferencesClientCapabilities+    { _dynamicRegistration :: Maybe Bool+    } deriving (Show, Read, Eq)++$(deriveJSON lspOptions ''ReferencesClientCapabilities)++-- -------------------------------------++data DocumentHighlightClientCapabilities =+  DocumentHighlightClientCapabilities+    { _dynamicRegistration :: Maybe Bool+    } deriving (Show, Read, Eq)++$(deriveJSON lspOptions ''DocumentHighlightClientCapabilities)++-- -------------------------------------++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+    { -- | Whether document symbol supports dynamic registration.+      _dynamicRegistration :: Maybe Bool+      -- | Specific capabilities for the `SymbolKind`.+    , _symbolKind :: Maybe DocumentSymbolKindClientCapabilities+    , _hierarchicalDocumentSymbolSupport :: Maybe Bool+    } deriving (Show, Read, Eq)++$(deriveJSON lspOptions ''DocumentSymbolClientCapabilities)++-- -------------------------------------++data FormattingClientCapabilities =+  FormattingClientCapabilities+    { _dynamicRegistration :: Maybe Bool+    } deriving (Show, Read, Eq)++$(deriveJSON lspOptions ''FormattingClientCapabilities)++-- -------------------------------------++data RangeFormattingClientCapabilities =+  RangeFormattingClientCapabilities+    { _dynamicRegistration :: Maybe Bool+    } deriving (Show, Read, Eq)++$(deriveJSON lspOptions ''RangeFormattingClientCapabilities)++-- -------------------------------------++data OnTypeFormattingClientCapabilities =+  OnTypeFormattingClientCapabilities+    { _dynamicRegistration :: Maybe Bool+    } deriving (Show, Read, Eq)++$(deriveJSON lspOptions ''OnTypeFormattingClientCapabilities)++-- -------------------------------------++data DefinitionClientCapabilities =+  DefinitionClientCapabilities+    { _dynamicRegistration :: Maybe Bool+    } deriving (Show, Read, Eq)++$(deriveJSON lspOptions ''DefinitionClientCapabilities)++-- -------------------------------------++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)++$(deriveJSON lspOptions ''CodeActionKindClientCapabilities)++instance Default CodeActionKindClientCapabilities where+  def = CodeActionKindClientCapabilities (List allKinds)+    where allKinds = [ CodeActionQuickFix+                     , CodeActionRefactor+                     , CodeActionRefactorExtract+                     , CodeActionRefactorInline+                     , CodeActionRefactorRewrite+                     , CodeActionSource+                     , CodeActionSourceOrganizeImports+                     ]++data CodeActionLiteralSupport =+  CodeActionLiteralSupport+    { _codeActionKind :: CodeActionKindClientCapabilities -- ^ The code action kind is support with the following value set.+    } deriving (Show, Read, Eq)++$(deriveJSON lspOptions ''CodeActionLiteralSupport)++data CodeActionClientCapabilities =+  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+    } deriving (Show, Read, Eq)++$(deriveJSON lspOptions ''CodeActionClientCapabilities)++-- -------------------------------------++data CodeLensClientCapabilities =+  CodeLensClientCapabilities+    { _dynamicRegistration :: Maybe Bool+    } deriving (Show, Read, Eq)++$(deriveJSON lspOptions ''CodeLensClientCapabilities)++-- -------------------------------------++data DocumentLinkClientCapabilities =+  DocumentLinkClientCapabilities+    { _dynamicRegistration :: Maybe Bool+    } deriving (Show, Read, Eq)++$(deriveJSON lspOptions ''DocumentLinkClientCapabilities)++-- -------------------------------------++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+    } deriving (Show, Read, Eq)++$(deriveJSON lspOptions ''RenameClientCapabilities)++-- -------------------------------------++data PublishDiagnosticsClientCapabilities =+  PublishDiagnosticsClientCapabilities+    { -- | Whether the clients accepts diagnostics with related information.+      _relatedInformation :: Maybe Bool+    } deriving (Show, Read, Eq)++$(deriveJSON lspOptions ''PublishDiagnosticsClientCapabilities)++-- -------------------------------------++data FoldingRangeClientCapabilities =+  FoldingRangeClientCapabilities+    { -- | Whether implementation supports dynamic registration for folding range+      -- providers. If this is set to `true` the client supports the new+      -- `(FoldingRangeProviderOptions & TextDocumentRegistrationOptions & StaticRegistrationOptions)`+      -- return value for the corresponding server capability as well.+      _dynamicRegistration :: Maybe Bool+      -- | The maximum number of folding ranges that the client prefers to receive+      -- per document. The value serves as a hint, servers are free to follow the limit.+    , _rangeLimit          :: Maybe Int+      -- | If set, the client signals that it only supports folding complete lines. If set,+      -- client will ignore specified `startCharacter` and `endCharacter` properties in a+      -- FoldingRange.+    , _lineFoldingOnly     :: Maybe Bool+    } deriving (Show, Read, Eq)++$(deriveJSON lspOptions ''FoldingRangeClientCapabilities)++-- -------------------------------------++data TextDocumentClientCapabilities =+  TextDocumentClientCapabilities+    { _synchronization :: Maybe SynchronizationTextDocumentClientCapabilities++      -- | Capabilities specific to the `textDocument/completion`+    , _completion :: Maybe CompletionClientCapabilities++      -- | Capabilities specific to the `textDocument/hover`+    , _hover :: Maybe HoverClientCapabilities++      -- | Capabilities specific to the `textDocument/signatureHelp`+    , _signatureHelp :: Maybe SignatureHelpClientCapabilities++      -- | Capabilities specific to the `textDocument/references`+    , _references :: Maybe ReferencesClientCapabilities++      -- | Capabilities specific to the `textDocument/documentHighlight`+    , _documentHighlight :: Maybe DocumentHighlightClientCapabilities++      -- | Capabilities specific to the `textDocument/documentSymbol`+    , _documentSymbol :: Maybe DocumentSymbolClientCapabilities++      -- | Capabilities specific to the `textDocument/formatting`+    , _formatting :: Maybe FormattingClientCapabilities++      -- | Capabilities specific to the `textDocument/rangeFormatting`+    , _rangeFormatting :: Maybe RangeFormattingClientCapabilities++      -- | Capabilities specific to the `textDocument/onTypeFormatting`+    , _onTypeFormatting :: Maybe OnTypeFormattingClientCapabilities++      -- | 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++      -- | Capabilities specific to the `textDocument/codeLens`+    , _codeLens :: Maybe CodeLensClientCapabilities++      -- | 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++      -- | Capabilities specific to `textDocument/foldingRange` requests. Since LSP 3.10, @since 0.7.0.0+    , _foldingRange :: Maybe FoldingRangeClientCapabilities+    } deriving (Show, Read, Eq)++$(deriveJSON lspOptions ''TextDocumentClientCapabilities)++instance Default TextDocumentClientCapabilities where+  def = TextDocumentClientCapabilities def def def def def def def def+                                       def def def def def def def def+                                       def def def def++-- ---------------------------------------------------------------------+{-+New in 3.0++-----------++ClientCapabilities++now define capabilities for dynamic registration, workspace and text document+features the client supports. The experimental can be used to pass experimential+capabilities under development. For future compatibility a ClientCapabilities+object literal can have more properties set than currently defined. Servers+receiving a ClientCapabilities object literal with unknown properties should+ignore these properties. A missing property should be interpreted as an absence+of the capability. If a property is missing that defines sub properties all sub+properties should be interpreted as an absence of the capability.++Client capabilities got introduced with the version 3.0 of the protocol. They+therefore only describe capabilities that got introduced in 3.x or later.+Capabilities that existed in the 2.x version of the protocol are still mandatory+for clients. Clients cannot opt out of providing them. So even if a client omits+the ClientCapabilities.textDocument.synchronization it is still required that+the client provides text document synchronization (e.g. open, changed and close+notifications).++interface ClientCapabilities {+        /**+         * Workspace specific client capabilities.+         */+        workspace?: WorkspaceClientCapabilities;++        /**+         * Text document specific client capabilities.+         */+        textDocument?: TextDocumentClientCapabilities;++        /**+         * Experimental client capabilities.+         */+        experimental?: any;+}+-}++data ClientCapabilities =+  ClientCapabilities+    { _workspace    :: Maybe WorkspaceClientCapabilities+    , _textDocument :: Maybe TextDocumentClientCapabilities+    , _experimental :: Maybe A.Object+    } deriving (Show, Read, Eq)++$(deriveJSON lspOptions ''ClientCapabilities)++instance Default ClientCapabilities where+  def = ClientCapabilities def def def
+ src/Language/Haskell/LSP/Types/CodeAction.hs view
@@ -0,0 +1,293 @@+{-# LANGUAGE DuplicateRecordFields      #-}+{-# LANGUAGE OverloadedStrings          #-}+{-# LANGUAGE TemplateHaskell            #-}+module Language.Haskell.LSP.Types.CodeAction where++import           Control.Applicative+import qualified Data.Aeson                    as A+import           Data.Aeson.TH+import           Data.Aeson.Types+import           Data.Text                      ( Text )+import           Language.Haskell.LSP.Types.Command+import           Language.Haskell.LSP.Types.Constants+import           Language.Haskell.LSP.Types.Diagnostic+import           Language.Haskell.LSP.Types.List+import           Language.Haskell.LSP.Types.Location+import           Language.Haskell.LSP.Types.Message+import           Language.Haskell.LSP.Types.TextDocument+import           Language.Haskell.LSP.Types.WorkspaceEdit+++{-+Code Action Request++https://github.com/Microsoft/language-server-protocol/blob/master/protocol.md#code-action-request++The code action request is sent from the client to the server tocompute commands+for a given text document and range. These commands are typically code fixes to+either fix problems or to beautify/refactor code. The result of a+textDocument/codeAction request is an array of Command literals which are+typically presented in the user interface. When the command is selected the+server should be contacted again (via the workspace/executeCommand) request to+execute the command.++Since version 3.8.0: support for CodeAction litarals to enable the following+scenarios:++the ability to directly return a workspace edit from e code action request. This+avoids having another server roundtrip to execute an actual code action. However+server providers should be aware that if the code action is expensive to compute+or the edits are huge it might still be beneficial if the result is imply a+command and the actual edit is only computed when needed. the ability to group+code actions using a kind. Clients are allowed to ignore that information.+However it allows them to better group code action for example into+corresponding menus (e.g. all refactor code actions into a refactor menu).+Clients need to announce there support code action literals and code action+kinds via the corresponding client capability+textDocument.codeAction.codeActionLiteralSupport.++Request++    method: 'textDocument/codeAction'+    params: CodeActionParams defined as follows:++/**+ * Params for the CodeActionRequest+ */+interface CodeActionParams {+	/**+	 * The document in which the command was invoked.+	 */+	textDocument: TextDocumentIdentifier;++	/**+	 * The range for which the command was invoked.+	 */+	range: Range;++	/**+	 * Context carrying additional information.+	 */+	context: CodeActionContext;+}++/**+ * The kind of a code action.+ *+ * Kinds are a hierarchical list of identifiers separated by `.`, e.g. `"refactor.extract.function"`.+ *+ * The set of kinds is open and client needs to announce the kinds it supports to the server during+ * initialization.+ */+export type CodeActionKind = string;++/**+ * A set of predefined code action kinds+ */+export namespace CodeActionKind {+	/**+	 * Base kind for quickfix actions: 'quickfix'+	 */+	export const QuickFix: CodeActionKind = 'quickfix';++	/**+	 * Base kind for refactoring actions: 'refactor'+	 */+	export const Refactor: CodeActionKind = 'refactor';++	/**+	 * Base kind for refactoring extraction actions: 'refactor.extract'+	 *+	 * Example extract actions:+	 *+	 * - Extract method+	 * - Extract function+	 * - Extract variable+	 * - Extract interface from class+	 * - ...+	 */+	export const RefactorExtract: CodeActionKind = 'refactor.extract';++	/**+	 * Base kind for refactoring inline actions: 'refactor.inline'+	 *+	 * Example inline actions:+	 *+	 * - Inline function+	 * - Inline variable+	 * - Inline constant+	 * - ...+	 */+	export const RefactorInline: CodeActionKind = 'refactor.inline';++	/**+	 * Base kind for refactoring rewrite actions: 'refactor.rewrite'+	 *+	 * Example rewrite actions:+	 *+	 * - Convert JavaScript function to class+	 * - Add or remove parameter+	 * - Encapsulate field+	 * - Make method static+	 * - Move method to base class+	 * - ...+	 */+	export const RefactorRewrite: CodeActionKind = 'refactor.rewrite';++	/**+	 * Base kind for source actions: `source`+	 *+	 * Source code actions apply to the entire file.+	 */+	export const Source: CodeActionKind = 'source';++	/**+	 * Base kind for an organize imports source action: `source.organizeImports`+	 */+	export const SourceOrganizeImports: CodeActionKind = 'source.organizeImports';+}++/**+ * Contains additional diagnostic information about the context in which+ * a code action is run.+ */+interface CodeActionContext {+	/**+	 * An array of diagnostics.+	 */+	diagnostics: Diagnostic[];++	/**+	 * Requested kind of actions to return.+	 *+	 * Actions not of this kind are filtered out by the client before being shown. So servers+	 * can omit computing them.+	 */+	only?: CodeActionKind[];+}++Response++    result: (Command | CodeAction)[] | null where CodeAction is defined as follows:+        /**+    * A code action represents a change that can be performed in code, e.g. to fix a problem or+    * to refactor code.+    *+    * A CodeAction must set either `edit` and/or a `command`. If both are supplied, the `edit` is applied first, then the `command` is executed.+    */+    export interface CodeAction {++        /**+        * A short, human-readable, title for this code action.+        */+        title: string;++        /**+        * The kind of the code action.+        *+        * Used to filter code actions.+        */+        kind?: CodeActionKind;++        /**+        * The diagnostics that this code action resolves.+        */+        diagnostics?: Diagnostic[];++        /**+        * The workspace edit this code action performs.+        */+        edit?: WorkspaceEdit;++        /**+        * A command this code action executes. If a code action+        * provides an edit and a command, first the edit is+        * executed and then the command.+        */+        command?: Command;+    }+    error: code and message set in case an exception happens during the code+           action request.++-}++data CodeActionKind = CodeActionQuickFix+                    | CodeActionRefactor+                    | CodeActionRefactorExtract+                    | CodeActionRefactorInline+                    | CodeActionRefactorRewrite+                    | CodeActionSource+                    | CodeActionSourceOrganizeImports+                    | CodeActionUnknown Text+  deriving (Read,Show,Eq)++instance ToJSON CodeActionKind where+  toJSON CodeActionQuickFix                   = String "quickfix"+  toJSON CodeActionRefactor                   = String "refactor"+  toJSON CodeActionRefactorExtract            = String "refactor.extract"+  toJSON CodeActionRefactorInline             = String "refactor.inline"+  toJSON CodeActionRefactorRewrite            = String "refactor.rewrite"+  toJSON CodeActionSource                     = String "source"+  toJSON CodeActionSourceOrganizeImports      = String "source.organizeImports"+  toJSON (CodeActionUnknown s)                = String s++instance FromJSON CodeActionKind where+  parseJSON (String "quickfix")               = pure CodeActionQuickFix+  parseJSON (String "refactor")               = pure CodeActionRefactor+  parseJSON (String "refactor.extract")       = pure CodeActionRefactorExtract+  parseJSON (String "refactor.inline")        = pure CodeActionRefactorInline+  parseJSON (String "refactor.rewrite")       = pure CodeActionRefactorRewrite+  parseJSON (String "source")                 = pure CodeActionSource+  parseJSON (String "source.organizeImports") = pure CodeActionSourceOrganizeImports+  parseJSON (String s)                        = pure (CodeActionUnknown s)+  parseJSON _                                 = mempty++data CodeActionContext =+  CodeActionContext+    { _diagnostics :: List Diagnostic+    , only         :: Maybe (List CodeActionKind)+    } deriving (Read,Show,Eq)++deriveJSON lspOptions ''CodeActionContext+++data CodeActionParams =+  CodeActionParams+    { _textDocument :: TextDocumentIdentifier+    , _range        :: Range+    , _context      :: CodeActionContext+    } deriving (Read,Show,Eq)++deriveJSON lspOptions ''CodeActionParams++data CodeAction =+  -- | A code action represents a change that can be performed in code, e.g. to fix a problem or+  -- to refactor code.+  --+  -- A CodeAction must set either '_edit' and/or a '_command'. If both are supplied,+  -- the '_edit' is applied first, then the '_command' is executed.+  CodeAction+    { _title       :: Text -- ^ A short, human-readable, title for this code action.+    , _kind        :: Maybe CodeActionKind -- ^ The kind of the code action. Used to filter code actions.+    , _diagnostics :: Maybe (List Diagnostic) -- ^ The diagnostics that this code action resolves.+    , _edit        :: Maybe WorkspaceEdit -- ^ The workspace edit this code action performs.+    , _command     :: Maybe Command -- ^ A command this code action executes. If a code action+                                    -- provides an edit and a command, first the edit is+                                    -- executed and then the command.+    } deriving (Read,Show,Eq)++deriveJSON lspOptions ''CodeAction++data CAResult = CACommand Command+              | CACodeAction CodeAction+  deriving (Read,Show,Eq)++instance FromJSON CAResult where+  parseJSON x = CACommand <$> parseJSON x <|> CACodeAction <$> parseJSON x++instance ToJSON CAResult where+  toJSON (CACommand x) = toJSON x+  toJSON (CACodeAction x) = toJSON x++type CodeActionRequest  = RequestMessage ClientMethod CodeActionParams (List CAResult)+type CodeActionResponse = ResponseMessage (List CAResult)
+ src/Language/Haskell/LSP/Types/Color.hs view
@@ -0,0 +1,200 @@+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE TemplateHaskell       #-}+module Language.Haskell.LSP.Types.Color where++import           Data.Aeson.TH+import           Data.Text                      ( Text )+import           Language.Haskell.LSP.Types.Constants+import           Language.Haskell.LSP.Types.List+import           Language.Haskell.LSP.Types.Location+import           Language.Haskell.LSP.Types.Message+import           Language.Haskell.LSP.Types.TextDocument+import           Language.Haskell.LSP.Types.WorkspaceEdit++{-+Document Color Request (:leftwards_arrow_with_hook:)+Since version 3.6.0++The document color request is sent from the client to the server to list all+color references found in a given text document. Along with the range, a color+value in RGB is returned.++Clients can use the result to decorate color references in an editor. For example:++Color boxes showing the actual color next to the reference+Show a color picker when a color reference is edited+Request:++method: ‘textDocument/documentColor’+params: DocumentColorParams defined as follows+interface DocumentColorParams {+	/**+	 * The text document.+	 */+	textDocument: TextDocumentIdentifier;+}+Response:++result: ColorInformation[] defined as follows:+interface ColorInformation {+	/**+	 * The range in the document where this color appears.+	 */+	range: Range;++	/**+	 * The actual color value for this color range.+	 */+	color: Color;+}++/**+ * Represents a color in RGBA space.+ */+interface Color {++	/**+	 * The red component of this color in the range [0-1].+	 */+	readonly red: number;++	/**+	 * The green component of this color in the range [0-1].+	 */+	readonly green: number;++	/**+	 * The blue component of this color in the range [0-1].+	 */+	readonly blue: number;++	/**+	 * The alpha component of this color in the range [0-1].+	 */+	readonly alpha: number;+}+error: code and message set in case an exception happens during the+‘textDocument/documentColor’ request+-}++-- | Represents a color in RGBA space.+data Color =+  Color+    { _red   :: Int -- ^ The red component of this color in the range [0-1].+    , _green :: Int -- ^ The green component of this color in the range [0-1].+    , _blue  :: Int -- ^ The blue component of this color in the range [0-1].+    , _alpha :: Int -- ^ The alpha component of this color in the range [0-1].+    } deriving (Read, Show, Eq)++deriveJSON lspOptions ''Color++data ColorInformation =+  ColorInformation+    { _range :: Range -- ^ The range in the document where this color appears.+    , _color :: Color -- ^ The actual color value for this color range.+    } deriving (Read, Show, Eq)++deriveJSON lspOptions ''ColorInformation++data DocumentColorParams =+  DocumentColorParams+    { _textDocument :: TextDocumentIdentifier -- ^ The text document.+    } deriving (Read, Show, Eq)++deriveJSON lspOptions ''DocumentColorParams++type DocumentColorRequest =+  RequestMessage ClientMethod DocumentColorParams (List ColorInformation)+type DocumentColorResponse = ResponseMessage (List ColorInformation)++{-+Color Presentation Request (:leftwards_arrow_with_hook:)+Since version 3.6.0++The color presentation request is sent from the client to the server to obtain a list of+presentations for a color value at a given location. Clients can use the result to++modify a color reference.+show in a color picker and let users pick one of the presentations+Request:++method: ‘textDocument/colorPresentation’+params: DocumentColorParams defined as follows+interface ColorPresentationParams {+	/**+	 * The text document.+	 */+	textDocument: TextDocumentIdentifier;++	/**+	 * The color information to request presentations for.+	 */+	color: Color;++	/**+	 * The range where the color would be inserted. Serves as a context.+	 */+	range: Range;+}+Response:++result: ColorPresentation[] defined as follows:+interface ColorPresentation {+	/**+	 * The label of this color presentation. It will be shown+         * on the color picker header. By default this is also the+         * text that is inserted when selecting+	 * this color presentation.+	 */+	label: string;+	/**+	 * An [edit](#TextEdit) which is applied to a document when selecting+         * this presentation for the color.+         * When `falsy` the [label](#ColorPresentation.label) is used.+	 */+	textEdit?: TextEdit;+	/**+	 * An optional array of additional [text edits](#TextEdit) that are applied when+         * selecting this color presentation. Edits must not overlap with the main+         * [edit](#ColorPresentation.textEdit) nor with themselves.+	 */+	additionalTextEdits?: TextEdit[];+}+error: code and message set in case an exception happens during the +‘textDocument/colorPresentation’ request+-}++data ColorPresentationParams =+  ColorPresentationParams+    { -- | The text document.+      _textDocument :: TextDocumentIdentifier+      -- | The color information to request presentations for.+    , _color        :: Color+      -- | The range where the color would be inserted.+      -- Serves as a context.+    , _range        :: Range+    } deriving (Read, Show, Eq)++deriveJSON lspOptions ''ColorPresentationParams++data ColorPresentation =+  ColorPresentation+    { -- | The label of this color presentation. It will be shown on the color+      -- picker header. By default this is also the text that is inserted when selecting+      -- this color presentation.+      _label               :: Text+      -- | A 'TextEdit' which is applied to a document when selecting+      -- this presentation for the color.  When `falsy` the '_label'+      -- is used.+    , _textEdit            :: Maybe TextEdit+      -- | An optional array of additional 'TextEdit's that are applied when+      -- selecting this color presentation. Edits must not overlap with the main+      -- '_textEdit' nor with themselves.+    , _additionalTextEdits :: Maybe (List TextEdit)+    } deriving (Read, Show, Eq)++deriveJSON lspOptions ''ColorPresentation++type ColorPresentationRequest = +  RequestMessage ClientMethod ColorPresentationParams (List ColorPresentation)+type ColorPresentationResponse = ResponseMessage (List ColorPresentation)
+ src/Language/Haskell/LSP/Types/Command.hs view
@@ -0,0 +1,45 @@+{-# LANGUAGE TemplateHaskell            #-}++module Language.Haskell.LSP.Types.Command where++import           Data.Aeson+import           Data.Aeson.TH+import           Data.Text+import           Language.Haskell.LSP.Types.Constants+import           Language.Haskell.LSP.Types.List+-- ---------------------------------------------------------------------+{-+Command++https://github.com/Microsoft/language-server-protocol/blob/master/protocol.md#command++Represents a reference to a command. Provides a title which will be used to+represent a command in the UI. Commands are identitifed using a string+identifier and the protocol currently doesn't specify a set of well known+commands. So executing a command requires some tool extension code.++interface Command {+    /**+     * Title of the command, like `save`.+     */+    title: string;+    /**+     * The identifier of the actual command handler.+     */+    command: string;+    /**+     * Arguments that the command handler should be+     * invoked with.+     */+    arguments?: any[];+}+-}++data Command =+  Command+    { _title     :: Text+    , _command   :: Text+    , _arguments :: Maybe (List Value)+    } deriving (Show, Read, Eq)++deriveJSON lspOptions ''Command
+ src/Language/Haskell/LSP/Types/Completion.hs view
@@ -0,0 +1,496 @@+{-# LANGUAGE DuplicateRecordFields      #-}+{-# LANGUAGE OverloadedStrings          #-}+{-# LANGUAGE TemplateHaskell            #-}+module Language.Haskell.LSP.Types.Completion where++import           Control.Applicative+import qualified Data.Aeson                    as A+import           Data.Aeson.TH+import           Data.Scientific                ( Scientific )+import           Data.Text                      ( Text )+import           Language.Haskell.LSP.Types.Command+import           Language.Haskell.LSP.Types.Constants+import           Language.Haskell.LSP.Types.DocumentFilter+import           Language.Haskell.LSP.Types.List+import           Language.Haskell.LSP.Types.Location+import           Language.Haskell.LSP.Types.MarkupContent+import           Language.Haskell.LSP.Types.Message+import           Language.Haskell.LSP.Types.TextDocument+import           Language.Haskell.LSP.Types.Utils+import           Language.Haskell.LSP.Types.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 CompletionDoc = CompletionDocString Text+                   | CompletionDocMarkup MarkupContent+  deriving (Show, Read, Eq)++instance A.ToJSON CompletionDoc where+  toJSON (CompletionDocString x) = A.toJSON x+  toJSON (CompletionDocMarkup x) = A.toJSON x++instance A.FromJSON CompletionDoc where+  parseJSON x = CompletionDocString <$> A.parseJSON x <|> CompletionDocMarkup <$> A.parseJSON x++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 CompletionDoc -- ^ A human-readable string that represents+                                                  -- a doc-comment.+    , _deprecated          :: Maybe Bool -- ^ Indicates if this item is deprecated.+    , _preselect           :: Maybe Bool+         -- ^ Select this item when showing.+         -- *Note* that only one completion item can be selected and that the+         -- tool / client decides which item that is. The rule is that the *first*+         -- item of those that match best is selected.+    , _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.+    , _commitCharacters    :: Maybe (List Text)+         -- ^ An optional set of characters that when pressed while this completion+         -- is active will accept it first and then type that character. *Note*+         -- that all commit characters should have `length=1` and that superfluous+         -- characters will be ignored.+    , _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++-- | How a completion was triggered+data CompletionTriggerKind = -- | Completion was triggered by typing an identifier (24x7 code+                             -- complete), manual invocation (e.g Ctrl+Space) or via API.+                             CtInvoked+                             -- | Completion was triggered by a trigger character specified by+                             -- the `triggerCharacters` properties of the `CompletionRegistrationOptions`.+                           | CtTriggerCharacter+                             -- | Completion was re-triggered as the current completion list is incomplete.+                           | CtTriggerForIncompleteCompletions+                             -- | An unknown 'CompletionTriggerKind' not yet supported in haskell-lsp.+                           | CtUnknown Scientific+  deriving (Read, Show, Eq)++instance A.ToJSON CompletionTriggerKind where+  toJSON CtInvoked                         = A.Number 1+  toJSON CtTriggerCharacter                = A.Number 2+  toJSON CtTriggerForIncompleteCompletions = A.Number 3+  toJSON (CtUnknown x)                     = A.Number x++instance A.FromJSON CompletionTriggerKind where+  parseJSON (A.Number 1) = pure CtInvoked+  parseJSON (A.Number 2) = pure CtTriggerCharacter+  parseJSON (A.Number 3) = pure CtTriggerForIncompleteCompletions+  parseJSON (A.Number x) = pure (CtUnknown x)+  parseJSON _          = mempty++data CompletionContext =+  CompletionContext+    { _triggerKind      :: CompletionTriggerKind -- ^ How the completion was triggered.+    , _triggerCharacter :: Maybe Text+      -- ^ The trigger character (a single character) that has trigger code complete.+      -- Is undefined if `triggerKind !== CompletionTriggerKind.TriggerCharacter`+    }+  deriving (Read, Show, Eq)++deriveJSON lspOptions ''CompletionContext++data CompletionParams =+  CompletionParams+    { _textDocument :: TextDocumentIdentifier -- ^ The text document.+    , _position     :: Position -- ^ The position inside the text document.+    , _context      :: Maybe CompletionContext+      -- ^ The completion context. This is only available if the client specifies+      -- to send this using `ClientCapabilities.textDocument.completion.contextSupport === true`+    }+  deriving (Read, Show, Eq)++deriveJSON lspOptions ''CompletionParams++type CompletionResponse = ResponseMessage CompletionResponseResult+type CompletionRequest = RequestMessage ClientMethod CompletionParams 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/Types/Constants.hs view
@@ -0,0 +1,17 @@++module Language.Haskell.LSP.Types.Constants where++import           Data.Aeson.TH++-- ---------------------------------------------------------------------++-- | Standard options for use when generating JSON instances+lspOptions :: Options+lspOptions = defaultOptions { omitNothingFields = True, fieldLabelModifier = drop 1 }+ -- NOTE: This needs to be in a separate file because of the TH stage restriction++customModifier :: String -> String+customModifier "_xdata" = "data"+customModifier "_xtype" = "type"+customModifier xs = drop 1 xs+
+ src/Language/Haskell/LSP/Types/DataTypesJSON.hs view
@@ -0,0 +1,2855 @@+{-# LANGUAGE CPP                        #-}+{-# LANGUAGE DeriveGeneric              #-}+{-# LANGUAGE DeriveTraversable          #-}+{-# LANGUAGE DuplicateRecordFields      #-}+{-# LANGUAGE FlexibleInstances          #-}+{-# LANGUAGE FunctionalDependencies     #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE MultiParamTypeClasses      #-}+{-# LANGUAGE OverloadedStrings          #-}+{-# LANGUAGE TemplateHaskell            #-}+{-# LANGUAGE TypeSynonymInstances       #-}++module Language.Haskell.LSP.Types.DataTypesJSON where++import           Control.Applicative+import qualified Data.Aeson                                 as A+import           Data.Aeson.TH+import           Data.Aeson.Types+import           Data.Text                                  (Text)+import qualified Data.Text                                  as T+import           Language.Haskell.LSP.Types.Command+import           Language.Haskell.LSP.Types.Constants+import           Language.Haskell.LSP.Types.ClientCapabilities+import           Language.Haskell.LSP.Types.Diagnostic+import           Language.Haskell.LSP.Types.DocumentFilter+import           Language.Haskell.LSP.Types.List+import           Language.Haskell.LSP.Types.Message+import           Language.Haskell.LSP.Types.Location+import           Language.Haskell.LSP.Types.Symbol+import           Language.Haskell.LSP.Types.TextDocument+import           Language.Haskell.LSP.Types.Uri+import           Language.Haskell.LSP.Types.WorkspaceEdit+import           Language.Haskell.LSP.Types.WorkspaceFolders++-- =====================================================================+-- ACTUAL PROTOCOL -----------------------------------------------------+-- =====================================================================++-- ---------------------------------------------------------------------+-- Initialize Request+-- ---------------------------------------------------------------------+{-+Initialize Request++https://github.com/Microsoft/language-server-protocol/blob/master/protocol.md#initialize-request++The initialize request is sent as the first request from the client to the server.++Request++    method: 'initialize'+    params: InitializeParams defined as follows:++interface InitializeParams {+        /**+         * The process Id of the parent process that started+         * the server. Is null if the process has not been started by another process.+         * If the parent process is not alive then the server should exit (see exit notification) its process.+         */+        processId: number | null;++        /**+         * The rootPath of the workspace. Is null+         * if no folder is open.+         *+         * @deprecated in favour of rootUri.+         */+        rootPath?: string | null;++        /**+         * The rootUri of the workspace. Is null if no+         * folder is open. If both `rootPath` and `rootUri` are set+         * `rootUri` wins.+         */+        rootUri: DocumentUri | null;++        /**+         * User provided initialization options.+         */+        initializationOptions?: any;++        /**+         * The capabilities provided by the client (editor or tool)+         */+        capabilities: ClientCapabilities;++        /**+         * The initial trace setting. If omitted trace is disabled ('off').+         */+        trace?: 'off' | 'messages' | 'verbose';+}+-}++data Trace = TraceOff | TraceMessages | TraceVerbose+           deriving (Show, Read, Eq)++instance A.ToJSON Trace where+  toJSON TraceOff      = A.String (T.pack "off")+  toJSON TraceMessages = A.String (T.pack "messages")+  toJSON TraceVerbose  = A.String (T.pack "verbose")++instance A.FromJSON Trace where+  parseJSON (A.String s) = case T.unpack s of+    "off"      -> return TraceOff+    "messages" -> return TraceMessages+    "verbose"  -> return TraceVerbose+    _          -> mempty+  parseJSON _                               = mempty++data InitializeParams =+  InitializeParams {+    _processId             :: Maybe Int+  , _rootPath              :: Maybe Text -- ^ Deprecated in favour of _rootUri+  , _rootUri               :: Maybe Uri+  , _initializationOptions :: Maybe A.Value+  , _capabilities          :: ClientCapabilities+  , _trace                 :: Maybe Trace+  -- |  The workspace folders configured in the client when the server starts.+  -- This property is only available if the client supports workspace folders.+  -- It can be `null` if the client supports workspace folders but none are+  -- configured.+  -- Since LSP 3.6, @since 0.7.0.0+  , _workspaceFolders      :: Maybe (List WorkspaceFolder)+  } deriving (Show, Read, Eq)++{-# DEPRECATED _rootPath "Use _rootUri" #-}++deriveJSON lspOptions ''InitializeParams++-- ---------------------------------------------------------------------+-- Initialize Response+-- ---------------------------------------------------------------------+{-++    error.data:++interface InitializeError {+    /**+     * Indicates whether the client should retry to send the+     * initilize request after showing the message provided+     * in the ResponseError.+     */+    retry: boolean;+-+-}+data InitializeError =+  InitializeError+    { _retry :: Bool+    } deriving (Read, Show, Eq)++deriveJSON lspOptions ''InitializeError++-- ---------------------------------------------------------------------+{-+The server can signal the following capabilities:++/**+ * Defines how the host (editor) should sync document changes to the language server.+ */+enum TextDocumentSyncKind {+    /**+     * Documents should not be synced at all.+     */+    None = 0,+    /**+     * Documents are synced by always sending the full content of the document.+     */+    Full = 1,+    /**+     * Documents are synced by sending the full content on open. After that only incremental+     * updates to the document are sent.+     */+    Incremental = 2+}+-}++-- ^ Note: Omitting this parameter from the capabilities is effectively a fourth+-- state, where DidSave events are generated without sending document contents.+data TextDocumentSyncKind = TdSyncNone+                          | TdSyncFull+                          | TdSyncIncremental+       deriving (Read,Eq,Show)++instance A.ToJSON TextDocumentSyncKind where+  toJSON TdSyncNone        = A.Number 0+  toJSON TdSyncFull        = A.Number 1+  toJSON TdSyncIncremental = A.Number 2++instance A.FromJSON TextDocumentSyncKind where+  parseJSON (A.Number 0) = pure TdSyncNone+  parseJSON (A.Number 1) = pure TdSyncFull+  parseJSON (A.Number 2) = pure TdSyncIncremental+  parseJSON _            = mempty++-- ---------------------------------------------------------------------+{-+/**+ * Completion options.+ */+interface CompletionOptions {+    /**+     * The server provides support to resolve additional information for a completion item.+     */+    resolveProvider?: boolean;++    /**+     * The characters that trigger completion automatically.+     */+    triggerCharacters?: string[];+}+-}++data CompletionOptions =+  CompletionOptions+    { _resolveProvider   :: Maybe Bool+    , _triggerCharacters :: Maybe [String]+    } deriving (Read,Show,Eq)++deriveJSON lspOptions {omitNothingFields = True } ''CompletionOptions++-- ---------------------------------------------------------------------+{-+/**+ * Signature help options.+ */+interface SignatureHelpOptions {+    /**+     * The characters that trigger signature help automatically.+     */+    triggerCharacters?: string[];+-}++data SignatureHelpOptions =+  SignatureHelpOptions+    { _triggerCharacters :: Maybe [String]+    } deriving (Read,Show,Eq)++deriveJSON lspOptions ''SignatureHelpOptions++-- ---------------------------------------------------------------------+{-+/**+ * Code Lens options.+ */+interface CodeLensOptions {+    /**+     * Code lens has a resolve provider as well.+     */+    resolveProvider?: boolean;+}+-}++data CodeLensOptions =+  CodeLensOptions+    { _resolveProvider :: Maybe Bool+    } deriving (Read,Show,Eq)++deriveJSON lspOptions ''CodeLensOptions++-- ---------------------------------------------------------------------+{-+/**+ * Format document on type options+ */+interface DocumentOnTypeFormattingOptions {+    /**+     * A character on which formatting should be triggered, like `}`.+     */+    firstTriggerCharacter: string;+    /**+     * More trigger characters.+     */+    moreTriggerCharacter?: string[]+}+-}+data DocumentOnTypeFormattingOptions =+  DocumentOnTypeFormattingOptions+    { _firstTriggerCharacter :: Text+    , _moreTriggerCharacter  :: Maybe [String]+    } deriving (Read,Show,Eq)++deriveJSON lspOptions ''DocumentOnTypeFormattingOptions++-- ---------------------------------------------------------------------+{-+New in 3.0+----------++/**+ * Document link options+ */+export interface DocumentLinkOptions {+        /**+         * Document links have a resolve provider as well.+         */+        resolveProvider?: boolean;+}+-}++data DocumentLinkOptions =+  DocumentLinkOptions+    { -- |Document links have a resolve provider as well.+      _resolveProvider :: Maybe Bool+    } deriving (Show, Read, Eq)++deriveJSON lspOptions ''DocumentLinkOptions++-- ---------------------------------------------------------------------++{-+New in 3.0+-----------++/**+ * Execute command options.+ */+export interface ExecuteCommandOptions {+        /**+         * The commands to be executed on the server+         */+        commands: string[]+}+-}++data ExecuteCommandOptions =+  ExecuteCommandOptions+    { -- | The commands to be executed on the server+      _commands :: List Text+    } deriving (Show, Read, Eq)++deriveJSON lspOptions ''ExecuteCommandOptions++-- ---------------------------------------------------------------------+{-+New in 3.0+----------+/**+ * Save options.+ */+export interface SaveOptions {+        /**+         * The client is supposed to include the content on save.+         */+        includeText?: boolean;+}+-}+data SaveOptions =+  SaveOptions+    { -- |The client is supposed to include the content on save.+      _includeText :: Maybe Bool+    } deriving (Show, Read, Eq)++deriveJSON lspOptions ''SaveOptions++-- ---------------------------------------------------------------------+{-+New in 3.0+----------++export interface TextDocumentSyncOptions {+        /**+         * Open and close notifications are sent to the server.+         */+        openClose?: boolean;+        /**+         * Change notificatins are sent to the server. See TextDocumentSyncKind.None, TextDocumentSyncKind.Full+         * and TextDocumentSyncKindIncremental.+         */+        change?: number;+        /**+         * Will save notifications are sent to the server.+         */+        willSave?: boolean;+        /**+         * Will save wait until requests are sent to the server.+         */+        willSaveWaitUntil?: boolean;+        /**+         * Save notifications are sent to the server.+         */+        save?: SaveOptions;+}+-}++data TextDocumentSyncOptions =+  TextDocumentSyncOptions+    { -- | Open and close notifications are sent to the server.+      _openClose         :: Maybe Bool++      -- | Change notificatins are sent to the server. See+      -- TextDocumentSyncKind.None, TextDocumentSyncKind.Full and+      -- TextDocumentSyncKindIncremental.+    , _change            :: Maybe TextDocumentSyncKind++      -- | Will save notifications are sent to the server.+    , _willSave          :: Maybe Bool++      -- | Will save wait until requests are sent to the server.+    , _willSaveWaitUntil :: Maybe Bool++      -- |Save notifications are sent to the server.+    , _save              :: Maybe SaveOptions+    } deriving (Show, Read, Eq)++deriveJSON lspOptions ''TextDocumentSyncOptions++-- ---------------------------------------------------------------------+{-++Extended in 3.0+---------------++interface ServerCapabilities {+        /**+         * Defines how text documents are synced. Is either a detailed structure defining each notification or+         * for backwards compatibility the TextDocumentSyncKind number. If omitted it defaults to `TextDocumentSyncKind.None`.+         */+        textDocumentSync?: TextDocumentSyncOptions | number;+        /**+         * The server provides hover support.+         */+        hoverProvider?: boolean;+        /**+         * The server provides completion support.+         */+        completionProvider?: CompletionOptions;+        /**+         * The server provides signature help support.+         */+        signatureHelpProvider?: SignatureHelpOptions;+        /**+         * The server provides goto definition support.+         */+        definitionProvider?: boolean;+        /**+         * The server provides Goto Type Definition support.+         *+         * Since 3.6.0+         */+        typeDefinitionProvider?: boolean | (TextDocumentRegistrationOptions & StaticRegistrationOptions);+        /**+         * The server provides Goto Implementation support.+         *+         * Since 3.6.0+         */+        implementationProvider?: boolean | (TextDocumentRegistrationOptions & StaticRegistrationOptions);+        /**+         * The server provides find references support.+         */+        referencesProvider?: boolean;+        /**+         * The server provides document highlight support.+         */+        documentHighlightProvider?: boolean;+        /**+         * The server provides document symbol support.+         */+        documentSymbolProvider?: boolean;+        /**+         * The server provides workspace symbol support.+         */+        workspaceSymbolProvider?: boolean;+        /**+         * The server provides code actions.+         */+        codeActionProvider?: boolean;+        /**+         * The server provides code lens.+         */+        codeLensProvider?: CodeLensOptions;+        /**+         * The server provides document formatting.+         */+        documentFormattingProvider?: boolean;+        /**+         * The server provides document range formatting.+         */+        documentRangeFormattingProvider?: boolean;+        /**+         * The server provides document formatting on typing.+         */+        documentOnTypeFormattingProvider?: DocumentOnTypeFormattingOptions;+        /**+         * The server provides rename support.+         */+        renameProvider?: boolean;+        /**+         * The server provides document link support.+         */+        documentLinkProvider?: DocumentLinkOptions;+        /**+         * The server provides color provider support.+         *+         * Since 3.6.0+         */+        colorProvider?: boolean | ColorProviderOptions | (ColorProviderOptions & TextDocumentRegistrationOptions & StaticRegistrationOptions);+        /**+         * The server provides folding provider support.+         *+         * Since 3.10.0+         */+        foldingRangeProvider?: boolean | FoldingRangeProviderOptions | (FoldingRangeProviderOptions & TextDocumentRegistrationOptions & StaticRegistrationOptions);     +        /**+         * The server provides execute command support.+         */+        executeCommandProvider?: ExecuteCommandOptions;+        /**+         * Workspace specific server capabilities+         */+        workspace?: {+                /**+                 * The server supports workspace folder.+                 *+                 * Since 3.6.0+                 */+                workspaceFolders?: {+                        /**+                        * The server has support for workspace folders+                        */+                        supported?: boolean;+                        /**+                        * Whether the server wants to receive workspace folder+                        * change notifications.+                        *+                        * If a strings is provided the string is treated as a ID+                        * under which the notification is registered on the client+                        * side. The ID can be used to unregister for these events+                        * using the `client/unregisterCapability` request.+                        */+                        changeNotifications?: string | boolean;+                }+        }+        /**+         * Experimental server capabilities.+         */+        experimental?: any;+}+-}++-- | Wrapper for TextDocumentSyncKind fallback.+data TDS = TDSOptions TextDocumentSyncOptions+         | TDSKind TextDocumentSyncKind+    deriving (Show, Read, Eq)++instance FromJSON TDS where+    parseJSON x = TDSOptions <$> parseJSON x <|> TDSKind <$> parseJSON x+    +instance ToJSON TDS where+    toJSON (TDSOptions x) = toJSON x+    toJSON (TDSKind x) = toJSON x++data GotoOptions = GotoOptionsStatic Bool+                 | GotoOptionsDynamic+                    { -- | A document selector to identify the scope of the registration. If set to null+                      -- the document selector provided on the client side will be used.+                      _documentSelector :: Maybe DocumentSelector +                      -- | The id used to register the request. The id can be used to deregister+                      -- the request again. See also Registration#id.+                    , _id :: Maybe Text+                    }+  deriving (Show, Read, Eq)++deriveJSON lspOptions { sumEncoding = A.UntaggedValue } ''GotoOptions+-- TODO: Figure out how to make Lens', not Traversal', for sum types+--makeFieldsNoPrefix ''GotoOptions++data ColorOptions = ColorOptionsStatic Bool+                  | ColorOptionsDynamic+                  | ColorOptionsDynamicDocument+                    { -- | A document selector to identify the scope of the registration. If set to null+                      -- the document selector provided on the client side will be used.+                      _documentSelector :: Maybe DocumentSelector+                      -- | The id used to register the request. The id can be used to deregister+                      -- the request again. See also Registration#id.+                    , _id :: Maybe Text+                    }+  deriving (Show, Read, Eq)++deriveJSON lspOptions { sumEncoding = A.UntaggedValue } ''ColorOptions+-- makeFieldsNoPrefix ''ColorOptions++data FoldingRangeOptions = FoldingRangeOptionsStatic Bool+                         | FoldingRangeOptionsDynamic+                         | FoldingRangeOptionsDynamicDocument+                           { -- | A document selector to identify the scope of the registration. If set to null+                             -- the document selector provided on the client side will be used.+                             _documentSelector :: Maybe DocumentSelector+                             -- | The id used to register the request. The id can be used to deregister+                             -- the request again. See also Registration#id.+                           , _id :: Maybe Text+                           }+  deriving (Show, Read, Eq)++deriveJSON lspOptions { sumEncoding = A.UntaggedValue } ''FoldingRangeOptions+-- makeFieldsNoPrefix ''FoldingRangeOptions++data WorkspaceFolderChangeNotifications = WorkspaceFolderChangeNotificationsString Text+                                        | WorkspaceFolderChangeNotificationsBool Bool+  deriving (Show, Read, Eq)++deriveJSON lspOptions{ sumEncoding = A.UntaggedValue } ''WorkspaceFolderChangeNotifications++data WorkspaceFolderOptions =+  WorkspaceFolderOptions+    { -- | The server has support for workspace folders+      _supported :: Maybe Bool+      -- | Whether the server wants to receive workspace folder+      -- change notifications.+      -- If a strings is provided the string is treated as a ID+      -- under which the notification is registered on the client+      -- side. The ID can be used to unregister for these events+      -- using the `client/unregisterCapability` request.+    , _changeNotifications :: Maybe WorkspaceFolderChangeNotifications+    }+  deriving (Show, Read, Eq)++deriveJSON lspOptions ''WorkspaceFolderOptions++data WorkspaceOptions =+  WorkspaceOptions+    { -- |The server supports workspace folder. Since LSP 3.6, @since 0.7.0.0+      _workspaceFolders :: Maybe WorkspaceFolderOptions+    }+  deriving (Show, Read, Eq)++deriveJSON lspOptions ''WorkspaceOptions+      +data InitializeResponseCapabilitiesInner =+  InitializeResponseCapabilitiesInner+    { -- | Defines how text documents are synced. Is either a detailed structure+      -- defining each notification or for backwards compatibility the+      -- 'TextDocumentSyncKind' number.+      -- If omitted it defaults to 'TdSyncNone'.+      _textDocumentSync                 :: Maybe TDS+      -- | The server provides hover support.+    , _hoverProvider                    :: Maybe Bool+      -- | The server provides completion support.+    , _completionProvider               :: Maybe CompletionOptions+      -- | The server provides signature help support.+    , _signatureHelpProvider            :: Maybe SignatureHelpOptions+      -- | The server provides goto definition support.+    , _definitionProvider               :: Maybe Bool+      -- | The server provides Goto Type Definition support. Since LSP 3.6, @since 0.7.0.0+    , _typeDefinitionProvider           :: Maybe GotoOptions+      -- | The server provides Goto Implementation support.+      -- Since LSP 3.6, @since 0.7.0.0+    , _implementationProvider           :: Maybe GotoOptions+      -- | The server provides find references support.+    , _referencesProvider               :: Maybe Bool+      -- | The server provides document highlight support.+    , _documentHighlightProvider        :: Maybe Bool+      -- | The server provides document symbol support.+    , _documentSymbolProvider           :: Maybe Bool+      -- | The server provides workspace symbol support.+    , _workspaceSymbolProvider          :: Maybe Bool+      -- | The server provides code actions.+    , _codeActionProvider               :: Maybe Bool+      -- | The server provides code lens.+    , _codeLensProvider                 :: Maybe CodeLensOptions+      -- | The server provides document formatting.+    , _documentFormattingProvider       :: Maybe Bool+      -- | The server provides document range formatting.+    , _documentRangeFormattingProvider  :: Maybe Bool+      -- | The server provides document formatting on typing.+    , _documentOnTypeFormattingProvider :: Maybe DocumentOnTypeFormattingOptions+      -- | The server provides rename support.+    , _renameProvider                   :: Maybe Bool+      -- | The server provides document link support.+    , _documentLinkProvider             :: Maybe DocumentLinkOptions+      -- | The server provides color provider support. Since LSP 3.6, @since 0.7.0.0+    , _colorProvider                    :: Maybe ColorOptions+      -- | The server provides folding provider support. Since LSP 3.10, @since 0.7.0.0+    , _foldingRangeProvider             :: Maybe FoldingRangeOptions+      -- | The server provides execute command support.+    , _executeCommandProvider           :: Maybe ExecuteCommandOptions+      -- | Workspace specific server capabilities+    , _workspace                        :: Maybe WorkspaceOptions+      -- | Experimental server capabilities.+    , _experimental                     :: Maybe A.Value+    } deriving (Show, Read, Eq)++deriveJSON lspOptions ''InitializeResponseCapabilitiesInner++-- ---------------------------------------------------------------------+-- |+--   Information about the capabilities of a language server+--+data InitializeResponseCapabilities =+  InitializeResponseCapabilities {+    _capabilities :: InitializeResponseCapabilitiesInner+  } deriving (Show, Read, Eq)++deriveJSON lspOptions ''InitializeResponseCapabilities++-- ---------------------------------------------------------------------++type InitializeResponse = ResponseMessage InitializeResponseCapabilities++type InitializeRequest = RequestMessage ClientMethod InitializeParams InitializeResponseCapabilities++{-+    error.code:++/**+ * Known error codes for an `InitializeError`;+ */+export namespace InitializeError {+        /**+         * If the protocol version provided by the client can't be handled by the server.+         * @deprecated This initialize error got replaced by client capabilities. There is+         * no version handshake in version 3.0x+         */+        export const unknownProtocolVersion: number = 1;+}++    error.data:++interface InitializeError {+        /**+         * Indicates whether the client execute the following retry logic:+         * (1) show the message provided by the ResponseError to the user+         * (2) user selects retry or cancel+         * (3) if user selected retry the initialize method is sent again.+         */+        retry: boolean;+}+-}++-- ---------------------------------------------------------------------++{-+New in 3.0+----------+Initialized Notification++The initialized notification is sent from the client to the server after the+client is fully initialized and is able to listen to arbritary requests and+notifications sent from the server.++Notification:++    method: 'initialized'+    params: void++-}++data InitializedParams =+  InitializedParams+    {+    } deriving (Show, Read, Eq)++instance A.FromJSON InitializedParams where+  parseJSON (A.Object _) = pure InitializedParams+  parseJSON _            = mempty++instance A.ToJSON InitializedParams where+  toJSON InitializedParams = A.Object mempty++type InitializedNotification = NotificationMessage ClientMethod (Maybe InitializedParams)++-- ---------------------------------------------------------------------+{-+Shutdown Request++https://github.com/Microsoft/language-server-protocol/blob/master/protocol.md#shutdown-request++The shutdown request is sent from the client to the server. It asks the server+to shut down, but to not exit (otherwise the response might not be delivered+correctly to the client). There is a separate exit notification that asks the+server to exit.++Request++    method: 'shutdown'+    params: undefined++Response++    result: undefined+    error: code and message set in case an exception happens during shutdown request.+++-}++type ShutdownRequest  = RequestMessage ClientMethod (Maybe A.Value) Text+type ShutdownResponse = ResponseMessage Text++-- ---------------------------------------------------------------------+{-+Exit Notification++https://github.com/Microsoft/language-server-protocol/blob/master/protocol.md#exit-notification++A notification to ask the server to exit its process.++Notification++    method: 'exit'++-}++-- |+--   Notification from the server to actually exit now, after shutdown acked+--+data ExitParams =+  ExitParams+    {+    } deriving (Show, Read, Eq)++deriveJSON defaultOptions ''ExitParams++type ExitNotification = NotificationMessage ClientMethod (Maybe ExitParams)++-- ---------------------------------------------------------------------+{-+ShowMessage Notification++https://github.com/Microsoft/language-server-protocol/blob/master/protocol.md#showmessage-notification++The show message notification is sent from a server to a client to ask the+client to display a particular message in the user interface.++Notification:++    method: 'window/showMessage'+    params: ShowMessageParams defined as follows:++interface ShowMessageParams {+    /**+     * The message type. See {@link MessageType}.+     */+    type: number;++    /**+     * The actual message.+     */+    message: string;+}++Where the type is defined as follows:++enum MessageType {+    /**+     * An error message.+     */+    Error = 1,+    /**+     * A warning message.+     */+    Warning = 2,+    /**+     * An information message.+     */+    Info = 3,+    /**+     * A log message.+     */+    Log = 4+}+-}+data MessageType = MtError   -- ^ Error = 1,+                 | MtWarning -- ^ Warning = 2,+                 | MtInfo    -- ^ Info = 3,+                 | MtLog     -- ^ Log = 4+        deriving (Eq,Ord,Show,Read,Enum)++instance A.ToJSON MessageType where+  toJSON MtError   = A.Number 1+  toJSON MtWarning = A.Number 2+  toJSON MtInfo    = A.Number 3+  toJSON MtLog     = A.Number 4++instance A.FromJSON MessageType where+  parseJSON (A.Number 1) = pure MtError+  parseJSON (A.Number 2) = pure MtWarning+  parseJSON (A.Number 3) = pure MtInfo+  parseJSON (A.Number 4) = pure MtLog+  parseJSON _            = mempty++-- ---------------------------------------+++data ShowMessageParams =+  ShowMessageParams {+    _xtype   :: MessageType+  , _message :: Text+  } deriving (Show, Read, Eq)++deriveJSON lspOptions{ fieldLabelModifier = customModifier } ''ShowMessageParams++type ShowMessageNotification = NotificationMessage ServerMethod ShowMessageParams++-- ---------------------------------------------------------------------+{-+ShowMessage Request++https://github.com/Microsoft/language-server-protocol/blob/master/protocol.md#showmessage-request++    New: The show message request is sent from a server to a client to ask the+    client to display a particular message in the user interface. In addition to+    the show message notification the request allows to pass actions and to wait+    for an answer from the client.++Request:++    method: 'window/showMessageRequest'+    params: ShowMessageRequestParams defined as follows:++Response:++    result: the selected MessageActionItem+    error: code and message set in case an exception happens during showing a message.++interface ShowMessageRequestParams {+    /**+     * The message type. See {@link MessageType}+     */+    type: number;++    /**+     * The actual message+     */+    message: string;++    /**+     * The message action items to present.+     */+    actions?: MessageActionItem[];+}++Where the MessageActionItem is defined as follows:++interface MessageActionItem {+    /**+     * A short title like 'Retry', 'Open Log' etc.+     */+    title: string;+}+-}++data MessageActionItem =+  MessageActionItem+    { _title :: Text+    } deriving (Show,Read,Eq)++deriveJSON lspOptions ''MessageActionItem+++data ShowMessageRequestParams =+  ShowMessageRequestParams+    { _xtype   :: MessageType+    , _message :: Text+    , _actions :: Maybe [MessageActionItem]+    } deriving (Show,Read,Eq)++deriveJSON lspOptions{ fieldLabelModifier = customModifier } ''ShowMessageRequestParams++type ShowMessageRequest = RequestMessage ServerMethod ShowMessageRequestParams Text+type ShowMessageResponse = ResponseMessage Text++-- ---------------------------------------------------------------------+{-+LogMessage Notification++https://github.com/Microsoft/language-server-protocol/blob/master/protocol.md#logmessage-notification++The log message notification is sent from the server to the client to ask the+client to log a particular message.++Notification:++    method: 'window/logMessage'+    params: LogMessageParams defined as follows:++interface LogMessageParams {+    /**+     * The message type. See {@link MessageType}+     */+    type: number;++    /**+     * The actual message+     */+    message: string;+}++Where type is defined as above.+-}++data LogMessageParams =+  LogMessageParams {+    _xtype   :: MessageType+  , _message :: Text+  } deriving (Show, Read, Eq)++deriveJSON lspOptions{ fieldLabelModifier = customModifier } ''LogMessageParams+++type LogMessageNotification = NotificationMessage ServerMethod LogMessageParams++-- ---------------------------------------------------------------------+{-+Telemetry Notification++https://github.com/Microsoft/language-server-protocol/blob/master/protocol.md#telemetry-notification++    New: The telemetry notification is sent from the server to the client to ask+    the client to log a telemetry event.++Notification:++    method: 'telemetry/event'+    params: 'any'+-}+++type TelemetryNotification = NotificationMessage ServerMethod A.Value++-- ---------------------------------------------------------------------+{-+New in 3.0+----------++Register Capability++The client/registerCapability request is sent from the server to the client to+register for a new capability on the client side. Not all clients need to+support dynamic capability registration. A client opts in via the+ClientCapabilities.dynamicRegistration property.++Request:++    method: 'client/registerCapability'+    params: RegistrationParams++Where RegistrationParams are defined as follows:++/**+ * General paramters to to regsiter for a capability.+ */+export interface Registration {+        /**+         * The id used to register the request. The id can be used to deregister+         * the request again.+         */+        id: string;++        /**+         * The method / capability to register for.+         */+        method: string;++        /**+         * Options necessary for the registration.+         */+        registerOptions?: any;+}++export interface RegistrationParams {+        registrations: Registration[];+}+-}++data Registration =+  Registration+    { -- |The id used to register the request. The id can be used to deregister+      -- the request again.+      _id              :: Text++       -- | The method / capability to register for.+    , _method          :: ClientMethod++      -- | Options necessary for the registration.+    , _registerOptions :: Maybe A.Value+    } deriving (Show, Read, Eq)++deriveJSON lspOptions ''Registration++data RegistrationParams =+  RegistrationParams+    { _registrations :: List Registration+    } deriving (Show, Read, Eq)++deriveJSON lspOptions ''RegistrationParams++-- |Note: originates at the server+type RegisterCapabilityRequest = RequestMessage ServerMethod RegistrationParams ()++type RegisterCapabilityResponse = ResponseMessage ()++-- -------------------------------------++{-+Since most of the registration options require to specify a document selector+there is a base interface that can be used.++export interface TextDocumentRegistrationOptions {+        /**+         * A document selector to identify the scope of the registration. If set to null+         * the document selector provided on the client side will be used.+         */+        documentSelector: DocumentSelector | null;+}+-}++data TextDocumentRegistrationOptions =+  TextDocumentRegistrationOptions+    { _documentSelector :: Maybe DocumentSelector+    } deriving (Show, Read, Eq)++deriveJSON lspOptions ''TextDocumentRegistrationOptions++-- ---------------------------------------------------------------------+{-+New in 3.0+----------++Unregister Capability++The client/unregisterCapability request is sent from the server to the client to+unregister a previously register capability.++Request:++    method: 'client/unregisterCapability'+    params: UnregistrationParams++Where UnregistrationParams are defined as follows:++/**+ * General parameters to unregister a capability.+ */+export interface Unregistration {+        /**+         * The id used to unregister the request or notification. Usually an id+         * provided during the register request.+         */+        id: string;++        /**+         * The method / capability to unregister for.+         */+        method: string;+}++export interface UnregistrationParams {+        unregisterations: Unregistration[];+}+-}++data Unregistration =+  Unregistration+    { -- | The id used to unregister the request or notification. Usually an id+      -- provided during the register request.+      _id     :: Text++       -- |The method / capability to unregister for.+    , _method :: Text+    } deriving (Show, Read, Eq)++deriveJSON lspOptions ''Unregistration++data UnregistrationParams =+  UnregistrationParams+    { _unregistrations :: List Unregistration+    } deriving (Show, Read, Eq)++deriveJSON lspOptions ''UnregistrationParams++type UnregisterCapabilityRequest = RequestMessage ServerMethod UnregistrationParams ()++type UnregisterCapabilityResponse = ResponseMessage ()++-- ---------------------------------------------------------------------+{-+DidChangeConfiguration Notification++https://github.com/Microsoft/language-server-protocol/blob/master/protocol.md#didchangeconfiguration-notification++A notification sent from the client to the server to signal the change of+configuration settings.++Notification:++    method: 'workspace/didChangeConfiguration',+    params: DidChangeConfigurationParams defined as follows:++interface DidChangeConfigurationParams {+    /**+     * The actual changed settings+     */+    settings: any;+}+-}++data DidChangeConfigurationParams =+  DidChangeConfigurationParams {+    _settings :: A.Value+  } deriving (Show, Read, Eq)++deriveJSON lspOptions ''DidChangeConfigurationParams++-- ---------------------------------------------------------------------++type DidChangeConfigurationNotification = NotificationMessage ClientMethod DidChangeConfigurationParams++{-+Configuration Request (:arrow_right_hook:)+Since version 3.6.0++The workspace/configuration request is sent from the server to the client to+fetch configuration settings from the client. The request can fetch n+configuration settings in one roundtrip. The order of the returned configuration+settings correspond to the order of the passed ConfigurationItems (e.g. the+first item in the response is the result for the first configuration item in the+params).++A ConfigurationItem consist of the configuration section to ask for and an+additional scope URI. The configuration section ask for is defined by the server+and doesn’t necessarily need to correspond to the configuration store used be+the client. So a server might ask for a configuration cpp.formatterOptions but+the client stores the configuration in a XML store layout differently. It is up+to the client to do the necessary conversion. If a scope URI is provided the+client should return the setting scoped to the provided resource. If the client+for example uses EditorConfig to manage its settings the configuration should be+returned for the passed resource URI. If the client can’t provide a+configuration setting for a given scope then null need to be present in the+returned array.++Request:++method: ‘workspace/configuration’+params: ConfigurationParams defined as follows+export interface ConfigurationParams {+	items: ConfigurationItem[];+}++export interface ConfigurationItem {+	/**+	 * The scope to get the configuration section for.+	 */+	scopeUri?: string;++	/**+	 * The configuration section asked for.+	 */+	section?: string;+}+Response:++result: any[]+error: code and message set in case an exception happens during the+‘workspace/configuration’ request+-}++data ConfigurationItem =+  ConfigurationItem+    { _scopeUri :: Maybe Text -- ^ The scope to get the configuration section for.+    , _section  :: Maybe Text -- ^ The configuration section asked for.+    } deriving (Show, Read, Eq)++deriveJSON lspOptions ''ConfigurationItem++data ConfigurationParams =+  ConfigurationParams+    { _items :: List ConfigurationItem+    } deriving (Show, Read, Eq)++deriveJSON lspOptions ''ConfigurationParams++type ConfigurationRequest = RequestMessage ServerMethod ConfigurationParams (List A.Value)+type ConfigurationResponse = ResponseMessage (List A.Value)++-- ---------------------------------------------------------------------+{-+DidOpenTextDocument Notification++https://github.com/Microsoft/language-server-protocol/blob/master/protocol.md#didopentextdocument-notification++The document open notification is sent from the client to the server to signal+newly opened text documents. The document's truth is now managed by the client+and the server must not try to read the document's truth using the document's+uri.++Notification:++    method: 'textDocument/didOpen'+    params: DidOpenTextDocumentParams defined as follows:++interface DidOpenTextDocumentParams {+    /**+     * The document that was opened.+     */+    textDocument: TextDocumentItem;+}++Registration Options: TextDocumentRegistrationOptions+-}++data DidOpenTextDocumentParams =+  DidOpenTextDocumentParams {+    _textDocument :: TextDocumentItem+  } deriving (Show, Read, Eq)++deriveJSON lspOptions ''DidOpenTextDocumentParams++type DidOpenTextDocumentNotification = NotificationMessage ClientMethod DidOpenTextDocumentParams++-- ---------------------------------------------------------------------+{-+DidChangeTextDocument Notification++https://github.com/Microsoft/language-server-protocol/blob/master/protocol.md#didchangetextdocument-notification++    Changed: The document change notification is sent from the client to the+    server to signal changes to a text document. In 2.0 the shape of the params+    has changed to include proper version numbers and language ids.++Notification:++    method: 'textDocument/didChange'+    params: DidChangeTextDocumentParams defined as follows:++interface DidChangeTextDocumentParams {+    /**+     * The document that did change. The version number points+     * to the version after all provided content changes have+     * been applied.+     */+    textDocument: VersionedTextDocumentIdentifier;++    /**+     * The actual content changes.+     */+    contentChanges: TextDocumentContentChangeEvent[];+}++/**+ * An event describing a change to a text document. If range and rangeLength are omitted+ * the new text is considered to be the full content of the document.+ */+interface TextDocumentContentChangeEvent {+    /**+     * The range of the document that changed.+     */+    range?: Range;++    /**+     * The length of the range that got replaced.+     */+    rangeLength?: number;++    /**+     * The new text of the document.+     */+    text: string;+}+-}+data TextDocumentContentChangeEvent =+  TextDocumentContentChangeEvent+    { _range       :: Maybe Range+    , _rangeLength :: Maybe Int+    , _text        :: Text+    } deriving (Read,Show,Eq)++deriveJSON lspOptions { omitNothingFields = True } ''TextDocumentContentChangeEvent++-- -------------------------------------++data DidChangeTextDocumentParams =+  DidChangeTextDocumentParams+    { _textDocument   :: VersionedTextDocumentIdentifier+    , _contentChanges :: List TextDocumentContentChangeEvent+    } deriving (Show,Read,Eq)++deriveJSON lspOptions ''DidChangeTextDocumentParams++type DidChangeTextDocumentNotification = NotificationMessage ClientMethod DidChangeTextDocumentParams+{-+New in 3.0+----------++Registration Options: TextDocumentChangeRegistrationOptions defined as follows:++/**+ * Descibe options to be used when registered for text document change events.+ */+export interface TextDocumentChangeRegistrationOptions extends TextDocumentRegistrationOptions {+        /**+         * How documents are synced to the server. See TextDocumentSyncKind.Full+         * and TextDocumentSyncKindIncremental.+         */+        syncKind: number;+}+-}++data TextDocumentChangeRegistrationOptions =+  TextDocumentChangeRegistrationOptions+    { _documentSelector :: Maybe DocumentSelector+    , _syncKind         :: TextDocumentSyncKind+    } deriving (Show, Read, Eq)++deriveJSON lspOptions ''TextDocumentChangeRegistrationOptions++-- ---------------------------------------------------------------------+{-++New in 3.0+----------++WillSaveTextDocument Notification++The document will save notification is sent from the client to the server before+the document is actually saved.++Notification:++    method: 'textDocument/willSave'+    params: WillSaveTextDocumentParams defined as follows:++/**+ * The parameters send in a will save text document notification.+ */+export interface WillSaveTextDocumentParams {+        /**+         * The document that will be saved.+         */+        textDocument: TextDocumentIdentifier;++        /**+         * The 'TextDocumentSaveReason'.+         */+        reason: number;+}++/**+ * Represents reasons why a text document is saved.+ */+export namespace TextDocumentSaveReason {++        /**+         * Manually triggered, e.g. by the user pressing save, by starting debugging,+         * or by an API call.+         */+        export const Manual = 1;++        /**+         * Automatic after a delay.+         */+        export const AfterDelay = 2;++        /**+         * When the editor lost focus.+         */+        export const FocusOut = 3;+}+Registration Options: TextDocumentRegistrationOptions+-}++data TextDocumentSaveReason+  = SaveManual+         -- ^ Manually triggered, e.g. by the user pressing save, by starting+         -- debugging, or by an API call.+  | SaveAfterDelay -- ^ Automatic after a delay+  | SaveFocusOut   -- ^ When the editor lost focus+  deriving (Show, Read, Eq)++instance A.ToJSON TextDocumentSaveReason where+  toJSON SaveManual     = A.Number 1+  toJSON SaveAfterDelay = A.Number 2+  toJSON SaveFocusOut   = A.Number 3++instance A.FromJSON TextDocumentSaveReason where+  parseJSON (A.Number 1) = pure SaveManual+  parseJSON (A.Number 2) = pure SaveAfterDelay+  parseJSON (A.Number 3) = pure SaveFocusOut+  parseJSON _            = mempty++data WillSaveTextDocumentParams =+  WillSaveTextDocumentParams+    { _textDocument :: TextDocumentIdentifier+    , _reason       :: TextDocumentSaveReason+    } deriving (Show, Read, Eq)++deriveJSON lspOptions ''WillSaveTextDocumentParams++type WillSaveTextDocumentNotification = NotificationMessage ClientMethod WillSaveTextDocumentParams++-- ---------------------------------------------------------------------+{-+New in 3.0+----------++WillSaveWaitUntilTextDocument Request++The document will save request is sent from the client to the server before the+document is actually saved. The request can return an array of TextEdits which+will be applied to the text document before it is saved. Please note that+clients might drop results if computing the text edits took too long or if a+server constantly fails on this request. This is done to keep the save fast and+reliable.++Request:++    method: 'textDocument/willSaveWaitUntil'+    params: WillSaveTextDocumentParams++Response:++    result: TextEdit[]+    error: code and message set in case an exception happens during the willSaveWaitUntil request.++Registration Options: TextDocumentRegistrationOptions+-}++type WillSaveWaitUntilTextDocumentRequest = RequestMessage ClientMethod WillSaveTextDocumentParams (List TextEdit)+type WillSaveWaitUntilTextDocumentResponse = ResponseMessage (List TextEdit)++-- ---------------------------------------------------------------------+{-+DidSaveTextDocument Notification++https://github.com/Microsoft/language-server-protocol/blob/master/protocol.md#didsavetextdocument-notification++    New: The document save notification is sent from the client to the server+    when the document was saved in the client.++    method: 'textDocument/didSave'+    params: DidSaveTextDocumentParams defined as follows:++interface DidSaveTextDocumentParams {+    /**+     * The document that was saved.+     */+    textDocument: TextDocumentIdentifier;+}+-}+data DidSaveTextDocumentParams =+  DidSaveTextDocumentParams+    { _textDocument :: TextDocumentIdentifier+    } deriving (Read,Show,Eq)++deriveJSON lspOptions ''DidSaveTextDocumentParams++type DidSaveTextDocumentNotification = NotificationMessage ClientMethod DidSaveTextDocumentParams++++-- ---------------------------------------------------------------------+{-+DidCloseTextDocument Notification++https://github.com/Microsoft/language-server-protocol/blob/master/protocol.md#didclosetextdocument-notification++The document close notification is sent from the client to the server when the+document got closed in the client. The document's truth now exists where the+document's uri points to (e.g. if the document's uri is a file uri the truth now+exists on disk).++    Changed: In 2.0 the params are of type DidCloseTextDocumentParams which+    contains a reference to a text document.++Notification:++    method: 'textDocument/didClose'+    params: DidCloseTextDocumentParams defined as follows:++interface DidCloseTextDocumentParams {+    /**+     * The document that was closed.+     */+    textDocument: TextDocumentIdentifier;+}+-}+data DidCloseTextDocumentParams =+  DidCloseTextDocumentParams+    { _textDocument :: TextDocumentIdentifier+    } deriving (Read,Show,Eq)++deriveJSON lspOptions ''DidCloseTextDocumentParams+++type DidCloseTextDocumentNotification = NotificationMessage ClientMethod DidCloseTextDocumentParams++-- ---------------------------------------------------------------------+{-+DidChangeWatchedFiles Notification++https://github.com/Microsoft/language-server-protocol/blob/master/protocol.md#didchangewatchedfiles-notification++The watched files notification is sent from the client to the server when the+client detects changes to files watched by the language client.++Notification:++    method: 'workspace/didChangeWatchedFiles'+    params: DidChangeWatchedFilesParams defined as follows:++interface DidChangeWatchedFilesParams {+    /**+     * The actual file events.+     */+    changes: FileEvent[];+}++Where FileEvents are described as follows:++/**+ * The file event type.+ */+enum FileChangeType {+    /**+     * The file got created.+     */+    Created = 1,+    /**+     * The file got changed.+     */+    Changed = 2,+    /**+     * The file got deleted.+     */+    Deleted = 3+}++/**+ * An event describing a file change.+ */+interface FileEvent {+    /**+     * The file's URI.+     */+    uri: string;+    /**+     * The change type.+     */+    type: number;+-}+data FileChangeType = FcCreated+                    | FcChanged+                    | FcDeleted+       deriving (Read,Show,Eq)++instance A.ToJSON FileChangeType where+  toJSON FcCreated = A.Number 1+  toJSON FcChanged = A.Number 2+  toJSON FcDeleted = A.Number 3++instance A.FromJSON FileChangeType where+  parseJSON (A.Number 1) = pure FcCreated+  parseJSON (A.Number 2) = pure FcChanged+  parseJSON (A.Number 3) = pure FcDeleted+  parseJSON _            = mempty+++-- -------------------------------------++data FileEvent =+  FileEvent+    { _uri   :: Uri+    , _xtype :: FileChangeType+    } deriving (Read,Show,Eq)++deriveJSON lspOptions{ fieldLabelModifier = customModifier } ''FileEvent++data DidChangeWatchedFilesParams =+  DidChangeWatchedFilesParams+    { _changes :: List FileEvent+    } deriving (Read,Show,Eq)++deriveJSON lspOptions ''DidChangeWatchedFilesParams+++type DidChangeWatchedFilesNotification = NotificationMessage ClientMethod DidChangeWatchedFilesParams++-- ---------------------------------------------------------------------+{-+PublishDiagnostics Notification++https://github.com/Microsoft/language-server-protocol/blob/master/protocol.md#publishdiagnostics-notification++Diagnostics notification are sent from the server to the client to signal+results of validation runs.++Notification++    method: 'textDocument/publishDiagnostics'+    params: PublishDiagnosticsParams defined as follows:++interface PublishDiagnosticsParams {+    /**+     * The URI for which diagnostic information is reported.+     */+    uri: string;++    /**+     * An array of diagnostic information items.+     */+    diagnostics: Diagnostic[];+}+-}++data PublishDiagnosticsParams =+  PublishDiagnosticsParams+    { _uri         :: Uri+    , _diagnostics :: List Diagnostic+    } deriving (Read,Show,Eq)++deriveJSON lspOptions ''PublishDiagnosticsParams+++type PublishDiagnosticsNotification = NotificationMessage ServerMethod PublishDiagnosticsParams++-- ---------------------------------------------------------------------+{-+Hover Request++The hover request is sent from the client to the server to request hover+information at a given text document position.++    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/hover'+    params: TextDocumentPositionParams++Response++    result: Hover defined as follows:++/**+ * The result of a hove request.+ */+interface Hover {+    /**+     * The hover's content+     */+    contents: MarkedString | MarkedString[];++    /**+     * An optional range+     */+    range?: Range;+}++Where MarkedString is defined as follows:+/**+ * MarkedString can be used to render human readable text. It is either a markdown string+ * or a code-block that provides a language and a code snippet. The language identifier+ * is sematically equal to the optional language identifier in fenced code blocks in GitHub+ * issues. See https://help.github.com/articles/creating-and-highlighting-code-blocks/#syntax-highlighting+ *+ * The pair of a language and a value is an equivalent to markdown:+ * ```${language}+ * ${value}+ * ```+ *+ * Note that markdown strings will be sanitized - that means html will be escaped.+ */+type MarkedString = string | { language: string; value: string };++    error: code and message set in case an exception happens during the hover+    request.++Registration Options: TextDocumentRegistrationOptions++-}++data LanguageString =+  LanguageString+    { _language :: Text+    , _value    :: Text+    } deriving (Read,Show,Eq)++deriveJSON lspOptions ''LanguageString++data MarkedString =+    PlainString T.Text+  | CodeString LanguageString+    deriving (Eq,Read,Show)++instance ToJSON MarkedString where+  toJSON (PlainString x) = toJSON x+  toJSON (CodeString  x) = toJSON x+instance FromJSON MarkedString where+  parseJSON (A.String t) = pure $ PlainString t+  parseJSON o            = CodeString <$> parseJSON o++data Hover =+  Hover+    { _contents :: List MarkedString+    , _range    :: Maybe Range+    } deriving (Read,Show,Eq)++deriveJSON lspOptions ''Hover+++type HoverRequest = RequestMessage ClientMethod TextDocumentPositionParams Hover+type HoverResponse = ResponseMessage Hover++-- ---------------------------------------------------------------------+{-+Signature Help Request++https://github.com/Microsoft/language-server-protocol/blob/master/protocol.md#signature-help-request++The signature help request is sent from the client to the server to request+signature information at a given cursor position.++    Changed: In 2.0 the request uses TextDocumentPositionParams with proper+    textDocument and position properties. In 1.0 the uri of the referenced text+    document was inlined into the params object.++Request++    method: 'textDocument/signatureHelp'+    params: TextDocumentPositionParams++Response++    result: SignatureHelp defined as follows:++/**+ * Signature help represents the signature of something+ * callable. There can be multiple signature but only one+ * active and only one active parameter.+ */+interface SignatureHelp {+    /**+     * One or more signatures.+     */+    signatures: SignatureInformation[];++    /**+     * The active signature.+     */+    activeSignature?: number;++    /**+     * The active parameter of the active signature.+     */+    activeParameter?: number;+}++/**+ * Represents the signature of something callable. A signature+ * can have a label, like a function-name, a doc-comment, and+ * a set of parameters.+ */+interface SignatureInformation {+    /**+     * The label of this signature. Will be shown in+     * the UI.+     */+    label: string;++    /**+     * The human-readable doc-comment of this signature. Will be shown+     * in the UI but can be omitted.+     */+    documentation?: string;++    /**+     * The parameters of this signature.+     */+    parameters?: ParameterInformation[];+}++/**+ * Represents a parameter of a callable-signature. A parameter can+ * have a label and a doc-comment.+ */+interface ParameterInformation {+    /**+     * The label of this signature. Will be shown in+     * the UI.+     */+    label: string;++    /**+     * The human-readable doc-comment of this signature. Will be shown+     * in the UI but can be omitted.+     */+    documentation?: string;+}++    error: code and message set in case an exception happens during the+    signature help request.+-}+++data ParameterInformation =+  ParameterInformation+    { _label         :: Text+    , _documentation :: Maybe Text+    } deriving (Read,Show,Eq)+deriveJSON lspOptions ''ParameterInformation+++-- -------------------------------------++data SignatureInformation =+  SignatureInformation+    { _label         :: Text+    , _documentation :: Maybe Text+    , _parameters    :: Maybe [ParameterInformation]+    } deriving (Read,Show,Eq)++deriveJSON lspOptions ''SignatureInformation++data SignatureHelp =+  SignatureHelp+    { _signatures      :: List SignatureInformation+    , _activeSignature :: Maybe Int -- ^ The active signature+    , _activeParameter :: Maybe Int -- ^ The active parameter of the active signature+    } deriving (Read,Show,Eq)++deriveJSON lspOptions ''SignatureHelp++type SignatureHelpRequest = RequestMessage ClientMethod TextDocumentPositionParams SignatureHelp+type SignatureHelpResponse = ResponseMessage SignatureHelp++-- -------------------------------------+{-+New in 3.0+----------+Registration Options: SignatureHelpRegistrationOptions defined as follows:++export interface SignatureHelpRegistrationOptions extends TextDocumentRegistrationOptions {+        /**+         * The characters that trigger signature help+         * automatically.+         */+        triggerCharacters?: string[];+}+-}++data SignatureHelpRegistrationOptions =+  SignatureHelpRegistrationOptions+    { _documentSelector  :: Maybe DocumentSelector+    , _triggerCharacters :: Maybe (List String)+    } deriving (Show, Read, Eq)++deriveJSON lspOptions ''SignatureHelpRegistrationOptions++-- ---------------------------------------------------------------------+{-+Goto Definition Request++https://github.com/Microsoft/language-server-protocol/blob/master/protocol.md#goto-definition-request++The goto definition request is sent from the client to the server to resolve the+definition location of a symbol at a given text document position.++    Changed: In 2.0 the request uses TextDocumentPositionParams with proper+    textDocument and position properties. In 1.0 the uri of the referenced text+    document was inlined into the params object.++Request++    method: 'textDocument/definition'+    params: TextDocumentPositionParams++Response:++    result: Location | Location[]+    error: code and message set in case an exception happens during the definition request.+++-}++-- {"jsonrpc":"2.0","id":1,"method":"textDocument/definition","params":{"textDocument":{"uri":"file:///tmp/Foo.hs"},"position":{"line":1,"character":8}}}++data LocationResponseParams = SingleLoc Location | MultiLoc [Location]+  deriving (Eq,Read,Show)++instance A.ToJSON LocationResponseParams where+  toJSON (SingleLoc x) = toJSON x+  toJSON (MultiLoc xs) = toJSON xs++instance A.FromJSON LocationResponseParams where+  parseJSON xs@(A.Array _) = MultiLoc <$> parseJSON xs+  parseJSON x              = SingleLoc <$> parseJSON x++type DefinitionRequest  = RequestMessage ClientMethod TextDocumentPositionParams LocationResponseParams+type DefinitionResponse = ResponseMessage LocationResponseParams++-- ---------------------------------------------------------------------++{-+Goto Type Definition Request (:leftwards_arrow_with_hook:)+Since version 3.6.0++The goto type definition request is sent from the client to the server to resolve the type definition location of a symbol at a given text document position.++Request:++method: ‘textDocument/typeDefinition’+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 TypeDefinitionRequest = RequestMessage ClientMethod TextDocumentPositionParams LocationResponseParams+type TypeDefinitionResponse = 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++The references request is sent from the client to the server to resolve+project-wide references for the symbol denoted by the given text document+position.++    Changed: In 2.0 the request uses TextDocumentPositionParams with proper+    textDocument and position properties. In 1.0 the uri of the referenced text+    document was inlined into the params object.++Request++    method: 'textDocument/references'+    params: ReferenceParams defined as follows:++interface ReferenceParams extends TextDocumentPositionParams {+    context: ReferenceContext+}++interface ReferenceContext {+    /**+     * Include the declaration of the current symbol.+     */+    includeDeclaration: boolean;+}++Response:++    result: Location[]+    error: code and message set in case an exception happens during the+           reference request.+-}++data ReferenceContext =+  ReferenceContext+    { _includeDeclaration :: Bool+    } deriving (Read,Show,Eq)++deriveJSON lspOptions ''ReferenceContext+++data ReferenceParams =+  ReferenceParams+    { _textDocument :: TextDocumentIdentifier+    , _position     :: Position+    , _context      :: ReferenceContext+    } deriving (Read,Show,Eq)++deriveJSON lspOptions ''ReferenceParams+++type ReferencesRequest  = RequestMessage ClientMethod ReferenceParams (List Location)+type ReferencesResponse = ResponseMessage (List Location)++-- ---------------------------------------------------------------------+{-+Document Highlights Request++https://github.com/Microsoft/language-server-protocol/blob/master/protocol.md#document-highlights-request++The document highlight request is sent from the client to the server to resolve+a document highlights for a given text document position. For programming+languages this usually highlights all references to the symbol scoped to this+file. However we kept 'textDocument/documentHighlight' and+'textDocument/references' separate requests since the first one is allowed to be+more fuzzy. Symbol matches usually have a DocumentHighlightKind of Read or Write+whereas fuzzy or textual matches use Textas the kind.++    Changed: In 2.0 the request uses TextDocumentPositionParams with proper+    textDocument and position properties. In 1.0 the uri of the referenced text+    document was inlined into the params object.++Request++    method: 'textDocument/documentHighlight'+    params: TextDocumentPositionParams++Response++    result: DocumentHighlight[] defined as follows:++/**+ * A document highlight is a range inside a text document which deserves+ * special attention. Usually a document highlight is visualized by changing+ * the background color of its range.+ *+ */+interface DocumentHighlight {+    /**+     * The range this highlight applies to.+     */+    range: Range;++    /**+     * The highlight kind, default is DocumentHighlightKind.Text.+     */+    kind?: number;+}++/**+ * A document highlight kind.+ */+enum DocumentHighlightKind {+    /**+     * A textual occurrance.+     */+    Text = 1,++    /**+     * Read-access of a symbol, like reading a variable.+     */+    Read = 2,++    /**+     * Write-access of a symbol, like writing to a variable.+     */+    Write = 3+}++    error: code and message set in case an exception happens during the document+           highlight request.++Registration Options: TextDocumentRegistrationOptions++-}++data DocumentHighlightKind = HkText | HkRead | HkWrite+  deriving (Read,Show,Eq)++instance A.ToJSON DocumentHighlightKind where+  toJSON HkText  = A.Number 1+  toJSON HkRead  = A.Number 2+  toJSON HkWrite = A.Number 3++instance A.FromJSON DocumentHighlightKind where+  parseJSON (A.Number 1) = pure HkText+  parseJSON (A.Number 2) = pure HkRead+  parseJSON (A.Number 3) = pure HkWrite+  parseJSON _            = mempty++-- -------------------------------------++data DocumentHighlight =+  DocumentHighlight+    { _range :: Range+    , _kind  :: Maybe DocumentHighlightKind+    } deriving (Read,Show,Eq)++deriveJSON lspOptions ''DocumentHighlight++type DocumentHighlightRequest = RequestMessage ClientMethod TextDocumentPositionParams (List DocumentHighlight)+type DocumentHighlightsResponse = ResponseMessage (List DocumentHighlight)++-- ---------------------------------------------------------------------+{-+Workspace Symbols Request++https://github.com/Microsoft/language-server-protocol/blob/master/protocol.md#workspace-symbols-request++The workspace symbol request is sent from the client to the server to list+project-wide symbols matching the query string.++Request++    method: 'workspace/symbol'+    params: WorkspaceSymbolParams defined as follows:++/**+ * The parameters of a Workspace Symbol Request.+ */+interface WorkspaceSymbolParams {+    /**+     * A non-empty query string+     */+    query: string;+}++Response++    result: SymbolInformation[] as defined above.+    error: code and message set in case an exception happens during the+           workspace symbol request.+-}++data WorkspaceSymbolParams =+  WorkspaceSymbolParams+    { _query :: Text+    } deriving (Read,Show,Eq)++deriveJSON lspOptions ''WorkspaceSymbolParams++type WorkspaceSymbolRequest  = RequestMessage ClientMethod WorkspaceSymbolParams (List SymbolInformation)+type WorkspaceSymbolsResponse = ResponseMessage (List SymbolInformation)++-- ---------------------------------------------------------------------+{-+Code Lens Request++The code lens request is sent from the client to the server to compute code+lenses for a given text document.++    Changed: In 2.0 the request uses CodeLensParams instead of a single uri.++Request++    method: 'textDocument/codeLens'+    params: CodeLensParams defined as follows:++interface CodeLensParams {+    /**+     * The document to request code lens for.+     */+    textDocument: TextDocumentIdentifier;+}++Response++    result: CodeLens[] defined as follows:++/**+ * A code lens represents a command that should be shown along with+ * source text, like the number of references, a way to run tests, etc.+ *+ * A code lens is _unresolved_ when no command is associated to it. For performance+ * reasons the creation of a code lens and resolving should be done in two stages.+ */+interface CodeLens {+    /**+     * The range in which this code lens is valid. Should only span a single line.+     */+    range: Range;++    /**+     * The command this code lens represents.+     */+    command?: Command;++    /**+     * A data entry field that is preserved on a code lens item between+     * a code lens and a code lens resolve request.+     */+    data?: any+}++    error: code and message set in case an exception happens during the code+           lens request.+-}++data CodeLensParams =+  CodeLensParams+    { _textDocument :: TextDocumentIdentifier+    } deriving (Read,Show,Eq)++deriveJSON lspOptions ''CodeLensParams+++-- -------------------------------------++data CodeLens =+  CodeLens+    { _range   :: Range+    , _command :: Maybe Command+    , _xdata   :: Maybe A.Value+    } deriving (Read,Show,Eq)++deriveJSON lspOptions{ fieldLabelModifier = customModifier } ''CodeLens+++type CodeLensRequest = RequestMessage ClientMethod CodeLensParams (List CodeLens)+type CodeLensResponse = ResponseMessage (List CodeLens)++-- -------------------------------------+{-+Registration Options: CodeLensRegistrationOptions defined as follows:++export interface CodeLensRegistrationOptions extends TextDocumentRegistrationOptions {+        /**+         * Code lens has a resolve provider as well.+         */+        resolveProvider?: boolean;+}+-}++data CodeLensRegistrationOptions =+  CodeLensRegistrationOptions+    { _documentSelector :: Maybe DocumentSelector+    , _resolveProvider  :: Maybe Bool+    } deriving (Show, Read, Eq)++deriveJSON lspOptions ''CodeLensRegistrationOptions++-- ---------------------------------------------------------------------+{-+Code Lens Resolve Request++https://github.com/Microsoft/language-server-protocol/blob/master/protocol.md#code-lens-resolve-request++The code lens resolve request is sent from the client to the server to resolve+the command for a given code lens item.++Request++    method: 'codeLens/resolve'+    params: CodeLens++Response++    result: CodeLens+    error: code and message set in case an exception happens during the code+           lens resolve request.+++-}++type CodeLensResolveRequest  = RequestMessage ClientMethod CodeLens (List CodeLens)+type CodeLensResolveResponse = ResponseMessage (List CodeLens)++-- ---------------------------------------------------------------------+{-+New in 3.0+----------++Document Link Request++The document links request is sent from the client to the server to request the+location of links in a document.++Request:++    method: 'textDocument/documentLink'+    params: DocumentLinkParams, defined as follows++interface DocumentLinkParams {+        /**+         * The document to provide document links for.+         */+        textDocument: TextDocumentIdentifier;+}++Response:++    result: An array of DocumentLink, or null.++/**+ * A document link is a range in a text document that links to an internal or external resource, like another+ * text document or a web site.+ */+interface DocumentLink {+        /**+         * The range this link applies to.+         */+        range: Range;+        /**+         * The uri this link points to. If missing a resolve request is sent later.+         */+        target?: DocumentUri;+}++    error: code and message set in case an exception happens during the document link request.++Registration Options: DocumentLinkRegistrationOptions defined as follows:++export interface DocumentLinkRegistrationOptions extends TextDocumentRegistrationOptions {+        /**+         * Document links have a resolve provider as well.+         */+        resolveProvider?: boolean;+}+-}++data DocumentLinkParams =+  DocumentLinkParams+    { _textDocument :: TextDocumentIdentifier+    } deriving (Read,Show,Eq)++deriveJSON lspOptions ''DocumentLinkParams++data DocumentLink =+  DocumentLink+    { _range  :: Range+    , _target :: Maybe Text+    } deriving (Show, Read, Eq)++deriveJSON lspOptions ''DocumentLink++type DocumentLinkRequest = RequestMessage ClientMethod DocumentLinkParams (List DocumentLink)+type DocumentLinkResponse = ResponseMessage (List DocumentLink)++-- ---------------------------------------------------------------------+{-+New in 3.0+----------++Document Link Resolve Request++The document link resolve request is sent from the client to the server to resolve the target of a given document link.++Request:++    method: 'documentLink/resolve'+    params: DocumentLink++Response:++    result: DocumentLink+    error: code and message set in case an exception happens during the document link resolve request.++-}++type DocumentLinkResolveRequest  = RequestMessage ClientMethod DocumentLink DocumentLink+type DocumentLinkResolveResponse = ResponseMessage DocumentLink++-- ---------------------------------------------------------------------+{-+Document Formatting Request++https://github.com/Microsoft/language-server-protocol/blob/master/protocol.md#document-formatting-request++The document formatting request is sent from the server to the client to format+a whole document.++Request++    method: 'textDocument/formatting'+    params: DocumentFormattingParams defined as follows++interface DocumentFormattingParams {+    /**+     * The document to format.+     */+    textDocument: TextDocumentIdentifier;++    /**+     * The format options.+     */+    options: FormattingOptions;+}++/**+ * Value-object describing what options formatting should use.+ */+interface FormattingOptions {+    /**+     * Size of a tab in spaces.+     */+    tabSize: number;++    /**+     * Prefer spaces over tabs.+     */+    insertSpaces: boolean;++    /**+     * Signature for further properties.+     */+    [key: string]: boolean | number | string;+}++Response++    result: TextEdit[] describing the modification to the document to be+            formatted.+    error: code and message set in case an exception happens during the+           formatting request.++Registration Options: TextDocumentRegistrationOptions+-}++data FormattingOptions =+  FormattingOptions+    { _tabSize      :: Int+    , _insertSpaces :: Bool -- ^ Prefer spaces over tabs+    -- Note: May be more properties+    } deriving (Read,Show,Eq)++deriveJSON lspOptions ''FormattingOptions++data DocumentFormattingParams =+  DocumentFormattingParams+    { _textDocument :: TextDocumentIdentifier+    , _options      :: FormattingOptions+    } deriving (Show,Read,Eq)++deriveJSON lspOptions ''DocumentFormattingParams++type DocumentFormattingRequest  = RequestMessage ClientMethod DocumentFormattingParams (List TextEdit)+type DocumentFormattingResponse = ResponseMessage (List TextEdit)++-- ---------------------------------------------------------------------+{-+Document Range Formatting Request++https://github.com/Microsoft/language-server-protocol/blob/master/protocol.md#document-range-formatting-request++The document range formatting request is sent from the client to the server to+format a given range in a document.++Request++    method: 'textDocument/rangeFormatting',+    params: DocumentRangeFormattingParams defined as follows++interface DocumentRangeFormattingParams {+    /**+     * The document to format.+     */+    textDocument: TextDocumentIdentifier;++    /**+     * The range to format+     */+    range: Range;++    /**+     * The format options+     */+    options: FormattingOptions;+}++Response++    result: TextEdit[] describing the modification to the document to be+            formatted.+    error: code and message set in case an exception happens during the range+           formatting request.+-}++data DocumentRangeFormattingParams =+  DocumentRangeFormattingParams+    { _textDocument :: TextDocumentIdentifier+    , _range        :: Range+    , _options      :: FormattingOptions+    } deriving (Read,Show,Eq)++deriveJSON lspOptions ''DocumentRangeFormattingParams++type DocumentRangeFormattingRequest  = RequestMessage ClientMethod DocumentRangeFormattingParams (List TextEdit)+type DocumentRangeFormattingResponse = ResponseMessage (List TextEdit)++-- ---------------------------------------------------------------------+{-+Document on Type Formatting Request++https://github.com/Microsoft/language-server-protocol/blob/master/protocol.md#document-on-type-formatting-request++The document on type formatting request is sent from the client to the server to+format parts of the document during typing.++Request++    method: 'textDocument/onTypeFormatting'+    params: DocumentOnTypeFormattingParams defined as follows++interface DocumentOnTypeFormattingParams {+    /**+     * The document to format.+     */+    textDocument: TextDocumentIdentifier;++    /**+     * The position at which this request was sent.+     */+    position: Position;++    /**+     * The character that has been typed.+     */+    ch: string;++    /**+     * The format options.+     */+    options: FormattingOptions;+}++Response++    result: TextEdit[] describing the modification to the document.+    error: code and message set in case an exception happens during the range+           formatting request.++Registration Options: DocumentOnTypeFormattingRegistrationOptions defined as follows:++export interface DocumentOnTypeFormattingRegistrationOptions extends TextDocumentRegistrationOptions {+        /**+         * A character on which formatting should be triggered, like `}`.+         */+        firstTriggerCharacter: string;+        /**+         * More trigger characters.+         */+        moreTriggerCharacter?: string[]+}+-}++data DocumentOnTypeFormattingParams =+  DocumentOnTypeFormattingParams+    { _textDocument :: TextDocumentIdentifier+    , _position     :: Position+    , _ch           :: Text+    , _options      :: FormattingOptions+    } deriving (Read,Show,Eq)++deriveJSON lspOptions ''DocumentOnTypeFormattingParams++type DocumentOnTypeFormattingRequest  = RequestMessage ClientMethod DocumentOnTypeFormattingParams (List TextEdit)+type DocumentOnTypeFormattingResponse = ResponseMessage (List TextEdit)++data DocumentOnTypeFormattingRegistrationOptions =+  DocumentOnTypeFormattingRegistrationOptions+    { _firstTriggerCharacter :: Text+    , _moreTriggerCharacter  :: Maybe (List String)+    } deriving (Show, Read, Eq)++deriveJSON lspOptions ''DocumentOnTypeFormattingRegistrationOptions++-- ---------------------------------------------------------------------+{-+Rename Request++https://github.com/Microsoft/language-server-protocol/blob/master/protocol.md#rename-request++The rename request is sent from the client to the server to perform a+workspace-wide rename of a symbol.++Request++    method: 'textDocument/rename'+    params: RenameParams defined as follows++interface RenameParams {+    /**+     * The document to format.+     */+    textDocument: TextDocumentIdentifier;++    /**+     * The position at which this request was sent.+     */+    position: Position;++    /**+     * The new name of the symbol. If the given name is not valid the+     * request must return a [ResponseError](#ResponseError) with an+     * appropriate message set.+     */+    newName: string;+}++Response++    result: WorkspaceEdit describing the modification to the workspace.+    error: code and message set in case an exception happens during the rename+           request.++Registration Options: TextDocumentRegistrationOptions++-}+data RenameParams =+  RenameParams+    { _textDocument :: TextDocumentIdentifier+    , _position     :: Position+    , _newName      :: Text+    } deriving (Show, Read, Eq)++deriveJSON lspOptions ''RenameParams+++-- {\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"textDocument/rename\",\"params\":{\"textDocument\":{\"uri\":\"file:///home/alanz/mysrc/github/alanz/haskell-lsp/src/HieVscode.hs\"},\"position\":{\"line\":37,\"character\":17},\"newName\":\"getArgs'\"}}++type RenameRequest  = RequestMessage ClientMethod RenameParams WorkspaceEdit+type RenameResponse = ResponseMessage WorkspaceEdit++-- ---------------------------------------------------------------------+{-+New in 3.0+----------++Execute a command++The workspace/executeCommand request is sent from the client to the server to+trigger command execution on the server. In most cases the server creates a+WorkspaceEdit structure and applies the changes to the workspace using the+request workspace/applyEdit which is sent from the server to the client.++Request:++    method: 'workspace/executeCommand'+    params: ExecuteCommandParams defined as follows:++export interface ExecuteCommandParams {++        /**+         * The identifier of the actual command handler.+         */+        command: string;+        /**+         * Arguments that the command should be invoked with.+         */+        arguments?: any[];+}++The arguments are typically specified when a command is returned from the server+to the client. Example requests that return a command are+textDocument/codeAction or textDocument/codeLens.++Response:++    result: any+    error: code and message set in case an exception happens during the request.++Registration Options: ExecuteCommandRegistrationOptions defined as follows:++/**+ * Execute command registration options.+ */+export interface ExecuteCommandRegistrationOptions {+        /**+         * The commands to be executed on the server+         */+        commands: string[]+}+-}++data ExecuteCommandParams =+  ExecuteCommandParams+    { _command   :: Text+    , _arguments :: Maybe (List A.Value)+    } deriving (Show, Read, Eq)++deriveJSON lspOptions ''ExecuteCommandParams++type ExecuteCommandRequest = RequestMessage ClientMethod ExecuteCommandParams A.Value+type ExecuteCommandResponse = ResponseMessage A.Value++data ExecuteCommandRegistrationOptions =+  ExecuteCommandRegistrationOptions+    { _commands :: List Text+    } deriving (Show, Read, Eq)++deriveJSON lspOptions ''ExecuteCommandRegistrationOptions++-- ---------------------------------------------------------------------+{-+New in 3.0+----------++Applies a WorkspaceEdit++The workspace/applyEdit request is sent from the server to the client to modify+resource on the client side.++Request:++    method: 'workspace/applyEdit'+    params: ApplyWorkspaceEditParams defined as follows:++export interface ApplyWorkspaceEditParams {+        /**+         * The edits to apply.+         */+        edit: WorkspaceEdit;+}++Response:++    result: ApplyWorkspaceEditResponse defined as follows:++export interface ApplyWorkspaceEditResponse {+        /**+         * Indicates whether the edit was applied or not.+         */+        applied: boolean;+}++    error: code and message set in case an exception happens during the request.++-}+data ApplyWorkspaceEditParams =+  ApplyWorkspaceEditParams+    { _edit :: WorkspaceEdit+    } deriving (Show, Read, Eq)++deriveJSON lspOptions ''ApplyWorkspaceEditParams++data ApplyWorkspaceEditResponseBody =+  ApplyWorkspaceEditResponseBody+    { _applied :: Bool+    } deriving (Show, Read, Eq)++deriveJSON lspOptions ''ApplyWorkspaceEditResponseBody++-- | Sent from the server to the client+type ApplyWorkspaceEditRequest  = RequestMessage ServerMethod ApplyWorkspaceEditParams ApplyWorkspaceEditResponseBody+type ApplyWorkspaceEditResponse = ResponseMessage ApplyWorkspaceEditResponseBody++-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%++-- ---------------------------------------------------------------------++data TraceParams =+  TraceParams {+    _value :: Text+  } deriving (Show, Read, Eq)++deriveJSON lspOptions ''TraceParams+++data TraceNotification =+  TraceNotification {+    _params :: TraceParams+  } deriving (Show, Read, Eq)++deriveJSON lspOptions ''TraceNotification+
+ src/Language/Haskell/LSP/Types/Diagnostic.hs view
@@ -0,0 +1,139 @@+{-# LANGUAGE DuplicateRecordFields      #-}+{-# LANGUAGE TemplateHaskell            #-}++module Language.Haskell.LSP.Types.Diagnostic where++import qualified Data.Aeson                                 as A+import           Data.Aeson.TH+import           Data.Text+import           Language.Haskell.LSP.Types.Constants+import           Language.Haskell.LSP.Types.List+import           Language.Haskell.LSP.Types.Location++-- ---------------------------------------------------------------------+{-+The protocol currently supports the following diagnostic severities:++enum DiagnosticSeverity {+    /**+     * Reports an error.+     */+    Error = 1,+    /**+     * Reports a warning.+     */+    Warning = 2,+    /**+     * Reports an information.+     */+    Information = 3,+    /**+     * Reports a hint.+     */+    Hint = 4+}+-}+data DiagnosticSeverity+  = DsError   -- ^ Error = 1,+  | DsWarning -- ^ Warning = 2,+  | DsInfo    -- ^ Info = 3,+  | DsHint    -- ^ Hint = 4+  deriving (Eq,Ord,Show,Read)++instance A.ToJSON DiagnosticSeverity where+  toJSON DsError   = A.Number 1+  toJSON DsWarning = A.Number 2+  toJSON DsInfo    = A.Number 3+  toJSON DsHint    = A.Number 4++instance A.FromJSON DiagnosticSeverity where+  parseJSON (A.Number 1) = pure DsError+  parseJSON (A.Number 2) = pure DsWarning+  parseJSON (A.Number 3) = pure DsInfo+  parseJSON (A.Number 4) = pure DsHint+  parseJSON _            = mempty++-- ---------------------------------------------------------------------+{-+Represents a related message and source code location for a diagnostic. This should be+used to point to code locations that cause or related to a diagnostics, e.g when duplicating+a symbol in a scope.++export interface DiagnosticRelatedInformation {+  /**+   * The location of this related diagnostic information.+   */+  location: Location;++  /**+   * The message of this related diagnostic information.+   */+  message: string;+}+-}++data DiagnosticRelatedInformation =+  DiagnosticRelatedInformation+    { _location :: Location+    , _message  :: Text+    } deriving (Show, Read, Eq, Ord)++deriveJSON lspOptions ''DiagnosticRelatedInformation++-- ---------------------------------------------------------------------+{-+Diagnostic++https://github.com/Microsoft/language-server-protocol/blob/master/protocol.md#diagnostic++Represents a diagnostic, such as a compiler error or warning. Diagnostic objects+are only valid in the scope of a resource.++interface Diagnostic {+    /**+     * The range at which the message applies.+     */+    range: Range;++    /**+     * The diagnostic's severity. Can be omitted. If omitted it is up to the+     * client to interpret diagnostics as error, warning, info or hint.+     */+    severity?: number;++    /**+     * The diagnostic's code. Can be omitted.+     */+    code?: number | string;++    /**+     * A human-readable string describing the source of this+     * diagnostic, e.g. 'typescript' or 'super lint'.+     */+    source?: string;++    /**+     * The diagnostic's message.+     */+    message: string;++    /**+     * An array of related diagnostic information, e.g. when symbol-names within+     * a scope collide all definitions can be marked via this property.+     */+    relatedInformation?: DiagnosticRelatedInformation[];+}+-}++type DiagnosticSource = Text+data Diagnostic =+  Diagnostic+    { _range              :: Range+    , _severity           :: Maybe DiagnosticSeverity+    , _code               :: Maybe Text -- Note: Protocol allows Int too.+    , _source             :: Maybe DiagnosticSource+    , _message            :: Text+    , _relatedInformation :: Maybe (List DiagnosticRelatedInformation)+    } deriving (Show, Read, Eq, Ord)++deriveJSON lspOptions ''Diagnostic
+ src/Language/Haskell/LSP/Types/DocumentFilter.hs view
@@ -0,0 +1,55 @@+{-# LANGUAGE TemplateHaskell            #-}+module Language.Haskell.LSP.Types.DocumentFilter where++import           Data.Aeson.TH+import           Data.Text                      ( Text )+import           Language.Haskell.LSP.Types.Constants+import           Language.Haskell.LSP.Types.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 :: Maybe Text+    , _scheme   :: Maybe 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/Types/FoldingRange.hs view
@@ -0,0 +1,70 @@+{-# LANGUAGE OverloadedStrings          #-}+{-# LANGUAGE TemplateHaskell            #-}+module Language.Haskell.LSP.Types.FoldingRange where++import qualified Data.Aeson                    as A+import           Data.Aeson.TH+import           Data.Text                    (Text)+import           Language.Haskell.LSP.Types.Constants+import           Language.Haskell.LSP.Types.List+import           Language.Haskell.LSP.Types.TextDocument+import           Language.Haskell.LSP.Types.Message++data FoldingRangeParams =+  FoldingRangeParams+  { _textDocument :: TextDocumentIdentifier -- ^ The text document.+  }+  deriving (Read, Show, Eq)++deriveJSON lspOptions ''FoldingRangeParams++-- | Enum of known range kinds+data FoldingRangeKind = FoldingRangeComment+                        -- ^ Folding range for a comment+                      | FoldingRangeImports+                        -- ^ Folding range for a imports or includes+                      | FoldingRangeRegion+                        -- ^ Folding range for a region (e.g. #region)+                      | FoldingRangeUnknown Text+                        -- ^ Folding range that haskell-lsp-types does+                        -- not yet support+  deriving (Read, Show, Eq)++instance A.ToJSON FoldingRangeKind where+  toJSON FoldingRangeComment     = A.String "comment"+  toJSON FoldingRangeImports     = A.String "imports"+  toJSON FoldingRangeRegion      = A.String "region"+  toJSON (FoldingRangeUnknown x) = A.String x++instance A.FromJSON FoldingRangeKind where+  parseJSON (A.String "comment") = pure FoldingRangeComment+  parseJSON (A.String "imports") = pure FoldingRangeImports+  parseJSON (A.String "region")  = pure FoldingRangeRegion+  parseJSON (A.String x)         = pure (FoldingRangeUnknown x)+  parseJSON _                    = mempty++-- | Represents a folding range.+data FoldingRange =+  FoldingRange+  { -- | The zero-based line number from where the folded range starts.+    _startLine      :: Int+    -- | The zero-based character offset from where the folded range+    -- starts. If not defined, defaults to the length of the start line.+  , _startCharacter :: Maybe Int+    -- | The zero-based line number where the folded range ends.+  , _endLine        :: Int+    -- | The zero-based character offset before the folded range ends.+    -- If not defined, defaults to the length of the end line.+  , _endCharacter   :: Maybe Int+    -- | Describes the kind of the folding range such as 'comment' or+    -- 'region'. The kind is used to categorize folding ranges and used+    -- by commands like 'Fold all comments'. See 'FoldingRangeKind' for+    -- an enumeration of standardized kinds.+  , _kind           :: Maybe FoldingRangeKind+  }+  deriving (Read, Show, Eq)++deriveJSON lspOptions ''FoldingRange++type FoldingRangeRequest = RequestMessage ClientMethod FoldingRangeParams (List FoldingRange)+type FoldingRangeResponse = ResponseMessage (List FoldingRange)
+ src/Language/Haskell/LSP/Types/Lens.hs view
@@ -0,0 +1,192 @@+{-# LANGUAGE TemplateHaskell        #-}+{-# LANGUAGE FlexibleInstances      #-}+{-# LANGUAGE MultiParamTypeClasses  #-}+{-# LANGUAGE FunctionalDependencies #-}++module Language.Haskell.LSP.Types.Lens where++import           Language.Haskell.LSP.Types.ClientCapabilities+import           Language.Haskell.LSP.Types.CodeAction+import           Language.Haskell.LSP.Types.Color+import           Language.Haskell.LSP.Types.Command+import           Language.Haskell.LSP.Types.Completion+import           Language.Haskell.LSP.Types.DataTypesJSON+import           Language.Haskell.LSP.Types.Diagnostic+import           Language.Haskell.LSP.Types.DocumentFilter+import           Language.Haskell.LSP.Types.FoldingRange+import           Language.Haskell.LSP.Types.Message+import           Language.Haskell.LSP.Types.Location+import           Language.Haskell.LSP.Types.Symbol+import           Language.Haskell.LSP.Types.TextDocument+import           Language.Haskell.LSP.Types.WorkspaceEdit+import           Language.Haskell.LSP.Types.WorkspaceFolders+import           Control.Lens.TH++-- client capabilities+makeFieldsNoPrefix ''WorkspaceEditClientCapabilities+makeFieldsNoPrefix ''DidChangeConfigurationClientCapabilities+makeFieldsNoPrefix ''DidChangeWatchedFilesClientCapabilities+makeFieldsNoPrefix ''SymbolKindClientCapabilities+makeFieldsNoPrefix ''SymbolClientCapabilities+makeFieldsNoPrefix ''ExecuteClientCapabilities+makeFieldsNoPrefix ''WorkspaceClientCapabilities+makeFieldsNoPrefix ''SynchronizationTextDocumentClientCapabilities+makeFieldsNoPrefix ''CompletionItemClientCapabilities+makeFieldsNoPrefix ''CompletionItemKindClientCapabilities+makeFieldsNoPrefix ''CompletionClientCapabilities+makeFieldsNoPrefix ''HoverClientCapabilities+makeFieldsNoPrefix ''SignatureInformationClientCapabilities+makeFieldsNoPrefix ''SignatureHelpClientCapabilities+makeFieldsNoPrefix ''ReferencesClientCapabilities+makeFieldsNoPrefix ''DocumentHighlightClientCapabilities+makeFieldsNoPrefix ''DocumentSymbolKindClientCapabilities+makeFieldsNoPrefix ''DocumentSymbolClientCapabilities+makeFieldsNoPrefix ''FormattingClientCapabilities+makeFieldsNoPrefix ''RangeFormattingClientCapabilities+makeFieldsNoPrefix ''OnTypeFormattingClientCapabilities+makeFieldsNoPrefix ''DefinitionClientCapabilities+makeFieldsNoPrefix ''TypeDefinitionClientCapabilities+makeFieldsNoPrefix ''ImplementationClientCapabilities+makeFieldsNoPrefix ''CodeActionKindClientCapabilities+makeFieldsNoPrefix ''CodeActionLiteralSupport+makeFieldsNoPrefix ''CodeActionClientCapabilities+makeFieldsNoPrefix ''CodeLensClientCapabilities+makeFieldsNoPrefix ''DocumentLinkClientCapabilities+makeFieldsNoPrefix ''ColorProviderClientCapabilities+makeFieldsNoPrefix ''RenameClientCapabilities+makeFieldsNoPrefix ''PublishDiagnosticsClientCapabilities+makeFieldsNoPrefix ''TextDocumentClientCapabilities+makeFieldsNoPrefix ''ClientCapabilities++-- ---------------------------------------------------------------------++makeFieldsNoPrefix ''InitializeParams+makeFieldsNoPrefix ''InitializeError+makeFieldsNoPrefix ''CompletionOptions+makeFieldsNoPrefix ''SignatureHelpOptions+makeFieldsNoPrefix ''CodeLensOptions+makeFieldsNoPrefix ''DocumentOnTypeFormattingOptions+makeFieldsNoPrefix ''DocumentLinkOptions+makeFieldsNoPrefix ''ExecuteCommandOptions+makeFieldsNoPrefix ''SaveOptions+makeFieldsNoPrefix ''TextDocumentSyncOptions+makeFieldsNoPrefix ''WorkspaceFolderOptions+makeFieldsNoPrefix ''WorkspaceOptions+makeFieldsNoPrefix ''InitializeResponseCapabilitiesInner+makeFieldsNoPrefix ''InitializeResponseCapabilities+makeFieldsNoPrefix ''ShowMessageParams+makeFieldsNoPrefix ''MessageActionItem+makeFieldsNoPrefix ''ShowMessageRequestParams+makeFieldsNoPrefix ''LogMessageParams+makeFieldsNoPrefix ''Registration+makeFieldsNoPrefix ''RegistrationParams+makeFieldsNoPrefix ''TextDocumentRegistrationOptions+makeFieldsNoPrefix ''Unregistration+makeFieldsNoPrefix ''UnregistrationParams+makeFieldsNoPrefix ''DidChangeConfigurationParams+makeFieldsNoPrefix ''ConfigurationItem+makeFieldsNoPrefix ''ConfigurationParams+makeFieldsNoPrefix ''DidOpenTextDocumentParams+makeFieldsNoPrefix ''TextDocumentContentChangeEvent+makeFieldsNoPrefix ''DidChangeTextDocumentParams+makeFieldsNoPrefix ''TextDocumentChangeRegistrationOptions+makeFieldsNoPrefix ''WillSaveTextDocumentParams+makeFieldsNoPrefix ''DidSaveTextDocumentParams+makeFieldsNoPrefix ''DidCloseTextDocumentParams+makeFieldsNoPrefix ''FileEvent+makeFieldsNoPrefix ''DidChangeWatchedFilesParams+makeFieldsNoPrefix ''PublishDiagnosticsParams+makeFieldsNoPrefix ''LanguageString+makeFieldsNoPrefix ''Hover+makeFieldsNoPrefix ''ParameterInformation+makeFieldsNoPrefix ''SignatureInformation+makeFieldsNoPrefix ''SignatureHelp+makeFieldsNoPrefix ''SignatureHelpRegistrationOptions+makeFieldsNoPrefix ''ReferenceContext+makeFieldsNoPrefix ''ReferenceParams+makeFieldsNoPrefix ''DocumentHighlight+makeFieldsNoPrefix ''WorkspaceSymbolParams+makeFieldsNoPrefix ''CodeLensParams+makeFieldsNoPrefix ''CodeLens+makeFieldsNoPrefix ''CodeLensRegistrationOptions+makeFieldsNoPrefix ''DocumentLinkParams+makeFieldsNoPrefix ''DocumentLink+makeFieldsNoPrefix ''FormattingOptions+makeFieldsNoPrefix ''DocumentFormattingParams+makeFieldsNoPrefix ''DocumentRangeFormattingParams+makeFieldsNoPrefix ''DocumentOnTypeFormattingParams+makeFieldsNoPrefix ''RenameParams+makeFieldsNoPrefix ''ExecuteCommandParams+makeFieldsNoPrefix ''ExecuteCommandRegistrationOptions+makeFieldsNoPrefix ''ApplyWorkspaceEditParams+makeFieldsNoPrefix ''ApplyWorkspaceEditResponseBody+makeFieldsNoPrefix ''TraceParams+makeFieldsNoPrefix ''TraceNotification++-- ---------------------------------------------------------------------++-- Location+makeFieldsNoPrefix ''Position+makeFieldsNoPrefix ''Range+makeFieldsNoPrefix ''Location++-- Completion+makeFieldsNoPrefix ''CompletionItem+makeFieldsNoPrefix ''CompletionContext+makeFieldsNoPrefix ''CompletionListType+makeFieldsNoPrefix ''CompletionParams+makeFieldsNoPrefix ''CompletionRegistrationOptions++-- CodeActions+makeFieldsNoPrefix ''CodeActionContext+makeFieldsNoPrefix ''CodeActionParams+makeFieldsNoPrefix ''CodeAction++-- DocumentFilter+makeFieldsNoPrefix ''DocumentFilter++-- WorkspaceEdit+makeFieldsNoPrefix ''TextEdit+makeFieldsNoPrefix ''VersionedTextDocumentIdentifier+makeFieldsNoPrefix ''TextDocumentEdit+makeFieldsNoPrefix ''WorkspaceEdit++-- Workspace Folders+makeFieldsNoPrefix ''WorkspaceFolder+makeFieldsNoPrefix ''WorkspaceFoldersChangeEvent+makeFieldsNoPrefix ''DidChangeWorkspaceFoldersParams++-- Message+makeFieldsNoPrefix ''RequestMessage+makeFieldsNoPrefix ''ResponseError+makeFieldsNoPrefix ''ResponseMessage+makeFieldsNoPrefix ''NotificationMessage+makeFieldsNoPrefix ''CancelParams++-- TextDocument+makeFieldsNoPrefix ''TextDocumentItem+makeFieldsNoPrefix ''TextDocumentIdentifier+makeFieldsNoPrefix ''TextDocumentPositionParams++-- Command+makeFieldsNoPrefix ''Command++-- Diagnostic+makeFieldsNoPrefix ''Diagnostic+makeFieldsNoPrefix ''DiagnosticRelatedInformation++-- Symbol+makeFieldsNoPrefix ''DocumentSymbolParams+makeFieldsNoPrefix ''DocumentSymbol+makeFieldsNoPrefix ''SymbolInformation++-- Color+makeFieldsNoPrefix ''Color+makeFieldsNoPrefix ''ColorInformation+makeFieldsNoPrefix ''DocumentColorParams+makeFieldsNoPrefix ''ColorPresentationParams+makeFieldsNoPrefix ''ColorPresentation++-- Folding Range+makeFieldsNoPrefix ''FoldingRange+makeFieldsNoPrefix ''FoldingRangeParams
+ src/Language/Haskell/LSP/Types/List.hs view
@@ -0,0 +1,26 @@+-- Need to split these types out into a separate module since+-- ClientCapabilities also depends on them+{-# LANGUAGE CPP #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE DeriveTraversable          #-}+module Language.Haskell.LSP.Types.List where++import qualified Data.Aeson                                 as A+import           Data.Aeson.Types++-- | This data type is used to host a FromJSON instance for the encoding used by+-- elisp, where an empty list shows up as "null"+newtype List a = List [a]+                deriving (Show,Read,Eq,Ord,Monoid,Functor,Foldable,Traversable)++instance (A.ToJSON a) => A.ToJSON (List a) where+  toJSON (List ls) = toJSON ls++instance (A.FromJSON a) => A.FromJSON (List a) where+  parseJSON A.Null = return (List [])+  parseJSON v      = List <$> parseJSON v++#if __GLASGOW_HASKELL__ >= 804+instance Semigroup (List a) where+  (<>) = mappend+#endif
+ src/Language/Haskell/LSP/Types/Location.hs view
@@ -0,0 +1,93 @@+{-# LANGUAGE TemplateHaskell            #-}+module Language.Haskell.LSP.Types.Location where++import           Data.Aeson.TH+import           Language.Haskell.LSP.Types.Constants+import           Language.Haskell.LSP.Types.Uri++-- ---------------------------------------------------------------------++{-+The current protocol is talored for textual documents which content can be+represented as a string. There is currently no support for binary documents.+Positions inside a document (see Position definition below) are expressed as a+zero-based line and character offset. To ensure that both client and server+split the string into the same line representation the protocol specs the+following end of line sequences: '\n', '\r\n' and '\r'.++export const EOL: string[] = ['\n', '\r\n', '\r'];+-}+{-+https://github.com/Microsoft/language-server-protocol/blob/master/protocol.md#position++Position in a text document expressed as zero-based line and character offset. A+position is between two characters like an 'insert' cursor in a editor.++interface Position {+    /**+     * Line position in a document (zero-based).+     */+    line: number;++    /**+     * Character offset on a line in a document (zero-based).+     */+    character: number;+}+-}+data Position =+  Position+    { _line      :: Int+    , _character :: Int+    } deriving (Show, Read, Eq, Ord)++deriveJSON lspOptions ''Position++-- ---------------------------------------------------------------------+{-+https://github.com/Microsoft/language-server-protocol/blob/master/protocol.md#range++A range in a text document expressed as (zero-based) start and end positions. A+range is comparable to a selection in an editor. Therefore the end position is+exclusive.++interface Range {+    /**+     * The range's start position.+     */+    start: Position;++    /**+     * The range's end position.+     */+    end: Position;+}+-}++data Range =+  Range+    { _start :: Position+    , _end   :: Position+    } deriving (Show, Read, Eq, Ord)++deriveJSON lspOptions ''Range++-- ---------------------------------------------------------------------+{-+https://github.com/Microsoft/language-server-protocol/blob/master/protocol.md#location++Represents a location inside a resource, such as a line inside a text file.++interface Location {+    uri: string;+    range: Range;+}+-}++data Location =+  Location+    { _uri   :: Uri+    , _range :: Range+    } deriving (Show, Read, Eq, Ord)++deriveJSON lspOptions ''Location
+ src/Language/Haskell/LSP/Types/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.Types.MarkupContent where++import           Data.Aeson+import           Data.Aeson.TH+import           Data.Text                                      (Text)+import           Language.Haskell.LSP.Types.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/Types/Message.hs view
@@ -0,0 +1,441 @@+{-# LANGUAGE DuplicateRecordFields      #-}+{-# LANGUAGE OverloadedStrings          #-}+{-# LANGUAGE TemplateHaskell            #-}+module Language.Haskell.LSP.Types.Message where++import qualified Data.Aeson                                 as A+import           Data.Aeson.TH+import           Data.Aeson.Types+import           Data.Hashable+-- For <= 8.2.2+import           Data.Monoid                                ((<>))+import           Data.Text                                  (Text)+import qualified Data.Text                                  as T+import           Language.Haskell.LSP.Types.Constants+++-- | Id used for a request, Can be either a String or an Int+data LspId = IdInt Int | IdString Text+            deriving (Show,Read,Eq,Ord)++instance A.ToJSON LspId where+  toJSON (IdInt i)    = toJSON i+  toJSON (IdString s) = toJSON s++instance A.FromJSON LspId where+  parseJSON v@(A.Number _) = IdInt <$> parseJSON v+  parseJSON  (A.String  s) = return (IdString s)+  parseJSON _              = mempty++instance Hashable LspId where+  hashWithSalt salt (IdInt i) = hashWithSalt salt i+  hashWithSalt salt (IdString s) = hashWithSalt salt s++-- ---------------------------------------------------------------------++-- | Id used for a response, Can be either a String or an Int, or Null. If a+-- request doesn't provide a result value the receiver of a request still needs+-- to return a response message to conform to the JSON RPC specification. The+-- result property of the ResponseMessage should be set to null in this case to+-- signal a successful request.+data LspIdRsp = IdRspInt Int | IdRspString Text | IdRspNull+            deriving (Show,Read,Eq)++instance A.ToJSON LspIdRsp where+  toJSON (IdRspInt i)    = toJSON i+  toJSON (IdRspString s) = toJSON s+  toJSON IdRspNull       = A.Null++instance A.FromJSON LspIdRsp where+  parseJSON v@(A.Number _) = IdRspInt <$> parseJSON v+  parseJSON  (A.String  s) = return $ IdRspString s+  parseJSON  A.Null        = return IdRspNull+  parseJSON _              = mempty++instance Hashable LspIdRsp where+  hashWithSalt salt (IdRspInt i) = hashWithSalt salt i+  hashWithSalt salt (IdRspString s) = hashWithSalt salt s+  hashWithSalt _ IdRspNull = 0++-- | Converts an LspId to its LspIdRsp counterpart.+responseId :: LspId -> LspIdRsp+responseId (IdInt    i) = IdRspInt i+responseId (IdString s) = IdRspString s++-- | Converts an LspIdRsp to its LspId counterpart.+requestId :: LspIdRsp -> LspId+requestId (IdRspInt    i) = IdInt i+requestId (IdRspString s) = IdString s+requestId IdRspNull       = error "Null response id"++-- ---------------------------------------------------------------------++-- Client Methods+data ClientMethod =+ -- General+   Initialize+ | Initialized+ | Shutdown+ | Exit+ | CancelRequest+ -- Workspace+ | WorkspaceDidChangeWorkspaceFolders+ | WorkspaceDidChangeConfiguration+ | WorkspaceDidChangeWatchedFiles+ | WorkspaceSymbol+ | WorkspaceExecuteCommand+ -- Document+ | TextDocumentDidOpen+ | TextDocumentDidChange+ | TextDocumentWillSave+ | TextDocumentWillSaveWaitUntil+ | TextDocumentDidSave+ | TextDocumentDidClose+ | TextDocumentCompletion+ | CompletionItemResolve+ | TextDocumentHover+ | TextDocumentSignatureHelp+ | TextDocumentDefinition+ | TextDocumentTypeDefinition+ | TextDocumentImplementation+ | TextDocumentReferences+ | TextDocumentDocumentHighlight+ | TextDocumentDocumentSymbol+ | TextDocumentCodeAction+ | TextDocumentCodeLens+ | CodeLensResolve+ | TextDocumentDocumentLink+ | DocumentLinkResolve+ | TextDocumentDocumentColor+ | TextDocumentColorPresentation+ | TextDocumentFormatting+ | TextDocumentRangeFormatting+ | TextDocumentOnTypeFormatting+ | TextDocumentRename+ | TextDocumentFoldingRanges+ -- Messages of the form $/message+ -- Implementation Dependent, can be ignored+ | Misc Text+   deriving (Eq,Ord,Read,Show)++instance A.FromJSON ClientMethod where+  -- General+  parseJSON (A.String "initialize")                       = return Initialize+  parseJSON (A.String "initialized")                      = return Initialized+  parseJSON (A.String "shutdown")                         = return Shutdown+  parseJSON (A.String "exit")                             = return Exit+  parseJSON (A.String "$/cancelRequest")                  = return CancelRequest+ -- Workspace+  parseJSON (A.String "workspace/didChangeWorkspaceFolders") = return WorkspaceDidChangeWorkspaceFolders+  parseJSON (A.String "workspace/didChangeConfiguration") = return WorkspaceDidChangeConfiguration+  parseJSON (A.String "workspace/didChangeWatchedFiles")  = return WorkspaceDidChangeWatchedFiles+  parseJSON (A.String "workspace/symbol")                 = return WorkspaceSymbol+  parseJSON (A.String "workspace/executeCommand")         = return WorkspaceExecuteCommand+ -- Document+  parseJSON (A.String "textDocument/didOpen")             = return TextDocumentDidOpen+  parseJSON (A.String "textDocument/didChange")           = return TextDocumentDidChange+  parseJSON (A.String "textDocument/willSave")            = return TextDocumentWillSave+  parseJSON (A.String "textDocument/willSaveWaitUntil")   = return TextDocumentWillSaveWaitUntil+  parseJSON (A.String "textDocument/didSave")             = return TextDocumentDidSave+  parseJSON (A.String "textDocument/didClose")            = return TextDocumentDidClose+  parseJSON (A.String "textDocument/completion")          = return TextDocumentCompletion+  parseJSON (A.String "completionItem/resolve")           = return CompletionItemResolve+  parseJSON (A.String "textDocument/hover")               = return TextDocumentHover+  parseJSON (A.String "textDocument/signatureHelp")       = return TextDocumentSignatureHelp+  parseJSON (A.String "textDocument/definition")          = return TextDocumentDefinition+  parseJSON (A.String "textDocument/typeDefinition")      = return TextDocumentTypeDefinition+  parseJSON (A.String "textDocument/implementation")      = return TextDocumentImplementation+  parseJSON (A.String "textDocument/references")          = return TextDocumentReferences+  parseJSON (A.String "textDocument/documentHighlight")   = return TextDocumentDocumentHighlight+  parseJSON (A.String "textDocument/documentSymbol")      = return TextDocumentDocumentSymbol+  parseJSON (A.String "textDocument/codeAction")          = return TextDocumentCodeAction+  parseJSON (A.String "textDocument/codeLens")            = return TextDocumentCodeLens+  parseJSON (A.String "codeLens/resolve")                 = return CodeLensResolve+  parseJSON (A.String "textDocument/documentLink")        = return TextDocumentDocumentLink+  parseJSON (A.String "documentLink/resolve")             = return DocumentLinkResolve+  parseJSON (A.String "textDocument/documentColor")       = return TextDocumentDocumentColor+  parseJSON (A.String "textDocument/colorPresentation")   = return TextDocumentColorPresentation+  parseJSON (A.String "textDocument/formatting")          = return TextDocumentFormatting+  parseJSON (A.String "textDocument/rangeFormatting")     = return TextDocumentRangeFormatting+  parseJSON (A.String "textDocument/onTypeFormatting")    = return TextDocumentOnTypeFormatting+  parseJSON (A.String "textDocument/rename")              = return TextDocumentRename+  parseJSON (A.String "textDocument/foldingRanges")       = return TextDocumentFoldingRanges+  parseJSON (A.String x)                                  = if T.isPrefixOf "$/" x+                                                               then return $ Misc (T.drop 2 x)+                                                            else mempty+  parseJSON _                                             = mempty++instance A.ToJSON ClientMethod where+  -- General+  toJSON Initialize                      = A.String "initialize"+  toJSON Initialized                     = A.String "initialized"+  toJSON Shutdown                        = A.String "shutdown"+  toJSON Exit                            = A.String "exit"+  toJSON CancelRequest                   = A.String "$/cancelRequest"+  -- Workspace+  toJSON WorkspaceDidChangeWorkspaceFolders = A.String "workspace/didChangeWorkspaceFolders"+  toJSON WorkspaceDidChangeConfiguration = A.String "workspace/didChangeConfiguration"+  toJSON WorkspaceDidChangeWatchedFiles  = A.String "workspace/didChangeWatchedFiles"+  toJSON WorkspaceSymbol                 = A.String "workspace/symbol"+  toJSON WorkspaceExecuteCommand         = A.String "workspace/executeCommand"+  -- Document+  toJSON TextDocumentDidOpen             = A.String "textDocument/didOpen"+  toJSON TextDocumentDidChange           = A.String "textDocument/didChange"+  toJSON TextDocumentWillSave            = A.String "textDocument/willSave"+  toJSON TextDocumentWillSaveWaitUntil   = A.String "textDocument/willSaveWaitUntil"+  toJSON TextDocumentDidSave             = A.String "textDocument/didSave"+  toJSON TextDocumentDidClose            = A.String "textDocument/didClose"+  toJSON TextDocumentCompletion          = A.String "textDocument/completion"+  toJSON CompletionItemResolve           = A.String "completionItem/resolve"+  toJSON TextDocumentHover               = A.String "textDocument/hover"+  toJSON TextDocumentSignatureHelp       = A.String "textDocument/signatureHelp"+  toJSON TextDocumentReferences          = A.String "textDocument/references"+  toJSON TextDocumentDocumentHighlight   = A.String "textDocument/documentHighlight"+  toJSON TextDocumentDocumentSymbol      = A.String "textDocument/documentSymbol"+  toJSON TextDocumentDefinition          = A.String "textDocument/definition"+  toJSON TextDocumentTypeDefinition      = A.String "textDocument/typeDefinition"+  toJSON TextDocumentImplementation      = A.String "textDocument/implementation"+  toJSON TextDocumentCodeAction          = A.String "textDocument/codeAction"+  toJSON TextDocumentCodeLens            = A.String "textDocument/codeLens"+  toJSON CodeLensResolve                 = A.String "codeLens/resolve"+  toJSON TextDocumentDocumentColor       = A.String "textDocument/documentColor"+  toJSON TextDocumentColorPresentation   = A.String "textDocument/colorPresentation"+  toJSON TextDocumentFormatting          = A.String "textDocument/formatting"+  toJSON TextDocumentRangeFormatting     = A.String "textDocument/rangeFormatting"+  toJSON TextDocumentOnTypeFormatting    = A.String "textDocument/onTypeFormatting"+  toJSON TextDocumentRename              = A.String "textDocument/rename"+  toJSON TextDocumentFoldingRanges       = A.String "textDocument/foldingRanges"+  toJSON TextDocumentDocumentLink        = A.String "textDocument/documentLink"+  toJSON DocumentLinkResolve             = A.String "documentLink/resolve"+  toJSON (Misc xs)                       = A.String $ "$/" <> xs++data ServerMethod =+  -- Window+    WindowShowMessage+  | WindowShowMessageRequest+  | WindowLogMessage+  | TelemetryEvent+  -- Client+  | ClientRegisterCapability+  | ClientUnregisterCapability+  -- Workspace+  | WorkspaceWorkspaceFolders+  | WorkspaceConfiguration+  | WorkspaceApplyEdit+  -- Document+  | TextDocumentPublishDiagnostics+  -- Cancelling+  | CancelRequestServer+   deriving (Eq,Ord,Read,Show)++instance A.FromJSON ServerMethod where+  -- Window+  parseJSON (A.String "window/showMessage")              = return WindowShowMessage+  parseJSON (A.String "window/showMessageRequest")       = return WindowShowMessageRequest+  parseJSON (A.String "window/logMessage")               = return WindowLogMessage+  parseJSON (A.String "telemetry/event")                 = return TelemetryEvent+  -- Client+  parseJSON (A.String "client/registerCapability")       = return ClientRegisterCapability+  parseJSON (A.String "client/unregisterCapability")     = return ClientUnregisterCapability+  -- Workspace+  parseJSON (A.String "workspace/workspaceFolders")      = return WorkspaceWorkspaceFolders+  parseJSON (A.String "workspace/configuration")         = return WorkspaceConfiguration+  parseJSON (A.String "workspace/applyEdit")             = return WorkspaceApplyEdit+  -- Document+  parseJSON (A.String "textDocument/publishDiagnostics") = return TextDocumentPublishDiagnostics+  -- Cancelling+  parseJSON (A.String "$/cancelRequest")                 = return CancelRequestServer+  parseJSON _                                            = mempty++instance A.ToJSON ServerMethod where+  -- Window+  toJSON WindowShowMessage = A.String "window/showMessage"+  toJSON WindowShowMessageRequest = A.String "window/showMessageRequest"+  toJSON WindowLogMessage = A.String "window/logMessage"+  toJSON TelemetryEvent = A.String "telemetry/event"+  -- Client+  toJSON ClientRegisterCapability = A.String "client/registerCapability"+  toJSON ClientUnregisterCapability = A.String "client/unregisterCapability"+  -- Workspace+  toJSON WorkspaceWorkspaceFolders = A.String "workspace/workspaceFolders"+  toJSON WorkspaceConfiguration = A.String "workspace/configuration"+  toJSON WorkspaceApplyEdit = A.String "workspace/applyEdit"+  -- Document+  toJSON TextDocumentPublishDiagnostics = A.String "textDocument/publishDiagnostics"+  -- Cancelling+  toJSON CancelRequestServer = A.String "$/cancelRequest"++data RequestMessage m req resp =+  RequestMessage+    { _jsonrpc :: Text+    , _id      :: LspId+    , _method  :: m+    , _params  :: req+    } deriving (Read,Show,Eq)++deriveJSON lspOptions ''RequestMessage++-- ---------------------------------------------------------------------+{-+interface ResponseError<D> {+    /**+     * A number indicating the error type that occurred.+     */+    code: number;++    /**+     * A string providing a short description of the error.+     */+    message: string;++    /**+     * A Primitive or Structured value that contains additional+     * information about the error. Can be omitted.+     */+    data?: D;+}++export namespace ErrorCodes {+        // Defined by JSON RPC+        export const ParseError: number = -32700;+        export const InvalidRequest: number = -32600;+        export const MethodNotFound: number = -32601;+        export const InvalidParams: number = -32602;+        export const InternalError: number = -32603;+        export const serverErrorStart: number = -32099;+        export const serverErrorEnd: number = -32000;+        export const ServerNotInitialized: number = -32002;+        export const UnknownErrorCode: number = -32001;++        // Defined by the protocol.+        export const RequestCancelled: number = -32800;+}+-}++data ErrorCode = ParseError+               | InvalidRequest+               | MethodNotFound+               | InvalidParams+               | InternalError+               | ServerErrorStart+               | ServerErrorEnd+               | ServerNotInitialized+               | UnknownErrorCode+               | RequestCancelled+               -- ^ Note: server error codes are reserved from -32099 to -32000+               deriving (Read,Show,Eq)++instance A.ToJSON ErrorCode where+  toJSON ParseError           = A.Number (-32700)+  toJSON InvalidRequest       = A.Number (-32600)+  toJSON MethodNotFound       = A.Number (-32601)+  toJSON InvalidParams        = A.Number (-32602)+  toJSON InternalError        = A.Number (-32603)+  toJSON ServerErrorStart     = A.Number (-32099)+  toJSON ServerErrorEnd       = A.Number (-32000)+  toJSON ServerNotInitialized = A.Number (-32002)+  toJSON UnknownErrorCode     = A.Number (-32001)+  toJSON RequestCancelled     = A.Number (-32800)++instance A.FromJSON ErrorCode where+  parseJSON (A.Number (-32700)) = pure ParseError+  parseJSON (A.Number (-32600)) = pure InvalidRequest+  parseJSON (A.Number (-32601)) = pure MethodNotFound+  parseJSON (A.Number (-32602)) = pure InvalidParams+  parseJSON (A.Number (-32603)) = pure InternalError+  parseJSON (A.Number (-32099)) = pure ServerErrorStart+  parseJSON (A.Number (-32000)) = pure ServerErrorEnd+  parseJSON (A.Number (-32002)) = pure ServerNotInitialized+  parseJSON (A.Number (-32001)) = pure UnknownErrorCode+  parseJSON (A.Number (-32800)) = pure RequestCancelled+  parseJSON _                   = mempty++-- -------------------------------------++data ResponseError =+  ResponseError+    { _code    :: ErrorCode+    , _message :: Text+    , _xdata   :: Maybe A.Value+    } deriving (Read,Show,Eq)++deriveJSON lspOptions{ fieldLabelModifier = customModifier } ''ResponseError++-- ---------------------------------------------------------------------++data ResponseMessage a =+  ResponseMessage+    { _jsonrpc :: Text+    , _id      :: LspIdRsp+    , _result  :: Maybe a+    , _error   :: Maybe ResponseError+    } deriving (Read,Show,Eq)++deriveJSON lspOptions ''ResponseMessage++type ErrorResponse = ResponseMessage ()++-- ---------------------------------------------------------------------++type BareResponseMessage = ResponseMessage A.Value++-- ---------------------------------------------------------------------+{-+$ Notifications and Requests++Notification and requests ids starting with '$/' are messages which are protocol+implementation dependent and might not be implementable in all clients or+servers. For example if the server implementation uses a single threaded+synchronous programming language then there is little a server can do to react+to a '$/cancelRequest'. If a server or client receives notifications or requests+starting with '$/' it is free to ignore them if they are unknown.+-}++data NotificationMessage m a =+  NotificationMessage+    { _jsonrpc :: Text+    , _method  :: m+    , _params  :: a+    } deriving (Read,Show,Eq)++deriveJSON lspOptions ''NotificationMessage++-- ---------------------------------------------------------------------+{-+Cancellation Support++https://github.com/Microsoft/language-server-protocol/blob/master/protocol.md#cancellation-support++    New: The base protocol now offers support for request cancellation. To+    cancel a request, a notification message with the following properties is+    sent:++Notification:++    method: '$/cancelRequest'+    params: CancelParams defined as follows:++interface CancelParams {+    /**+     * The request id to cancel.+     */+    id: number | string;+}++A request that got canceled still needs to return from the server and send a+response back. It can not be left open / hanging. This is in line with the JSON+RPC protocol that requires that every request sends a response back. In addition+it allows for returning partial results on cancel.+-}++data CancelParams =+  CancelParams+    { _id :: LspId+    } deriving (Read,Show,Eq)++deriveJSON lspOptions ''CancelParams++type CancelNotification = NotificationMessage ClientMethod CancelParams+type CancelNotificationServer = NotificationMessage ServerMethod CancelParams++-- ---------------------------------------------------------------------
+ src/Language/Haskell/LSP/Types/MessageFuncs.hs view
@@ -0,0 +1,310 @@+{-# LANGUAGE GADTs               #-}+{-# LANGUAGE MultiWayIf          #-}+{-# LANGUAGE BinaryLiterals      #-}+{-# LANGUAGE OverloadedStrings   #-}+{-# LANGUAGE RankNTypes          #-}+{-# LANGUAGE ScopedTypeVariables #-}++module Language.Haskell.LSP.Types.MessageFuncs (+  -- * General+    fmClientInitializeRequest+  , fmClientInitializedNotification+  , fmClientShutdownRequest+  , fmClientExitNotification+  , fmClientCancelNotification++  -- * Window+  , fmServerShowMessageNotification+  , fmServerShowMessageRequest+  , fmServerLogMessageNotification+  , fmServerTelemetryNotification++  -- * Client+  , fmServerRegisterCapabilityRequest+  , fmServerUnregisterCapabilityRequest++  -- * Workspace+  , fmClientDidChangeConfigurationNotification+  , fmClientDidChangeWatchedFilesNotification+  , fmClientWorkspaceSymbolRequest+  , fmClientExecuteCommandRequest+  , fmServerApplyWorkspaceEditRequest++  -- * Document+  , fmServerPublishDiagnosticsNotification+  , fmClientDidOpenTextDocumentNotification+  , fmClientDidChangeTextDocumentNotification+  , fmClientWillSaveTextDocumentNotification+  , fmClientWillSaveWaitUntilRequest+  , fmClientDidSaveTextDocumentNotification+  , fmClientDidCloseTextDocumentNotification+  , fmClientCompletionRequest+  , fmClientCompletionItemResolveRequest+  , fmClientHoverRequest+  , fmClientSignatureHelpRequest+  , fmClientReferencesRequest+  , fmClientDocumentHighlightRequest+  , fmClientDocumentSymbolRequest+  , fmClientDocumentFormattingRequest+  , fmClientDocumentRangeFormattingRequest+  , fmClientDocumentOnTypeFormattingRequest+  , fmClientDefinitionRequest+  , fmClientCodeActionRequest+  , fmClientCodeLensRequest+  , fmClientCodeLensResolveRequest+  , fmClientDocumentLinkRequest+  , fmClientDocumentLinkResolveRequest+  , fmClientRenameRequest+  ) where++import qualified Data.Aeson as J+import           Data.Text ( Text )+import qualified Language.Haskell.LSP.Types      as J++-- ---------------------------------------------------------------------+{-# ANN module ("HLint: ignore Eta reduce"         :: String) #-}+{-# ANN module ("HLint: ignore Redundant do"       :: String) #-}+{-# ANN module ("HLint: ignore Reduce duplication" :: String) #-}+-- ---------------------------------------------------------------------++-- ----------------------------------------------------------------------+-- General+-- ----------------------------------------------------------------------++-- * :leftwards_arrow_with_hook: [initialize](#initialize)++fmClientInitializeRequest :: J.LspId -> J.InitializeParams -> J.InitializeRequest+fmClientInitializeRequest rid params+  = J.RequestMessage  "2.0" rid J.Initialize params++-- ----------------------------------------------------------------------+-- * **New** :arrow_right: [initialized](#initialized)++-- | From 3.0+fmClientInitializedNotification :: J.InitializedNotification+fmClientInitializedNotification = J.NotificationMessage "2.0" J.Initialized Nothing++-- ----------------------------------------------------------------------+-- * :leftwards_arrow_with_hook: [shutdown](#shutdown)++fmClientShutdownRequest :: J.LspId -> Maybe J.Value -> J.ShutdownRequest+fmClientShutdownRequest rid params+  = J.RequestMessage  "2.0" rid J.Shutdown params++-- ----------------------------------------------------------------------+-- * :arrow_right: [exit](#exit)++fmClientExitNotification :: J.ExitNotification+fmClientExitNotification = J.NotificationMessage "2.0" J.Exit Nothing++-- ----------------------------------------------------------------------+-- * :arrow_right: [$/cancelRequest](#cancelRequest)++fmClientCancelNotification :: J.LspId -> J.CancelNotification+fmClientCancelNotification idToCancel+  = J.NotificationMessage "2.0" J.CancelRequest  (J.CancelParams idToCancel)++-- ----------------------------------------------------------------------+-- Window+-- ----------------------------------------------------------------------++-- * :arrow_left: [window/showMessage](#window_showMessage)++fmServerShowMessageNotification :: J.MessageType -> Text -> J.ShowMessageNotification+fmServerShowMessageNotification mt msg+  = J.NotificationMessage "2.0" J.WindowShowMessage (J.ShowMessageParams mt msg)++-- ----------------------------------------------------------------------+-- * :arrow_right_hook: [window/showMessageRequest](#window_showMessageRequest)++fmServerShowMessageRequest :: J.LspId -> J.ShowMessageRequestParams -> J.ShowMessageRequest+fmServerShowMessageRequest rid params+  = J.RequestMessage  "2.0" rid J.WindowShowMessageRequest params++-- ----------------------------------------------------------------------+-- * :arrow_left: [window/logMessage](#window_logMessage)++fmServerLogMessageNotification :: J.MessageType -> Text -> J.LogMessageNotification+fmServerLogMessageNotification mt msg+  = J.NotificationMessage "2.0" J.WindowLogMessage (J.LogMessageParams mt msg)++-- ----------------------------------------------------------------------+-- * :arrow_left: [telemetry/event](#telemetry_event)++fmServerTelemetryNotification :: J.Value  -> J.TelemetryNotification+fmServerTelemetryNotification params+  = J.NotificationMessage "2.0" J.TelemetryEvent params++-- ----------------------------------------------------------------------+--  Client+-- ----------------------------------------------------------------------++-- * :arrow_right_hook: [client/registerCapability](#client_registerCapability)+-- | from 3.0+fmServerRegisterCapabilityRequest :: J.LspId -> J.RegistrationParams -> J.RegisterCapabilityRequest+fmServerRegisterCapabilityRequest rid params+  = J.RequestMessage  "2.0" rid J.ClientRegisterCapability params++-- * :arrow_right_hook: [client/unregisterCapability](#client_unregisterCapability)+-- | from 3.0+fmServerUnregisterCapabilityRequest :: J.LspId -> J.UnregistrationParams -> J.UnregisterCapabilityRequest+fmServerUnregisterCapabilityRequest rid params+  = J.RequestMessage  "2.0" rid J.ClientUnregisterCapability params++-- ----------------------------------------------------------------------+-- Workspace+-- ----------------------------------------------------------------------++-- * :arrow_right: [workspace/didChangeConfiguration](#workspace_didChangeConfiguration)+fmClientDidChangeConfigurationNotification :: J.DidChangeConfigurationParams -> J.DidChangeConfigurationNotification+fmClientDidChangeConfigurationNotification params+  = J.NotificationMessage "2.0" J.WorkspaceDidChangeConfiguration params++-- * :arrow_right: [workspace/didChangeWatchedFiles](#workspace_didChangeWatchedFiles)+fmClientDidChangeWatchedFilesNotification :: J.DidChangeWatchedFilesParams -> J.DidChangeWatchedFilesNotification+fmClientDidChangeWatchedFilesNotification params+  = J.NotificationMessage "2.0" J.WorkspaceDidChangeWatchedFiles params++-- * :leftwards_arrow_with_hook: [workspace/symbol](#workspace_symbol)+fmClientWorkspaceSymbolRequest :: J.LspId -> J.WorkspaceSymbolParams -> J.WorkspaceSymbolRequest+fmClientWorkspaceSymbolRequest rid params+  = J.RequestMessage  "2.0" rid J.WorkspaceSymbol params++-- * **New** :leftwards_arrow_with_hook: [workspace/executeCommand](#workspace_executeCommand)+-- | From 3.0+fmClientExecuteCommandRequest :: J.LspId -> J.ExecuteCommandParams -> J.ExecuteCommandRequest+fmClientExecuteCommandRequest rid params+  = J.RequestMessage  "2.0" rid J.WorkspaceExecuteCommand params++-- * **New** :arrow_right_hook: [workspace/applyEdit](#workspace_applyEdit)+-- | From 3.0+fmServerApplyWorkspaceEditRequest :: J.LspId -> J.ApplyWorkspaceEditParams -> J.ApplyWorkspaceEditRequest+fmServerApplyWorkspaceEditRequest rid params+  = J.RequestMessage  "2.0" rid J.WorkspaceApplyEdit params++-- ----------------------------------------------------------------------+ -- Document+-- ----------------------------------------------------------------------++-- * :arrow_left: [textDocument/publishDiagnostics](#textDocument_publishDiagnostics)+fmServerPublishDiagnosticsNotification :: J.PublishDiagnosticsParams -> J.PublishDiagnosticsNotification+fmServerPublishDiagnosticsNotification params+  = J.NotificationMessage "2.0" J.TextDocumentPublishDiagnostics params++-- * :arrow_right: [textDocument/didOpen](#textDocument_didOpen)+fmClientDidOpenTextDocumentNotification :: J.DidOpenTextDocumentParams -> J.DidOpenTextDocumentNotification+fmClientDidOpenTextDocumentNotification params+  = J.NotificationMessage "2.0" J.TextDocumentDidOpen params++-- * :arrow_right: [textDocument/didChange](#textDocument_didChange)+fmClientDidChangeTextDocumentNotification :: J.DidChangeTextDocumentParams -> J.DidChangeTextDocumentNotification+fmClientDidChangeTextDocumentNotification params+  = J.NotificationMessage "2.0" J.TextDocumentDidChange params++-- * :arrow_right: [textDocument/willSave](#textDocument_willSave)+fmClientWillSaveTextDocumentNotification :: J.WillSaveTextDocumentParams -> J.WillSaveTextDocumentNotification+fmClientWillSaveTextDocumentNotification params+  = J.NotificationMessage "2.0" J.TextDocumentWillSave params++-- * **New** :leftwards_arrow_with_hook: [textDocument/willSaveWaitUntil](#textDocument_willSaveWaitUntil)+-- | From 3.0+fmClientWillSaveWaitUntilRequest :: J.LspId -> J.WillSaveTextDocumentParams -> J.WillSaveWaitUntilTextDocumentRequest+fmClientWillSaveWaitUntilRequest rid params+  = J.RequestMessage "2.0" rid J.TextDocumentWillSaveWaitUntil params++-- * **New** :arrow_right: [textDocument/didSave](#textDocument_didSave)+-- | 3.0+fmClientDidSaveTextDocumentNotification :: J.DidSaveTextDocumentParams -> J.DidSaveTextDocumentNotification+fmClientDidSaveTextDocumentNotification params+  = J.NotificationMessage "2.0" J.TextDocumentDidSave params++-- * :arrow_right: [textDocument/didClose](#textDocument_didClose)+fmClientDidCloseTextDocumentNotification :: J.DidCloseTextDocumentParams -> J.DidCloseTextDocumentNotification+fmClientDidCloseTextDocumentNotification params+  = J.NotificationMessage "2.0" J.TextDocumentDidClose params++-- * :leftwards_arrow_with_hook: [textDocument/completion](#textDocument_completion)+fmClientCompletionRequest :: J.LspId -> J.CompletionParams -> J.CompletionRequest+fmClientCompletionRequest rid params+  = J.RequestMessage "2.0" rid J.TextDocumentCompletion params++-- * :leftwards_arrow_with_hook: [completionItem/resolve](#completionItem_resolve)+fmClientCompletionItemResolveRequest :: J.LspId -> J.CompletionItem -> J.CompletionItemResolveRequest+fmClientCompletionItemResolveRequest rid params+  = J.RequestMessage "2.0" rid J.CompletionItemResolve params++-- * :leftwards_arrow_with_hook: [textDocument/hover](#textDocument_hover)+fmClientHoverRequest :: J.LspId -> J.TextDocumentPositionParams -> J.HoverRequest+fmClientHoverRequest rid params+  = J.RequestMessage "2.0" rid J.TextDocumentHover params++-- * :leftwards_arrow_with_hook: [textDocument/signatureHelp](#textDocument_signatureHelp)+fmClientSignatureHelpRequest :: J.LspId -> J.TextDocumentPositionParams -> J.SignatureHelpRequest+fmClientSignatureHelpRequest rid params+  = J.RequestMessage "2.0" rid J.TextDocumentSignatureHelp params++-- * :leftwards_arrow_with_hook: [textDocument/references](#textDocument_references)+fmClientReferencesRequest :: J.LspId -> J.ReferenceParams -> J.ReferencesRequest+fmClientReferencesRequest rid params+  = J.RequestMessage "2.0" rid J.TextDocumentReferences params++-- * :leftwards_arrow_with_hook: [textDocument/documentHighlight](#textDocument_documentHighlight)+fmClientDocumentHighlightRequest :: J.LspId -> J.TextDocumentPositionParams -> J.DocumentHighlightRequest+fmClientDocumentHighlightRequest rid params+  = J.RequestMessage "2.0" rid J.TextDocumentDocumentHighlight params++-- * :leftwards_arrow_with_hook: [textDocument/documentSymbol](#textDocument_documentSymbol)+fmClientDocumentSymbolRequest :: J.LspId -> J.DocumentSymbolParams -> J.DocumentSymbolRequest+fmClientDocumentSymbolRequest rid params+  = J.RequestMessage "2.0" rid J.TextDocumentDocumentSymbol params++-- * :leftwards_arrow_with_hook: [textDocument/formatting](#textDocument_formatting)+fmClientDocumentFormattingRequest :: J.LspId -> J.DocumentFormattingParams -> J.DocumentFormattingRequest+fmClientDocumentFormattingRequest rid params+  = J.RequestMessage "2.0" rid J.TextDocumentFormatting params++-- * :leftwards_arrow_with_hook: [textDocument/rangeFormatting](#textDocument_rangeFormatting)+fmClientDocumentRangeFormattingRequest :: J.LspId -> J.DocumentRangeFormattingParams -> J.DocumentRangeFormattingRequest+fmClientDocumentRangeFormattingRequest rid params+  = J.RequestMessage "2.0" rid J.TextDocumentRangeFormatting params++-- * :leftwards_arrow_with_hook: [textDocument/onTypeFormatting](#textDocument_onTypeFormatting)+fmClientDocumentOnTypeFormattingRequest :: J.LspId -> J.DocumentOnTypeFormattingParams -> J.DocumentOnTypeFormattingRequest+fmClientDocumentOnTypeFormattingRequest rid params+  = J.RequestMessage "2.0" rid J.TextDocumentOnTypeFormatting params++-- * :leftwards_arrow_with_hook: [textDocument/definition](#textDocument_definition)+fmClientDefinitionRequest :: J.LspId -> J.TextDocumentPositionParams -> J.DefinitionRequest+fmClientDefinitionRequest rid params+  = J.RequestMessage "2.0" rid J.TextDocumentDefinition params++-- * :leftwards_arrow_with_hook: [textDocument/codeAction](#textDocument_codeAction)+fmClientCodeActionRequest :: J.LspId -> J.CodeActionParams -> J.CodeActionRequest+fmClientCodeActionRequest rid params+  = J.RequestMessage "2.0" rid J.TextDocumentCodeAction params++-- * :leftwards_arrow_with_hook: [textDocument/codeLens](#textDocument_codeLens)+fmClientCodeLensRequest :: J.LspId -> J.CodeLensParams -> J.CodeLensRequest+fmClientCodeLensRequest rid params+  = J.RequestMessage "2.0" rid J.TextDocumentCodeLens params++-- * :leftwards_arrow_with_hook: [codeLens/resolve](#codeLens_resolve)+fmClientCodeLensResolveRequest :: J.LspId -> J.CodeLens -> J.CodeLensResolveRequest+fmClientCodeLensResolveRequest rid params+  = J.RequestMessage "2.0" rid J.CodeLensResolve params++-- * :leftwards_arrow_with_hook: [textDocument/documentLink](#textDocument_documentLink)+fmClientDocumentLinkRequest :: J.LspId -> J.DocumentLinkParams -> J.DocumentLinkRequest+fmClientDocumentLinkRequest rid params+  = J.RequestMessage "2.0" rid J.TextDocumentDocumentLink params++-- * :leftwards_arrow_with_hook: [documentLink/resolve](#documentLink_resolve)+fmClientDocumentLinkResolveRequest :: J.LspId -> J.DocumentLink -> J.DocumentLinkResolveRequest+fmClientDocumentLinkResolveRequest rid params+  = J.RequestMessage "2.0" rid J.DocumentLinkResolve params++-- * :leftwards_arrow_with_hook: [textDocument/rename](#textDocument_rename)+fmClientRenameRequest :: J.LspId -> J.RenameParams -> J.RenameRequest+fmClientRenameRequest rid params+  = J.RequestMessage "2.0" rid J.TextDocumentRename params+
+ src/Language/Haskell/LSP/Types/Symbol.hs view
@@ -0,0 +1,271 @@+{-# LANGUAGE TemplateHaskell            #-}+{-# LANGUAGE DuplicateRecordFields      #-}+module Language.Haskell.LSP.Types.Symbol where++import           Control.Applicative+import           Data.Aeson+import           Data.Aeson.TH+import           Data.Scientific+import           Data.Text                                      (Text)+import           Language.Haskell.LSP.Types.Constants+import           Language.Haskell.LSP.Types.TextDocument+import           Language.Haskell.LSP.Types.List+import           Language.Haskell.LSP.Types.Location+import           Language.Haskell.LSP.Types.Message++-- ---------------------------------------------------------------------+{-+Document Symbols Request++https://github.com/Microsoft/language-server-protocol/blob/master/protocol.md#document-symbols-request++The document symbol request is sent from the client to the server to list all+symbols found in a given text document.++    Changed: In 2.0 the request uses DocumentSymbolParams instead of a single+             uri.++Request++    method: 'textDocument/documentSymbol'+    params: DocumentSymbolParams defined as follows:++interface DocumentSymbolParams {+    /**+     * The text document.+     */+    textDocument: TextDocumentIdentifier;+}++Response++    result: SymbolInformation[] defined as follows:++/**+ * Represents information about programming constructs like variables, classes,+ * interfaces etc.+ */+interface SymbolInformation {+    /**+     * The name of this symbol.+     */+    name: string;++    /**+     * The kind of this symbol.+     */+    kind: number;++    /**+     * The location of this symbol.+     */+    location: Location;++    /**+     * The name of the symbol containing this symbol.+     */+    containerName?: string;+}++Where the kind is defined like this:++/**+ * A symbol kind.+ */+export enum SymbolKind {+    File = 1,+    Module = 2,+    Namespace = 3,+    Package = 4,+    Class = 5,+    Method = 6,+    Property = 7,+    Field = 8,+    Constructor = 9,+    Enum = 10,+    Interface = 11,+    Function = 12,+    Variable = 13,+    Constant = 14,+    Text = 15,+    Number = 16,+    Boolean = 17,+    Array = 18,+}++    error: code and message set in case an exception happens during the document+           symbol request.++Registration Options: TextDocumentRegistrationOptions+-}++data DocumentSymbolParams =+  DocumentSymbolParams+    { _textDocument :: TextDocumentIdentifier+    } deriving (Read,Show,Eq)++deriveJSON lspOptions ''DocumentSymbolParams++-- -------------------------------------++data SymbolKind+    = SkFile+    | SkModule+    | SkNamespace+    | SkPackage+    | SkClass+    | SkMethod+    | SkProperty+    | SkField+    | SkConstructor+    | SkEnum+    | SkInterface+    | SkFunction+    | SkVariable+    | SkConstant+    | SkString+    | SkNumber+    | SkBoolean+    | SkArray+    | SkObject+    | SkKey+    | SkNull+    | SkEnumMember+    | SkStruct+    | SkEvent+    | SkOperator+    | SkTypeParameter+    | SkUnknown Scientific+    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 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+  toJSON (SkUnknown x)   = Number x++instance FromJSON SymbolKind where+  parseJSON (Number  1) = pure SkFile+  parseJSON (Number  2) = pure SkModule+  parseJSON (Number  3) = pure SkNamespace+  parseJSON (Number  4) = pure SkPackage+  parseJSON (Number  5) = pure SkClass+  parseJSON (Number  6) = pure SkMethod+  parseJSON (Number  7) = pure SkProperty+  parseJSON (Number  8) = pure SkField+  parseJSON (Number  9) = pure SkConstructor+  parseJSON (Number 10) = pure SkEnum+  parseJSON (Number 11) = pure SkInterface+  parseJSON (Number 12) = pure SkFunction+  parseJSON (Number 13) = pure SkVariable+  parseJSON (Number 14) = pure SkConstant+  parseJSON (Number 15) = pure SkString+  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 (Number x)  = pure (SkUnknown x)+  parseJSON _           = mempty++-- ---------------------------------------------------------------------++-- | Represents programming constructs like variables, classes, interfaces etc.+-- that appear in a document. Document symbols can be hierarchical and they+-- have two ranges: one that encloses its definition and one that points to its+-- most interesting range, e.g. the range of an identifier.+data DocumentSymbol =+  DocumentSymbol+    { _name           :: Text -- ^ The name of this symbol.+    -- | More detail for this symbol, e.g the signature of a function. If not+    -- provided the name is used.+    , _detail         :: Maybe Text+    , _kind           :: SymbolKind -- ^ The kind of this symbol.+    , _deprecated     :: Maybe Bool -- ^ Indicates if this symbol is deprecated.+    -- | The range enclosing this symbol not including leading/trailing+    -- whitespace but everything else like comments. This information is+    -- typically used to determine if the the clients cursor is inside the symbol+    -- to reveal in the symbol in the UI.+    , _range          :: Range+    -- | The range that should be selected and revealed when this symbol is being+    -- picked, e.g the name of a function. Must be contained by the the '_range'.+    , _selectionRange :: Range+    -- | Children of this symbol, e.g. properties of a class.+    , _children       :: Maybe (List DocumentSymbol)+    } deriving (Read,Show,Eq)++deriveJSON lspOptions ''DocumentSymbol++-- ---------------------------------------------------------------------++-- | Represents information about programming constructs like variables, classes,+-- interfaces etc.+data SymbolInformation =+  SymbolInformation+    { _name          :: Text -- ^ The name of this symbol.+    , _kind          :: SymbolKind -- ^ The kind of this symbol.+    , _deprecated    :: Maybe Bool -- ^ Indicates if this symbol is deprecated.+    -- | The location of this symbol. The location's range is used by a tool+    -- to reveal the location in the editor. If the symbol is selected in the+    -- tool the range's start information is used to position the cursor. So+    -- the range usually spans more then the actual symbol's name and does+    -- normally include things like visibility modifiers.+    --+    -- The range doesn't have to denote a node range in the sense of a abstract+    -- syntax tree. It can therefore not be used to re-construct a hierarchy of+    -- the symbols.+    , _location      :: Location+    -- | The name of the symbol containing this symbol. This information is for+    -- user interface purposes (e.g. to render a qualifier in the user interface+    -- if necessary). It can't be used to re-infer a hierarchy for the document+    -- symbols.+    , _containerName :: Maybe Text+    } deriving (Read,Show,Eq)++deriveJSON lspOptions ''SymbolInformation++-- -------------------------------------++data DSResult = DSDocumentSymbols (List DocumentSymbol)+              | DSSymbolInformation (List SymbolInformation)+  deriving (Read,Show,Eq)++instance FromJSON DSResult where+  parseJSON x = DSDocumentSymbols <$> parseJSON x <|> DSSymbolInformation <$> parseJSON x++instance ToJSON DSResult where+  toJSON (DSDocumentSymbols x) = toJSON x+  toJSON (DSSymbolInformation x) = toJSON x+++type DocumentSymbolRequest = RequestMessage ClientMethod DocumentSymbolParams DSResult+type DocumentSymbolsResponse = ResponseMessage DSResult
+ src/Language/Haskell/LSP/Types/TextDocument.hs view
@@ -0,0 +1,103 @@+{-# LANGUAGE DuplicateRecordFields      #-}+{-# LANGUAGE TemplateHaskell            #-}+module Language.Haskell.LSP.Types.TextDocument where++import           Data.Aeson.TH+import           Data.Text                      ( Text )+import           Language.Haskell.LSP.Types.Constants+import           Language.Haskell.LSP.Types.Location+import           Language.Haskell.LSP.Types.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/Types/Uri.hs view
@@ -0,0 +1,62 @@+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+module Language.Haskell.LSP.Types.Uri where++import qualified Data.Aeson                                 as A+import           Data.Hashable+import           Data.Text                                  (Text)+import qualified Data.Text                                  as T+import           Network.URI+import qualified System.FilePath.Posix                      as FPP+import qualified System.FilePath.Windows                    as FPW+import qualified System.Info++newtype Uri = Uri { getUri :: Text }+  deriving (Eq,Ord,Read,Show,A.FromJSON,A.ToJSON,Hashable,A.ToJSONKey,A.FromJSONKey)++fileScheme :: String+fileScheme = "file:"++windowsOS :: String+windowsOS = "mingw32"++type SystemOS = String++uriToFilePath :: Uri -> Maybe FilePath+uriToFilePath = platformAwareUriToFilePath System.Info.os++platformAwareUriToFilePath :: String -> Uri -> Maybe FilePath+platformAwareUriToFilePath systemOS (Uri uri) = do+  parsedUri <- parseURI $ T.unpack uri+  if uriScheme parsedUri == fileScheme+    then return $ (platformAdjustFromUriPath systemOS . unEscapeString . uriPath) parsedUri+    else Nothing++platformAdjustFromUriPath :: SystemOS -> String -> FilePath+platformAdjustFromUriPath systemOS 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+      in FPW.joinDrive drive $ FPW.joinPath rest++filePathToUri :: FilePath -> Uri+filePathToUri = platformAwareFilePathToUri System.Info.os++platformAwareFilePathToUri :: SystemOS -> FilePath -> Uri+platformAwareFilePathToUri systemOS fp = Uri . T.pack . show $ URI+  { uriScheme = fileScheme+  , uriAuthority = Just $ URIAuth "" "" ""+  , uriPath = platformAdjustToUriPath systemOS fp+  , uriQuery = ""+  , uriFragment = ""+  }++platformAdjustToUriPath :: SystemOS -> FilePath -> String+platformAdjustToUriPath systemOS srcPath =+  if systemOS /= windowsOS then srcPath+    else let+      drive:rest = FPW.splitDirectories srcPath+      leaveCharUnescaped = (/= ':')+      removePathSeparator = filter (not . FPW.isPathSeparator)+      escapedDrive = removePathSeparator $ escapeURIString leaveCharUnescaped drive+      in '/' : FPP.joinPath (escapedDrive : rest)
+ src/Language/Haskell/LSP/Types/Utils.hs view
@@ -0,0 +1,6 @@+module Language.Haskell.LSP.Types.Utils where++-- ---------------------------------------------------------------------++rdrop :: Int -> [a] -> [a]+rdrop cnt = reverse . drop cnt . reverse
+ src/Language/Haskell/LSP/Types/WorkspaceEdit.hs view
@@ -0,0 +1,160 @@+{-# LANGUAGE CPP                        #-}+{-# LANGUAGE DuplicateRecordFields      #-}+{-# LANGUAGE TemplateHaskell            #-}+module Language.Haskell.LSP.Types.WorkspaceEdit where++import           Data.Aeson.TH+import qualified Data.HashMap.Strict                        as H+-- For <= 8.2.2+import           Data.Monoid                                ((<>))+import           Data.Text                                  (Text)+import           Language.Haskell.LSP.Types.Constants+import           Language.Haskell.LSP.Types.List+import           Language.Haskell.LSP.Types.Location+import           Language.Haskell.LSP.Types.Uri++-- ---------------------------------------------------------------------+{-+TextEdit++https://github.com/Microsoft/language-server-protocol/blob/master/protocol.md#textedit++A textual edit applicable to a text document.++interface TextEdit {+    /**+     * The range of the text document to be manipulated. To insert+     * text into a document create a range where start === end.+     */+    range: Range;++    /**+     * The string to be inserted. For delete operations use an+     * empty string.+     */+    newText: string;+}+++-}++data TextEdit =+  TextEdit+    { _range   :: Range+    , _newText :: Text+    } deriving (Show,Read,Eq)++deriveJSON lspOptions ''TextEdit++-- ---------------------------------------------------------------------+{-+VersionedTextDocumentIdentifier++https://github.com/Microsoft/language-server-protocol/blob/master/protocol.md#versionedtextdocumentidentifier++    New: An identifier to denote a specific version of a text document.++interface VersionedTextDocumentIdentifier extends TextDocumentIdentifier {+    /**+	 * The version number of this document. If a versioned text document identifier+	 * is sent from the server to the client and the file is not open in the editor+	 * (the server has not received an open notification before) the server can send+	 * `null` to indicate that the version is known and the content on disk is the+	 * truth (as speced with document content ownership)+	 */+	version: number | null;+-}++type TextDocumentVersion = Maybe Int++data VersionedTextDocumentIdentifier =+  VersionedTextDocumentIdentifier+    { _uri     :: Uri+    , _version :: TextDocumentVersion+    } deriving (Show, Read, Eq)++deriveJSON lspOptions ''VersionedTextDocumentIdentifier++-- ---------------------------------------------------------------------+{-+New in 3.0+----------++TextDocumentEdit+https://github.com/Microsoft/language-server-protocol/blob/master/protocol.md#new-textdocumentedit++If multiple TextEdits are applied to a text document, all text edits describe+changes made to the initial document version. Execution wise text edits should+applied from the bottom to the top of the text document. Overlapping text edits+are not supported.++export interface TextDocumentEdit {+        /**+         * The text document to change.+         */+        textDocument: VersionedTextDocumentIdentifier;++        /**+         * The edits to be applied.+         */+        edits: TextEdit[];+}++-}++data TextDocumentEdit =+  TextDocumentEdit+    { _textDocument :: VersionedTextDocumentIdentifier+    , _edits        :: List TextEdit+    } deriving (Show, Read, Eq)++deriveJSON lspOptions ''TextDocumentEdit++-- ---------------------------------------------------------------------+{-+Changed in 3.0+--------------++WorkspaceEdit++https://github.com/Microsoft/language-server-protocol/blob/master/protocol.md#workspaceedit+++Changed A workspace edit represents changes to many resources managed in the+workspace. The edit should either provide changes or documentChanges. If+documentChanges are present they are preferred over changes if the client can+handle versioned document edits.++export interface WorkspaceEdit {+        /**+         * Holds changes to existing resources.+         */+        changes?: { [uri: string]: TextEdit[]; };++        /**+         * An array of `TextDocumentEdit`s to express changes to specific a specific+         * version of a text document. Whether a client supports versioned document+         * edits is expressed via `WorkspaceClientCapabilities.versionedWorkspaceEdit`.+         */+        documentChanges?: TextDocumentEdit[];+}+-}++type WorkspaceEditMap = H.HashMap Uri (List TextEdit)++data WorkspaceEdit =+  WorkspaceEdit+    { _changes         :: Maybe WorkspaceEditMap+    , _documentChanges :: Maybe (List TextDocumentEdit)+    } deriving (Show, Read, Eq)++instance Monoid WorkspaceEdit where+  mempty = WorkspaceEdit Nothing Nothing+  mappend (WorkspaceEdit a b) (WorkspaceEdit c d) = WorkspaceEdit (a <> c) (b <> d)++deriveJSON lspOptions ''WorkspaceEdit++#if __GLASGOW_HASKELL__ >= 804+instance Semigroup WorkspaceEdit where+  (<>) = mappend+#endif
+ src/Language/Haskell/LSP/Types/WorkspaceFolders.hs view
@@ -0,0 +1,129 @@+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE TemplateHaskell       #-}+module Language.Haskell.LSP.Types.WorkspaceFolders where++import           Data.Aeson.TH+import           Data.Text                      ( Text )+import           Language.Haskell.LSP.Types.Constants+import           Language.Haskell.LSP.Types.List+import           Language.Haskell.LSP.Types.Message++{-+Workspace folders request (:arrow_right_hook:)+Since version 3.6.0++Many tools support more than one root folder per workspace. Examples for this+are VS Code’s multi-root support, Atom’s project folder support or Sublime’s+project support. If a client workspace consists of multiple roots then a server+typically needs to know about this. The protocol up to now assumes one root+folder which is announce to the server by the rootUri property of the+InitializeParams. If the client supports workspace folders and announces them+via the corrsponding workspaceFolders client capability the InitializeParams+contain an additional property workspaceFolders with the configured workspace+folders when the server starts.++The workspace/workspaceFolders request is sent from the server to the client to+fetch the current open list of workspace folders. Returns null in the response+if only a single file is open in the tool. Returns an empty array if a workspace+is open but no folders are configured.++Request:++method: ‘workspace/workspaceFolders’+params: none+Response:++result: WorkspaceFolder[] | null defines as follows:+export interface WorkspaceFolder {+	/**+	 * The associated URI for this workspace folder.+	 */+	uri: string;++	/**+	 * The name of the workspace folder. Defaults to the+	 * uri's basename.+	 */+	name: string;+}+error: code and message set in case an exception happens during the ‘workspace/workspaceFolders’ request+-}++data WorkspaceFolder =+  WorkspaceFolder+    { -- | The name of the workspace folder. Defaults to the uri's basename.+      _uri  :: Text+    -- | The name of the workspace folder. Defaults to the uri's basename.+    , _name :: Text+    } deriving (Read, Show, Eq)++deriveJSON lspOptions ''WorkspaceFolder++type WorkspaceFoldersRequest = RequestMessage ServerMethod () (Maybe (List WorkspaceFolder))+type WorkspaceFoldersResponse = ResponseMessage (Maybe (List WorkspaceFolder))++{-+DidChangeWorkspaceFolders Notification (:arrow_right:)+Since version 3.6.0++The workspace/didChangeWorkspaceFolders notification is sent from the client to+the server to inform the server about workspace folder configuration changes.+The notification is sent by default if both+ServerCapabilities/workspace/workspaceFolders and+ClientCapabilities/workspace/workspaceFolders are true; or if the server has+registered to receive this notification it first. To register for the+workspace/didChangeWorkspaceFolders send a client/registerCapability request+from the client to the server. The registration parameter must have a+registrations item of the following form, where id is a unique id used to+unregister the capability (the example uses a UUID):++{+	id: "28c6150c-bd7b-11e7-abc4-cec278b6b50a",+	method: "workspace/didChangeWorkspaceFolders"+}+Notification:++method: ‘workspace/didChangeWorkspaceFolders’+params: DidChangeWorkspaceFoldersParams defined as follows:+export interface DidChangeWorkspaceFoldersParams {+	/**+	 * The actual workspace folder change event.+	 */+	event: WorkspaceFoldersChangeEvent;+}++/**+ * The workspace folder change event.+ */+export interface WorkspaceFoldersChangeEvent {+	/**+	 * The array of added workspace folders+	 */+	added: WorkspaceFolder[];++	/**+	 * The array of the removed workspace folders+	 */+	removed: WorkspaceFolder[];+}+-}++-- | The workspace folder change event.+data WorkspaceFoldersChangeEvent =+  WorkspaceFoldersChangeEvent+    { _added :: List WorkspaceFolder -- ^ The array of added workspace folders+    , _removed :: List WorkspaceFolder -- ^ The array of the removed workspace folders+    } deriving (Read, Show, Eq)++deriveJSON lspOptions ''WorkspaceFoldersChangeEvent++data DidChangeWorkspaceFoldersParams = +  DidChangeWorkspaceFoldersParams+    { _event :: WorkspaceFoldersChangeEvent+      -- ^ The actual workspace folder change event.+    } deriving (Read, Show, Eq)++deriveJSON lspOptions ''DidChangeWorkspaceFoldersParams++type DidChangeWorkspaceFoldersNotification =+  NotificationMessage ClientMethod DidChangeWorkspaceFoldersParams