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 +17/−0
- haskell-lsp-types.cabal +25/−19
- src/Language/Haskell/LSP/TH/ClientCapabilities.hs +0/−1013
- src/Language/Haskell/LSP/TH/CodeAction.hs +0/−293
- src/Language/Haskell/LSP/TH/Command.hs +0/−45
- src/Language/Haskell/LSP/TH/Completion.hs +0/−421
- src/Language/Haskell/LSP/TH/Constants.hs +0/−17
- src/Language/Haskell/LSP/TH/DataTypesJSON.hs +0/−2732
- src/Language/Haskell/LSP/TH/Diagnostic.hs +0/−139
- src/Language/Haskell/LSP/TH/DocumentFilter.hs +0/−55
- src/Language/Haskell/LSP/TH/List.hs +0/−26
- src/Language/Haskell/LSP/TH/Location.hs +0/−93
- src/Language/Haskell/LSP/TH/MarkupContent.hs +0/−122
- src/Language/Haskell/LSP/TH/Message.hs +0/−420
- src/Language/Haskell/LSP/TH/MessageFuncs.hs +0/−310
- src/Language/Haskell/LSP/TH/Symbol.hs +0/−271
- src/Language/Haskell/LSP/TH/TextDocument.hs +0/−103
- src/Language/Haskell/LSP/TH/Uri.hs +0/−62
- src/Language/Haskell/LSP/TH/Utils.hs +0/−6
- src/Language/Haskell/LSP/TH/WorkspaceEdit.hs +0/−160
- src/Language/Haskell/LSP/Types.hs +40/−0
- src/Language/Haskell/LSP/Types/Capabilities.hs +211/−0
- src/Language/Haskell/LSP/Types/ClientCapabilities.hs +1058/−0
- src/Language/Haskell/LSP/Types/CodeAction.hs +293/−0
- src/Language/Haskell/LSP/Types/Color.hs +200/−0
- src/Language/Haskell/LSP/Types/Command.hs +45/−0
- src/Language/Haskell/LSP/Types/Completion.hs +496/−0
- src/Language/Haskell/LSP/Types/Constants.hs +17/−0
- src/Language/Haskell/LSP/Types/DataTypesJSON.hs +2855/−0
- src/Language/Haskell/LSP/Types/Diagnostic.hs +139/−0
- src/Language/Haskell/LSP/Types/DocumentFilter.hs +55/−0
- src/Language/Haskell/LSP/Types/FoldingRange.hs +70/−0
- src/Language/Haskell/LSP/Types/Lens.hs +192/−0
- src/Language/Haskell/LSP/Types/List.hs +26/−0
- src/Language/Haskell/LSP/Types/Location.hs +93/−0
- src/Language/Haskell/LSP/Types/MarkupContent.hs +122/−0
- src/Language/Haskell/LSP/Types/Message.hs +441/−0
- src/Language/Haskell/LSP/Types/MessageFuncs.hs +310/−0
- src/Language/Haskell/LSP/Types/Symbol.hs +271/−0
- src/Language/Haskell/LSP/Types/TextDocument.hs +103/−0
- src/Language/Haskell/LSP/Types/Uri.hs +62/−0
- src/Language/Haskell/LSP/Types/Utils.hs +6/−0
- src/Language/Haskell/LSP/Types/WorkspaceEdit.hs +160/−0
- src/Language/Haskell/LSP/Types/WorkspaceFolders.hs +129/−0
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