{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE LambdaCase #-}
{-# LANGUAGE OverloadedStrings #-}

module Language.LSP.Protocol.Capabilities (
  LSPVersion (..),

  -- * Client capabilities
  ClientCapability,
  clientCapability,
  fullLatestClientCaps,
  fullClientCapsForVersion,
  fullClientCapsForVersionAndMethod,
  dynamicRegistrationSupported,

  -- * Server capabilities
  ServerCapability,
  serverCapability,
) where

import Control.Lens
import Data.Kind (Type)
import Data.Maybe
import Data.Set qualified as Set
import Data.Void
import Language.LSP.Protocol.Lens qualified as L
import Language.LSP.Protocol.Message
import Language.LSP.Protocol.Types
import Prelude hiding (min)

-- | A specific version of the LSP specification.
data LSPVersion = LSPVersion Int Int

---- CLIENT CAPABILITIES

type ClientCapability :: forall f t. Method f t -> Type

-- See Note [Capability mappings]

{- | The client capability associated with a given method.

Where several methods are provided together (e.g. the three `callHierarchy` methods), we associate all of them
with the capaiblity, even if there is one "primary" method.
-}
type family ClientCapability (m :: Method f t) where
  ClientCapability Method_TextDocumentDeclaration = DeclarationClientCapabilities
  ClientCapability Method_TextDocumentImplementation = ImplementationClientCapabilities
  ClientCapability Method_TextDocumentTypeDefinition = TypeDefinitionClientCapabilities
  ClientCapability Method_TextDocumentHover = HoverClientCapabilities
  ClientCapability Method_TextDocumentSignatureHelp = SignatureHelpClientCapabilities
  ClientCapability Method_TextDocumentDefinition = DefinitionClientCapabilities
  ClientCapability Method_TextDocumentReferences = ReferenceClientCapabilities
  ClientCapability Method_TextDocumentDocumentHighlight = DocumentHighlightClientCapabilities
  ClientCapability Method_TextDocumentDocumentSymbol = DocumentSymbolClientCapabilities
  ClientCapability Method_TextDocumentFoldingRange = FoldingRangeClientCapabilities
  ClientCapability Method_TextDocumentSelectionRange = SelectionRangeClientCapabilities
  ClientCapability Method_WorkspaceExecuteCommand = ExecuteCommandClientCapabilities
  ClientCapability Method_TextDocumentLinkedEditingRange = LinkedEditingRangeClientCapabilities
  ClientCapability Method_TextDocumentMoniker = MonikerClientCapabilities
  ClientCapability Method_WorkspaceWorkspaceFolders = Bool
  ClientCapability Method_TextDocumentCompletion = CompletionClientCapabilities
  ClientCapability Method_CompletionItemResolve = CompletionClientCapabilities
  ClientCapability Method_TextDocumentCodeAction = CodeActionClientCapabilities
  ClientCapability Method_CodeActionResolve = CodeActionClientCapabilities
  ClientCapability Method_TextDocumentCodeLens = CodeLensClientCapabilities
  ClientCapability Method_CodeLensResolve = CodeLensClientCapabilities
  ClientCapability Method_WorkspaceCodeLensRefresh = CodeLensWorkspaceClientCapabilities
  ClientCapability Method_TextDocumentDocumentLink = DocumentLinkClientCapabilities
  ClientCapability Method_DocumentLinkResolve = DocumentLinkClientCapabilities
  ClientCapability Method_WorkspaceSymbol = WorkspaceSymbolClientCapabilities
  ClientCapability Method_WorkspaceSymbolResolve = WorkspaceSymbolClientCapabilities
  ClientCapability Method_TextDocumentRename = RenameClientCapabilities
  ClientCapability Method_TextDocumentPrepareRename = RenameClientCapabilities
  ClientCapability Method_TextDocumentDocumentColor = DocumentColorClientCapabilities
  ClientCapability Method_TextDocumentColorPresentation = DocumentColorClientCapabilities
  ClientCapability Method_TextDocumentFormatting = DocumentFormattingClientCapabilities
  ClientCapability Method_TextDocumentRangeFormatting = DocumentRangeFormattingClientCapabilities
  ClientCapability Method_TextDocumentOnTypeFormatting = DocumentOnTypeFormattingClientCapabilities
  ClientCapability Method_TextDocumentPrepareCallHierarchy = CallHierarchyClientCapabilities
  ClientCapability Method_CallHierarchyIncomingCalls = CallHierarchyClientCapabilities
  ClientCapability Method_CallHierarchyOutgoingCalls = CallHierarchyClientCapabilities
  ClientCapability Method_TextDocumentSemanticTokensFull = SemanticTokensClientCapabilities
  ClientCapability Method_TextDocumentSemanticTokensFullDelta = SemanticTokensClientCapabilities
  ClientCapability Method_TextDocumentSemanticTokensRange = SemanticTokensClientCapabilities
  ClientCapability Method_WorkspaceSemanticTokensRefresh = SemanticTokensWorkspaceClientCapabilities
  ClientCapability Method_TextDocumentPrepareTypeHierarchy = TypeHierarchyClientCapabilities
  ClientCapability Method_TypeHierarchySupertypes = TypeHierarchyClientCapabilities
  ClientCapability Method_TypeHierarchySubtypes = TypeHierarchyClientCapabilities
  ClientCapability Method_TextDocumentInlineValue = InlineValueClientCapabilities
  ClientCapability Method_WorkspaceInlineValueRefresh = InlineValueWorkspaceClientCapabilities
  ClientCapability Method_TextDocumentInlayHint = InlayHintClientCapabilities
  ClientCapability Method_InlayHintResolve = InlayHintClientCapabilities
  ClientCapability Method_WorkspaceInlayHintRefresh = InlayHintWorkspaceClientCapabilities
  ClientCapability Method_TextDocumentDiagnostic = DiagnosticClientCapabilities
  ClientCapability Method_WorkspaceDiagnostic = DiagnosticWorkspaceClientCapabilities
  ClientCapability Method_WorkspaceDiagnosticRefresh = DiagnosticWorkspaceClientCapabilities
  ClientCapability Method_WorkspaceWillCreateFiles = FileOperationClientCapabilities
  ClientCapability Method_WorkspaceWillRenameFiles = FileOperationClientCapabilities
  ClientCapability Method_WorkspaceWillDeleteFiles = FileOperationClientCapabilities
  ClientCapability Method_WorkspaceDidCreateFiles = FileOperationClientCapabilities
  ClientCapability Method_WorkspaceDidRenameFiles = FileOperationClientCapabilities
  ClientCapability Method_WorkspaceDidDeleteFiles = FileOperationClientCapabilities
  ClientCapability Method_TextDocumentDidOpen = TextDocumentSyncClientCapabilities
  ClientCapability Method_TextDocumentDidChange = TextDocumentSyncClientCapabilities
  ClientCapability Method_TextDocumentDidClose = TextDocumentSyncClientCapabilities
  ClientCapability Method_TextDocumentDidSave = TextDocumentSyncClientCapabilities
  ClientCapability Method_TextDocumentWillSave = TextDocumentSyncClientCapabilities
  ClientCapability Method_TextDocumentWillSaveWaitUntil = TextDocumentSyncClientCapabilities
  ClientCapability Method_NotebookDocumentDidOpen = NotebookDocumentSyncClientCapabilities
  ClientCapability Method_NotebookDocumentDidChange = NotebookDocumentSyncClientCapabilities
  ClientCapability Method_NotebookDocumentDidSave = NotebookDocumentSyncClientCapabilities
  ClientCapability Method_NotebookDocumentDidClose = NotebookDocumentSyncClientCapabilities
  ClientCapability Method_WorkspaceDidChangeConfiguration = DidChangeConfigurationClientCapabilities
  ClientCapability Method_WorkspaceDidChangeWatchedFiles = DidChangeWatchedFilesClientCapabilities
  ClientCapability Method_WorkspaceDidChangeWorkspaceFolders = Void
  ClientCapability Method_TextDocumentPublishDiagnostics = PublishDiagnosticsClientCapabilities
  ClientCapability Method_WorkspaceConfiguration = Bool
  ClientCapability Method_WorkspaceApplyEdit = Bool
  ClientCapability Method_WindowWorkDoneProgressCreate = Bool
  ClientCapability Method_WindowWorkDoneProgressCancel = Bool
  ClientCapability Method_WindowShowMessage = ShowMessageRequestClientCapabilities
  ClientCapability Method_WindowShowMessageRequest = ShowMessageRequestClientCapabilities
  ClientCapability Method_WindowShowDocument = ShowDocumentClientCapabilities
  -- All required by default, no capabilities
  ClientCapability Method_Progress = Void
  ClientCapability Method_WindowLogMessage = Void
  ClientCapability Method_ClientRegisterCapability = Void
  ClientCapability Method_ClientUnregisterCapability = Void
  ClientCapability Method_Initialize = Void
  ClientCapability Method_Initialized = Void
  ClientCapability Method_Shutdown = Void
  ClientCapability Method_Exit = Void
  ClientCapability Method_TelemetryEvent = Void
  ClientCapability Method_SetTrace = Void
  ClientCapability Method_LogTrace = Void
  ClientCapability Method_CancelRequest = Void
  ClientCapability (Method_CustomMethod s) = Void

-- See Note [Capability mappings]

-- | A lens which focusses on the (possibly absent) client capability associated with a method.
clientCapability :: forall m. SMethod m -> Lens' ClientCapabilities (Maybe (ClientCapability m))
clientCapability :: forall {f :: MessageDirection} {t :: MessageKind}
       (m :: Method f t).
SMethod m -> Lens' ClientCapabilities (Maybe (ClientCapability m))
clientCapability = \case
  SMethod m
SMethod_TextDocumentDeclaration -> (TextDocumentClientCapabilities
 -> f TextDocumentClientCapabilities)
-> ClientCapabilities -> f ClientCapabilities
Lens' ClientCapabilities TextDocumentClientCapabilities
td ((TextDocumentClientCapabilities
  -> f TextDocumentClientCapabilities)
 -> ClientCapabilities -> f ClientCapabilities)
-> ((Maybe DeclarationClientCapabilities
     -> f (Maybe DeclarationClientCapabilities))
    -> TextDocumentClientCapabilities
    -> f TextDocumentClientCapabilities)
-> (Maybe DeclarationClientCapabilities
    -> f (Maybe DeclarationClientCapabilities))
-> ClientCapabilities
-> f ClientCapabilities
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Maybe DeclarationClientCapabilities
 -> f (Maybe DeclarationClientCapabilities))
-> TextDocumentClientCapabilities
-> f TextDocumentClientCapabilities
forall s a. HasDeclaration s a => Lens' s a
Lens'
  TextDocumentClientCapabilities
  (Maybe DeclarationClientCapabilities)
L.declaration
  SMethod m
SMethod_TextDocumentImplementation -> (TextDocumentClientCapabilities
 -> f TextDocumentClientCapabilities)
-> ClientCapabilities -> f ClientCapabilities
Lens' ClientCapabilities TextDocumentClientCapabilities
td ((TextDocumentClientCapabilities
  -> f TextDocumentClientCapabilities)
 -> ClientCapabilities -> f ClientCapabilities)
-> ((Maybe ImplementationClientCapabilities
     -> f (Maybe ImplementationClientCapabilities))
    -> TextDocumentClientCapabilities
    -> f TextDocumentClientCapabilities)
-> (Maybe ImplementationClientCapabilities
    -> f (Maybe ImplementationClientCapabilities))
-> ClientCapabilities
-> f ClientCapabilities
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Maybe ImplementationClientCapabilities
 -> f (Maybe ImplementationClientCapabilities))
-> TextDocumentClientCapabilities
-> f TextDocumentClientCapabilities
forall s a. HasImplementation s a => Lens' s a
Lens'
  TextDocumentClientCapabilities
  (Maybe ImplementationClientCapabilities)
L.implementation
  SMethod m
SMethod_TextDocumentTypeDefinition -> (TextDocumentClientCapabilities
 -> f TextDocumentClientCapabilities)
-> ClientCapabilities -> f ClientCapabilities
Lens' ClientCapabilities TextDocumentClientCapabilities
td ((TextDocumentClientCapabilities
  -> f TextDocumentClientCapabilities)
 -> ClientCapabilities -> f ClientCapabilities)
-> ((Maybe TypeDefinitionClientCapabilities
     -> f (Maybe TypeDefinitionClientCapabilities))
    -> TextDocumentClientCapabilities
    -> f TextDocumentClientCapabilities)
-> (Maybe TypeDefinitionClientCapabilities
    -> f (Maybe TypeDefinitionClientCapabilities))
-> ClientCapabilities
-> f ClientCapabilities
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Maybe TypeDefinitionClientCapabilities
 -> f (Maybe TypeDefinitionClientCapabilities))
-> TextDocumentClientCapabilities
-> f TextDocumentClientCapabilities
forall s a. HasTypeDefinition s a => Lens' s a
Lens'
  TextDocumentClientCapabilities
  (Maybe TypeDefinitionClientCapabilities)
L.typeDefinition
  SMethod m
SMethod_TextDocumentHover -> (TextDocumentClientCapabilities
 -> f TextDocumentClientCapabilities)
-> ClientCapabilities -> f ClientCapabilities
Lens' ClientCapabilities TextDocumentClientCapabilities
td ((TextDocumentClientCapabilities
  -> f TextDocumentClientCapabilities)
 -> ClientCapabilities -> f ClientCapabilities)
-> ((Maybe HoverClientCapabilities
     -> f (Maybe HoverClientCapabilities))
    -> TextDocumentClientCapabilities
    -> f TextDocumentClientCapabilities)
-> (Maybe HoverClientCapabilities
    -> f (Maybe HoverClientCapabilities))
-> ClientCapabilities
-> f ClientCapabilities
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Maybe HoverClientCapabilities
 -> f (Maybe HoverClientCapabilities))
-> TextDocumentClientCapabilities
-> f TextDocumentClientCapabilities
forall s a. HasHover s a => Lens' s a
Lens'
  TextDocumentClientCapabilities (Maybe HoverClientCapabilities)
L.hover
  SMethod m
SMethod_TextDocumentSignatureHelp -> (TextDocumentClientCapabilities
 -> f TextDocumentClientCapabilities)
-> ClientCapabilities -> f ClientCapabilities
Lens' ClientCapabilities TextDocumentClientCapabilities
td ((TextDocumentClientCapabilities
  -> f TextDocumentClientCapabilities)
 -> ClientCapabilities -> f ClientCapabilities)
-> ((Maybe SignatureHelpClientCapabilities
     -> f (Maybe SignatureHelpClientCapabilities))
    -> TextDocumentClientCapabilities
    -> f TextDocumentClientCapabilities)
-> (Maybe SignatureHelpClientCapabilities
    -> f (Maybe SignatureHelpClientCapabilities))
-> ClientCapabilities
-> f ClientCapabilities
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Maybe SignatureHelpClientCapabilities
 -> f (Maybe SignatureHelpClientCapabilities))
-> TextDocumentClientCapabilities
-> f TextDocumentClientCapabilities
forall s a. HasSignatureHelp s a => Lens' s a
Lens'
  TextDocumentClientCapabilities
  (Maybe SignatureHelpClientCapabilities)
L.signatureHelp
  SMethod m
SMethod_TextDocumentDefinition -> (TextDocumentClientCapabilities
 -> f TextDocumentClientCapabilities)
-> ClientCapabilities -> f ClientCapabilities
Lens' ClientCapabilities TextDocumentClientCapabilities
td ((TextDocumentClientCapabilities
  -> f TextDocumentClientCapabilities)
 -> ClientCapabilities -> f ClientCapabilities)
-> ((Maybe DefinitionClientCapabilities
     -> f (Maybe DefinitionClientCapabilities))
    -> TextDocumentClientCapabilities
    -> f TextDocumentClientCapabilities)
-> (Maybe DefinitionClientCapabilities
    -> f (Maybe DefinitionClientCapabilities))
-> ClientCapabilities
-> f ClientCapabilities
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Maybe DefinitionClientCapabilities
 -> f (Maybe DefinitionClientCapabilities))
-> TextDocumentClientCapabilities
-> f TextDocumentClientCapabilities
forall s a. HasDefinition s a => Lens' s a
Lens'
  TextDocumentClientCapabilities (Maybe DefinitionClientCapabilities)
L.definition
  SMethod m
SMethod_TextDocumentReferences -> (TextDocumentClientCapabilities
 -> f TextDocumentClientCapabilities)
-> ClientCapabilities -> f ClientCapabilities
Lens' ClientCapabilities TextDocumentClientCapabilities
td ((TextDocumentClientCapabilities
  -> f TextDocumentClientCapabilities)
 -> ClientCapabilities -> f ClientCapabilities)
-> ((Maybe ReferenceClientCapabilities
     -> f (Maybe ReferenceClientCapabilities))
    -> TextDocumentClientCapabilities
    -> f TextDocumentClientCapabilities)
-> (Maybe ReferenceClientCapabilities
    -> f (Maybe ReferenceClientCapabilities))
-> ClientCapabilities
-> f ClientCapabilities
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Maybe ReferenceClientCapabilities
 -> f (Maybe ReferenceClientCapabilities))
-> TextDocumentClientCapabilities
-> f TextDocumentClientCapabilities
forall s a. HasReferences s a => Lens' s a
Lens'
  TextDocumentClientCapabilities (Maybe ReferenceClientCapabilities)
L.references
  SMethod m
SMethod_TextDocumentDocumentHighlight -> (TextDocumentClientCapabilities
 -> f TextDocumentClientCapabilities)
-> ClientCapabilities -> f ClientCapabilities
Lens' ClientCapabilities TextDocumentClientCapabilities
td ((TextDocumentClientCapabilities
  -> f TextDocumentClientCapabilities)
 -> ClientCapabilities -> f ClientCapabilities)
-> ((Maybe DocumentHighlightClientCapabilities
     -> f (Maybe DocumentHighlightClientCapabilities))
    -> TextDocumentClientCapabilities
    -> f TextDocumentClientCapabilities)
-> (Maybe DocumentHighlightClientCapabilities
    -> f (Maybe DocumentHighlightClientCapabilities))
-> ClientCapabilities
-> f ClientCapabilities
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Maybe DocumentHighlightClientCapabilities
 -> f (Maybe DocumentHighlightClientCapabilities))
-> TextDocumentClientCapabilities
-> f TextDocumentClientCapabilities
forall s a. HasDocumentHighlight s a => Lens' s a
Lens'
  TextDocumentClientCapabilities
  (Maybe DocumentHighlightClientCapabilities)
L.documentHighlight
  SMethod m
SMethod_TextDocumentDocumentSymbol -> (TextDocumentClientCapabilities
 -> f TextDocumentClientCapabilities)
-> ClientCapabilities -> f ClientCapabilities
Lens' ClientCapabilities TextDocumentClientCapabilities
td ((TextDocumentClientCapabilities
  -> f TextDocumentClientCapabilities)
 -> ClientCapabilities -> f ClientCapabilities)
-> ((Maybe DocumentSymbolClientCapabilities
     -> f (Maybe DocumentSymbolClientCapabilities))
    -> TextDocumentClientCapabilities
    -> f TextDocumentClientCapabilities)
-> (Maybe DocumentSymbolClientCapabilities
    -> f (Maybe DocumentSymbolClientCapabilities))
-> ClientCapabilities
-> f ClientCapabilities
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Maybe DocumentSymbolClientCapabilities
 -> f (Maybe DocumentSymbolClientCapabilities))
-> TextDocumentClientCapabilities
-> f TextDocumentClientCapabilities
forall s a. HasDocumentSymbol s a => Lens' s a
Lens'
  TextDocumentClientCapabilities
  (Maybe DocumentSymbolClientCapabilities)
L.documentSymbol
  SMethod m
SMethod_TextDocumentFoldingRange -> (TextDocumentClientCapabilities
 -> f TextDocumentClientCapabilities)
-> ClientCapabilities -> f ClientCapabilities
Lens' ClientCapabilities TextDocumentClientCapabilities
td ((TextDocumentClientCapabilities
  -> f TextDocumentClientCapabilities)
 -> ClientCapabilities -> f ClientCapabilities)
-> ((Maybe FoldingRangeClientCapabilities
     -> f (Maybe FoldingRangeClientCapabilities))
    -> TextDocumentClientCapabilities
    -> f TextDocumentClientCapabilities)
-> (Maybe FoldingRangeClientCapabilities
    -> f (Maybe FoldingRangeClientCapabilities))
-> ClientCapabilities
-> f ClientCapabilities
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Maybe FoldingRangeClientCapabilities
 -> f (Maybe FoldingRangeClientCapabilities))
-> TextDocumentClientCapabilities
-> f TextDocumentClientCapabilities
forall s a. HasFoldingRange s a => Lens' s a
Lens'
  TextDocumentClientCapabilities
  (Maybe FoldingRangeClientCapabilities)
L.foldingRange
  SMethod m
SMethod_TextDocumentSelectionRange -> (TextDocumentClientCapabilities
 -> f TextDocumentClientCapabilities)
-> ClientCapabilities -> f ClientCapabilities
Lens' ClientCapabilities TextDocumentClientCapabilities
td ((TextDocumentClientCapabilities
  -> f TextDocumentClientCapabilities)
 -> ClientCapabilities -> f ClientCapabilities)
-> ((Maybe SelectionRangeClientCapabilities
     -> f (Maybe SelectionRangeClientCapabilities))
    -> TextDocumentClientCapabilities
    -> f TextDocumentClientCapabilities)
-> (Maybe SelectionRangeClientCapabilities
    -> f (Maybe SelectionRangeClientCapabilities))
-> ClientCapabilities
-> f ClientCapabilities
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Maybe SelectionRangeClientCapabilities
 -> f (Maybe SelectionRangeClientCapabilities))
-> TextDocumentClientCapabilities
-> f TextDocumentClientCapabilities
forall s a. HasSelectionRange s a => Lens' s a
Lens'
  TextDocumentClientCapabilities
  (Maybe SelectionRangeClientCapabilities)
L.selectionRange
  SMethod m
SMethod_WorkspaceExecuteCommand -> (WorkspaceClientCapabilities -> f WorkspaceClientCapabilities)
-> ClientCapabilities -> f ClientCapabilities
Lens' ClientCapabilities WorkspaceClientCapabilities
ws ((WorkspaceClientCapabilities -> f WorkspaceClientCapabilities)
 -> ClientCapabilities -> f ClientCapabilities)
-> ((Maybe ExecuteCommandClientCapabilities
     -> f (Maybe ExecuteCommandClientCapabilities))
    -> WorkspaceClientCapabilities -> f WorkspaceClientCapabilities)
-> (Maybe ExecuteCommandClientCapabilities
    -> f (Maybe ExecuteCommandClientCapabilities))
-> ClientCapabilities
-> f ClientCapabilities
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Maybe ExecuteCommandClientCapabilities
 -> f (Maybe ExecuteCommandClientCapabilities))
-> WorkspaceClientCapabilities -> f WorkspaceClientCapabilities
forall s a. HasExecuteCommand s a => Lens' s a
Lens'
  WorkspaceClientCapabilities
  (Maybe ExecuteCommandClientCapabilities)
L.executeCommand
  SMethod m
SMethod_TextDocumentMoniker -> (TextDocumentClientCapabilities
 -> f TextDocumentClientCapabilities)
-> ClientCapabilities -> f ClientCapabilities
Lens' ClientCapabilities TextDocumentClientCapabilities
td ((TextDocumentClientCapabilities
  -> f TextDocumentClientCapabilities)
 -> ClientCapabilities -> f ClientCapabilities)
-> ((Maybe MonikerClientCapabilities
     -> f (Maybe MonikerClientCapabilities))
    -> TextDocumentClientCapabilities
    -> f TextDocumentClientCapabilities)
-> (Maybe MonikerClientCapabilities
    -> f (Maybe MonikerClientCapabilities))
-> ClientCapabilities
-> f ClientCapabilities
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Maybe MonikerClientCapabilities
 -> f (Maybe MonikerClientCapabilities))
-> TextDocumentClientCapabilities
-> f TextDocumentClientCapabilities
forall s a. HasMoniker s a => Lens' s a
Lens'
  TextDocumentClientCapabilities (Maybe MonikerClientCapabilities)
L.moniker
  SMethod m
SMethod_TextDocumentCompletion -> (TextDocumentClientCapabilities
 -> f TextDocumentClientCapabilities)
-> ClientCapabilities -> f ClientCapabilities
Lens' ClientCapabilities TextDocumentClientCapabilities
td ((TextDocumentClientCapabilities
  -> f TextDocumentClientCapabilities)
 -> ClientCapabilities -> f ClientCapabilities)
-> ((Maybe CompletionClientCapabilities
     -> f (Maybe CompletionClientCapabilities))
    -> TextDocumentClientCapabilities
    -> f TextDocumentClientCapabilities)
-> (Maybe CompletionClientCapabilities
    -> f (Maybe CompletionClientCapabilities))
-> ClientCapabilities
-> f ClientCapabilities
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Maybe CompletionClientCapabilities
 -> f (Maybe CompletionClientCapabilities))
-> TextDocumentClientCapabilities
-> f TextDocumentClientCapabilities
forall s a. HasCompletion s a => Lens' s a
Lens'
  TextDocumentClientCapabilities (Maybe CompletionClientCapabilities)
L.completion
  SMethod m
SMethod_CompletionItemResolve -> (TextDocumentClientCapabilities
 -> f TextDocumentClientCapabilities)
-> ClientCapabilities -> f ClientCapabilities
Lens' ClientCapabilities TextDocumentClientCapabilities
td ((TextDocumentClientCapabilities
  -> f TextDocumentClientCapabilities)
 -> ClientCapabilities -> f ClientCapabilities)
-> ((Maybe CompletionClientCapabilities
     -> f (Maybe CompletionClientCapabilities))
    -> TextDocumentClientCapabilities
    -> f TextDocumentClientCapabilities)
-> (Maybe CompletionClientCapabilities
    -> f (Maybe CompletionClientCapabilities))
-> ClientCapabilities
-> f ClientCapabilities
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Maybe CompletionClientCapabilities
 -> f (Maybe CompletionClientCapabilities))
-> TextDocumentClientCapabilities
-> f TextDocumentClientCapabilities
forall s a. HasCompletion s a => Lens' s a
Lens'
  TextDocumentClientCapabilities (Maybe CompletionClientCapabilities)
L.completion
  SMethod m
SMethod_TextDocumentCodeAction -> (TextDocumentClientCapabilities
 -> f TextDocumentClientCapabilities)
-> ClientCapabilities -> f ClientCapabilities
Lens' ClientCapabilities TextDocumentClientCapabilities
td ((TextDocumentClientCapabilities
  -> f TextDocumentClientCapabilities)
 -> ClientCapabilities -> f ClientCapabilities)
-> ((Maybe CodeActionClientCapabilities
     -> f (Maybe CodeActionClientCapabilities))
    -> TextDocumentClientCapabilities
    -> f TextDocumentClientCapabilities)
-> (Maybe CodeActionClientCapabilities
    -> f (Maybe CodeActionClientCapabilities))
-> ClientCapabilities
-> f ClientCapabilities
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Maybe CodeActionClientCapabilities
 -> f (Maybe CodeActionClientCapabilities))
-> TextDocumentClientCapabilities
-> f TextDocumentClientCapabilities
forall s a. HasCodeAction s a => Lens' s a
Lens'
  TextDocumentClientCapabilities (Maybe CodeActionClientCapabilities)
L.codeAction
  SMethod m
SMethod_CodeActionResolve -> (TextDocumentClientCapabilities
 -> f TextDocumentClientCapabilities)
-> ClientCapabilities -> f ClientCapabilities
Lens' ClientCapabilities TextDocumentClientCapabilities
td ((TextDocumentClientCapabilities
  -> f TextDocumentClientCapabilities)
 -> ClientCapabilities -> f ClientCapabilities)
-> ((Maybe CodeActionClientCapabilities
     -> f (Maybe CodeActionClientCapabilities))
    -> TextDocumentClientCapabilities
    -> f TextDocumentClientCapabilities)
-> (Maybe CodeActionClientCapabilities
    -> f (Maybe CodeActionClientCapabilities))
-> ClientCapabilities
-> f ClientCapabilities
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Maybe CodeActionClientCapabilities
 -> f (Maybe CodeActionClientCapabilities))
-> TextDocumentClientCapabilities
-> f TextDocumentClientCapabilities
forall s a. HasCodeAction s a => Lens' s a
Lens'
  TextDocumentClientCapabilities (Maybe CodeActionClientCapabilities)
L.codeAction
  SMethod m
SMethod_TextDocumentCodeLens -> (TextDocumentClientCapabilities
 -> f TextDocumentClientCapabilities)
-> ClientCapabilities -> f ClientCapabilities
Lens' ClientCapabilities TextDocumentClientCapabilities
td ((TextDocumentClientCapabilities
  -> f TextDocumentClientCapabilities)
 -> ClientCapabilities -> f ClientCapabilities)
-> ((Maybe CodeLensClientCapabilities
     -> f (Maybe CodeLensClientCapabilities))
    -> TextDocumentClientCapabilities
    -> f TextDocumentClientCapabilities)
-> (Maybe CodeLensClientCapabilities
    -> f (Maybe CodeLensClientCapabilities))
-> ClientCapabilities
-> f ClientCapabilities
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Maybe CodeLensClientCapabilities
 -> f (Maybe CodeLensClientCapabilities))
-> TextDocumentClientCapabilities
-> f TextDocumentClientCapabilities
forall s a. HasCodeLens s a => Lens' s a
Lens'
  TextDocumentClientCapabilities (Maybe CodeLensClientCapabilities)
L.codeLens
  SMethod m
SMethod_CodeLensResolve -> (TextDocumentClientCapabilities
 -> f TextDocumentClientCapabilities)
-> ClientCapabilities -> f ClientCapabilities
Lens' ClientCapabilities TextDocumentClientCapabilities
td ((TextDocumentClientCapabilities
  -> f TextDocumentClientCapabilities)
 -> ClientCapabilities -> f ClientCapabilities)
-> ((Maybe CodeLensClientCapabilities
     -> f (Maybe CodeLensClientCapabilities))
    -> TextDocumentClientCapabilities
    -> f TextDocumentClientCapabilities)
-> (Maybe CodeLensClientCapabilities
    -> f (Maybe CodeLensClientCapabilities))
-> ClientCapabilities
-> f ClientCapabilities
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Maybe CodeLensClientCapabilities
 -> f (Maybe CodeLensClientCapabilities))
-> TextDocumentClientCapabilities
-> f TextDocumentClientCapabilities
forall s a. HasCodeLens s a => Lens' s a
Lens'
  TextDocumentClientCapabilities (Maybe CodeLensClientCapabilities)
L.codeLens
  SMethod m
SMethod_WorkspaceCodeLensRefresh -> (WorkspaceClientCapabilities -> f WorkspaceClientCapabilities)
-> ClientCapabilities -> f ClientCapabilities
Lens' ClientCapabilities WorkspaceClientCapabilities
ws ((WorkspaceClientCapabilities -> f WorkspaceClientCapabilities)
 -> ClientCapabilities -> f ClientCapabilities)
-> ((Maybe CodeLensWorkspaceClientCapabilities
     -> f (Maybe CodeLensWorkspaceClientCapabilities))
    -> WorkspaceClientCapabilities -> f WorkspaceClientCapabilities)
-> (Maybe CodeLensWorkspaceClientCapabilities
    -> f (Maybe CodeLensWorkspaceClientCapabilities))
-> ClientCapabilities
-> f ClientCapabilities
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Maybe CodeLensWorkspaceClientCapabilities
 -> f (Maybe CodeLensWorkspaceClientCapabilities))
-> WorkspaceClientCapabilities -> f WorkspaceClientCapabilities
forall s a. HasCodeLens s a => Lens' s a
Lens'
  WorkspaceClientCapabilities
  (Maybe CodeLensWorkspaceClientCapabilities)
L.codeLens
  SMethod m
SMethod_TextDocumentDocumentLink -> (TextDocumentClientCapabilities
 -> f TextDocumentClientCapabilities)
-> ClientCapabilities -> f ClientCapabilities
Lens' ClientCapabilities TextDocumentClientCapabilities
td ((TextDocumentClientCapabilities
  -> f TextDocumentClientCapabilities)
 -> ClientCapabilities -> f ClientCapabilities)
-> ((Maybe DocumentLinkClientCapabilities
     -> f (Maybe DocumentLinkClientCapabilities))
    -> TextDocumentClientCapabilities
    -> f TextDocumentClientCapabilities)
-> (Maybe DocumentLinkClientCapabilities
    -> f (Maybe DocumentLinkClientCapabilities))
-> ClientCapabilities
-> f ClientCapabilities
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Maybe DocumentLinkClientCapabilities
 -> f (Maybe DocumentLinkClientCapabilities))
-> TextDocumentClientCapabilities
-> f TextDocumentClientCapabilities
forall s a. HasDocumentLink s a => Lens' s a
Lens'
  TextDocumentClientCapabilities
  (Maybe DocumentLinkClientCapabilities)
L.documentLink
  SMethod m
SMethod_DocumentLinkResolve -> (TextDocumentClientCapabilities
 -> f TextDocumentClientCapabilities)
-> ClientCapabilities -> f ClientCapabilities
Lens' ClientCapabilities TextDocumentClientCapabilities
td ((TextDocumentClientCapabilities
  -> f TextDocumentClientCapabilities)
 -> ClientCapabilities -> f ClientCapabilities)
-> ((Maybe DocumentLinkClientCapabilities
     -> f (Maybe DocumentLinkClientCapabilities))
    -> TextDocumentClientCapabilities
    -> f TextDocumentClientCapabilities)
-> (Maybe DocumentLinkClientCapabilities
    -> f (Maybe DocumentLinkClientCapabilities))
-> ClientCapabilities
-> f ClientCapabilities
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Maybe DocumentLinkClientCapabilities
 -> f (Maybe DocumentLinkClientCapabilities))
-> TextDocumentClientCapabilities
-> f TextDocumentClientCapabilities
forall s a. HasDocumentLink s a => Lens' s a
Lens'
  TextDocumentClientCapabilities
  (Maybe DocumentLinkClientCapabilities)
L.documentLink
  SMethod m
SMethod_TextDocumentDocumentColor -> (TextDocumentClientCapabilities
 -> f TextDocumentClientCapabilities)
-> ClientCapabilities -> f ClientCapabilities
Lens' ClientCapabilities TextDocumentClientCapabilities
td ((TextDocumentClientCapabilities
  -> f TextDocumentClientCapabilities)
 -> ClientCapabilities -> f ClientCapabilities)
-> ((Maybe DocumentColorClientCapabilities
     -> f (Maybe DocumentColorClientCapabilities))
    -> TextDocumentClientCapabilities
    -> f TextDocumentClientCapabilities)
-> (Maybe DocumentColorClientCapabilities
    -> f (Maybe DocumentColorClientCapabilities))
-> ClientCapabilities
-> f ClientCapabilities
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Maybe DocumentColorClientCapabilities
 -> f (Maybe DocumentColorClientCapabilities))
-> TextDocumentClientCapabilities
-> f TextDocumentClientCapabilities
forall s a. HasColorProvider s a => Lens' s a
Lens'
  TextDocumentClientCapabilities
  (Maybe DocumentColorClientCapabilities)
L.colorProvider
  SMethod m
SMethod_TextDocumentColorPresentation -> (TextDocumentClientCapabilities
 -> f TextDocumentClientCapabilities)
-> ClientCapabilities -> f ClientCapabilities
Lens' ClientCapabilities TextDocumentClientCapabilities
td ((TextDocumentClientCapabilities
  -> f TextDocumentClientCapabilities)
 -> ClientCapabilities -> f ClientCapabilities)
-> ((Maybe DocumentColorClientCapabilities
     -> f (Maybe DocumentColorClientCapabilities))
    -> TextDocumentClientCapabilities
    -> f TextDocumentClientCapabilities)
-> (Maybe DocumentColorClientCapabilities
    -> f (Maybe DocumentColorClientCapabilities))
-> ClientCapabilities
-> f ClientCapabilities
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Maybe DocumentColorClientCapabilities
 -> f (Maybe DocumentColorClientCapabilities))
-> TextDocumentClientCapabilities
-> f TextDocumentClientCapabilities
forall s a. HasColorProvider s a => Lens' s a
Lens'
  TextDocumentClientCapabilities
  (Maybe DocumentColorClientCapabilities)
L.colorProvider
  SMethod m
SMethod_WorkspaceSymbol -> (WorkspaceClientCapabilities -> f WorkspaceClientCapabilities)
-> ClientCapabilities -> f ClientCapabilities
Lens' ClientCapabilities WorkspaceClientCapabilities
ws ((WorkspaceClientCapabilities -> f WorkspaceClientCapabilities)
 -> ClientCapabilities -> f ClientCapabilities)
-> ((Maybe WorkspaceSymbolClientCapabilities
     -> f (Maybe WorkspaceSymbolClientCapabilities))
    -> WorkspaceClientCapabilities -> f WorkspaceClientCapabilities)
-> (Maybe WorkspaceSymbolClientCapabilities
    -> f (Maybe WorkspaceSymbolClientCapabilities))
-> ClientCapabilities
-> f ClientCapabilities
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Maybe WorkspaceSymbolClientCapabilities
 -> f (Maybe WorkspaceSymbolClientCapabilities))
-> WorkspaceClientCapabilities -> f WorkspaceClientCapabilities
forall s a. HasSymbol s a => Lens' s a
Lens'
  WorkspaceClientCapabilities
  (Maybe WorkspaceSymbolClientCapabilities)
L.symbol
  SMethod m
SMethod_WorkspaceSymbolResolve -> (WorkspaceClientCapabilities -> f WorkspaceClientCapabilities)
-> ClientCapabilities -> f ClientCapabilities
Lens' ClientCapabilities WorkspaceClientCapabilities
ws ((WorkspaceClientCapabilities -> f WorkspaceClientCapabilities)
 -> ClientCapabilities -> f ClientCapabilities)
-> ((Maybe WorkspaceSymbolClientCapabilities
     -> f (Maybe WorkspaceSymbolClientCapabilities))
    -> WorkspaceClientCapabilities -> f WorkspaceClientCapabilities)
-> (Maybe WorkspaceSymbolClientCapabilities
    -> f (Maybe WorkspaceSymbolClientCapabilities))
-> ClientCapabilities
-> f ClientCapabilities
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Maybe WorkspaceSymbolClientCapabilities
 -> f (Maybe WorkspaceSymbolClientCapabilities))
-> WorkspaceClientCapabilities -> f WorkspaceClientCapabilities
forall s a. HasSymbol s a => Lens' s a
Lens'
  WorkspaceClientCapabilities
  (Maybe WorkspaceSymbolClientCapabilities)
L.symbol
  SMethod m
SMethod_TextDocumentFormatting -> (TextDocumentClientCapabilities
 -> f TextDocumentClientCapabilities)
-> ClientCapabilities -> f ClientCapabilities
Lens' ClientCapabilities TextDocumentClientCapabilities
td ((TextDocumentClientCapabilities
  -> f TextDocumentClientCapabilities)
 -> ClientCapabilities -> f ClientCapabilities)
-> ((Maybe DocumentFormattingClientCapabilities
     -> f (Maybe DocumentFormattingClientCapabilities))
    -> TextDocumentClientCapabilities
    -> f TextDocumentClientCapabilities)
-> (Maybe DocumentFormattingClientCapabilities
    -> f (Maybe DocumentFormattingClientCapabilities))
-> ClientCapabilities
-> f ClientCapabilities
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Maybe DocumentFormattingClientCapabilities
 -> f (Maybe DocumentFormattingClientCapabilities))
-> TextDocumentClientCapabilities
-> f TextDocumentClientCapabilities
forall s a. HasFormatting s a => Lens' s a
Lens'
  TextDocumentClientCapabilities
  (Maybe DocumentFormattingClientCapabilities)
L.formatting
  SMethod m
SMethod_TextDocumentRangeFormatting -> (TextDocumentClientCapabilities
 -> f TextDocumentClientCapabilities)
-> ClientCapabilities -> f ClientCapabilities
Lens' ClientCapabilities TextDocumentClientCapabilities
td ((TextDocumentClientCapabilities
  -> f TextDocumentClientCapabilities)
 -> ClientCapabilities -> f ClientCapabilities)
-> ((Maybe DocumentRangeFormattingClientCapabilities
     -> f (Maybe DocumentRangeFormattingClientCapabilities))
    -> TextDocumentClientCapabilities
    -> f TextDocumentClientCapabilities)
-> (Maybe DocumentRangeFormattingClientCapabilities
    -> f (Maybe DocumentRangeFormattingClientCapabilities))
-> ClientCapabilities
-> f ClientCapabilities
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Maybe DocumentRangeFormattingClientCapabilities
 -> f (Maybe DocumentRangeFormattingClientCapabilities))
-> TextDocumentClientCapabilities
-> f TextDocumentClientCapabilities
forall s a. HasRangeFormatting s a => Lens' s a
Lens'
  TextDocumentClientCapabilities
  (Maybe DocumentRangeFormattingClientCapabilities)
L.rangeFormatting
  SMethod m
SMethod_TextDocumentOnTypeFormatting -> (TextDocumentClientCapabilities
 -> f TextDocumentClientCapabilities)
-> ClientCapabilities -> f ClientCapabilities
Lens' ClientCapabilities TextDocumentClientCapabilities
td ((TextDocumentClientCapabilities
  -> f TextDocumentClientCapabilities)
 -> ClientCapabilities -> f ClientCapabilities)
-> ((Maybe DocumentOnTypeFormattingClientCapabilities
     -> f (Maybe DocumentOnTypeFormattingClientCapabilities))
    -> TextDocumentClientCapabilities
    -> f TextDocumentClientCapabilities)
-> (Maybe DocumentOnTypeFormattingClientCapabilities
    -> f (Maybe DocumentOnTypeFormattingClientCapabilities))
-> ClientCapabilities
-> f ClientCapabilities
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Maybe DocumentOnTypeFormattingClientCapabilities
 -> f (Maybe DocumentOnTypeFormattingClientCapabilities))
-> TextDocumentClientCapabilities
-> f TextDocumentClientCapabilities
forall s a. HasOnTypeFormatting s a => Lens' s a
Lens'
  TextDocumentClientCapabilities
  (Maybe DocumentOnTypeFormattingClientCapabilities)
L.onTypeFormatting
  SMethod m
SMethod_TextDocumentRename -> (TextDocumentClientCapabilities
 -> f TextDocumentClientCapabilities)
-> ClientCapabilities -> f ClientCapabilities
Lens' ClientCapabilities TextDocumentClientCapabilities
td ((TextDocumentClientCapabilities
  -> f TextDocumentClientCapabilities)
 -> ClientCapabilities -> f ClientCapabilities)
-> ((Maybe RenameClientCapabilities
     -> f (Maybe RenameClientCapabilities))
    -> TextDocumentClientCapabilities
    -> f TextDocumentClientCapabilities)
-> (Maybe RenameClientCapabilities
    -> f (Maybe RenameClientCapabilities))
-> ClientCapabilities
-> f ClientCapabilities
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Maybe RenameClientCapabilities
 -> f (Maybe RenameClientCapabilities))
-> TextDocumentClientCapabilities
-> f TextDocumentClientCapabilities
forall s a. HasRename s a => Lens' s a
Lens'
  TextDocumentClientCapabilities (Maybe RenameClientCapabilities)
L.rename
  SMethod m
SMethod_TextDocumentPrepareRename -> (TextDocumentClientCapabilities
 -> f TextDocumentClientCapabilities)
-> ClientCapabilities -> f ClientCapabilities
Lens' ClientCapabilities TextDocumentClientCapabilities
td ((TextDocumentClientCapabilities
  -> f TextDocumentClientCapabilities)
 -> ClientCapabilities -> f ClientCapabilities)
-> ((Maybe RenameClientCapabilities
     -> f (Maybe RenameClientCapabilities))
    -> TextDocumentClientCapabilities
    -> f TextDocumentClientCapabilities)
-> (Maybe RenameClientCapabilities
    -> f (Maybe RenameClientCapabilities))
-> ClientCapabilities
-> f ClientCapabilities
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Maybe RenameClientCapabilities
 -> f (Maybe RenameClientCapabilities))
-> TextDocumentClientCapabilities
-> f TextDocumentClientCapabilities
forall s a. HasRename s a => Lens' s a
Lens'
  TextDocumentClientCapabilities (Maybe RenameClientCapabilities)
L.rename
  SMethod m
SMethod_TextDocumentPrepareCallHierarchy -> (TextDocumentClientCapabilities
 -> f TextDocumentClientCapabilities)
-> ClientCapabilities -> f ClientCapabilities
Lens' ClientCapabilities TextDocumentClientCapabilities
td ((TextDocumentClientCapabilities
  -> f TextDocumentClientCapabilities)
 -> ClientCapabilities -> f ClientCapabilities)
-> ((Maybe CallHierarchyClientCapabilities
     -> f (Maybe CallHierarchyClientCapabilities))
    -> TextDocumentClientCapabilities
    -> f TextDocumentClientCapabilities)
-> (Maybe CallHierarchyClientCapabilities
    -> f (Maybe CallHierarchyClientCapabilities))
-> ClientCapabilities
-> f ClientCapabilities
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Maybe CallHierarchyClientCapabilities
 -> f (Maybe CallHierarchyClientCapabilities))
-> TextDocumentClientCapabilities
-> f TextDocumentClientCapabilities
forall s a. HasCallHierarchy s a => Lens' s a
Lens'
  TextDocumentClientCapabilities
  (Maybe CallHierarchyClientCapabilities)
L.callHierarchy
  SMethod m
SMethod_CallHierarchyIncomingCalls -> (TextDocumentClientCapabilities
 -> f TextDocumentClientCapabilities)
-> ClientCapabilities -> f ClientCapabilities
Lens' ClientCapabilities TextDocumentClientCapabilities
td ((TextDocumentClientCapabilities
  -> f TextDocumentClientCapabilities)
 -> ClientCapabilities -> f ClientCapabilities)
-> ((Maybe CallHierarchyClientCapabilities
     -> f (Maybe CallHierarchyClientCapabilities))
    -> TextDocumentClientCapabilities
    -> f TextDocumentClientCapabilities)
-> (Maybe CallHierarchyClientCapabilities
    -> f (Maybe CallHierarchyClientCapabilities))
-> ClientCapabilities
-> f ClientCapabilities
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Maybe CallHierarchyClientCapabilities
 -> f (Maybe CallHierarchyClientCapabilities))
-> TextDocumentClientCapabilities
-> f TextDocumentClientCapabilities
forall s a. HasCallHierarchy s a => Lens' s a
Lens'
  TextDocumentClientCapabilities
  (Maybe CallHierarchyClientCapabilities)
L.callHierarchy
  SMethod m
SMethod_CallHierarchyOutgoingCalls -> (TextDocumentClientCapabilities
 -> f TextDocumentClientCapabilities)
-> ClientCapabilities -> f ClientCapabilities
Lens' ClientCapabilities TextDocumentClientCapabilities
td ((TextDocumentClientCapabilities
  -> f TextDocumentClientCapabilities)
 -> ClientCapabilities -> f ClientCapabilities)
-> ((Maybe CallHierarchyClientCapabilities
     -> f (Maybe CallHierarchyClientCapabilities))
    -> TextDocumentClientCapabilities
    -> f TextDocumentClientCapabilities)
-> (Maybe CallHierarchyClientCapabilities
    -> f (Maybe CallHierarchyClientCapabilities))
-> ClientCapabilities
-> f ClientCapabilities
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Maybe CallHierarchyClientCapabilities
 -> f (Maybe CallHierarchyClientCapabilities))
-> TextDocumentClientCapabilities
-> f TextDocumentClientCapabilities
forall s a. HasCallHierarchy s a => Lens' s a
Lens'
  TextDocumentClientCapabilities
  (Maybe CallHierarchyClientCapabilities)
L.callHierarchy
  SMethod m
SMethod_TextDocumentLinkedEditingRange -> (TextDocumentClientCapabilities
 -> f TextDocumentClientCapabilities)
-> ClientCapabilities -> f ClientCapabilities
Lens' ClientCapabilities TextDocumentClientCapabilities
td ((TextDocumentClientCapabilities
  -> f TextDocumentClientCapabilities)
 -> ClientCapabilities -> f ClientCapabilities)
-> ((Maybe LinkedEditingRangeClientCapabilities
     -> f (Maybe LinkedEditingRangeClientCapabilities))
    -> TextDocumentClientCapabilities
    -> f TextDocumentClientCapabilities)
-> (Maybe LinkedEditingRangeClientCapabilities
    -> f (Maybe LinkedEditingRangeClientCapabilities))
-> ClientCapabilities
-> f ClientCapabilities
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Maybe LinkedEditingRangeClientCapabilities
 -> f (Maybe LinkedEditingRangeClientCapabilities))
-> TextDocumentClientCapabilities
-> f TextDocumentClientCapabilities
forall s a. HasLinkedEditingRange s a => Lens' s a
Lens'
  TextDocumentClientCapabilities
  (Maybe LinkedEditingRangeClientCapabilities)
L.linkedEditingRange
  SMethod m
SMethod_TextDocumentSemanticTokensFull -> (TextDocumentClientCapabilities
 -> f TextDocumentClientCapabilities)
-> ClientCapabilities -> f ClientCapabilities
Lens' ClientCapabilities TextDocumentClientCapabilities
td ((TextDocumentClientCapabilities
  -> f TextDocumentClientCapabilities)
 -> ClientCapabilities -> f ClientCapabilities)
-> ((Maybe SemanticTokensClientCapabilities
     -> f (Maybe SemanticTokensClientCapabilities))
    -> TextDocumentClientCapabilities
    -> f TextDocumentClientCapabilities)
-> (Maybe SemanticTokensClientCapabilities
    -> f (Maybe SemanticTokensClientCapabilities))
-> ClientCapabilities
-> f ClientCapabilities
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Maybe SemanticTokensClientCapabilities
 -> f (Maybe SemanticTokensClientCapabilities))
-> TextDocumentClientCapabilities
-> f TextDocumentClientCapabilities
forall s a. HasSemanticTokens s a => Lens' s a
Lens'
  TextDocumentClientCapabilities
  (Maybe SemanticTokensClientCapabilities)
L.semanticTokens
  SMethod m
SMethod_TextDocumentSemanticTokensFullDelta -> (TextDocumentClientCapabilities
 -> f TextDocumentClientCapabilities)
-> ClientCapabilities -> f ClientCapabilities
Lens' ClientCapabilities TextDocumentClientCapabilities
td ((TextDocumentClientCapabilities
  -> f TextDocumentClientCapabilities)
 -> ClientCapabilities -> f ClientCapabilities)
-> ((Maybe SemanticTokensClientCapabilities
     -> f (Maybe SemanticTokensClientCapabilities))
    -> TextDocumentClientCapabilities
    -> f TextDocumentClientCapabilities)
-> (Maybe SemanticTokensClientCapabilities
    -> f (Maybe SemanticTokensClientCapabilities))
-> ClientCapabilities
-> f ClientCapabilities
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Maybe SemanticTokensClientCapabilities
 -> f (Maybe SemanticTokensClientCapabilities))
-> TextDocumentClientCapabilities
-> f TextDocumentClientCapabilities
forall s a. HasSemanticTokens s a => Lens' s a
Lens'
  TextDocumentClientCapabilities
  (Maybe SemanticTokensClientCapabilities)
L.semanticTokens
  SMethod m
SMethod_TextDocumentSemanticTokensRange -> (TextDocumentClientCapabilities
 -> f TextDocumentClientCapabilities)
-> ClientCapabilities -> f ClientCapabilities
Lens' ClientCapabilities TextDocumentClientCapabilities
td ((TextDocumentClientCapabilities
  -> f TextDocumentClientCapabilities)
 -> ClientCapabilities -> f ClientCapabilities)
-> ((Maybe SemanticTokensClientCapabilities
     -> f (Maybe SemanticTokensClientCapabilities))
    -> TextDocumentClientCapabilities
    -> f TextDocumentClientCapabilities)
-> (Maybe SemanticTokensClientCapabilities
    -> f (Maybe SemanticTokensClientCapabilities))
-> ClientCapabilities
-> f ClientCapabilities
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Maybe SemanticTokensClientCapabilities
 -> f (Maybe SemanticTokensClientCapabilities))
-> TextDocumentClientCapabilities
-> f TextDocumentClientCapabilities
forall s a. HasSemanticTokens s a => Lens' s a
Lens'
  TextDocumentClientCapabilities
  (Maybe SemanticTokensClientCapabilities)
L.semanticTokens
  SMethod m
SMethod_WorkspaceSemanticTokensRefresh -> (WorkspaceClientCapabilities -> f WorkspaceClientCapabilities)
-> ClientCapabilities -> f ClientCapabilities
Lens' ClientCapabilities WorkspaceClientCapabilities
ws ((WorkspaceClientCapabilities -> f WorkspaceClientCapabilities)
 -> ClientCapabilities -> f ClientCapabilities)
-> ((Maybe SemanticTokensWorkspaceClientCapabilities
     -> f (Maybe SemanticTokensWorkspaceClientCapabilities))
    -> WorkspaceClientCapabilities -> f WorkspaceClientCapabilities)
-> (Maybe SemanticTokensWorkspaceClientCapabilities
    -> f (Maybe SemanticTokensWorkspaceClientCapabilities))
-> ClientCapabilities
-> f ClientCapabilities
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Maybe SemanticTokensWorkspaceClientCapabilities
 -> f (Maybe SemanticTokensWorkspaceClientCapabilities))
-> WorkspaceClientCapabilities -> f WorkspaceClientCapabilities
forall s a. HasSemanticTokens s a => Lens' s a
Lens'
  WorkspaceClientCapabilities
  (Maybe SemanticTokensWorkspaceClientCapabilities)
L.semanticTokens
  SMethod m
SMethod_TextDocumentPrepareTypeHierarchy -> (TextDocumentClientCapabilities
 -> f TextDocumentClientCapabilities)
-> ClientCapabilities -> f ClientCapabilities
Lens' ClientCapabilities TextDocumentClientCapabilities
td ((TextDocumentClientCapabilities
  -> f TextDocumentClientCapabilities)
 -> ClientCapabilities -> f ClientCapabilities)
-> ((Maybe TypeHierarchyClientCapabilities
     -> f (Maybe TypeHierarchyClientCapabilities))
    -> TextDocumentClientCapabilities
    -> f TextDocumentClientCapabilities)
-> (Maybe TypeHierarchyClientCapabilities
    -> f (Maybe TypeHierarchyClientCapabilities))
-> ClientCapabilities
-> f ClientCapabilities
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Maybe TypeHierarchyClientCapabilities
 -> f (Maybe TypeHierarchyClientCapabilities))
-> TextDocumentClientCapabilities
-> f TextDocumentClientCapabilities
forall s a. HasTypeHierarchy s a => Lens' s a
Lens'
  TextDocumentClientCapabilities
  (Maybe TypeHierarchyClientCapabilities)
L.typeHierarchy
  SMethod m
SMethod_TypeHierarchySubtypes -> (TextDocumentClientCapabilities
 -> f TextDocumentClientCapabilities)
-> ClientCapabilities -> f ClientCapabilities
Lens' ClientCapabilities TextDocumentClientCapabilities
td ((TextDocumentClientCapabilities
  -> f TextDocumentClientCapabilities)
 -> ClientCapabilities -> f ClientCapabilities)
-> ((Maybe TypeHierarchyClientCapabilities
     -> f (Maybe TypeHierarchyClientCapabilities))
    -> TextDocumentClientCapabilities
    -> f TextDocumentClientCapabilities)
-> (Maybe TypeHierarchyClientCapabilities
    -> f (Maybe TypeHierarchyClientCapabilities))
-> ClientCapabilities
-> f ClientCapabilities
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Maybe TypeHierarchyClientCapabilities
 -> f (Maybe TypeHierarchyClientCapabilities))
-> TextDocumentClientCapabilities
-> f TextDocumentClientCapabilities
forall s a. HasTypeHierarchy s a => Lens' s a
Lens'
  TextDocumentClientCapabilities
  (Maybe TypeHierarchyClientCapabilities)
L.typeHierarchy
  SMethod m
SMethod_TypeHierarchySupertypes -> (TextDocumentClientCapabilities
 -> f TextDocumentClientCapabilities)
-> ClientCapabilities -> f ClientCapabilities
Lens' ClientCapabilities TextDocumentClientCapabilities
td ((TextDocumentClientCapabilities
  -> f TextDocumentClientCapabilities)
 -> ClientCapabilities -> f ClientCapabilities)
-> ((Maybe TypeHierarchyClientCapabilities
     -> f (Maybe TypeHierarchyClientCapabilities))
    -> TextDocumentClientCapabilities
    -> f TextDocumentClientCapabilities)
-> (Maybe TypeHierarchyClientCapabilities
    -> f (Maybe TypeHierarchyClientCapabilities))
-> ClientCapabilities
-> f ClientCapabilities
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Maybe TypeHierarchyClientCapabilities
 -> f (Maybe TypeHierarchyClientCapabilities))
-> TextDocumentClientCapabilities
-> f TextDocumentClientCapabilities
forall s a. HasTypeHierarchy s a => Lens' s a
Lens'
  TextDocumentClientCapabilities
  (Maybe TypeHierarchyClientCapabilities)
L.typeHierarchy
  SMethod m
SMethod_TextDocumentInlineValue -> (TextDocumentClientCapabilities
 -> f TextDocumentClientCapabilities)
-> ClientCapabilities -> f ClientCapabilities
Lens' ClientCapabilities TextDocumentClientCapabilities
td ((TextDocumentClientCapabilities
  -> f TextDocumentClientCapabilities)
 -> ClientCapabilities -> f ClientCapabilities)
-> ((Maybe InlineValueClientCapabilities
     -> f (Maybe InlineValueClientCapabilities))
    -> TextDocumentClientCapabilities
    -> f TextDocumentClientCapabilities)
-> (Maybe InlineValueClientCapabilities
    -> f (Maybe InlineValueClientCapabilities))
-> ClientCapabilities
-> f ClientCapabilities
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Maybe InlineValueClientCapabilities
 -> f (Maybe InlineValueClientCapabilities))
-> TextDocumentClientCapabilities
-> f TextDocumentClientCapabilities
forall s a. HasInlineValue s a => Lens' s a
Lens'
  TextDocumentClientCapabilities
  (Maybe InlineValueClientCapabilities)
L.inlineValue
  SMethod m
SMethod_WorkspaceInlineValueRefresh -> (WorkspaceClientCapabilities -> f WorkspaceClientCapabilities)
-> ClientCapabilities -> f ClientCapabilities
Lens' ClientCapabilities WorkspaceClientCapabilities
ws ((WorkspaceClientCapabilities -> f WorkspaceClientCapabilities)
 -> ClientCapabilities -> f ClientCapabilities)
-> ((Maybe InlineValueWorkspaceClientCapabilities
     -> f (Maybe InlineValueWorkspaceClientCapabilities))
    -> WorkspaceClientCapabilities -> f WorkspaceClientCapabilities)
-> (Maybe InlineValueWorkspaceClientCapabilities
    -> f (Maybe InlineValueWorkspaceClientCapabilities))
-> ClientCapabilities
-> f ClientCapabilities
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Maybe InlineValueWorkspaceClientCapabilities
 -> f (Maybe InlineValueWorkspaceClientCapabilities))
-> WorkspaceClientCapabilities -> f WorkspaceClientCapabilities
forall s a. HasInlineValue s a => Lens' s a
Lens'
  WorkspaceClientCapabilities
  (Maybe InlineValueWorkspaceClientCapabilities)
L.inlineValue
  SMethod m
SMethod_TextDocumentInlayHint -> (TextDocumentClientCapabilities
 -> f TextDocumentClientCapabilities)
-> ClientCapabilities -> f ClientCapabilities
Lens' ClientCapabilities TextDocumentClientCapabilities
td ((TextDocumentClientCapabilities
  -> f TextDocumentClientCapabilities)
 -> ClientCapabilities -> f ClientCapabilities)
-> ((Maybe InlayHintClientCapabilities
     -> f (Maybe InlayHintClientCapabilities))
    -> TextDocumentClientCapabilities
    -> f TextDocumentClientCapabilities)
-> (Maybe InlayHintClientCapabilities
    -> f (Maybe InlayHintClientCapabilities))
-> ClientCapabilities
-> f ClientCapabilities
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Maybe InlayHintClientCapabilities
 -> f (Maybe InlayHintClientCapabilities))
-> TextDocumentClientCapabilities
-> f TextDocumentClientCapabilities
forall s a. HasInlayHint s a => Lens' s a
Lens'
  TextDocumentClientCapabilities (Maybe InlayHintClientCapabilities)
L.inlayHint
  SMethod m
SMethod_InlayHintResolve -> (TextDocumentClientCapabilities
 -> f TextDocumentClientCapabilities)
-> ClientCapabilities -> f ClientCapabilities
Lens' ClientCapabilities TextDocumentClientCapabilities
td ((TextDocumentClientCapabilities
  -> f TextDocumentClientCapabilities)
 -> ClientCapabilities -> f ClientCapabilities)
-> ((Maybe InlayHintClientCapabilities
     -> f (Maybe InlayHintClientCapabilities))
    -> TextDocumentClientCapabilities
    -> f TextDocumentClientCapabilities)
-> (Maybe InlayHintClientCapabilities
    -> f (Maybe InlayHintClientCapabilities))
-> ClientCapabilities
-> f ClientCapabilities
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Maybe InlayHintClientCapabilities
 -> f (Maybe InlayHintClientCapabilities))
-> TextDocumentClientCapabilities
-> f TextDocumentClientCapabilities
forall s a. HasInlayHint s a => Lens' s a
Lens'
  TextDocumentClientCapabilities (Maybe InlayHintClientCapabilities)
L.inlayHint
  SMethod m
SMethod_WorkspaceInlayHintRefresh -> (WorkspaceClientCapabilities -> f WorkspaceClientCapabilities)
-> ClientCapabilities -> f ClientCapabilities
Lens' ClientCapabilities WorkspaceClientCapabilities
ws ((WorkspaceClientCapabilities -> f WorkspaceClientCapabilities)
 -> ClientCapabilities -> f ClientCapabilities)
-> ((Maybe InlayHintWorkspaceClientCapabilities
     -> f (Maybe InlayHintWorkspaceClientCapabilities))
    -> WorkspaceClientCapabilities -> f WorkspaceClientCapabilities)
-> (Maybe InlayHintWorkspaceClientCapabilities
    -> f (Maybe InlayHintWorkspaceClientCapabilities))
-> ClientCapabilities
-> f ClientCapabilities
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Maybe InlayHintWorkspaceClientCapabilities
 -> f (Maybe InlayHintWorkspaceClientCapabilities))
-> WorkspaceClientCapabilities -> f WorkspaceClientCapabilities
forall s a. HasInlayHint s a => Lens' s a
Lens'
  WorkspaceClientCapabilities
  (Maybe InlayHintWorkspaceClientCapabilities)
L.inlayHint
  SMethod m
SMethod_TextDocumentDiagnostic -> (TextDocumentClientCapabilities
 -> f TextDocumentClientCapabilities)
-> ClientCapabilities -> f ClientCapabilities
Lens' ClientCapabilities TextDocumentClientCapabilities
td ((TextDocumentClientCapabilities
  -> f TextDocumentClientCapabilities)
 -> ClientCapabilities -> f ClientCapabilities)
-> ((Maybe DiagnosticClientCapabilities
     -> f (Maybe DiagnosticClientCapabilities))
    -> TextDocumentClientCapabilities
    -> f TextDocumentClientCapabilities)
-> (Maybe DiagnosticClientCapabilities
    -> f (Maybe DiagnosticClientCapabilities))
-> ClientCapabilities
-> f ClientCapabilities
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Maybe DiagnosticClientCapabilities
 -> f (Maybe DiagnosticClientCapabilities))
-> TextDocumentClientCapabilities
-> f TextDocumentClientCapabilities
forall s a. HasDiagnostic s a => Lens' s a
Lens'
  TextDocumentClientCapabilities (Maybe DiagnosticClientCapabilities)
L.diagnostic
  SMethod m
SMethod_WorkspaceDiagnostic -> (WorkspaceClientCapabilities -> f WorkspaceClientCapabilities)
-> ClientCapabilities -> f ClientCapabilities
Lens' ClientCapabilities WorkspaceClientCapabilities
ws ((WorkspaceClientCapabilities -> f WorkspaceClientCapabilities)
 -> ClientCapabilities -> f ClientCapabilities)
-> ((Maybe DiagnosticWorkspaceClientCapabilities
     -> f (Maybe DiagnosticWorkspaceClientCapabilities))
    -> WorkspaceClientCapabilities -> f WorkspaceClientCapabilities)
-> (Maybe DiagnosticWorkspaceClientCapabilities
    -> f (Maybe DiagnosticWorkspaceClientCapabilities))
-> ClientCapabilities
-> f ClientCapabilities
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Maybe DiagnosticWorkspaceClientCapabilities
 -> f (Maybe DiagnosticWorkspaceClientCapabilities))
-> WorkspaceClientCapabilities -> f WorkspaceClientCapabilities
forall s a. HasDiagnostics s a => Lens' s a
Lens'
  WorkspaceClientCapabilities
  (Maybe DiagnosticWorkspaceClientCapabilities)
L.diagnostics
  SMethod m
SMethod_WorkspaceDiagnosticRefresh -> (WorkspaceClientCapabilities -> f WorkspaceClientCapabilities)
-> ClientCapabilities -> f ClientCapabilities
Lens' ClientCapabilities WorkspaceClientCapabilities
ws ((WorkspaceClientCapabilities -> f WorkspaceClientCapabilities)
 -> ClientCapabilities -> f ClientCapabilities)
-> ((Maybe DiagnosticWorkspaceClientCapabilities
     -> f (Maybe DiagnosticWorkspaceClientCapabilities))
    -> WorkspaceClientCapabilities -> f WorkspaceClientCapabilities)
-> (Maybe DiagnosticWorkspaceClientCapabilities
    -> f (Maybe DiagnosticWorkspaceClientCapabilities))
-> ClientCapabilities
-> f ClientCapabilities
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Maybe DiagnosticWorkspaceClientCapabilities
 -> f (Maybe DiagnosticWorkspaceClientCapabilities))
-> WorkspaceClientCapabilities -> f WorkspaceClientCapabilities
forall s a. HasDiagnostics s a => Lens' s a
Lens'
  WorkspaceClientCapabilities
  (Maybe DiagnosticWorkspaceClientCapabilities)
L.diagnostics
  SMethod m
SMethod_WorkspaceWorkspaceFolders -> (WorkspaceClientCapabilities -> f WorkspaceClientCapabilities)
-> ClientCapabilities -> f ClientCapabilities
Lens' ClientCapabilities WorkspaceClientCapabilities
ws ((WorkspaceClientCapabilities -> f WorkspaceClientCapabilities)
 -> ClientCapabilities -> f ClientCapabilities)
-> ((Maybe Bool -> f (Maybe Bool))
    -> WorkspaceClientCapabilities -> f WorkspaceClientCapabilities)
-> (Maybe Bool -> f (Maybe Bool))
-> ClientCapabilities
-> f ClientCapabilities
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Maybe Bool -> f (Maybe Bool))
-> WorkspaceClientCapabilities -> f WorkspaceClientCapabilities
forall s a. HasWorkspaceFolders s a => Lens' s a
Lens' WorkspaceClientCapabilities (Maybe Bool)
L.workspaceFolders
  SMethod m
SMethod_WorkspaceWillCreateFiles -> (WorkspaceClientCapabilities -> f WorkspaceClientCapabilities)
-> ClientCapabilities -> f ClientCapabilities
Lens' ClientCapabilities WorkspaceClientCapabilities
ws ((WorkspaceClientCapabilities -> f WorkspaceClientCapabilities)
 -> ClientCapabilities -> f ClientCapabilities)
-> ((Maybe FileOperationClientCapabilities
     -> f (Maybe FileOperationClientCapabilities))
    -> WorkspaceClientCapabilities -> f WorkspaceClientCapabilities)
-> (Maybe FileOperationClientCapabilities
    -> f (Maybe FileOperationClientCapabilities))
-> ClientCapabilities
-> f ClientCapabilities
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Maybe FileOperationClientCapabilities
 -> f (Maybe FileOperationClientCapabilities))
-> WorkspaceClientCapabilities -> f WorkspaceClientCapabilities
forall s a. HasFileOperations s a => Lens' s a
Lens'
  WorkspaceClientCapabilities (Maybe FileOperationClientCapabilities)
L.fileOperations
  SMethod m
SMethod_WorkspaceWillRenameFiles -> (WorkspaceClientCapabilities -> f WorkspaceClientCapabilities)
-> ClientCapabilities -> f ClientCapabilities
Lens' ClientCapabilities WorkspaceClientCapabilities
ws ((WorkspaceClientCapabilities -> f WorkspaceClientCapabilities)
 -> ClientCapabilities -> f ClientCapabilities)
-> ((Maybe FileOperationClientCapabilities
     -> f (Maybe FileOperationClientCapabilities))
    -> WorkspaceClientCapabilities -> f WorkspaceClientCapabilities)
-> (Maybe FileOperationClientCapabilities
    -> f (Maybe FileOperationClientCapabilities))
-> ClientCapabilities
-> f ClientCapabilities
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Maybe FileOperationClientCapabilities
 -> f (Maybe FileOperationClientCapabilities))
-> WorkspaceClientCapabilities -> f WorkspaceClientCapabilities
forall s a. HasFileOperations s a => Lens' s a
Lens'
  WorkspaceClientCapabilities (Maybe FileOperationClientCapabilities)
L.fileOperations
  SMethod m
SMethod_WorkspaceWillDeleteFiles -> (WorkspaceClientCapabilities -> f WorkspaceClientCapabilities)
-> ClientCapabilities -> f ClientCapabilities
Lens' ClientCapabilities WorkspaceClientCapabilities
ws ((WorkspaceClientCapabilities -> f WorkspaceClientCapabilities)
 -> ClientCapabilities -> f ClientCapabilities)
-> ((Maybe FileOperationClientCapabilities
     -> f (Maybe FileOperationClientCapabilities))
    -> WorkspaceClientCapabilities -> f WorkspaceClientCapabilities)
-> (Maybe FileOperationClientCapabilities
    -> f (Maybe FileOperationClientCapabilities))
-> ClientCapabilities
-> f ClientCapabilities
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Maybe FileOperationClientCapabilities
 -> f (Maybe FileOperationClientCapabilities))
-> WorkspaceClientCapabilities -> f WorkspaceClientCapabilities
forall s a. HasFileOperations s a => Lens' s a
Lens'
  WorkspaceClientCapabilities (Maybe FileOperationClientCapabilities)
L.fileOperations
  SMethod m
SMethod_WorkspaceDidCreateFiles -> (WorkspaceClientCapabilities -> f WorkspaceClientCapabilities)
-> ClientCapabilities -> f ClientCapabilities
Lens' ClientCapabilities WorkspaceClientCapabilities
ws ((WorkspaceClientCapabilities -> f WorkspaceClientCapabilities)
 -> ClientCapabilities -> f ClientCapabilities)
-> ((Maybe FileOperationClientCapabilities
     -> f (Maybe FileOperationClientCapabilities))
    -> WorkspaceClientCapabilities -> f WorkspaceClientCapabilities)
-> (Maybe FileOperationClientCapabilities
    -> f (Maybe FileOperationClientCapabilities))
-> ClientCapabilities
-> f ClientCapabilities
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Maybe FileOperationClientCapabilities
 -> f (Maybe FileOperationClientCapabilities))
-> WorkspaceClientCapabilities -> f WorkspaceClientCapabilities
forall s a. HasFileOperations s a => Lens' s a
Lens'
  WorkspaceClientCapabilities (Maybe FileOperationClientCapabilities)
L.fileOperations
  SMethod m
SMethod_WorkspaceDidRenameFiles -> (WorkspaceClientCapabilities -> f WorkspaceClientCapabilities)
-> ClientCapabilities -> f ClientCapabilities
Lens' ClientCapabilities WorkspaceClientCapabilities
ws ((WorkspaceClientCapabilities -> f WorkspaceClientCapabilities)
 -> ClientCapabilities -> f ClientCapabilities)
-> ((Maybe FileOperationClientCapabilities
     -> f (Maybe FileOperationClientCapabilities))
    -> WorkspaceClientCapabilities -> f WorkspaceClientCapabilities)
-> (Maybe FileOperationClientCapabilities
    -> f (Maybe FileOperationClientCapabilities))
-> ClientCapabilities
-> f ClientCapabilities
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Maybe FileOperationClientCapabilities
 -> f (Maybe FileOperationClientCapabilities))
-> WorkspaceClientCapabilities -> f WorkspaceClientCapabilities
forall s a. HasFileOperations s a => Lens' s a
Lens'
  WorkspaceClientCapabilities (Maybe FileOperationClientCapabilities)
L.fileOperations
  SMethod m
SMethod_WorkspaceDidDeleteFiles -> (WorkspaceClientCapabilities -> f WorkspaceClientCapabilities)
-> ClientCapabilities -> f ClientCapabilities
Lens' ClientCapabilities WorkspaceClientCapabilities
ws ((WorkspaceClientCapabilities -> f WorkspaceClientCapabilities)
 -> ClientCapabilities -> f ClientCapabilities)
-> ((Maybe FileOperationClientCapabilities
     -> f (Maybe FileOperationClientCapabilities))
    -> WorkspaceClientCapabilities -> f WorkspaceClientCapabilities)
-> (Maybe FileOperationClientCapabilities
    -> f (Maybe FileOperationClientCapabilities))
-> ClientCapabilities
-> f ClientCapabilities
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Maybe FileOperationClientCapabilities
 -> f (Maybe FileOperationClientCapabilities))
-> WorkspaceClientCapabilities -> f WorkspaceClientCapabilities
forall s a. HasFileOperations s a => Lens' s a
Lens'
  WorkspaceClientCapabilities (Maybe FileOperationClientCapabilities)
L.fileOperations
  SMethod m
SMethod_TextDocumentDidOpen -> (TextDocumentClientCapabilities
 -> f TextDocumentClientCapabilities)
-> ClientCapabilities -> f ClientCapabilities
Lens' ClientCapabilities TextDocumentClientCapabilities
td ((TextDocumentClientCapabilities
  -> f TextDocumentClientCapabilities)
 -> ClientCapabilities -> f ClientCapabilities)
-> ((Maybe TextDocumentSyncClientCapabilities
     -> f (Maybe TextDocumentSyncClientCapabilities))
    -> TextDocumentClientCapabilities
    -> f TextDocumentClientCapabilities)
-> (Maybe TextDocumentSyncClientCapabilities
    -> f (Maybe TextDocumentSyncClientCapabilities))
-> ClientCapabilities
-> f ClientCapabilities
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Maybe TextDocumentSyncClientCapabilities
 -> f (Maybe TextDocumentSyncClientCapabilities))
-> TextDocumentClientCapabilities
-> f TextDocumentClientCapabilities
forall s a. HasSynchronization s a => Lens' s a
Lens'
  TextDocumentClientCapabilities
  (Maybe TextDocumentSyncClientCapabilities)
L.synchronization
  SMethod m
SMethod_TextDocumentDidChange -> (TextDocumentClientCapabilities
 -> f TextDocumentClientCapabilities)
-> ClientCapabilities -> f ClientCapabilities
Lens' ClientCapabilities TextDocumentClientCapabilities
td ((TextDocumentClientCapabilities
  -> f TextDocumentClientCapabilities)
 -> ClientCapabilities -> f ClientCapabilities)
-> ((Maybe TextDocumentSyncClientCapabilities
     -> f (Maybe TextDocumentSyncClientCapabilities))
    -> TextDocumentClientCapabilities
    -> f TextDocumentClientCapabilities)
-> (Maybe TextDocumentSyncClientCapabilities
    -> f (Maybe TextDocumentSyncClientCapabilities))
-> ClientCapabilities
-> f ClientCapabilities
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Maybe TextDocumentSyncClientCapabilities
 -> f (Maybe TextDocumentSyncClientCapabilities))
-> TextDocumentClientCapabilities
-> f TextDocumentClientCapabilities
forall s a. HasSynchronization s a => Lens' s a
Lens'
  TextDocumentClientCapabilities
  (Maybe TextDocumentSyncClientCapabilities)
L.synchronization
  SMethod m
SMethod_TextDocumentDidClose -> (TextDocumentClientCapabilities
 -> f TextDocumentClientCapabilities)
-> ClientCapabilities -> f ClientCapabilities
Lens' ClientCapabilities TextDocumentClientCapabilities
td ((TextDocumentClientCapabilities
  -> f TextDocumentClientCapabilities)
 -> ClientCapabilities -> f ClientCapabilities)
-> ((Maybe TextDocumentSyncClientCapabilities
     -> f (Maybe TextDocumentSyncClientCapabilities))
    -> TextDocumentClientCapabilities
    -> f TextDocumentClientCapabilities)
-> (Maybe TextDocumentSyncClientCapabilities
    -> f (Maybe TextDocumentSyncClientCapabilities))
-> ClientCapabilities
-> f ClientCapabilities
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Maybe TextDocumentSyncClientCapabilities
 -> f (Maybe TextDocumentSyncClientCapabilities))
-> TextDocumentClientCapabilities
-> f TextDocumentClientCapabilities
forall s a. HasSynchronization s a => Lens' s a
Lens'
  TextDocumentClientCapabilities
  (Maybe TextDocumentSyncClientCapabilities)
L.synchronization
  SMethod m
SMethod_TextDocumentDidSave -> (TextDocumentClientCapabilities
 -> f TextDocumentClientCapabilities)
-> ClientCapabilities -> f ClientCapabilities
Lens' ClientCapabilities TextDocumentClientCapabilities
td ((TextDocumentClientCapabilities
  -> f TextDocumentClientCapabilities)
 -> ClientCapabilities -> f ClientCapabilities)
-> ((Maybe TextDocumentSyncClientCapabilities
     -> f (Maybe TextDocumentSyncClientCapabilities))
    -> TextDocumentClientCapabilities
    -> f TextDocumentClientCapabilities)
-> (Maybe TextDocumentSyncClientCapabilities
    -> f (Maybe TextDocumentSyncClientCapabilities))
-> ClientCapabilities
-> f ClientCapabilities
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Maybe TextDocumentSyncClientCapabilities
 -> f (Maybe TextDocumentSyncClientCapabilities))
-> TextDocumentClientCapabilities
-> f TextDocumentClientCapabilities
forall s a. HasSynchronization s a => Lens' s a
Lens'
  TextDocumentClientCapabilities
  (Maybe TextDocumentSyncClientCapabilities)
L.synchronization
  SMethod m
SMethod_TextDocumentWillSave -> (TextDocumentClientCapabilities
 -> f TextDocumentClientCapabilities)
-> ClientCapabilities -> f ClientCapabilities
Lens' ClientCapabilities TextDocumentClientCapabilities
td ((TextDocumentClientCapabilities
  -> f TextDocumentClientCapabilities)
 -> ClientCapabilities -> f ClientCapabilities)
-> ((Maybe TextDocumentSyncClientCapabilities
     -> f (Maybe TextDocumentSyncClientCapabilities))
    -> TextDocumentClientCapabilities
    -> f TextDocumentClientCapabilities)
-> (Maybe TextDocumentSyncClientCapabilities
    -> f (Maybe TextDocumentSyncClientCapabilities))
-> ClientCapabilities
-> f ClientCapabilities
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Maybe TextDocumentSyncClientCapabilities
 -> f (Maybe TextDocumentSyncClientCapabilities))
-> TextDocumentClientCapabilities
-> f TextDocumentClientCapabilities
forall s a. HasSynchronization s a => Lens' s a
Lens'
  TextDocumentClientCapabilities
  (Maybe TextDocumentSyncClientCapabilities)
L.synchronization
  SMethod m
SMethod_TextDocumentWillSaveWaitUntil -> (TextDocumentClientCapabilities
 -> f TextDocumentClientCapabilities)
-> ClientCapabilities -> f ClientCapabilities
Lens' ClientCapabilities TextDocumentClientCapabilities
td ((TextDocumentClientCapabilities
  -> f TextDocumentClientCapabilities)
 -> ClientCapabilities -> f ClientCapabilities)
-> ((Maybe TextDocumentSyncClientCapabilities
     -> f (Maybe TextDocumentSyncClientCapabilities))
    -> TextDocumentClientCapabilities
    -> f TextDocumentClientCapabilities)
-> (Maybe TextDocumentSyncClientCapabilities
    -> f (Maybe TextDocumentSyncClientCapabilities))
-> ClientCapabilities
-> f ClientCapabilities
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Maybe TextDocumentSyncClientCapabilities
 -> f (Maybe TextDocumentSyncClientCapabilities))
-> TextDocumentClientCapabilities
-> f TextDocumentClientCapabilities
forall s a. HasSynchronization s a => Lens' s a
Lens'
  TextDocumentClientCapabilities
  (Maybe TextDocumentSyncClientCapabilities)
L.synchronization
  SMethod m
SMethod_NotebookDocumentDidOpen -> (Maybe NotebookDocumentSyncClientCapabilities
 -> f (Maybe NotebookDocumentSyncClientCapabilities))
-> ClientCapabilities -> f ClientCapabilities
(Maybe (ClientCapability m) -> f (Maybe (ClientCapability m)))
-> ClientCapabilities -> f ClientCapabilities
Lens'
  ClientCapabilities (Maybe NotebookDocumentSyncClientCapabilities)
nbs
  SMethod m
SMethod_NotebookDocumentDidChange -> (Maybe NotebookDocumentSyncClientCapabilities
 -> f (Maybe NotebookDocumentSyncClientCapabilities))
-> ClientCapabilities -> f ClientCapabilities
(Maybe (ClientCapability m) -> f (Maybe (ClientCapability m)))
-> ClientCapabilities -> f ClientCapabilities
Lens'
  ClientCapabilities (Maybe NotebookDocumentSyncClientCapabilities)
nbs
  SMethod m
SMethod_NotebookDocumentDidSave -> (Maybe NotebookDocumentSyncClientCapabilities
 -> f (Maybe NotebookDocumentSyncClientCapabilities))
-> ClientCapabilities -> f ClientCapabilities
(Maybe (ClientCapability m) -> f (Maybe (ClientCapability m)))
-> ClientCapabilities -> f ClientCapabilities
Lens'
  ClientCapabilities (Maybe NotebookDocumentSyncClientCapabilities)
nbs
  SMethod m
SMethod_NotebookDocumentDidClose -> (Maybe NotebookDocumentSyncClientCapabilities
 -> f (Maybe NotebookDocumentSyncClientCapabilities))
-> ClientCapabilities -> f ClientCapabilities
(Maybe (ClientCapability m) -> f (Maybe (ClientCapability m)))
-> ClientCapabilities -> f ClientCapabilities
Lens'
  ClientCapabilities (Maybe NotebookDocumentSyncClientCapabilities)
nbs
  SMethod m
SMethod_WorkspaceDidChangeConfiguration -> (WorkspaceClientCapabilities -> f WorkspaceClientCapabilities)
-> ClientCapabilities -> f ClientCapabilities
Lens' ClientCapabilities WorkspaceClientCapabilities
ws ((WorkspaceClientCapabilities -> f WorkspaceClientCapabilities)
 -> ClientCapabilities -> f ClientCapabilities)
-> ((Maybe DidChangeConfigurationClientCapabilities
     -> f (Maybe DidChangeConfigurationClientCapabilities))
    -> WorkspaceClientCapabilities -> f WorkspaceClientCapabilities)
-> (Maybe DidChangeConfigurationClientCapabilities
    -> f (Maybe DidChangeConfigurationClientCapabilities))
-> ClientCapabilities
-> f ClientCapabilities
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Maybe DidChangeConfigurationClientCapabilities
 -> f (Maybe DidChangeConfigurationClientCapabilities))
-> WorkspaceClientCapabilities -> f WorkspaceClientCapabilities
forall s a. HasDidChangeConfiguration s a => Lens' s a
Lens'
  WorkspaceClientCapabilities
  (Maybe DidChangeConfigurationClientCapabilities)
L.didChangeConfiguration
  SMethod m
SMethod_WorkspaceDidChangeWatchedFiles -> (WorkspaceClientCapabilities -> f WorkspaceClientCapabilities)
-> ClientCapabilities -> f ClientCapabilities
Lens' ClientCapabilities WorkspaceClientCapabilities
ws ((WorkspaceClientCapabilities -> f WorkspaceClientCapabilities)
 -> ClientCapabilities -> f ClientCapabilities)
-> ((Maybe DidChangeWatchedFilesClientCapabilities
     -> f (Maybe DidChangeWatchedFilesClientCapabilities))
    -> WorkspaceClientCapabilities -> f WorkspaceClientCapabilities)
-> (Maybe DidChangeWatchedFilesClientCapabilities
    -> f (Maybe DidChangeWatchedFilesClientCapabilities))
-> ClientCapabilities
-> f ClientCapabilities
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Maybe DidChangeWatchedFilesClientCapabilities
 -> f (Maybe DidChangeWatchedFilesClientCapabilities))
-> WorkspaceClientCapabilities -> f WorkspaceClientCapabilities
forall s a. HasDidChangeWatchedFiles s a => Lens' s a
Lens'
  WorkspaceClientCapabilities
  (Maybe DidChangeWatchedFilesClientCapabilities)
L.didChangeWatchedFiles
  SMethod m
SMethod_TextDocumentPublishDiagnostics -> (TextDocumentClientCapabilities
 -> f TextDocumentClientCapabilities)
-> ClientCapabilities -> f ClientCapabilities
Lens' ClientCapabilities TextDocumentClientCapabilities
td ((TextDocumentClientCapabilities
  -> f TextDocumentClientCapabilities)
 -> ClientCapabilities -> f ClientCapabilities)
-> ((Maybe PublishDiagnosticsClientCapabilities
     -> f (Maybe PublishDiagnosticsClientCapabilities))
    -> TextDocumentClientCapabilities
    -> f TextDocumentClientCapabilities)
-> (Maybe PublishDiagnosticsClientCapabilities
    -> f (Maybe PublishDiagnosticsClientCapabilities))
-> ClientCapabilities
-> f ClientCapabilities
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Maybe PublishDiagnosticsClientCapabilities
 -> f (Maybe PublishDiagnosticsClientCapabilities))
-> TextDocumentClientCapabilities
-> f TextDocumentClientCapabilities
forall s a. HasPublishDiagnostics s a => Lens' s a
Lens'
  TextDocumentClientCapabilities
  (Maybe PublishDiagnosticsClientCapabilities)
L.publishDiagnostics
  SMethod m
SMethod_WorkspaceConfiguration -> (WorkspaceClientCapabilities -> f WorkspaceClientCapabilities)
-> ClientCapabilities -> f ClientCapabilities
Lens' ClientCapabilities WorkspaceClientCapabilities
ws ((WorkspaceClientCapabilities -> f WorkspaceClientCapabilities)
 -> ClientCapabilities -> f ClientCapabilities)
-> ((Maybe Bool -> f (Maybe Bool))
    -> WorkspaceClientCapabilities -> f WorkspaceClientCapabilities)
-> (Maybe Bool -> f (Maybe Bool))
-> ClientCapabilities
-> f ClientCapabilities
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Maybe Bool -> f (Maybe Bool))
-> WorkspaceClientCapabilities -> f WorkspaceClientCapabilities
forall s a. HasConfiguration s a => Lens' s a
Lens' WorkspaceClientCapabilities (Maybe Bool)
L.configuration
  SMethod m
SMethod_WindowWorkDoneProgressCreate -> (WindowClientCapabilities -> f WindowClientCapabilities)
-> ClientCapabilities -> f ClientCapabilities
Lens' ClientCapabilities WindowClientCapabilities
wd ((WindowClientCapabilities -> f WindowClientCapabilities)
 -> ClientCapabilities -> f ClientCapabilities)
-> ((Maybe Bool -> f (Maybe Bool))
    -> WindowClientCapabilities -> f WindowClientCapabilities)
-> (Maybe Bool -> f (Maybe Bool))
-> ClientCapabilities
-> f ClientCapabilities
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Maybe Bool -> f (Maybe Bool))
-> WindowClientCapabilities -> f WindowClientCapabilities
forall s a. HasWorkDoneProgress s a => Lens' s a
Lens' WindowClientCapabilities (Maybe Bool)
L.workDoneProgress
  SMethod m
SMethod_WindowWorkDoneProgressCancel -> (WindowClientCapabilities -> f WindowClientCapabilities)
-> ClientCapabilities -> f ClientCapabilities
Lens' ClientCapabilities WindowClientCapabilities
wd ((WindowClientCapabilities -> f WindowClientCapabilities)
 -> ClientCapabilities -> f ClientCapabilities)
-> ((Maybe Bool -> f (Maybe Bool))
    -> WindowClientCapabilities -> f WindowClientCapabilities)
-> (Maybe Bool -> f (Maybe Bool))
-> ClientCapabilities
-> f ClientCapabilities
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Maybe Bool -> f (Maybe Bool))
-> WindowClientCapabilities -> f WindowClientCapabilities
forall s a. HasWorkDoneProgress s a => Lens' s a
Lens' WindowClientCapabilities (Maybe Bool)
L.workDoneProgress
  SMethod m
SMethod_WorkspaceApplyEdit -> (WorkspaceClientCapabilities -> f WorkspaceClientCapabilities)
-> ClientCapabilities -> f ClientCapabilities
Lens' ClientCapabilities WorkspaceClientCapabilities
ws ((WorkspaceClientCapabilities -> f WorkspaceClientCapabilities)
 -> ClientCapabilities -> f ClientCapabilities)
-> ((Maybe Bool -> f (Maybe Bool))
    -> WorkspaceClientCapabilities -> f WorkspaceClientCapabilities)
-> (Maybe Bool -> f (Maybe Bool))
-> ClientCapabilities
-> f ClientCapabilities
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Maybe Bool -> f (Maybe Bool))
-> WorkspaceClientCapabilities -> f WorkspaceClientCapabilities
forall s a. HasApplyEdit s a => Lens' s a
Lens' WorkspaceClientCapabilities (Maybe Bool)
L.applyEdit
  SMethod m
SMethod_WindowShowDocument -> (WindowClientCapabilities -> f WindowClientCapabilities)
-> ClientCapabilities -> f ClientCapabilities
Lens' ClientCapabilities WindowClientCapabilities
wd ((WindowClientCapabilities -> f WindowClientCapabilities)
 -> ClientCapabilities -> f ClientCapabilities)
-> ((Maybe ShowDocumentClientCapabilities
     -> f (Maybe ShowDocumentClientCapabilities))
    -> WindowClientCapabilities -> f WindowClientCapabilities)
-> (Maybe ShowDocumentClientCapabilities
    -> f (Maybe ShowDocumentClientCapabilities))
-> ClientCapabilities
-> f ClientCapabilities
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Maybe ShowDocumentClientCapabilities
 -> f (Maybe ShowDocumentClientCapabilities))
-> WindowClientCapabilities -> f WindowClientCapabilities
forall s a. HasShowDocument s a => Lens' s a
Lens'
  WindowClientCapabilities (Maybe ShowDocumentClientCapabilities)
L.showDocument
  SMethod m
SMethod_WindowShowMessageRequest -> (WindowClientCapabilities -> f WindowClientCapabilities)
-> ClientCapabilities -> f ClientCapabilities
Lens' ClientCapabilities WindowClientCapabilities
wd ((WindowClientCapabilities -> f WindowClientCapabilities)
 -> ClientCapabilities -> f ClientCapabilities)
-> ((Maybe ShowMessageRequestClientCapabilities
     -> f (Maybe ShowMessageRequestClientCapabilities))
    -> WindowClientCapabilities -> f WindowClientCapabilities)
-> (Maybe ShowMessageRequestClientCapabilities
    -> f (Maybe ShowMessageRequestClientCapabilities))
-> ClientCapabilities
-> f ClientCapabilities
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Maybe ShowMessageRequestClientCapabilities
 -> f (Maybe ShowMessageRequestClientCapabilities))
-> WindowClientCapabilities -> f WindowClientCapabilities
forall s a. HasShowMessage s a => Lens' s a
Lens'
  WindowClientCapabilities
  (Maybe ShowMessageRequestClientCapabilities)
L.showMessage
  SMethod m
SMethod_WindowShowMessage -> (WindowClientCapabilities -> f WindowClientCapabilities)
-> ClientCapabilities -> f ClientCapabilities
Lens' ClientCapabilities WindowClientCapabilities
wd ((WindowClientCapabilities -> f WindowClientCapabilities)
 -> ClientCapabilities -> f ClientCapabilities)
-> ((Maybe ShowMessageRequestClientCapabilities
     -> f (Maybe ShowMessageRequestClientCapabilities))
    -> WindowClientCapabilities -> f WindowClientCapabilities)
-> (Maybe ShowMessageRequestClientCapabilities
    -> f (Maybe ShowMessageRequestClientCapabilities))
-> ClientCapabilities
-> f ClientCapabilities
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Maybe ShowMessageRequestClientCapabilities
 -> f (Maybe ShowMessageRequestClientCapabilities))
-> WindowClientCapabilities -> f WindowClientCapabilities
forall s a. HasShowMessage s a => Lens' s a
Lens'
  WindowClientCapabilities
  (Maybe ShowMessageRequestClientCapabilities)
L.showMessage
  SMethod m
SMethod_WorkspaceDidChangeWorkspaceFolders -> (Maybe Void -> f (Maybe Void))
-> ClientCapabilities -> f ClientCapabilities
(Maybe (ClientCapability m) -> f (Maybe (ClientCapability m)))
-> ClientCapabilities -> f ClientCapabilities
forall a (f :: * -> *).
Functor f =>
(Maybe Void -> f (Maybe Void)) -> a -> f a
noCap
  SMethod m
SMethod_Progress -> (Maybe Void -> f (Maybe Void))
-> ClientCapabilities -> f ClientCapabilities
(Maybe (ClientCapability m) -> f (Maybe (ClientCapability m)))
-> ClientCapabilities -> f ClientCapabilities
forall a (f :: * -> *).
Functor f =>
(Maybe Void -> f (Maybe Void)) -> a -> f a
noCap
  SMethod m
SMethod_WindowLogMessage -> (Maybe Void -> f (Maybe Void))
-> ClientCapabilities -> f ClientCapabilities
(Maybe (ClientCapability m) -> f (Maybe (ClientCapability m)))
-> ClientCapabilities -> f ClientCapabilities
forall a (f :: * -> *).
Functor f =>
(Maybe Void -> f (Maybe Void)) -> a -> f a
noCap
  SMethod m
SMethod_ClientRegisterCapability -> (Maybe Void -> f (Maybe Void))
-> ClientCapabilities -> f ClientCapabilities
(Maybe (ClientCapability m) -> f (Maybe (ClientCapability m)))
-> ClientCapabilities -> f ClientCapabilities
forall a (f :: * -> *).
Functor f =>
(Maybe Void -> f (Maybe Void)) -> a -> f a
noCap
  SMethod m
SMethod_ClientUnregisterCapability -> (Maybe Void -> f (Maybe Void))
-> ClientCapabilities -> f ClientCapabilities
(Maybe (ClientCapability m) -> f (Maybe (ClientCapability m)))
-> ClientCapabilities -> f ClientCapabilities
forall a (f :: * -> *).
Functor f =>
(Maybe Void -> f (Maybe Void)) -> a -> f a
noCap
  SMethod m
SMethod_Initialize -> (Maybe Void -> f (Maybe Void))
-> ClientCapabilities -> f ClientCapabilities
(Maybe (ClientCapability m) -> f (Maybe (ClientCapability m)))
-> ClientCapabilities -> f ClientCapabilities
forall a (f :: * -> *).
Functor f =>
(Maybe Void -> f (Maybe Void)) -> a -> f a
noCap
  SMethod m
SMethod_Initialized -> (Maybe Void -> f (Maybe Void))
-> ClientCapabilities -> f ClientCapabilities
(Maybe (ClientCapability m) -> f (Maybe (ClientCapability m)))
-> ClientCapabilities -> f ClientCapabilities
forall a (f :: * -> *).
Functor f =>
(Maybe Void -> f (Maybe Void)) -> a -> f a
noCap
  SMethod m
SMethod_Shutdown -> (Maybe Void -> f (Maybe Void))
-> ClientCapabilities -> f ClientCapabilities
(Maybe (ClientCapability m) -> f (Maybe (ClientCapability m)))
-> ClientCapabilities -> f ClientCapabilities
forall a (f :: * -> *).
Functor f =>
(Maybe Void -> f (Maybe Void)) -> a -> f a
noCap
  SMethod m
SMethod_Exit -> (Maybe Void -> f (Maybe Void))
-> ClientCapabilities -> f ClientCapabilities
(Maybe (ClientCapability m) -> f (Maybe (ClientCapability m)))
-> ClientCapabilities -> f ClientCapabilities
forall a (f :: * -> *).
Functor f =>
(Maybe Void -> f (Maybe Void)) -> a -> f a
noCap
  SMethod m
SMethod_TelemetryEvent -> (Maybe Void -> f (Maybe Void))
-> ClientCapabilities -> f ClientCapabilities
(Maybe (ClientCapability m) -> f (Maybe (ClientCapability m)))
-> ClientCapabilities -> f ClientCapabilities
forall a (f :: * -> *).
Functor f =>
(Maybe Void -> f (Maybe Void)) -> a -> f a
noCap
  SMethod m
SMethod_SetTrace -> (Maybe Void -> f (Maybe Void))
-> ClientCapabilities -> f ClientCapabilities
(Maybe (ClientCapability m) -> f (Maybe (ClientCapability m)))
-> ClientCapabilities -> f ClientCapabilities
forall a (f :: * -> *).
Functor f =>
(Maybe Void -> f (Maybe Void)) -> a -> f a
noCap
  SMethod m
SMethod_LogTrace -> (Maybe Void -> f (Maybe Void))
-> ClientCapabilities -> f ClientCapabilities
(Maybe (ClientCapability m) -> f (Maybe (ClientCapability m)))
-> ClientCapabilities -> f ClientCapabilities
forall a (f :: * -> *).
Functor f =>
(Maybe Void -> f (Maybe Void)) -> a -> f a
noCap
  SMethod m
SMethod_CancelRequest -> (Maybe Void -> f (Maybe Void))
-> ClientCapabilities -> f ClientCapabilities
(Maybe (ClientCapability m) -> f (Maybe (ClientCapability m)))
-> ClientCapabilities -> f ClientCapabilities
forall a (f :: * -> *).
Functor f =>
(Maybe Void -> f (Maybe Void)) -> a -> f a
noCap
  (SMethod_CustomMethod Proxy s
_s) -> (Maybe Void -> f (Maybe Void))
-> ClientCapabilities -> f ClientCapabilities
(Maybe (ClientCapability m) -> f (Maybe (ClientCapability m)))
-> ClientCapabilities -> f ClientCapabilities
forall a (f :: * -> *).
Functor f =>
(Maybe Void -> f (Maybe Void)) -> a -> f a
noCap
 where
  ws :: Lens' ClientCapabilities WorkspaceClientCapabilities
  ws :: Lens' ClientCapabilities WorkspaceClientCapabilities
ws = (Maybe WorkspaceClientCapabilities
 -> f (Maybe WorkspaceClientCapabilities))
-> ClientCapabilities -> f ClientCapabilities
forall s a. HasWorkspace s a => Lens' s a
Lens' ClientCapabilities (Maybe WorkspaceClientCapabilities)
L.workspace ((Maybe WorkspaceClientCapabilities
  -> f (Maybe WorkspaceClientCapabilities))
 -> ClientCapabilities -> f ClientCapabilities)
-> ((WorkspaceClientCapabilities -> f WorkspaceClientCapabilities)
    -> Maybe WorkspaceClientCapabilities
    -> f (Maybe WorkspaceClientCapabilities))
-> (WorkspaceClientCapabilities -> f WorkspaceClientCapabilities)
-> ClientCapabilities
-> f ClientCapabilities
forall b c a. (b -> c) -> (a -> b) -> a -> c
. WorkspaceClientCapabilities
-> Iso'
     (Maybe WorkspaceClientCapabilities) WorkspaceClientCapabilities
forall a. Eq a => a -> Iso' (Maybe a) a
non WorkspaceClientCapabilities
emptyWorkspaceClientCaps
  wd :: Lens' ClientCapabilities WindowClientCapabilities
  wd :: Lens' ClientCapabilities WindowClientCapabilities
wd = (Maybe WindowClientCapabilities
 -> f (Maybe WindowClientCapabilities))
-> ClientCapabilities -> f ClientCapabilities
forall s a. HasWindow s a => Lens' s a
Lens' ClientCapabilities (Maybe WindowClientCapabilities)
L.window ((Maybe WindowClientCapabilities
  -> f (Maybe WindowClientCapabilities))
 -> ClientCapabilities -> f ClientCapabilities)
-> ((WindowClientCapabilities -> f WindowClientCapabilities)
    -> Maybe WindowClientCapabilities
    -> f (Maybe WindowClientCapabilities))
-> (WindowClientCapabilities -> f WindowClientCapabilities)
-> ClientCapabilities
-> f ClientCapabilities
forall b c a. (b -> c) -> (a -> b) -> a -> c
. WindowClientCapabilities
-> Iso' (Maybe WindowClientCapabilities) WindowClientCapabilities
forall a. Eq a => a -> Iso' (Maybe a) a
non WindowClientCapabilities
emptyWindowClientCaps
  td :: Lens' ClientCapabilities TextDocumentClientCapabilities
  td :: Lens' ClientCapabilities TextDocumentClientCapabilities
td = (Maybe TextDocumentClientCapabilities
 -> f (Maybe TextDocumentClientCapabilities))
-> ClientCapabilities -> f ClientCapabilities
forall s a. HasTextDocument s a => Lens' s a
Lens' ClientCapabilities (Maybe TextDocumentClientCapabilities)
L.textDocument ((Maybe TextDocumentClientCapabilities
  -> f (Maybe TextDocumentClientCapabilities))
 -> ClientCapabilities -> f ClientCapabilities)
-> ((TextDocumentClientCapabilities
     -> f TextDocumentClientCapabilities)
    -> Maybe TextDocumentClientCapabilities
    -> f (Maybe TextDocumentClientCapabilities))
-> (TextDocumentClientCapabilities
    -> f TextDocumentClientCapabilities)
-> ClientCapabilities
-> f ClientCapabilities
forall b c a. (b -> c) -> (a -> b) -> a -> c
. TextDocumentClientCapabilities
-> Iso'
     (Maybe TextDocumentClientCapabilities)
     TextDocumentClientCapabilities
forall a. Eq a => a -> Iso' (Maybe a) a
non TextDocumentClientCapabilities
emptyTextDocumentClientCaps
  -- This is messed up because, unlike literally everything else, `NotebookDocumentClientCapabilities.synchronization` is
  -- a mandatory field, so if we don't have it we need to unset the parent `notebookDocument` field. Maybe.
  nbs :: Lens' ClientCapabilities (Maybe NotebookDocumentSyncClientCapabilities)
  nbs :: Lens'
  ClientCapabilities (Maybe NotebookDocumentSyncClientCapabilities)
nbs = (ClientCapabilities
 -> Maybe NotebookDocumentSyncClientCapabilities)
-> (ClientCapabilities
    -> Maybe NotebookDocumentSyncClientCapabilities
    -> ClientCapabilities)
-> Lens'
     ClientCapabilities (Maybe NotebookDocumentSyncClientCapabilities)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
lens ClientCapabilities -> Maybe NotebookDocumentSyncClientCapabilities
forall {s}.
HasNotebookDocument s (Maybe NotebookDocumentClientCapabilities) =>
s -> Maybe NotebookDocumentSyncClientCapabilities
g ClientCapabilities
-> Maybe NotebookDocumentSyncClientCapabilities
-> ClientCapabilities
forall {a}.
HasNotebookDocument a (Maybe NotebookDocumentClientCapabilities) =>
a -> Maybe NotebookDocumentSyncClientCapabilities -> a
s
   where
    g :: s -> Maybe NotebookDocumentSyncClientCapabilities
g s
c = s
c s
-> Getting
     (Maybe NotebookDocumentSyncClientCapabilities)
     s
     (Maybe NotebookDocumentSyncClientCapabilities)
-> Maybe NotebookDocumentSyncClientCapabilities
forall s a. s -> Getting a s a -> a
^. (Maybe NotebookDocumentClientCapabilities
 -> Const
      (Maybe NotebookDocumentSyncClientCapabilities)
      (Maybe NotebookDocumentClientCapabilities))
-> s -> Const (Maybe NotebookDocumentSyncClientCapabilities) s
forall s a. HasNotebookDocument s a => Lens' s a
Lens' s (Maybe NotebookDocumentClientCapabilities)
L.notebookDocument ((Maybe NotebookDocumentClientCapabilities
  -> Const
       (Maybe NotebookDocumentSyncClientCapabilities)
       (Maybe NotebookDocumentClientCapabilities))
 -> s -> Const (Maybe NotebookDocumentSyncClientCapabilities) s)
-> ((Maybe NotebookDocumentSyncClientCapabilities
     -> Const
          (Maybe NotebookDocumentSyncClientCapabilities)
          (Maybe NotebookDocumentSyncClientCapabilities))
    -> Maybe NotebookDocumentClientCapabilities
    -> Const
         (Maybe NotebookDocumentSyncClientCapabilities)
         (Maybe NotebookDocumentClientCapabilities))
-> Getting
     (Maybe NotebookDocumentSyncClientCapabilities)
     s
     (Maybe NotebookDocumentSyncClientCapabilities)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. NotebookDocumentClientCapabilities
-> Iso'
     (Maybe NotebookDocumentClientCapabilities)
     NotebookDocumentClientCapabilities
forall a. Eq a => a -> Iso' (Maybe a) a
non NotebookDocumentClientCapabilities
emptyNotebookDocumentClientCaps ((NotebookDocumentClientCapabilities
  -> Const
       (Maybe NotebookDocumentSyncClientCapabilities)
       NotebookDocumentClientCapabilities)
 -> Maybe NotebookDocumentClientCapabilities
 -> Const
      (Maybe NotebookDocumentSyncClientCapabilities)
      (Maybe NotebookDocumentClientCapabilities))
-> ((Maybe NotebookDocumentSyncClientCapabilities
     -> Const
          (Maybe NotebookDocumentSyncClientCapabilities)
          (Maybe NotebookDocumentSyncClientCapabilities))
    -> NotebookDocumentClientCapabilities
    -> Const
         (Maybe NotebookDocumentSyncClientCapabilities)
         NotebookDocumentClientCapabilities)
-> (Maybe NotebookDocumentSyncClientCapabilities
    -> Const
         (Maybe NotebookDocumentSyncClientCapabilities)
         (Maybe NotebookDocumentSyncClientCapabilities))
-> Maybe NotebookDocumentClientCapabilities
-> Const
     (Maybe NotebookDocumentSyncClientCapabilities)
     (Maybe NotebookDocumentClientCapabilities)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (NotebookDocumentSyncClientCapabilities
 -> Const
      (Maybe NotebookDocumentSyncClientCapabilities)
      NotebookDocumentSyncClientCapabilities)
-> NotebookDocumentClientCapabilities
-> Const
     (Maybe NotebookDocumentSyncClientCapabilities)
     NotebookDocumentClientCapabilities
forall s a. HasSynchronization s a => Lens' s a
Lens'
  NotebookDocumentClientCapabilities
  NotebookDocumentSyncClientCapabilities
L.synchronization ((NotebookDocumentSyncClientCapabilities
  -> Const
       (Maybe NotebookDocumentSyncClientCapabilities)
       NotebookDocumentSyncClientCapabilities)
 -> NotebookDocumentClientCapabilities
 -> Const
      (Maybe NotebookDocumentSyncClientCapabilities)
      NotebookDocumentClientCapabilities)
-> ((Maybe NotebookDocumentSyncClientCapabilities
     -> Const
          (Maybe NotebookDocumentSyncClientCapabilities)
          (Maybe NotebookDocumentSyncClientCapabilities))
    -> NotebookDocumentSyncClientCapabilities
    -> Const
         (Maybe NotebookDocumentSyncClientCapabilities)
         NotebookDocumentSyncClientCapabilities)
-> (Maybe NotebookDocumentSyncClientCapabilities
    -> Const
         (Maybe NotebookDocumentSyncClientCapabilities)
         (Maybe NotebookDocumentSyncClientCapabilities))
-> NotebookDocumentClientCapabilities
-> Const
     (Maybe NotebookDocumentSyncClientCapabilities)
     NotebookDocumentClientCapabilities
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (NotebookDocumentSyncClientCapabilities
 -> Maybe NotebookDocumentSyncClientCapabilities)
-> (Maybe NotebookDocumentSyncClientCapabilities
    -> Const
         (Maybe NotebookDocumentSyncClientCapabilities)
         (Maybe NotebookDocumentSyncClientCapabilities))
-> NotebookDocumentSyncClientCapabilities
-> Const
     (Maybe NotebookDocumentSyncClientCapabilities)
     NotebookDocumentSyncClientCapabilities
forall (p :: * -> * -> *) (f :: * -> *) s a.
(Profunctor p, Contravariant f) =>
(s -> a) -> Optic' p f s a
to NotebookDocumentSyncClientCapabilities
-> Maybe NotebookDocumentSyncClientCapabilities
forall a. a -> Maybe a
Just
    s :: a -> Maybe NotebookDocumentSyncClientCapabilities -> a
s a
c Maybe NotebookDocumentSyncClientCapabilities
Nothing = a
c a -> (a -> a) -> a
forall a b. a -> (a -> b) -> b
& (Maybe NotebookDocumentClientCapabilities
 -> Identity (Maybe NotebookDocumentClientCapabilities))
-> a -> Identity a
forall s a. HasNotebookDocument s a => Lens' s a
Lens' a (Maybe NotebookDocumentClientCapabilities)
L.notebookDocument ((Maybe NotebookDocumentClientCapabilities
  -> Identity (Maybe NotebookDocumentClientCapabilities))
 -> a -> Identity a)
-> Maybe NotebookDocumentClientCapabilities -> a -> a
forall s t a b. ASetter s t a b -> b -> s -> t
.~ Maybe NotebookDocumentClientCapabilities
forall a. Maybe a
Nothing
    s a
c (Just NotebookDocumentSyncClientCapabilities
v) = a
c a -> (a -> a) -> a
forall a b. a -> (a -> b) -> b
& (Maybe NotebookDocumentClientCapabilities
 -> Identity (Maybe NotebookDocumentClientCapabilities))
-> a -> Identity a
forall s a. HasNotebookDocument s a => Lens' s a
Lens' a (Maybe NotebookDocumentClientCapabilities)
L.notebookDocument ((Maybe NotebookDocumentClientCapabilities
  -> Identity (Maybe NotebookDocumentClientCapabilities))
 -> a -> Identity a)
-> ((NotebookDocumentSyncClientCapabilities
     -> Identity NotebookDocumentSyncClientCapabilities)
    -> Maybe NotebookDocumentClientCapabilities
    -> Identity (Maybe NotebookDocumentClientCapabilities))
-> (NotebookDocumentSyncClientCapabilities
    -> Identity NotebookDocumentSyncClientCapabilities)
-> a
-> Identity a
forall b c a. (b -> c) -> (a -> b) -> a -> c
. NotebookDocumentClientCapabilities
-> Iso'
     (Maybe NotebookDocumentClientCapabilities)
     NotebookDocumentClientCapabilities
forall a. Eq a => a -> Iso' (Maybe a) a
non NotebookDocumentClientCapabilities
emptyNotebookDocumentClientCaps ((NotebookDocumentClientCapabilities
  -> Identity NotebookDocumentClientCapabilities)
 -> Maybe NotebookDocumentClientCapabilities
 -> Identity (Maybe NotebookDocumentClientCapabilities))
-> ((NotebookDocumentSyncClientCapabilities
     -> Identity NotebookDocumentSyncClientCapabilities)
    -> NotebookDocumentClientCapabilities
    -> Identity NotebookDocumentClientCapabilities)
-> (NotebookDocumentSyncClientCapabilities
    -> Identity NotebookDocumentSyncClientCapabilities)
-> Maybe NotebookDocumentClientCapabilities
-> Identity (Maybe NotebookDocumentClientCapabilities)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (NotebookDocumentSyncClientCapabilities
 -> Identity NotebookDocumentSyncClientCapabilities)
-> NotebookDocumentClientCapabilities
-> Identity NotebookDocumentClientCapabilities
forall s a. HasSynchronization s a => Lens' s a
Lens'
  NotebookDocumentClientCapabilities
  NotebookDocumentSyncClientCapabilities
L.synchronization ((NotebookDocumentSyncClientCapabilities
  -> Identity NotebookDocumentSyncClientCapabilities)
 -> a -> Identity a)
-> NotebookDocumentSyncClientCapabilities -> a -> a
forall s t a b. ASetter s t a b -> b -> s -> t
.~ NotebookDocumentSyncClientCapabilities
v

-- TODO: can we do this generically somehow?

{- | Whether the client supports dynamic registration for the given method.

Note that here we only consider the "main" method against which you dynamically register, so
even though e.g. we associate the client capabilities for code lenses with `codeLens/resolve`,
we don't ever say that you can dynamically register `codeLens/resolve`, because you in fact
need to register `textDocument/codeLens`.
-}
dynamicRegistrationSupported :: SMethod m -> ClientCapabilities -> Bool
dynamicRegistrationSupported :: forall {f :: MessageDirection} {t :: MessageKind}
       (m :: Method f t).
SMethod m -> ClientCapabilities -> Bool
dynamicRegistrationSupported SMethod m
m ClientCapabilities
caps = Bool -> Maybe Bool -> Bool
forall a. a -> Maybe a -> a
fromMaybe Bool
False (Maybe Bool -> Bool) -> Maybe Bool -> Bool
forall a b. (a -> b) -> a -> b
$ case SMethod m
m of
  SMethod m
SMethod_WorkspaceDidChangeConfiguration -> ClientCapabilities
caps ClientCapabilities
-> Getting (First Bool) ClientCapabilities Bool -> Maybe Bool
forall s a. s -> Getting (First a) s a -> Maybe a
^? SMethod m -> Traversal' ClientCapabilities Bool
forall {f :: MessageDirection} {t :: MessageKind}
       (m :: Method f t).
HasDynamicRegistration (ClientCapability m) (Maybe Bool) =>
SMethod m -> Traversal' ClientCapabilities Bool
dyn SMethod m
m
  SMethod m
SMethod_WorkspaceDidChangeWatchedFiles -> ClientCapabilities
caps ClientCapabilities
-> Getting (First Bool) ClientCapabilities Bool -> Maybe Bool
forall s a. s -> Getting (First a) s a -> Maybe a
^? SMethod m -> Traversal' ClientCapabilities Bool
forall {f :: MessageDirection} {t :: MessageKind}
       (m :: Method f t).
HasDynamicRegistration (ClientCapability m) (Maybe Bool) =>
SMethod m -> Traversal' ClientCapabilities Bool
dyn SMethod m
m
  SMethod m
SMethod_WorkspaceSymbol -> ClientCapabilities
caps ClientCapabilities
-> Getting (First Bool) ClientCapabilities Bool -> Maybe Bool
forall s a. s -> Getting (First a) s a -> Maybe a
^? SMethod m -> Traversal' ClientCapabilities Bool
forall {f :: MessageDirection} {t :: MessageKind}
       (m :: Method f t).
HasDynamicRegistration (ClientCapability m) (Maybe Bool) =>
SMethod m -> Traversal' ClientCapabilities Bool
dyn SMethod m
m
  SMethod m
SMethod_WorkspaceExecuteCommand -> ClientCapabilities
caps ClientCapabilities
-> Getting (First Bool) ClientCapabilities Bool -> Maybe Bool
forall s a. s -> Getting (First a) s a -> Maybe a
^? SMethod m -> Traversal' ClientCapabilities Bool
forall {f :: MessageDirection} {t :: MessageKind}
       (m :: Method f t).
HasDynamicRegistration (ClientCapability m) (Maybe Bool) =>
SMethod m -> Traversal' ClientCapabilities Bool
dyn SMethod m
m
  SMethod m
SMethod_WorkspaceWillCreateFiles -> ClientCapabilities
caps ClientCapabilities
-> Getting (First Bool) ClientCapabilities Bool -> Maybe Bool
forall s a. s -> Getting (First a) s a -> Maybe a
^? SMethod m -> Traversal' ClientCapabilities Bool
forall {f :: MessageDirection} {t :: MessageKind}
       (m :: Method f t).
HasDynamicRegistration (ClientCapability m) (Maybe Bool) =>
SMethod m -> Traversal' ClientCapabilities Bool
dyn SMethod m
m
  SMethod m
SMethod_WorkspaceDidCreateFiles -> ClientCapabilities
caps ClientCapabilities
-> Getting (First Bool) ClientCapabilities Bool -> Maybe Bool
forall s a. s -> Getting (First a) s a -> Maybe a
^? SMethod m -> Traversal' ClientCapabilities Bool
forall {f :: MessageDirection} {t :: MessageKind}
       (m :: Method f t).
HasDynamicRegistration (ClientCapability m) (Maybe Bool) =>
SMethod m -> Traversal' ClientCapabilities Bool
dyn SMethod m
m
  SMethod m
SMethod_WorkspaceWillDeleteFiles -> ClientCapabilities
caps ClientCapabilities
-> Getting (First Bool) ClientCapabilities Bool -> Maybe Bool
forall s a. s -> Getting (First a) s a -> Maybe a
^? SMethod m -> Traversal' ClientCapabilities Bool
forall {f :: MessageDirection} {t :: MessageKind}
       (m :: Method f t).
HasDynamicRegistration (ClientCapability m) (Maybe Bool) =>
SMethod m -> Traversal' ClientCapabilities Bool
dyn SMethod m
m
  SMethod m
SMethod_WorkspaceDidDeleteFiles -> ClientCapabilities
caps ClientCapabilities
-> Getting (First Bool) ClientCapabilities Bool -> Maybe Bool
forall s a. s -> Getting (First a) s a -> Maybe a
^? SMethod m -> Traversal' ClientCapabilities Bool
forall {f :: MessageDirection} {t :: MessageKind}
       (m :: Method f t).
HasDynamicRegistration (ClientCapability m) (Maybe Bool) =>
SMethod m -> Traversal' ClientCapabilities Bool
dyn SMethod m
m
  SMethod m
SMethod_TextDocumentDidOpen -> ClientCapabilities
caps ClientCapabilities
-> Getting (First Bool) ClientCapabilities Bool -> Maybe Bool
forall s a. s -> Getting (First a) s a -> Maybe a
^? SMethod m -> Traversal' ClientCapabilities Bool
forall {f :: MessageDirection} {t :: MessageKind}
       (m :: Method f t).
HasDynamicRegistration (ClientCapability m) (Maybe Bool) =>
SMethod m -> Traversal' ClientCapabilities Bool
dyn SMethod m
m
  SMethod m
SMethod_TextDocumentDidChange -> ClientCapabilities
caps ClientCapabilities
-> Getting (First Bool) ClientCapabilities Bool -> Maybe Bool
forall s a. s -> Getting (First a) s a -> Maybe a
^? SMethod m -> Traversal' ClientCapabilities Bool
forall {f :: MessageDirection} {t :: MessageKind}
       (m :: Method f t).
HasDynamicRegistration (ClientCapability m) (Maybe Bool) =>
SMethod m -> Traversal' ClientCapabilities Bool
dyn SMethod m
m
  SMethod m
SMethod_TextDocumentDidClose -> ClientCapabilities
caps ClientCapabilities
-> Getting (First Bool) ClientCapabilities Bool -> Maybe Bool
forall s a. s -> Getting (First a) s a -> Maybe a
^? SMethod m -> Traversal' ClientCapabilities Bool
forall {f :: MessageDirection} {t :: MessageKind}
       (m :: Method f t).
HasDynamicRegistration (ClientCapability m) (Maybe Bool) =>
SMethod m -> Traversal' ClientCapabilities Bool
dyn SMethod m
m
  SMethod m
SMethod_TextDocumentCompletion -> ClientCapabilities
caps ClientCapabilities
-> Getting (First Bool) ClientCapabilities Bool -> Maybe Bool
forall s a. s -> Getting (First a) s a -> Maybe a
^? SMethod m -> Traversal' ClientCapabilities Bool
forall {f :: MessageDirection} {t :: MessageKind}
       (m :: Method f t).
HasDynamicRegistration (ClientCapability m) (Maybe Bool) =>
SMethod m -> Traversal' ClientCapabilities Bool
dyn SMethod m
m
  SMethod m
SMethod_TextDocumentHover -> ClientCapabilities
caps ClientCapabilities
-> Getting (First Bool) ClientCapabilities Bool -> Maybe Bool
forall s a. s -> Getting (First a) s a -> Maybe a
^? SMethod m -> Traversal' ClientCapabilities Bool
forall {f :: MessageDirection} {t :: MessageKind}
       (m :: Method f t).
HasDynamicRegistration (ClientCapability m) (Maybe Bool) =>
SMethod m -> Traversal' ClientCapabilities Bool
dyn SMethod m
m
  SMethod m
SMethod_TextDocumentSignatureHelp -> ClientCapabilities
caps ClientCapabilities
-> Getting (First Bool) ClientCapabilities Bool -> Maybe Bool
forall s a. s -> Getting (First a) s a -> Maybe a
^? SMethod m -> Traversal' ClientCapabilities Bool
forall {f :: MessageDirection} {t :: MessageKind}
       (m :: Method f t).
HasDynamicRegistration (ClientCapability m) (Maybe Bool) =>
SMethod m -> Traversal' ClientCapabilities Bool
dyn SMethod m
m
  SMethod m
SMethod_TextDocumentDeclaration -> ClientCapabilities
caps ClientCapabilities
-> Getting (First Bool) ClientCapabilities Bool -> Maybe Bool
forall s a. s -> Getting (First a) s a -> Maybe a
^? SMethod m -> Traversal' ClientCapabilities Bool
forall {f :: MessageDirection} {t :: MessageKind}
       (m :: Method f t).
HasDynamicRegistration (ClientCapability m) (Maybe Bool) =>
SMethod m -> Traversal' ClientCapabilities Bool
dyn SMethod m
m
  SMethod m
SMethod_TextDocumentDefinition -> ClientCapabilities
caps ClientCapabilities
-> Getting (First Bool) ClientCapabilities Bool -> Maybe Bool
forall s a. s -> Getting (First a) s a -> Maybe a
^? SMethod m -> Traversal' ClientCapabilities Bool
forall {f :: MessageDirection} {t :: MessageKind}
       (m :: Method f t).
HasDynamicRegistration (ClientCapability m) (Maybe Bool) =>
SMethod m -> Traversal' ClientCapabilities Bool
dyn SMethod m
m
  SMethod m
SMethod_TextDocumentTypeDefinition -> ClientCapabilities
caps ClientCapabilities
-> Getting (First Bool) ClientCapabilities Bool -> Maybe Bool
forall s a. s -> Getting (First a) s a -> Maybe a
^? SMethod m -> Traversal' ClientCapabilities Bool
forall {f :: MessageDirection} {t :: MessageKind}
       (m :: Method f t).
HasDynamicRegistration (ClientCapability m) (Maybe Bool) =>
SMethod m -> Traversal' ClientCapabilities Bool
dyn SMethod m
m
  SMethod m
SMethod_TextDocumentImplementation -> ClientCapabilities
caps ClientCapabilities
-> Getting (First Bool) ClientCapabilities Bool -> Maybe Bool
forall s a. s -> Getting (First a) s a -> Maybe a
^? SMethod m -> Traversal' ClientCapabilities Bool
forall {f :: MessageDirection} {t :: MessageKind}
       (m :: Method f t).
HasDynamicRegistration (ClientCapability m) (Maybe Bool) =>
SMethod m -> Traversal' ClientCapabilities Bool
dyn SMethod m
m
  SMethod m
SMethod_TextDocumentReferences -> ClientCapabilities
caps ClientCapabilities
-> Getting (First Bool) ClientCapabilities Bool -> Maybe Bool
forall s a. s -> Getting (First a) s a -> Maybe a
^? SMethod m -> Traversal' ClientCapabilities Bool
forall {f :: MessageDirection} {t :: MessageKind}
       (m :: Method f t).
HasDynamicRegistration (ClientCapability m) (Maybe Bool) =>
SMethod m -> Traversal' ClientCapabilities Bool
dyn SMethod m
m
  SMethod m
SMethod_TextDocumentDocumentHighlight -> ClientCapabilities
caps ClientCapabilities
-> Getting (First Bool) ClientCapabilities Bool -> Maybe Bool
forall s a. s -> Getting (First a) s a -> Maybe a
^? SMethod m -> Traversal' ClientCapabilities Bool
forall {f :: MessageDirection} {t :: MessageKind}
       (m :: Method f t).
HasDynamicRegistration (ClientCapability m) (Maybe Bool) =>
SMethod m -> Traversal' ClientCapabilities Bool
dyn SMethod m
m
  SMethod m
SMethod_TextDocumentDocumentSymbol -> ClientCapabilities
caps ClientCapabilities
-> Getting (First Bool) ClientCapabilities Bool -> Maybe Bool
forall s a. s -> Getting (First a) s a -> Maybe a
^? SMethod m -> Traversal' ClientCapabilities Bool
forall {f :: MessageDirection} {t :: MessageKind}
       (m :: Method f t).
HasDynamicRegistration (ClientCapability m) (Maybe Bool) =>
SMethod m -> Traversal' ClientCapabilities Bool
dyn SMethod m
m
  SMethod m
SMethod_TextDocumentCodeAction -> ClientCapabilities
caps ClientCapabilities
-> Getting (First Bool) ClientCapabilities Bool -> Maybe Bool
forall s a. s -> Getting (First a) s a -> Maybe a
^? SMethod m -> Traversal' ClientCapabilities Bool
forall {f :: MessageDirection} {t :: MessageKind}
       (m :: Method f t).
HasDynamicRegistration (ClientCapability m) (Maybe Bool) =>
SMethod m -> Traversal' ClientCapabilities Bool
dyn SMethod m
m
  SMethod m
SMethod_TextDocumentCodeLens -> ClientCapabilities
caps ClientCapabilities
-> Getting (First Bool) ClientCapabilities Bool -> Maybe Bool
forall s a. s -> Getting (First a) s a -> Maybe a
^? SMethod m -> Traversal' ClientCapabilities Bool
forall {f :: MessageDirection} {t :: MessageKind}
       (m :: Method f t).
HasDynamicRegistration (ClientCapability m) (Maybe Bool) =>
SMethod m -> Traversal' ClientCapabilities Bool
dyn SMethod m
m
  SMethod m
SMethod_TextDocumentDocumentLink -> ClientCapabilities
caps ClientCapabilities
-> Getting (First Bool) ClientCapabilities Bool -> Maybe Bool
forall s a. s -> Getting (First a) s a -> Maybe a
^? SMethod m -> Traversal' ClientCapabilities Bool
forall {f :: MessageDirection} {t :: MessageKind}
       (m :: Method f t).
HasDynamicRegistration (ClientCapability m) (Maybe Bool) =>
SMethod m -> Traversal' ClientCapabilities Bool
dyn SMethod m
m
  SMethod m
SMethod_TextDocumentDocumentColor -> ClientCapabilities
caps ClientCapabilities
-> Getting (First Bool) ClientCapabilities Bool -> Maybe Bool
forall s a. s -> Getting (First a) s a -> Maybe a
^? SMethod m -> Traversal' ClientCapabilities Bool
forall {f :: MessageDirection} {t :: MessageKind}
       (m :: Method f t).
HasDynamicRegistration (ClientCapability m) (Maybe Bool) =>
SMethod m -> Traversal' ClientCapabilities Bool
dyn SMethod m
m
  SMethod m
SMethod_TextDocumentColorPresentation -> ClientCapabilities
caps ClientCapabilities
-> Getting (First Bool) ClientCapabilities Bool -> Maybe Bool
forall s a. s -> Getting (First a) s a -> Maybe a
^? SMethod m -> Traversal' ClientCapabilities Bool
forall {f :: MessageDirection} {t :: MessageKind}
       (m :: Method f t).
HasDynamicRegistration (ClientCapability m) (Maybe Bool) =>
SMethod m -> Traversal' ClientCapabilities Bool
dyn SMethod m
m
  SMethod m
SMethod_TextDocumentFormatting -> ClientCapabilities
caps ClientCapabilities
-> Getting (First Bool) ClientCapabilities Bool -> Maybe Bool
forall s a. s -> Getting (First a) s a -> Maybe a
^? SMethod m -> Traversal' ClientCapabilities Bool
forall {f :: MessageDirection} {t :: MessageKind}
       (m :: Method f t).
HasDynamicRegistration (ClientCapability m) (Maybe Bool) =>
SMethod m -> Traversal' ClientCapabilities Bool
dyn SMethod m
m
  SMethod m
SMethod_TextDocumentRangeFormatting -> ClientCapabilities
caps ClientCapabilities
-> Getting (First Bool) ClientCapabilities Bool -> Maybe Bool
forall s a. s -> Getting (First a) s a -> Maybe a
^? SMethod m -> Traversal' ClientCapabilities Bool
forall {f :: MessageDirection} {t :: MessageKind}
       (m :: Method f t).
HasDynamicRegistration (ClientCapability m) (Maybe Bool) =>
SMethod m -> Traversal' ClientCapabilities Bool
dyn SMethod m
m
  SMethod m
SMethod_TextDocumentOnTypeFormatting -> ClientCapabilities
caps ClientCapabilities
-> Getting (First Bool) ClientCapabilities Bool -> Maybe Bool
forall s a. s -> Getting (First a) s a -> Maybe a
^? SMethod m -> Traversal' ClientCapabilities Bool
forall {f :: MessageDirection} {t :: MessageKind}
       (m :: Method f t).
HasDynamicRegistration (ClientCapability m) (Maybe Bool) =>
SMethod m -> Traversal' ClientCapabilities Bool
dyn SMethod m
m
  SMethod m
SMethod_TextDocumentRename -> ClientCapabilities
caps ClientCapabilities
-> Getting (First Bool) ClientCapabilities Bool -> Maybe Bool
forall s a. s -> Getting (First a) s a -> Maybe a
^? SMethod m -> Traversal' ClientCapabilities Bool
forall {f :: MessageDirection} {t :: MessageKind}
       (m :: Method f t).
HasDynamicRegistration (ClientCapability m) (Maybe Bool) =>
SMethod m -> Traversal' ClientCapabilities Bool
dyn SMethod m
m
  SMethod m
SMethod_TextDocumentFoldingRange -> ClientCapabilities
caps ClientCapabilities
-> Getting (First Bool) ClientCapabilities Bool -> Maybe Bool
forall s a. s -> Getting (First a) s a -> Maybe a
^? SMethod m -> Traversal' ClientCapabilities Bool
forall {f :: MessageDirection} {t :: MessageKind}
       (m :: Method f t).
HasDynamicRegistration (ClientCapability m) (Maybe Bool) =>
SMethod m -> Traversal' ClientCapabilities Bool
dyn SMethod m
m
  SMethod m
SMethod_TextDocumentSelectionRange -> ClientCapabilities
caps ClientCapabilities
-> Getting (First Bool) ClientCapabilities Bool -> Maybe Bool
forall s a. s -> Getting (First a) s a -> Maybe a
^? SMethod m -> Traversal' ClientCapabilities Bool
forall {f :: MessageDirection} {t :: MessageKind}
       (m :: Method f t).
HasDynamicRegistration (ClientCapability m) (Maybe Bool) =>
SMethod m -> Traversal' ClientCapabilities Bool
dyn SMethod m
m
  SMethod m
SMethod_TextDocumentLinkedEditingRange -> ClientCapabilities
caps ClientCapabilities
-> Getting (First Bool) ClientCapabilities Bool -> Maybe Bool
forall s a. s -> Getting (First a) s a -> Maybe a
^? SMethod m -> Traversal' ClientCapabilities Bool
forall {f :: MessageDirection} {t :: MessageKind}
       (m :: Method f t).
HasDynamicRegistration (ClientCapability m) (Maybe Bool) =>
SMethod m -> Traversal' ClientCapabilities Bool
dyn SMethod m
m
  SMethod m
SMethod_TextDocumentPrepareCallHierarchy -> ClientCapabilities
caps ClientCapabilities
-> Getting (First Bool) ClientCapabilities Bool -> Maybe Bool
forall s a. s -> Getting (First a) s a -> Maybe a
^? SMethod m -> Traversal' ClientCapabilities Bool
forall {f :: MessageDirection} {t :: MessageKind}
       (m :: Method f t).
HasDynamicRegistration (ClientCapability m) (Maybe Bool) =>
SMethod m -> Traversal' ClientCapabilities Bool
dyn SMethod m
m
  SMethod m
SMethod_TextDocumentInlayHint -> ClientCapabilities
caps ClientCapabilities
-> Getting (First Bool) ClientCapabilities Bool -> Maybe Bool
forall s a. s -> Getting (First a) s a -> Maybe a
^? SMethod m -> Traversal' ClientCapabilities Bool
forall {f :: MessageDirection} {t :: MessageKind}
       (m :: Method f t).
HasDynamicRegistration (ClientCapability m) (Maybe Bool) =>
SMethod m -> Traversal' ClientCapabilities Bool
dyn SMethod m
m
  SMethod m
SMethod_TextDocumentInlineValue -> ClientCapabilities
caps ClientCapabilities
-> Getting (First Bool) ClientCapabilities Bool -> Maybe Bool
forall s a. s -> Getting (First a) s a -> Maybe a
^? SMethod m -> Traversal' ClientCapabilities Bool
forall {f :: MessageDirection} {t :: MessageKind}
       (m :: Method f t).
HasDynamicRegistration (ClientCapability m) (Maybe Bool) =>
SMethod m -> Traversal' ClientCapabilities Bool
dyn SMethod m
m
  SMethod m
SMethod_TextDocumentMoniker -> ClientCapabilities
caps ClientCapabilities
-> Getting (First Bool) ClientCapabilities Bool -> Maybe Bool
forall s a. s -> Getting (First a) s a -> Maybe a
^? SMethod m -> Traversal' ClientCapabilities Bool
forall {f :: MessageDirection} {t :: MessageKind}
       (m :: Method f t).
HasDynamicRegistration (ClientCapability m) (Maybe Bool) =>
SMethod m -> Traversal' ClientCapabilities Bool
dyn SMethod m
m
  SMethod m
SMethod_TextDocumentPrepareTypeHierarchy -> ClientCapabilities
caps ClientCapabilities
-> Getting (First Bool) ClientCapabilities Bool -> Maybe Bool
forall s a. s -> Getting (First a) s a -> Maybe a
^? SMethod m -> Traversal' ClientCapabilities Bool
forall {f :: MessageDirection} {t :: MessageKind}
       (m :: Method f t).
HasDynamicRegistration (ClientCapability m) (Maybe Bool) =>
SMethod m -> Traversal' ClientCapabilities Bool
dyn SMethod m
m
  SMethod m
SMethod_TextDocumentDiagnostic -> ClientCapabilities
caps ClientCapabilities
-> Getting (First Bool) ClientCapabilities Bool -> Maybe Bool
forall s a. s -> Getting (First a) s a -> Maybe a
^? SMethod m -> Traversal' ClientCapabilities Bool
forall {f :: MessageDirection} {t :: MessageKind}
       (m :: Method f t).
HasDynamicRegistration (ClientCapability m) (Maybe Bool) =>
SMethod m -> Traversal' ClientCapabilities Bool
dyn SMethod m
m
  -- semantic tokens is messed up due to it having you register with an otherwise non-existent method
  -- SMethod_TextDocumentSemanticTokens       -> capDyn $ clientCaps ^? L.textDocument . _Just . L.semanticTokens . _Just
  -- Notebook document methods alway support dynamic registration, it seems?
  SMethod m
_ -> Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
 where
  dyn :: L.HasDynamicRegistration (ClientCapability m) (Maybe Bool) => SMethod m -> Traversal' ClientCapabilities Bool
  dyn :: forall {f :: MessageDirection} {t :: MessageKind}
       (m :: Method f t).
HasDynamicRegistration (ClientCapability m) (Maybe Bool) =>
SMethod m -> Traversal' ClientCapabilities Bool
dyn SMethod m
m1 = SMethod m -> Lens' ClientCapabilities (Maybe (ClientCapability m))
forall {f :: MessageDirection} {t :: MessageKind}
       (m :: Method f t).
SMethod m -> Lens' ClientCapabilities (Maybe (ClientCapability m))
clientCapability SMethod m
m1 ((Maybe (ClientCapability m) -> f (Maybe (ClientCapability m)))
 -> ClientCapabilities -> f ClientCapabilities)
-> ((Bool -> f Bool)
    -> Maybe (ClientCapability m) -> f (Maybe (ClientCapability m)))
-> (Bool -> f Bool)
-> ClientCapabilities
-> f ClientCapabilities
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (ClientCapability m -> f (ClientCapability m))
-> Maybe (ClientCapability m) -> f (Maybe (ClientCapability m))
forall a b (p :: * -> * -> *) (f :: * -> *).
(Choice p, Applicative f) =>
p a (f b) -> p (Maybe a) (f (Maybe b))
_Just ((ClientCapability m -> f (ClientCapability m))
 -> Maybe (ClientCapability m) -> f (Maybe (ClientCapability m)))
-> ((Bool -> f Bool)
    -> ClientCapability m -> f (ClientCapability m))
-> (Bool -> f Bool)
-> Maybe (ClientCapability m)
-> f (Maybe (ClientCapability m))
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Maybe Bool -> f (Maybe Bool))
-> ClientCapability m -> f (ClientCapability m)
forall s a. HasDynamicRegistration s a => Lens' s a
Lens' (ClientCapability m) (Maybe Bool)
L.dynamicRegistration ((Maybe Bool -> f (Maybe Bool))
 -> ClientCapability m -> f (ClientCapability m))
-> ((Bool -> f Bool) -> Maybe Bool -> f (Maybe Bool))
-> (Bool -> f Bool)
-> ClientCapability m
-> f (ClientCapability m)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Bool -> f Bool) -> Maybe Bool -> f (Maybe Bool)
forall a b (p :: * -> * -> *) (f :: * -> *).
(Choice p, Applicative f) =>
p a (f b) -> p (Maybe a) (f (Maybe b))
_Just

-- | Client capabilities for full support of the current LSP specification.
fullLatestClientCaps :: ClientCapabilities
fullLatestClientCaps :: ClientCapabilities
fullLatestClientCaps = LSPVersion -> ClientCapabilities
fullClientCapsForVersion (Int -> Int -> LSPVersion
LSPVersion Int
forall a. Bounded a => a
maxBound Int
forall a. Bounded a => a
maxBound)

{-
TODO: the "since" conditions are out-of-date/needs an audit
TODO: can we generate this? process the 'since' annotations in the metamodel?
-}

-- | Client capabilities for full support of the LSP specification up until a version.
fullClientCapsForVersion :: LSPVersion -> ClientCapabilities
fullClientCapsForVersion :: LSPVersion -> ClientCapabilities
fullClientCapsForVersion v :: LSPVersion
v@(LSPVersion Int
maj Int
min) = ClientCapabilities
caps
 where
  methCaps :: SMethod m -> Maybe (ClientCapability m)
  methCaps :: forall {f :: MessageDirection} {t :: MessageKind}
       (m :: Method f t).
SMethod m -> Maybe (ClientCapability m)
methCaps = LSPVersion -> SMethod m -> Maybe (ClientCapability m)
forall {f :: MessageDirection} {t :: MessageKind}
       (m :: Method f t).
LSPVersion -> SMethod m -> Maybe (ClientCapability m)
fullClientCapsForVersionAndMethod LSPVersion
v

  caps :: ClientCapabilities
caps =
    ClientCapabilities
      { $sel:_workspace:ClientCapabilities :: Maybe WorkspaceClientCapabilities
_workspace = WorkspaceClientCapabilities -> Maybe WorkspaceClientCapabilities
forall a. a -> Maybe a
Just WorkspaceClientCapabilities
workspace
      , $sel:_textDocument:ClientCapabilities :: Maybe TextDocumentClientCapabilities
_textDocument = TextDocumentClientCapabilities
-> Maybe TextDocumentClientCapabilities
forall a. a -> Maybe a
Just TextDocumentClientCapabilities
td
      , $sel:_window:ClientCapabilities :: Maybe WindowClientCapabilities
_window = WindowClientCapabilities -> Maybe WindowClientCapabilities
forall a. a -> Maybe a
Just WindowClientCapabilities
window
      , $sel:_general:ClientCapabilities :: Maybe GeneralClientCapabilities
_general = Int
-> Int
-> GeneralClientCapabilities
-> Maybe GeneralClientCapabilities
forall a. Int -> Int -> a -> Maybe a
since Int
3 Int
16 GeneralClientCapabilities
general
      , $sel:_notebookDocument:ClientCapabilities :: Maybe NotebookDocumentClientCapabilities
_notebookDocument = NotebookDocumentSyncClientCapabilities
-> NotebookDocumentClientCapabilities
NotebookDocumentClientCapabilities (NotebookDocumentSyncClientCapabilities
 -> NotebookDocumentClientCapabilities)
-> Maybe NotebookDocumentSyncClientCapabilities
-> Maybe NotebookDocumentClientCapabilities
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> SMethod 'Method_NotebookDocumentDidOpen
-> Maybe (ClientCapability 'Method_NotebookDocumentDidOpen)
forall {f :: MessageDirection} {t :: MessageKind}
       (m :: Method f t).
SMethod m -> Maybe (ClientCapability m)
methCaps SMethod 'Method_NotebookDocumentDidOpen
SMethod_NotebookDocumentDidOpen
      , $sel:_experimental:ClientCapabilities :: Maybe Value
_experimental = Maybe Value
forall a. Maybe a
Nothing
      }

  window :: WindowClientCapabilities
window =
    WindowClientCapabilities
      { $sel:_workDoneProgress:WindowClientCapabilities :: Maybe Bool
_workDoneProgress = SMethod 'Method_WindowWorkDoneProgressCreate
-> Maybe (ClientCapability 'Method_WindowWorkDoneProgressCreate)
forall {f :: MessageDirection} {t :: MessageKind}
       (m :: Method f t).
SMethod m -> Maybe (ClientCapability m)
methCaps SMethod 'Method_WindowWorkDoneProgressCreate
SMethod_WindowWorkDoneProgressCreate
      , $sel:_showMessage:WindowClientCapabilities :: Maybe ShowMessageRequestClientCapabilities
_showMessage = SMethod 'Method_WindowShowMessageRequest
-> Maybe (ClientCapability 'Method_WindowShowMessageRequest)
forall {f :: MessageDirection} {t :: MessageKind}
       (m :: Method f t).
SMethod m -> Maybe (ClientCapability m)
methCaps SMethod 'Method_WindowShowMessageRequest
SMethod_WindowShowMessageRequest
      , $sel:_showDocument:WindowClientCapabilities :: Maybe ShowDocumentClientCapabilities
_showDocument = SMethod 'Method_WindowShowDocument
-> Maybe (ClientCapability 'Method_WindowShowDocument)
forall {f :: MessageDirection} {t :: MessageKind}
       (m :: Method f t).
SMethod m -> Maybe (ClientCapability m)
methCaps SMethod 'Method_WindowShowDocument
SMethod_WindowShowDocument
      }

  general :: GeneralClientCapabilities
general =
    GeneralClientCapabilities
      { $sel:_staleRequestSupport:GeneralClientCapabilities :: Maybe StaleRequestSupportOptions
_staleRequestSupport = Int
-> Int
-> StaleRequestSupportOptions
-> Maybe StaleRequestSupportOptions
forall a. Int -> Int -> a -> Maybe a
since Int
3 Int
16 (StaleRequestSupportOptions{$sel:_cancel:StaleRequestSupportOptions :: Bool
_cancel = Bool
True, $sel:_retryOnContentModified:StaleRequestSupportOptions :: [Text]
_retryOnContentModified = []})
      , $sel:_regularExpressions:GeneralClientCapabilities :: Maybe RegularExpressionsClientCapabilities
_regularExpressions = Int
-> Int
-> RegularExpressionsClientCapabilities
-> Maybe RegularExpressionsClientCapabilities
forall a. Int -> Int -> a -> Maybe a
since Int
3 Int
16 (RegularExpressionsClientCapabilities
 -> Maybe RegularExpressionsClientCapabilities)
-> RegularExpressionsClientCapabilities
-> Maybe RegularExpressionsClientCapabilities
forall a b. (a -> b) -> a -> b
$ RegularExpressionEngineKind
-> Maybe Text -> RegularExpressionsClientCapabilities
RegularExpressionsClientCapabilities (Text -> RegularExpressionEngineKind
RegularExpressionEngineKind Text
"") Maybe Text
forall a. Maybe a
Nothing
      , $sel:_markdown:GeneralClientCapabilities :: Maybe MarkdownClientCapabilities
_markdown = Int
-> Int
-> MarkdownClientCapabilities
-> Maybe MarkdownClientCapabilities
forall a. Int -> Int -> a -> Maybe a
since Int
3 Int
16 (MarkdownClientCapabilities -> Maybe MarkdownClientCapabilities)
-> MarkdownClientCapabilities -> Maybe MarkdownClientCapabilities
forall a b. (a -> b) -> a -> b
$ Text -> Maybe Text -> Maybe [Text] -> MarkdownClientCapabilities
MarkdownClientCapabilities Text
"" Maybe Text
forall a. Maybe a
Nothing ([Text] -> Maybe [Text]
forall a. a -> Maybe a
Just [])
      , $sel:_positionEncodings:GeneralClientCapabilities :: Maybe [PositionEncodingKind]
_positionEncodings = Int
-> Int -> [PositionEncodingKind] -> Maybe [PositionEncodingKind]
forall a. Int -> Int -> a -> Maybe a
since Int
3 Int
17 [PositionEncodingKind
PositionEncodingKind_UTF16]
      }

  workspace :: WorkspaceClientCapabilities
workspace =
    WorkspaceClientCapabilities
      { $sel:_applyEdit:WorkspaceClientCapabilities :: Maybe Bool
_applyEdit = SMethod 'Method_WorkspaceApplyEdit
-> Maybe (ClientCapability 'Method_WorkspaceApplyEdit)
forall {f :: MessageDirection} {t :: MessageKind}
       (m :: Method f t).
SMethod m -> Maybe (ClientCapability m)
methCaps SMethod 'Method_WorkspaceApplyEdit
SMethod_WorkspaceApplyEdit
      , $sel:_workspaceEdit:WorkspaceClientCapabilities :: Maybe WorkspaceEditClientCapabilities
_workspaceEdit =
          WorkspaceEditClientCapabilities
-> Maybe WorkspaceEditClientCapabilities
forall a. a -> Maybe a
Just
            ( Maybe Bool
-> Maybe [ResourceOperationKind]
-> Maybe FailureHandlingKind
-> Maybe Bool
-> Maybe ChangeAnnotationsSupportOptions
-> WorkspaceEditClientCapabilities
WorkspaceEditClientCapabilities
                (Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
True)
                (Int
-> Int -> [ResourceOperationKind] -> Maybe [ResourceOperationKind]
forall a. Int -> Int -> a -> Maybe a
since Int
3 Int
13 [ResourceOperationKind
ResourceOperationKind_Create, ResourceOperationKind
ResourceOperationKind_Delete, ResourceOperationKind
ResourceOperationKind_Rename])
                Maybe FailureHandlingKind
forall a. Maybe a
Nothing
                (Int -> Int -> Bool -> Maybe Bool
forall a. Int -> Int -> a -> Maybe a
since Int
3 Int
16 Bool
True)
                (Int
-> Int
-> ChangeAnnotationsSupportOptions
-> Maybe ChangeAnnotationsSupportOptions
forall a. Int -> Int -> a -> Maybe a
since Int
3 Int
16 (ChangeAnnotationsSupportOptions{$sel:_groupsOnLabel:ChangeAnnotationsSupportOptions :: Maybe Bool
_groupsOnLabel = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
True}))
            )
      , $sel:_didChangeConfiguration:WorkspaceClientCapabilities :: Maybe DidChangeConfigurationClientCapabilities
_didChangeConfiguration = SMethod 'Method_WorkspaceDidChangeConfiguration
-> Maybe (ClientCapability 'Method_WorkspaceDidChangeConfiguration)
forall {f :: MessageDirection} {t :: MessageKind}
       (m :: Method f t).
SMethod m -> Maybe (ClientCapability m)
methCaps SMethod 'Method_WorkspaceDidChangeConfiguration
SMethod_WorkspaceDidChangeConfiguration
      , $sel:_didChangeWatchedFiles:WorkspaceClientCapabilities :: Maybe DidChangeWatchedFilesClientCapabilities
_didChangeWatchedFiles = SMethod 'Method_WorkspaceDidChangeWatchedFiles
-> Maybe (ClientCapability 'Method_WorkspaceDidChangeWatchedFiles)
forall {f :: MessageDirection} {t :: MessageKind}
       (m :: Method f t).
SMethod m -> Maybe (ClientCapability m)
methCaps SMethod 'Method_WorkspaceDidChangeWatchedFiles
SMethod_WorkspaceDidChangeWatchedFiles
      , $sel:_symbol:WorkspaceClientCapabilities :: Maybe WorkspaceSymbolClientCapabilities
_symbol = SMethod 'Method_WorkspaceSymbol
-> Maybe (ClientCapability 'Method_WorkspaceSymbol)
forall {f :: MessageDirection} {t :: MessageKind}
       (m :: Method f t).
SMethod m -> Maybe (ClientCapability m)
methCaps SMethod 'Method_WorkspaceSymbol
SMethod_WorkspaceSymbol
      , $sel:_executeCommand:WorkspaceClientCapabilities :: Maybe ExecuteCommandClientCapabilities
_executeCommand = SMethod 'Method_WorkspaceExecuteCommand
-> Maybe (ClientCapability 'Method_WorkspaceExecuteCommand)
forall {f :: MessageDirection} {t :: MessageKind}
       (m :: Method f t).
SMethod m -> Maybe (ClientCapability m)
methCaps SMethod 'Method_WorkspaceExecuteCommand
SMethod_WorkspaceExecuteCommand
      , $sel:_codeLens:WorkspaceClientCapabilities :: Maybe CodeLensWorkspaceClientCapabilities
_codeLens = SMethod 'Method_WorkspaceCodeLensRefresh
-> Maybe (ClientCapability 'Method_WorkspaceCodeLensRefresh)
forall {f :: MessageDirection} {t :: MessageKind}
       (m :: Method f t).
SMethod m -> Maybe (ClientCapability m)
methCaps SMethod 'Method_WorkspaceCodeLensRefresh
SMethod_WorkspaceCodeLensRefresh
      , $sel:_workspaceFolders:WorkspaceClientCapabilities :: Maybe Bool
_workspaceFolders = SMethod 'Method_WorkspaceWorkspaceFolders
-> Maybe (ClientCapability 'Method_WorkspaceWorkspaceFolders)
forall {f :: MessageDirection} {t :: MessageKind}
       (m :: Method f t).
SMethod m -> Maybe (ClientCapability m)
methCaps SMethod 'Method_WorkspaceWorkspaceFolders
SMethod_WorkspaceWorkspaceFolders
      , $sel:_configuration:WorkspaceClientCapabilities :: Maybe Bool
_configuration = SMethod 'Method_WorkspaceConfiguration
-> Maybe (ClientCapability 'Method_WorkspaceConfiguration)
forall {f :: MessageDirection} {t :: MessageKind}
       (m :: Method f t).
SMethod m -> Maybe (ClientCapability m)
methCaps SMethod 'Method_WorkspaceConfiguration
SMethod_WorkspaceConfiguration
      , $sel:_semanticTokens:WorkspaceClientCapabilities :: Maybe SemanticTokensWorkspaceClientCapabilities
_semanticTokens = SMethod 'Method_WorkspaceSemanticTokensRefresh
-> Maybe (ClientCapability 'Method_WorkspaceSemanticTokensRefresh)
forall {f :: MessageDirection} {t :: MessageKind}
       (m :: Method f t).
SMethod m -> Maybe (ClientCapability m)
methCaps SMethod 'Method_WorkspaceSemanticTokensRefresh
SMethod_WorkspaceSemanticTokensRefresh
      , $sel:_inlayHint:WorkspaceClientCapabilities :: Maybe InlayHintWorkspaceClientCapabilities
_inlayHint = SMethod 'Method_WorkspaceInlayHintRefresh
-> Maybe (ClientCapability 'Method_WorkspaceInlayHintRefresh)
forall {f :: MessageDirection} {t :: MessageKind}
       (m :: Method f t).
SMethod m -> Maybe (ClientCapability m)
methCaps SMethod 'Method_WorkspaceInlayHintRefresh
SMethod_WorkspaceInlayHintRefresh
      , $sel:_fileOperations:WorkspaceClientCapabilities :: Maybe FileOperationClientCapabilities
_fileOperations = SMethod 'Method_WorkspaceDidCreateFiles
-> Maybe (ClientCapability 'Method_WorkspaceDidCreateFiles)
forall {f :: MessageDirection} {t :: MessageKind}
       (m :: Method f t).
SMethod m -> Maybe (ClientCapability m)
methCaps SMethod 'Method_WorkspaceDidCreateFiles
SMethod_WorkspaceDidCreateFiles
      , $sel:_inlineValue:WorkspaceClientCapabilities :: Maybe InlineValueWorkspaceClientCapabilities
_inlineValue = SMethod 'Method_WorkspaceInlineValueRefresh
-> Maybe (ClientCapability 'Method_WorkspaceInlineValueRefresh)
forall {f :: MessageDirection} {t :: MessageKind}
       (m :: Method f t).
SMethod m -> Maybe (ClientCapability m)
methCaps SMethod 'Method_WorkspaceInlineValueRefresh
SMethod_WorkspaceInlineValueRefresh
      , $sel:_diagnostics:WorkspaceClientCapabilities :: Maybe DiagnosticWorkspaceClientCapabilities
_diagnostics = SMethod 'Method_WorkspaceDiagnostic
-> Maybe (ClientCapability 'Method_WorkspaceDiagnostic)
forall {f :: MessageDirection} {t :: MessageKind}
       (m :: Method f t).
SMethod m -> Maybe (ClientCapability m)
methCaps SMethod 'Method_WorkspaceDiagnostic
SMethod_WorkspaceDiagnostic
      }

  td :: TextDocumentClientCapabilities
td =
    TextDocumentClientCapabilities
      { $sel:_synchronization:TextDocumentClientCapabilities :: Maybe TextDocumentSyncClientCapabilities
_synchronization = SMethod 'Method_TextDocumentDidOpen
-> Maybe (ClientCapability 'Method_TextDocumentDidOpen)
forall {f :: MessageDirection} {t :: MessageKind}
       (m :: Method f t).
SMethod m -> Maybe (ClientCapability m)
methCaps SMethod 'Method_TextDocumentDidOpen
SMethod_TextDocumentDidOpen
      , $sel:_completion:TextDocumentClientCapabilities :: Maybe CompletionClientCapabilities
_completion = SMethod 'Method_TextDocumentCompletion
-> Maybe (ClientCapability 'Method_TextDocumentCompletion)
forall {f :: MessageDirection} {t :: MessageKind}
       (m :: Method f t).
SMethod m -> Maybe (ClientCapability m)
methCaps SMethod 'Method_TextDocumentCompletion
SMethod_TextDocumentCompletion
      , $sel:_hover:TextDocumentClientCapabilities :: Maybe HoverClientCapabilities
_hover = SMethod 'Method_TextDocumentHover
-> Maybe (ClientCapability 'Method_TextDocumentHover)
forall {f :: MessageDirection} {t :: MessageKind}
       (m :: Method f t).
SMethod m -> Maybe (ClientCapability m)
methCaps SMethod 'Method_TextDocumentHover
SMethod_TextDocumentHover
      , $sel:_signatureHelp:TextDocumentClientCapabilities :: Maybe SignatureHelpClientCapabilities
_signatureHelp = SMethod 'Method_TextDocumentSignatureHelp
-> Maybe (ClientCapability 'Method_TextDocumentSignatureHelp)
forall {f :: MessageDirection} {t :: MessageKind}
       (m :: Method f t).
SMethod m -> Maybe (ClientCapability m)
methCaps SMethod 'Method_TextDocumentSignatureHelp
SMethod_TextDocumentSignatureHelp
      , $sel:_references:TextDocumentClientCapabilities :: Maybe ReferenceClientCapabilities
_references = SMethod 'Method_TextDocumentReferences
-> Maybe (ClientCapability 'Method_TextDocumentReferences)
forall {f :: MessageDirection} {t :: MessageKind}
       (m :: Method f t).
SMethod m -> Maybe (ClientCapability m)
methCaps SMethod 'Method_TextDocumentReferences
SMethod_TextDocumentReferences
      , $sel:_documentHighlight:TextDocumentClientCapabilities :: Maybe DocumentHighlightClientCapabilities
_documentHighlight = SMethod 'Method_TextDocumentDocumentHighlight
-> Maybe (ClientCapability 'Method_TextDocumentDocumentHighlight)
forall {f :: MessageDirection} {t :: MessageKind}
       (m :: Method f t).
SMethod m -> Maybe (ClientCapability m)
methCaps SMethod 'Method_TextDocumentDocumentHighlight
SMethod_TextDocumentDocumentHighlight
      , $sel:_documentSymbol:TextDocumentClientCapabilities :: Maybe DocumentSymbolClientCapabilities
_documentSymbol = SMethod 'Method_TextDocumentDocumentSymbol
-> Maybe (ClientCapability 'Method_TextDocumentDocumentSymbol)
forall {f :: MessageDirection} {t :: MessageKind}
       (m :: Method f t).
SMethod m -> Maybe (ClientCapability m)
methCaps SMethod 'Method_TextDocumentDocumentSymbol
SMethod_TextDocumentDocumentSymbol
      , $sel:_formatting:TextDocumentClientCapabilities :: Maybe DocumentFormattingClientCapabilities
_formatting = SMethod 'Method_TextDocumentFormatting
-> Maybe (ClientCapability 'Method_TextDocumentFormatting)
forall {f :: MessageDirection} {t :: MessageKind}
       (m :: Method f t).
SMethod m -> Maybe (ClientCapability m)
methCaps SMethod 'Method_TextDocumentFormatting
SMethod_TextDocumentFormatting
      , $sel:_rangeFormatting:TextDocumentClientCapabilities :: Maybe DocumentRangeFormattingClientCapabilities
_rangeFormatting = SMethod 'Method_TextDocumentRangeFormatting
-> Maybe (ClientCapability 'Method_TextDocumentRangeFormatting)
forall {f :: MessageDirection} {t :: MessageKind}
       (m :: Method f t).
SMethod m -> Maybe (ClientCapability m)
methCaps SMethod 'Method_TextDocumentRangeFormatting
SMethod_TextDocumentRangeFormatting
      , $sel:_onTypeFormatting:TextDocumentClientCapabilities :: Maybe DocumentOnTypeFormattingClientCapabilities
_onTypeFormatting = SMethod 'Method_TextDocumentOnTypeFormatting
-> Maybe (ClientCapability 'Method_TextDocumentOnTypeFormatting)
forall {f :: MessageDirection} {t :: MessageKind}
       (m :: Method f t).
SMethod m -> Maybe (ClientCapability m)
methCaps SMethod 'Method_TextDocumentOnTypeFormatting
SMethod_TextDocumentOnTypeFormatting
      , $sel:_declaration:TextDocumentClientCapabilities :: Maybe DeclarationClientCapabilities
_declaration = SMethod 'Method_TextDocumentDeclaration
-> Maybe (ClientCapability 'Method_TextDocumentDeclaration)
forall {f :: MessageDirection} {t :: MessageKind}
       (m :: Method f t).
SMethod m -> Maybe (ClientCapability m)
methCaps SMethod 'Method_TextDocumentDeclaration
SMethod_TextDocumentDeclaration
      , $sel:_definition:TextDocumentClientCapabilities :: Maybe DefinitionClientCapabilities
_definition = SMethod 'Method_TextDocumentDefinition
-> Maybe (ClientCapability 'Method_TextDocumentDefinition)
forall {f :: MessageDirection} {t :: MessageKind}
       (m :: Method f t).
SMethod m -> Maybe (ClientCapability m)
methCaps SMethod 'Method_TextDocumentDefinition
SMethod_TextDocumentDefinition
      , $sel:_typeDefinition:TextDocumentClientCapabilities :: Maybe TypeDefinitionClientCapabilities
_typeDefinition = SMethod 'Method_TextDocumentTypeDefinition
-> Maybe (ClientCapability 'Method_TextDocumentTypeDefinition)
forall {f :: MessageDirection} {t :: MessageKind}
       (m :: Method f t).
SMethod m -> Maybe (ClientCapability m)
methCaps SMethod 'Method_TextDocumentTypeDefinition
SMethod_TextDocumentTypeDefinition
      , $sel:_implementation:TextDocumentClientCapabilities :: Maybe ImplementationClientCapabilities
_implementation = SMethod 'Method_TextDocumentImplementation
-> Maybe (ClientCapability 'Method_TextDocumentImplementation)
forall {f :: MessageDirection} {t :: MessageKind}
       (m :: Method f t).
SMethod m -> Maybe (ClientCapability m)
methCaps SMethod 'Method_TextDocumentImplementation
SMethod_TextDocumentImplementation
      , $sel:_codeAction:TextDocumentClientCapabilities :: Maybe CodeActionClientCapabilities
_codeAction = SMethod 'Method_TextDocumentCodeAction
-> Maybe (ClientCapability 'Method_TextDocumentCodeAction)
forall {f :: MessageDirection} {t :: MessageKind}
       (m :: Method f t).
SMethod m -> Maybe (ClientCapability m)
methCaps SMethod 'Method_TextDocumentCodeAction
SMethod_TextDocumentCodeAction
      , $sel:_codeLens:TextDocumentClientCapabilities :: Maybe CodeLensClientCapabilities
_codeLens = SMethod 'Method_TextDocumentCodeLens
-> Maybe (ClientCapability 'Method_TextDocumentCodeLens)
forall {f :: MessageDirection} {t :: MessageKind}
       (m :: Method f t).
SMethod m -> Maybe (ClientCapability m)
methCaps SMethod 'Method_TextDocumentCodeLens
SMethod_TextDocumentCodeLens
      , $sel:_documentLink:TextDocumentClientCapabilities :: Maybe DocumentLinkClientCapabilities
_documentLink = SMethod 'Method_TextDocumentDocumentLink
-> Maybe (ClientCapability 'Method_TextDocumentDocumentLink)
forall {f :: MessageDirection} {t :: MessageKind}
       (m :: Method f t).
SMethod m -> Maybe (ClientCapability m)
methCaps SMethod 'Method_TextDocumentDocumentLink
SMethod_TextDocumentDocumentLink
      , $sel:_colorProvider:TextDocumentClientCapabilities :: Maybe DocumentColorClientCapabilities
_colorProvider = SMethod 'Method_TextDocumentDocumentColor
-> Maybe (ClientCapability 'Method_TextDocumentDocumentColor)
forall {f :: MessageDirection} {t :: MessageKind}
       (m :: Method f t).
SMethod m -> Maybe (ClientCapability m)
methCaps SMethod 'Method_TextDocumentDocumentColor
SMethod_TextDocumentDocumentColor
      , $sel:_rename:TextDocumentClientCapabilities :: Maybe RenameClientCapabilities
_rename = SMethod 'Method_TextDocumentRename
-> Maybe (ClientCapability 'Method_TextDocumentRename)
forall {f :: MessageDirection} {t :: MessageKind}
       (m :: Method f t).
SMethod m -> Maybe (ClientCapability m)
methCaps SMethod 'Method_TextDocumentRename
SMethod_TextDocumentRename
      , $sel:_publishDiagnostics:TextDocumentClientCapabilities :: Maybe PublishDiagnosticsClientCapabilities
_publishDiagnostics = SMethod 'Method_TextDocumentPublishDiagnostics
-> Maybe (ClientCapability 'Method_TextDocumentPublishDiagnostics)
forall {f :: MessageDirection} {t :: MessageKind}
       (m :: Method f t).
SMethod m -> Maybe (ClientCapability m)
methCaps SMethod 'Method_TextDocumentPublishDiagnostics
SMethod_TextDocumentPublishDiagnostics
      , $sel:_foldingRange:TextDocumentClientCapabilities :: Maybe FoldingRangeClientCapabilities
_foldingRange = SMethod 'Method_TextDocumentFoldingRange
-> Maybe (ClientCapability 'Method_TextDocumentFoldingRange)
forall {f :: MessageDirection} {t :: MessageKind}
       (m :: Method f t).
SMethod m -> Maybe (ClientCapability m)
methCaps SMethod 'Method_TextDocumentFoldingRange
SMethod_TextDocumentFoldingRange
      , $sel:_selectionRange:TextDocumentClientCapabilities :: Maybe SelectionRangeClientCapabilities
_selectionRange = SMethod 'Method_TextDocumentSelectionRange
-> Maybe (ClientCapability 'Method_TextDocumentSelectionRange)
forall {f :: MessageDirection} {t :: MessageKind}
       (m :: Method f t).
SMethod m -> Maybe (ClientCapability m)
methCaps SMethod 'Method_TextDocumentSelectionRange
SMethod_TextDocumentSelectionRange
      , $sel:_callHierarchy:TextDocumentClientCapabilities :: Maybe CallHierarchyClientCapabilities
_callHierarchy = SMethod 'Method_TextDocumentPrepareCallHierarchy
-> Maybe
     (ClientCapability 'Method_TextDocumentPrepareCallHierarchy)
forall {f :: MessageDirection} {t :: MessageKind}
       (m :: Method f t).
SMethod m -> Maybe (ClientCapability m)
methCaps SMethod 'Method_TextDocumentPrepareCallHierarchy
SMethod_TextDocumentPrepareCallHierarchy
      , $sel:_semanticTokens:TextDocumentClientCapabilities :: Maybe SemanticTokensClientCapabilities
_semanticTokens = SMethod 'Method_TextDocumentSemanticTokensFull
-> Maybe (ClientCapability 'Method_TextDocumentSemanticTokensFull)
forall {f :: MessageDirection} {t :: MessageKind}
       (m :: Method f t).
SMethod m -> Maybe (ClientCapability m)
methCaps SMethod 'Method_TextDocumentSemanticTokensFull
SMethod_TextDocumentSemanticTokensFull
      , $sel:_linkedEditingRange:TextDocumentClientCapabilities :: Maybe LinkedEditingRangeClientCapabilities
_linkedEditingRange = SMethod 'Method_TextDocumentLinkedEditingRange
-> Maybe (ClientCapability 'Method_TextDocumentLinkedEditingRange)
forall {f :: MessageDirection} {t :: MessageKind}
       (m :: Method f t).
SMethod m -> Maybe (ClientCapability m)
methCaps SMethod 'Method_TextDocumentLinkedEditingRange
SMethod_TextDocumentLinkedEditingRange
      , $sel:_moniker:TextDocumentClientCapabilities :: Maybe MonikerClientCapabilities
_moniker = SMethod 'Method_TextDocumentMoniker
-> Maybe (ClientCapability 'Method_TextDocumentMoniker)
forall {f :: MessageDirection} {t :: MessageKind}
       (m :: Method f t).
SMethod m -> Maybe (ClientCapability m)
methCaps SMethod 'Method_TextDocumentMoniker
SMethod_TextDocumentMoniker
      , $sel:_inlayHint:TextDocumentClientCapabilities :: Maybe InlayHintClientCapabilities
_inlayHint = SMethod 'Method_TextDocumentInlayHint
-> Maybe (ClientCapability 'Method_TextDocumentInlayHint)
forall {f :: MessageDirection} {t :: MessageKind}
       (m :: Method f t).
SMethod m -> Maybe (ClientCapability m)
methCaps SMethod 'Method_TextDocumentInlayHint
SMethod_TextDocumentInlayHint
      , $sel:_typeHierarchy:TextDocumentClientCapabilities :: Maybe TypeHierarchyClientCapabilities
_typeHierarchy = SMethod 'Method_TextDocumentPrepareTypeHierarchy
-> Maybe
     (ClientCapability 'Method_TextDocumentPrepareTypeHierarchy)
forall {f :: MessageDirection} {t :: MessageKind}
       (m :: Method f t).
SMethod m -> Maybe (ClientCapability m)
methCaps SMethod 'Method_TextDocumentPrepareTypeHierarchy
SMethod_TextDocumentPrepareTypeHierarchy
      , $sel:_inlineValue:TextDocumentClientCapabilities :: Maybe InlineValueClientCapabilities
_inlineValue = SMethod 'Method_TextDocumentInlineValue
-> Maybe (ClientCapability 'Method_TextDocumentInlineValue)
forall {f :: MessageDirection} {t :: MessageKind}
       (m :: Method f t).
SMethod m -> Maybe (ClientCapability m)
methCaps SMethod 'Method_TextDocumentInlineValue
SMethod_TextDocumentInlineValue
      , $sel:_diagnostic:TextDocumentClientCapabilities :: Maybe DiagnosticClientCapabilities
_diagnostic = SMethod 'Method_TextDocumentDiagnostic
-> Maybe (ClientCapability 'Method_TextDocumentDiagnostic)
forall {f :: MessageDirection} {t :: MessageKind}
       (m :: Method f t).
SMethod m -> Maybe (ClientCapability m)
methCaps SMethod 'Method_TextDocumentDiagnostic
SMethod_TextDocumentDiagnostic
      }

  since :: Int -> Int -> a -> Maybe a
  since :: forall a. Int -> Int -> a -> Maybe a
since Int
x Int
y a
a
    | Int
maj Int -> Int -> Bool
forall a. Ord a => a -> a -> Bool
>= Int
x Bool -> Bool -> Bool
&& Int
min Int -> Int -> Bool
forall a. Ord a => a -> a -> Bool
>= Int
y = a -> Maybe a
forall a. a -> Maybe a
Just a
a
    | Bool
otherwise = Maybe a
forall a. Maybe a
Nothing

-- TODO: make this only include the caps that are necessary for that specific method. That will require
-- some code to merge capabilities...

-- | Client capabilities for full support of a specific method in the LSP specification up until a version.
fullClientCapsForVersionAndMethod :: LSPVersion -> SMethod m -> Maybe (ClientCapability m)
fullClientCapsForVersionAndMethod :: forall {f :: MessageDirection} {t :: MessageKind}
       (m :: Method f t).
LSPVersion -> SMethod m -> Maybe (ClientCapability m)
fullClientCapsForVersionAndMethod (LSPVersion Int
maj Int
min) = \case
  SMethod m
SMethod_TextDocumentDeclaration -> Maybe DeclarationClientCapabilities
Maybe (ClientCapability m)
declaration
  SMethod m
SMethod_TextDocumentImplementation -> Maybe ImplementationClientCapabilities
Maybe (ClientCapability m)
implementation
  SMethod m
SMethod_TextDocumentTypeDefinition -> Maybe TypeDefinitionClientCapabilities
Maybe (ClientCapability m)
typeDefinition
  SMethod m
SMethod_TextDocumentHover -> Maybe HoverClientCapabilities
Maybe (ClientCapability m)
hover
  SMethod m
SMethod_TextDocumentSignatureHelp -> Maybe SignatureHelpClientCapabilities
Maybe (ClientCapability m)
signatureHelp
  SMethod m
SMethod_TextDocumentDefinition -> Maybe DefinitionClientCapabilities
Maybe (ClientCapability m)
definition
  SMethod m
SMethod_TextDocumentReferences -> Maybe ReferenceClientCapabilities
Maybe (ClientCapability m)
references
  SMethod m
SMethod_TextDocumentDocumentHighlight -> Maybe DocumentHighlightClientCapabilities
Maybe (ClientCapability m)
documentHighlight
  SMethod m
SMethod_TextDocumentDocumentSymbol -> Maybe DocumentSymbolClientCapabilities
Maybe (ClientCapability m)
documentSymbol
  SMethod m
SMethod_TextDocumentFoldingRange -> Maybe FoldingRangeClientCapabilities
Maybe (ClientCapability m)
foldingRange
  SMethod m
SMethod_TextDocumentSelectionRange -> Maybe SelectionRangeClientCapabilities
Maybe (ClientCapability m)
selectionRange
  SMethod m
SMethod_WorkspaceExecuteCommand -> Maybe ExecuteCommandClientCapabilities
Maybe (ClientCapability m)
executeCommand
  SMethod m
SMethod_TextDocumentMoniker -> Maybe MonikerClientCapabilities
Maybe (ClientCapability m)
moniker
  SMethod m
SMethod_TextDocumentCompletion -> Maybe CompletionClientCapabilities
Maybe (ClientCapability m)
completion
  SMethod m
SMethod_CompletionItemResolve -> Maybe CompletionClientCapabilities
Maybe (ClientCapability m)
completion
  SMethod m
SMethod_TextDocumentCodeAction -> Maybe CodeActionClientCapabilities
Maybe (ClientCapability m)
codeAction
  SMethod m
SMethod_CodeActionResolve -> Maybe CodeActionClientCapabilities
Maybe (ClientCapability m)
codeAction
  SMethod m
SMethod_TextDocumentCodeLens -> Maybe CodeLensClientCapabilities
Maybe (ClientCapability m)
codeLens
  SMethod m
SMethod_CodeLensResolve -> Maybe CodeLensClientCapabilities
Maybe (ClientCapability m)
codeLens
  SMethod m
SMethod_WorkspaceCodeLensRefresh -> Maybe CodeLensWorkspaceClientCapabilities
Maybe (ClientCapability m)
wsCodeLens
  SMethod m
SMethod_TextDocumentDocumentLink -> Maybe DocumentLinkClientCapabilities
Maybe (ClientCapability m)
documentLink
  SMethod m
SMethod_DocumentLinkResolve -> Maybe DocumentLinkClientCapabilities
Maybe (ClientCapability m)
documentLink
  SMethod m
SMethod_TextDocumentDocumentColor -> Maybe DocumentColorClientCapabilities
Maybe (ClientCapability m)
colorProvider
  SMethod m
SMethod_TextDocumentColorPresentation -> Maybe DocumentColorClientCapabilities
Maybe (ClientCapability m)
colorProvider
  SMethod m
SMethod_WorkspaceSymbol -> Maybe WorkspaceSymbolClientCapabilities
Maybe (ClientCapability m)
wsSymbol
  SMethod m
SMethod_WorkspaceSymbolResolve -> Maybe WorkspaceSymbolClientCapabilities
Maybe (ClientCapability m)
wsSymbol
  SMethod m
SMethod_TextDocumentFormatting -> Maybe DocumentFormattingClientCapabilities
Maybe (ClientCapability m)
formatting
  SMethod m
SMethod_TextDocumentRangeFormatting -> Maybe DocumentRangeFormattingClientCapabilities
Maybe (ClientCapability m)
rangeFormatting
  SMethod m
SMethod_TextDocumentOnTypeFormatting -> Maybe DocumentOnTypeFormattingClientCapabilities
Maybe (ClientCapability m)
onTypeFormatting
  SMethod m
SMethod_TextDocumentRename -> Maybe RenameClientCapabilities
Maybe (ClientCapability m)
rename
  SMethod m
SMethod_TextDocumentPrepareRename -> Maybe RenameClientCapabilities
Maybe (ClientCapability m)
rename
  SMethod m
SMethod_TextDocumentPrepareCallHierarchy -> Maybe CallHierarchyClientCapabilities
Maybe (ClientCapability m)
callHierarchy
  SMethod m
SMethod_CallHierarchyIncomingCalls -> Maybe CallHierarchyClientCapabilities
Maybe (ClientCapability m)
callHierarchy
  SMethod m
SMethod_CallHierarchyOutgoingCalls -> Maybe CallHierarchyClientCapabilities
Maybe (ClientCapability m)
callHierarchy
  SMethod m
SMethod_TextDocumentLinkedEditingRange -> Maybe LinkedEditingRangeClientCapabilities
Maybe (ClientCapability m)
linkedEditingRange
  SMethod m
SMethod_TextDocumentSemanticTokensFull -> Maybe SemanticTokensClientCapabilities
Maybe (ClientCapability m)
semanticTokens
  SMethod m
SMethod_TextDocumentSemanticTokensFullDelta -> Maybe SemanticTokensClientCapabilities
Maybe (ClientCapability m)
semanticTokens
  SMethod m
SMethod_TextDocumentSemanticTokensRange -> Maybe SemanticTokensClientCapabilities
Maybe (ClientCapability m)
semanticTokens
  SMethod m
SMethod_WorkspaceSemanticTokensRefresh -> Maybe SemanticTokensWorkspaceClientCapabilities
Maybe (ClientCapability m)
wsSemanticTokens
  SMethod m
SMethod_TextDocumentPrepareTypeHierarchy -> Maybe TypeHierarchyClientCapabilities
Maybe (ClientCapability m)
typeHierarchy
  SMethod m
SMethod_TypeHierarchySubtypes -> Maybe TypeHierarchyClientCapabilities
Maybe (ClientCapability m)
typeHierarchy
  SMethod m
SMethod_TypeHierarchySupertypes -> Maybe TypeHierarchyClientCapabilities
Maybe (ClientCapability m)
typeHierarchy
  SMethod m
SMethod_TextDocumentInlineValue -> Maybe InlineValueClientCapabilities
Maybe (ClientCapability m)
inlineValue
  SMethod m
SMethod_WorkspaceInlineValueRefresh -> Maybe InlineValueWorkspaceClientCapabilities
Maybe (ClientCapability m)
wsInlineValue
  SMethod m
SMethod_TextDocumentInlayHint -> Maybe InlayHintClientCapabilities
Maybe (ClientCapability m)
inlayHint
  SMethod m
SMethod_InlayHintResolve -> Maybe InlayHintClientCapabilities
Maybe (ClientCapability m)
inlayHint
  SMethod m
SMethod_WorkspaceInlayHintRefresh -> Maybe InlayHintWorkspaceClientCapabilities
Maybe (ClientCapability m)
wsInlayHint
  SMethod m
SMethod_TextDocumentDiagnostic -> Maybe DiagnosticClientCapabilities
Maybe (ClientCapability m)
diagnostic
  SMethod m
SMethod_WorkspaceDiagnostic -> Maybe DiagnosticWorkspaceClientCapabilities
Maybe (ClientCapability m)
diagnostics
  SMethod m
SMethod_WorkspaceDiagnosticRefresh -> Maybe DiagnosticWorkspaceClientCapabilities
Maybe (ClientCapability m)
diagnostics
  SMethod m
SMethod_WorkspaceWorkspaceFolders -> Maybe Bool
Maybe (ClientCapability m)
workspaceFolders
  SMethod m
SMethod_WorkspaceWillCreateFiles -> Maybe FileOperationClientCapabilities
Maybe (ClientCapability m)
fileOperations
  SMethod m
SMethod_WorkspaceWillRenameFiles -> Maybe FileOperationClientCapabilities
Maybe (ClientCapability m)
fileOperations
  SMethod m
SMethod_WorkspaceWillDeleteFiles -> Maybe FileOperationClientCapabilities
Maybe (ClientCapability m)
fileOperations
  SMethod m
SMethod_WorkspaceDidCreateFiles -> Maybe FileOperationClientCapabilities
Maybe (ClientCapability m)
fileOperations
  SMethod m
SMethod_WorkspaceDidRenameFiles -> Maybe FileOperationClientCapabilities
Maybe (ClientCapability m)
fileOperations
  SMethod m
SMethod_WorkspaceDidDeleteFiles -> Maybe FileOperationClientCapabilities
Maybe (ClientCapability m)
fileOperations
  SMethod m
SMethod_TextDocumentDidOpen -> Maybe TextDocumentSyncClientCapabilities
Maybe (ClientCapability m)
synchronization
  SMethod m
SMethod_TextDocumentDidChange -> Maybe TextDocumentSyncClientCapabilities
Maybe (ClientCapability m)
synchronization
  SMethod m
SMethod_TextDocumentDidClose -> Maybe TextDocumentSyncClientCapabilities
Maybe (ClientCapability m)
synchronization
  SMethod m
SMethod_TextDocumentDidSave -> Maybe TextDocumentSyncClientCapabilities
Maybe (ClientCapability m)
synchronization
  SMethod m
SMethod_TextDocumentWillSave -> Maybe TextDocumentSyncClientCapabilities
Maybe (ClientCapability m)
synchronization
  SMethod m
SMethod_TextDocumentWillSaveWaitUntil -> Maybe TextDocumentSyncClientCapabilities
Maybe (ClientCapability m)
synchronization
  SMethod m
SMethod_NotebookDocumentDidOpen -> Maybe NotebookDocumentSyncClientCapabilities
Maybe (ClientCapability m)
notebookDocumentSync
  SMethod m
SMethod_NotebookDocumentDidChange -> Maybe NotebookDocumentSyncClientCapabilities
Maybe (ClientCapability m)
notebookDocumentSync
  SMethod m
SMethod_NotebookDocumentDidSave -> Maybe NotebookDocumentSyncClientCapabilities
Maybe (ClientCapability m)
notebookDocumentSync
  SMethod m
SMethod_NotebookDocumentDidClose -> Maybe NotebookDocumentSyncClientCapabilities
Maybe (ClientCapability m)
notebookDocumentSync
  SMethod m
SMethod_WorkspaceDidChangeConfiguration -> Maybe DidChangeConfigurationClientCapabilities
Maybe (ClientCapability m)
didChangeConfiguration
  SMethod m
SMethod_WorkspaceDidChangeWatchedFiles -> Maybe DidChangeWatchedFilesClientCapabilities
Maybe (ClientCapability m)
didChangeWatchedFiles
  SMethod m
SMethod_TextDocumentPublishDiagnostics -> Maybe PublishDiagnosticsClientCapabilities
Maybe (ClientCapability m)
publishDiagnostics
  SMethod m
SMethod_WorkspaceConfiguration -> Maybe Bool
Maybe (ClientCapability m)
configuration
  SMethod m
SMethod_WindowWorkDoneProgressCreate -> Maybe Bool
Maybe (ClientCapability m)
workDoneProgress
  SMethod m
SMethod_WindowWorkDoneProgressCancel -> Maybe Bool
Maybe (ClientCapability m)
workDoneProgress
  SMethod m
SMethod_WorkspaceApplyEdit -> Maybe Bool
Maybe (ClientCapability m)
applyEdit
  SMethod m
SMethod_WindowShowDocument -> Maybe ShowDocumentClientCapabilities
Maybe (ClientCapability m)
showDocument
  SMethod m
SMethod_WindowShowMessageRequest -> Maybe ShowMessageRequestClientCapabilities
Maybe (ClientCapability m)
showMessage
  SMethod m
SMethod_WindowShowMessage -> Maybe ShowMessageRequestClientCapabilities
Maybe (ClientCapability m)
showMessage
  SMethod m
SMethod_WorkspaceDidChangeWorkspaceFolders -> Maybe Void
Maybe (ClientCapability m)
forall a. Maybe a
Nothing
  SMethod m
SMethod_Progress -> Maybe Void
Maybe (ClientCapability m)
forall a. Maybe a
Nothing
  SMethod m
SMethod_WindowLogMessage -> Maybe Void
Maybe (ClientCapability m)
forall a. Maybe a
Nothing
  SMethod m
SMethod_ClientRegisterCapability -> Maybe Void
Maybe (ClientCapability m)
forall a. Maybe a
Nothing
  SMethod m
SMethod_ClientUnregisterCapability -> Maybe Void
Maybe (ClientCapability m)
forall a. Maybe a
Nothing
  SMethod m
SMethod_Initialize -> Maybe Void
Maybe (ClientCapability m)
forall a. Maybe a
Nothing
  SMethod m
SMethod_Initialized -> Maybe Void
Maybe (ClientCapability m)
forall a. Maybe a
Nothing
  SMethod m
SMethod_Shutdown -> Maybe Void
Maybe (ClientCapability m)
forall a. Maybe a
Nothing
  SMethod m
SMethod_Exit -> Maybe Void
Maybe (ClientCapability m)
forall a. Maybe a
Nothing
  SMethod m
SMethod_TelemetryEvent -> Maybe Void
Maybe (ClientCapability m)
forall a. Maybe a
Nothing
  SMethod m
SMethod_SetTrace -> Maybe Void
Maybe (ClientCapability m)
forall a. Maybe a
Nothing
  SMethod m
SMethod_LogTrace -> Maybe Void
Maybe (ClientCapability m)
forall a. Maybe a
Nothing
  SMethod m
SMethod_CancelRequest -> Maybe Void
Maybe (ClientCapability m)
forall a. Maybe a
Nothing
  (SMethod_CustomMethod Proxy s
_s) -> Maybe Void
Maybe (ClientCapability m)
forall a. Maybe a
Nothing
 where
  workDoneProgress :: Maybe Bool
workDoneProgress = Int -> Int -> Bool -> Maybe Bool
forall a. Int -> Int -> a -> Maybe a
since Int
3 Int
15 Bool
True
  showMessage :: Maybe ShowMessageRequestClientCapabilities
showMessage = Int
-> Int
-> ShowMessageRequestClientCapabilities
-> Maybe ShowMessageRequestClientCapabilities
forall a. Int -> Int -> a -> Maybe a
since Int
3 Int
16 (ShowMessageRequestClientCapabilities
 -> Maybe ShowMessageRequestClientCapabilities)
-> ShowMessageRequestClientCapabilities
-> Maybe ShowMessageRequestClientCapabilities
forall a b. (a -> b) -> a -> b
$ Maybe ClientShowMessageActionItemOptions
-> ShowMessageRequestClientCapabilities
ShowMessageRequestClientCapabilities Maybe ClientShowMessageActionItemOptions
forall a. Maybe a
Nothing
  showDocument :: Maybe ShowDocumentClientCapabilities
showDocument = Int
-> Int
-> ShowDocumentClientCapabilities
-> Maybe ShowDocumentClientCapabilities
forall a. Int -> Int -> a -> Maybe a
since Int
3 Int
16 (ShowDocumentClientCapabilities
 -> Maybe ShowDocumentClientCapabilities)
-> ShowDocumentClientCapabilities
-> Maybe ShowDocumentClientCapabilities
forall a b. (a -> b) -> a -> b
$ Bool -> ShowDocumentClientCapabilities
ShowDocumentClientCapabilities Bool
True
  applyEdit :: Maybe Bool
applyEdit = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
True
  didChangeConfiguration :: Maybe DidChangeConfigurationClientCapabilities
didChangeConfiguration = DidChangeConfigurationClientCapabilities
-> Maybe DidChangeConfigurationClientCapabilities
forall a. a -> Maybe a
Just (Maybe Bool -> DidChangeConfigurationClientCapabilities
DidChangeConfigurationClientCapabilities Maybe Bool
dynamicReg)
  didChangeWatchedFiles :: Maybe DidChangeWatchedFilesClientCapabilities
didChangeWatchedFiles = DidChangeWatchedFilesClientCapabilities
-> Maybe DidChangeWatchedFilesClientCapabilities
forall a. a -> Maybe a
Just (Maybe Bool -> Maybe Bool -> DidChangeWatchedFilesClientCapabilities
DidChangeWatchedFilesClientCapabilities Maybe Bool
dynamicReg (Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
True))
  wsSymbol :: Maybe WorkspaceSymbolClientCapabilities
wsSymbol =
    WorkspaceSymbolClientCapabilities
-> Maybe WorkspaceSymbolClientCapabilities
forall a. a -> Maybe a
Just (WorkspaceSymbolClientCapabilities
 -> Maybe WorkspaceSymbolClientCapabilities)
-> WorkspaceSymbolClientCapabilities
-> Maybe WorkspaceSymbolClientCapabilities
forall a b. (a -> b) -> a -> b
$
      Maybe Bool
-> Maybe ClientSymbolKindOptions
-> Maybe ClientSymbolTagOptions
-> Maybe ClientSymbolResolveOptions
-> WorkspaceSymbolClientCapabilities
WorkspaceSymbolClientCapabilities
        Maybe Bool
dynamicReg
        (Int
-> Int -> ClientSymbolKindOptions -> Maybe ClientSymbolKindOptions
forall a. Int -> Int -> a -> Maybe a
since Int
3 Int
4 (ClientSymbolKindOptions{$sel:_valueSet:ClientSymbolKindOptions :: Maybe [SymbolKind]
_valueSet = [SymbolKind] -> Maybe [SymbolKind]
forall a. a -> Maybe a
Just [SymbolKind]
sKs}))
        (Int
-> Int -> ClientSymbolTagOptions -> Maybe ClientSymbolTagOptions
forall a. Int -> Int -> a -> Maybe a
since Int
3 Int
16 (ClientSymbolTagOptions{$sel:_valueSet:ClientSymbolTagOptions :: [SymbolTag]
_valueSet = [SymbolTag
SymbolTag_Deprecated]}))
        (Int
-> Int
-> ClientSymbolResolveOptions
-> Maybe ClientSymbolResolveOptions
forall a. Int -> Int -> a -> Maybe a
since Int
3 Int
17 (ClientSymbolResolveOptions{$sel:_properties:ClientSymbolResolveOptions :: [Text]
_properties = []}))
  executeCommand :: Maybe ExecuteCommandClientCapabilities
executeCommand = ExecuteCommandClientCapabilities
-> Maybe ExecuteCommandClientCapabilities
forall a. a -> Maybe a
Just (Maybe Bool -> ExecuteCommandClientCapabilities
ExecuteCommandClientCapabilities Maybe Bool
dynamicReg)
  wsCodeLens :: Maybe CodeLensWorkspaceClientCapabilities
wsCodeLens = CodeLensWorkspaceClientCapabilities
-> Maybe CodeLensWorkspaceClientCapabilities
forall a. a -> Maybe a
Just (Maybe Bool -> CodeLensWorkspaceClientCapabilities
CodeLensWorkspaceClientCapabilities (Maybe Bool -> CodeLensWorkspaceClientCapabilities)
-> Maybe Bool -> CodeLensWorkspaceClientCapabilities
forall a b. (a -> b) -> a -> b
$ Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
True)
  workspaceFolders :: Maybe Bool
workspaceFolders = Int -> Int -> Bool -> Maybe Bool
forall a. Int -> Int -> a -> Maybe a
since Int
3 Int
6 Bool
True
  configuration :: Maybe Bool
configuration = Int -> Int -> Bool -> Maybe Bool
forall a. Int -> Int -> a -> Maybe a
since Int
3 Int
6 Bool
True
  wsSemanticTokens :: Maybe SemanticTokensWorkspaceClientCapabilities
wsSemanticTokens = Int
-> Int
-> SemanticTokensWorkspaceClientCapabilities
-> Maybe SemanticTokensWorkspaceClientCapabilities
forall a. Int -> Int -> a -> Maybe a
since Int
3 Int
16 (Maybe Bool -> SemanticTokensWorkspaceClientCapabilities
SemanticTokensWorkspaceClientCapabilities (Maybe Bool -> SemanticTokensWorkspaceClientCapabilities)
-> Maybe Bool -> SemanticTokensWorkspaceClientCapabilities
forall a b. (a -> b) -> a -> b
$ Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
True)
  wsInlayHint :: Maybe InlayHintWorkspaceClientCapabilities
wsInlayHint = Int
-> Int
-> InlayHintWorkspaceClientCapabilities
-> Maybe InlayHintWorkspaceClientCapabilities
forall a. Int -> Int -> a -> Maybe a
since Int
3 Int
17 (Maybe Bool -> InlayHintWorkspaceClientCapabilities
InlayHintWorkspaceClientCapabilities (Maybe Bool -> InlayHintWorkspaceClientCapabilities)
-> Maybe Bool -> InlayHintWorkspaceClientCapabilities
forall a b. (a -> b) -> a -> b
$ Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
True)
  fileOperations :: Maybe FileOperationClientCapabilities
fileOperations =
    Int
-> Int
-> FileOperationClientCapabilities
-> Maybe FileOperationClientCapabilities
forall a. Int -> Int -> a -> Maybe a
since Int
3 Int
16 (FileOperationClientCapabilities
 -> Maybe FileOperationClientCapabilities)
-> FileOperationClientCapabilities
-> Maybe FileOperationClientCapabilities
forall a b. (a -> b) -> a -> b
$
      Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> FileOperationClientCapabilities
FileOperationClientCapabilities
        Maybe Bool
dynamicReg
        (Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
True)
        (Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
True)
        (Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
True)
        (Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
True)
        (Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
True)
        (Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
True)
  wsInlineValue :: Maybe InlineValueWorkspaceClientCapabilities
wsInlineValue = Int
-> Int
-> InlineValueWorkspaceClientCapabilities
-> Maybe InlineValueWorkspaceClientCapabilities
forall a. Int -> Int -> a -> Maybe a
since Int
3 Int
17 (Maybe Bool -> InlineValueWorkspaceClientCapabilities
InlineValueWorkspaceClientCapabilities (Maybe Bool -> InlineValueWorkspaceClientCapabilities)
-> Maybe Bool -> InlineValueWorkspaceClientCapabilities
forall a b. (a -> b) -> a -> b
$ Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
True)
  diagnostics :: Maybe DiagnosticWorkspaceClientCapabilities
diagnostics = Int
-> Int
-> DiagnosticWorkspaceClientCapabilities
-> Maybe DiagnosticWorkspaceClientCapabilities
forall a. Int -> Int -> a -> Maybe a
since Int
3 Int
17 (Maybe Bool -> DiagnosticWorkspaceClientCapabilities
DiagnosticWorkspaceClientCapabilities (Maybe Bool -> DiagnosticWorkspaceClientCapabilities)
-> Maybe Bool -> DiagnosticWorkspaceClientCapabilities
forall a b. (a -> b) -> a -> b
$ Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
True)

  notebookDocumentSync :: Maybe NotebookDocumentSyncClientCapabilities
notebookDocumentSync = Int
-> Int
-> NotebookDocumentSyncClientCapabilities
-> Maybe NotebookDocumentSyncClientCapabilities
forall a. Int -> Int -> a -> Maybe a
since Int
3 Int
17 (NotebookDocumentSyncClientCapabilities
 -> Maybe NotebookDocumentSyncClientCapabilities)
-> NotebookDocumentSyncClientCapabilities
-> Maybe NotebookDocumentSyncClientCapabilities
forall a b. (a -> b) -> a -> b
$ Maybe Bool -> Maybe Bool -> NotebookDocumentSyncClientCapabilities
NotebookDocumentSyncClientCapabilities Maybe Bool
dynamicReg (Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
True)

  synchronization :: Maybe TextDocumentSyncClientCapabilities
synchronization =
    TextDocumentSyncClientCapabilities
-> Maybe TextDocumentSyncClientCapabilities
forall a. a -> Maybe a
Just (TextDocumentSyncClientCapabilities
 -> Maybe TextDocumentSyncClientCapabilities)
-> TextDocumentSyncClientCapabilities
-> Maybe TextDocumentSyncClientCapabilities
forall a b. (a -> b) -> a -> b
$
      TextDocumentSyncClientCapabilities{$sel:_dynamicRegistration:TextDocumentSyncClientCapabilities :: Maybe Bool
_dynamicRegistration = Maybe Bool
dynamicReg, $sel:_willSave:TextDocumentSyncClientCapabilities :: Maybe Bool
_willSave = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
True, $sel:_willSaveWaitUntil:TextDocumentSyncClientCapabilities :: Maybe Bool
_willSaveWaitUntil = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
True, $sel:_didSave:TextDocumentSyncClientCapabilities :: Maybe Bool
_didSave = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
True}
  completion :: Maybe CompletionClientCapabilities
completion =
    CompletionClientCapabilities -> Maybe CompletionClientCapabilities
forall a. a -> Maybe a
Just (CompletionClientCapabilities
 -> Maybe CompletionClientCapabilities)
-> CompletionClientCapabilities
-> Maybe CompletionClientCapabilities
forall a b. (a -> b) -> a -> b
$
      CompletionClientCapabilities
        { $sel:_dynamicRegistration:CompletionClientCapabilities :: Maybe Bool
_dynamicRegistration = Maybe Bool
dynamicReg
        , $sel:_completionItem:CompletionClientCapabilities :: Maybe ClientCompletionItemOptions
_completionItem = ClientCompletionItemOptions -> Maybe ClientCompletionItemOptions
forall a. a -> Maybe a
Just ClientCompletionItemOptions
completionItemCapabilities
        , $sel:_completionItemKind:CompletionClientCapabilities :: Maybe ClientCompletionItemOptionsKind
_completionItemKind = Int
-> Int
-> ClientCompletionItemOptionsKind
-> Maybe ClientCompletionItemOptionsKind
forall a. Int -> Int -> a -> Maybe a
since Int
3 Int
4 (ClientCompletionItemOptionsKind{$sel:_valueSet:ClientCompletionItemOptionsKind :: Maybe [CompletionItemKind]
_valueSet = [CompletionItemKind] -> Maybe [CompletionItemKind]
forall a. a -> Maybe a
Just [CompletionItemKind]
ciKs})
        , $sel:_insertTextMode:CompletionClientCapabilities :: Maybe InsertTextMode
_insertTextMode = Int -> Int -> InsertTextMode -> Maybe InsertTextMode
forall a. Int -> Int -> a -> Maybe a
since Int
3 Int
17 InsertTextMode
InsertTextMode_AsIs
        , $sel:_contextSupport:CompletionClientCapabilities :: Maybe Bool
_contextSupport = Int -> Int -> Bool -> Maybe Bool
forall a. Int -> Int -> a -> Maybe a
since Int
3 Int
3 Bool
True
        , $sel:_completionList:CompletionClientCapabilities :: Maybe CompletionListCapabilities
_completionList = Int
-> Int
-> CompletionListCapabilities
-> Maybe CompletionListCapabilities
forall a. Int -> Int -> a -> Maybe a
since Int
3 Int
17 (CompletionListCapabilities{$sel:_itemDefaults:CompletionListCapabilities :: Maybe [Text]
_itemDefaults = [Text] -> Maybe [Text]
forall a. a -> Maybe a
Just []})
        }
  hover :: Maybe HoverClientCapabilities
hover =
    HoverClientCapabilities -> Maybe HoverClientCapabilities
forall a. a -> Maybe a
Just (HoverClientCapabilities -> Maybe HoverClientCapabilities)
-> HoverClientCapabilities -> Maybe HoverClientCapabilities
forall a b. (a -> b) -> a -> b
$
      HoverClientCapabilities
        { $sel:_dynamicRegistration:HoverClientCapabilities :: Maybe Bool
_dynamicRegistration = Maybe Bool
dynamicReg
        , $sel:_contentFormat:HoverClientCapabilities :: Maybe [MarkupKind]
_contentFormat = Int -> Int -> [MarkupKind] -> Maybe [MarkupKind]
forall a. Int -> Int -> a -> Maybe a
since Int
3 Int
3 [MarkupKind]
allMarkups
        }
  signatureHelp :: Maybe SignatureHelpClientCapabilities
signatureHelp =
    SignatureHelpClientCapabilities
-> Maybe SignatureHelpClientCapabilities
forall a. a -> Maybe a
Just (SignatureHelpClientCapabilities
 -> Maybe SignatureHelpClientCapabilities)
-> SignatureHelpClientCapabilities
-> Maybe SignatureHelpClientCapabilities
forall a b. (a -> b) -> a -> b
$
      SignatureHelpClientCapabilities
        { $sel:_dynamicRegistration:SignatureHelpClientCapabilities :: Maybe Bool
_dynamicRegistration = Maybe Bool
dynamicReg
        , $sel:_signatureInformation:SignatureHelpClientCapabilities :: Maybe ClientSignatureInformationOptions
_signatureInformation =
            ClientSignatureInformationOptions
-> Maybe ClientSignatureInformationOptions
forall a. a -> Maybe a
Just (ClientSignatureInformationOptions
 -> Maybe ClientSignatureInformationOptions)
-> ClientSignatureInformationOptions
-> Maybe ClientSignatureInformationOptions
forall a b. (a -> b) -> a -> b
$
              ClientSignatureInformationOptions
                { $sel:_documentationFormat:ClientSignatureInformationOptions :: Maybe [MarkupKind]
_documentationFormat = [MarkupKind] -> Maybe [MarkupKind]
forall a. a -> Maybe a
Just [MarkupKind]
allMarkups
                , $sel:_parameterInformation:ClientSignatureInformationOptions :: Maybe ClientSignatureParameterInformationOptions
_parameterInformation = ClientSignatureParameterInformationOptions
-> Maybe ClientSignatureParameterInformationOptions
forall a. a -> Maybe a
Just (ClientSignatureParameterInformationOptions{$sel:_labelOffsetSupport:ClientSignatureParameterInformationOptions :: Maybe Bool
_labelOffsetSupport = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
True})
                , $sel:_activeParameterSupport:ClientSignatureInformationOptions :: Maybe Bool
_activeParameterSupport = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
True
                }
        , $sel:_contextSupport:SignatureHelpClientCapabilities :: Maybe Bool
_contextSupport = Int -> Int -> Bool -> Maybe Bool
forall a. Int -> Int -> a -> Maybe a
since Int
3 Int
16 Bool
True
        }
  references :: Maybe ReferenceClientCapabilities
references = ReferenceClientCapabilities -> Maybe ReferenceClientCapabilities
forall a. a -> Maybe a
Just (ReferenceClientCapabilities -> Maybe ReferenceClientCapabilities)
-> ReferenceClientCapabilities -> Maybe ReferenceClientCapabilities
forall a b. (a -> b) -> a -> b
$ Maybe Bool -> ReferenceClientCapabilities
ReferenceClientCapabilities Maybe Bool
dynamicReg
  documentHighlight :: Maybe DocumentHighlightClientCapabilities
documentHighlight = DocumentHighlightClientCapabilities
-> Maybe DocumentHighlightClientCapabilities
forall a. a -> Maybe a
Just (DocumentHighlightClientCapabilities
 -> Maybe DocumentHighlightClientCapabilities)
-> DocumentHighlightClientCapabilities
-> Maybe DocumentHighlightClientCapabilities
forall a b. (a -> b) -> a -> b
$ Maybe Bool -> DocumentHighlightClientCapabilities
DocumentHighlightClientCapabilities Maybe Bool
dynamicReg
  documentSymbol :: Maybe DocumentSymbolClientCapabilities
documentSymbol =
    DocumentSymbolClientCapabilities
-> Maybe DocumentSymbolClientCapabilities
forall a. a -> Maybe a
Just (DocumentSymbolClientCapabilities
 -> Maybe DocumentSymbolClientCapabilities)
-> DocumentSymbolClientCapabilities
-> Maybe DocumentSymbolClientCapabilities
forall a b. (a -> b) -> a -> b
$
      DocumentSymbolClientCapabilities
        { $sel:_dynamicRegistration:DocumentSymbolClientCapabilities :: Maybe Bool
_dynamicRegistration = Maybe Bool
dynamicReg
        , -- same as workspace symbol kinds
          $sel:_symbolKind:DocumentSymbolClientCapabilities :: Maybe ClientSymbolKindOptions
_symbolKind = ClientSymbolKindOptions -> Maybe ClientSymbolKindOptions
forall a. a -> Maybe a
Just (ClientSymbolKindOptions{$sel:_valueSet:ClientSymbolKindOptions :: Maybe [SymbolKind]
_valueSet = [SymbolKind] -> Maybe [SymbolKind]
forall a. a -> Maybe a
Just [SymbolKind]
sKs})
        , $sel:_hierarchicalDocumentSymbolSupport:DocumentSymbolClientCapabilities :: Maybe Bool
_hierarchicalDocumentSymbolSupport = Int -> Int -> Bool -> Maybe Bool
forall a. Int -> Int -> a -> Maybe a
since Int
3 Int
10 Bool
True
        , $sel:_tagSupport:DocumentSymbolClientCapabilities :: Maybe ClientSymbolTagOptions
_tagSupport = Int
-> Int -> ClientSymbolTagOptions -> Maybe ClientSymbolTagOptions
forall a. Int -> Int -> a -> Maybe a
since Int
3 Int
16 (ClientSymbolTagOptions{$sel:_valueSet:ClientSymbolTagOptions :: [SymbolTag]
_valueSet = [SymbolTag
SymbolTag_Deprecated]})
        , $sel:_labelSupport:DocumentSymbolClientCapabilities :: Maybe Bool
_labelSupport = Int -> Int -> Bool -> Maybe Bool
forall a. Int -> Int -> a -> Maybe a
since Int
3 Int
16 Bool
True
        }
  formatting :: Maybe DocumentFormattingClientCapabilities
formatting = DocumentFormattingClientCapabilities
-> Maybe DocumentFormattingClientCapabilities
forall a. a -> Maybe a
Just (DocumentFormattingClientCapabilities
 -> Maybe DocumentFormattingClientCapabilities)
-> DocumentFormattingClientCapabilities
-> Maybe DocumentFormattingClientCapabilities
forall a b. (a -> b) -> a -> b
$ Maybe Bool -> DocumentFormattingClientCapabilities
DocumentFormattingClientCapabilities Maybe Bool
dynamicReg
  rangeFormatting :: Maybe DocumentRangeFormattingClientCapabilities
rangeFormatting = DocumentRangeFormattingClientCapabilities
-> Maybe DocumentRangeFormattingClientCapabilities
forall a. a -> Maybe a
Just (DocumentRangeFormattingClientCapabilities
 -> Maybe DocumentRangeFormattingClientCapabilities)
-> DocumentRangeFormattingClientCapabilities
-> Maybe DocumentRangeFormattingClientCapabilities
forall a b. (a -> b) -> a -> b
$ Maybe Bool -> DocumentRangeFormattingClientCapabilities
DocumentRangeFormattingClientCapabilities Maybe Bool
dynamicReg
  onTypeFormatting :: Maybe DocumentOnTypeFormattingClientCapabilities
onTypeFormatting = DocumentOnTypeFormattingClientCapabilities
-> Maybe DocumentOnTypeFormattingClientCapabilities
forall a. a -> Maybe a
Just (DocumentOnTypeFormattingClientCapabilities
 -> Maybe DocumentOnTypeFormattingClientCapabilities)
-> DocumentOnTypeFormattingClientCapabilities
-> Maybe DocumentOnTypeFormattingClientCapabilities
forall a b. (a -> b) -> a -> b
$ Maybe Bool -> DocumentOnTypeFormattingClientCapabilities
DocumentOnTypeFormattingClientCapabilities Maybe Bool
dynamicReg
  declaration :: Maybe DeclarationClientCapabilities
declaration = Int
-> Int
-> DeclarationClientCapabilities
-> Maybe DeclarationClientCapabilities
forall a. Int -> Int -> a -> Maybe a
since Int
3 Int
14 (Maybe Bool -> Maybe Bool -> DeclarationClientCapabilities
DeclarationClientCapabilities Maybe Bool
dynamicReg (Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
True))
  definition :: Maybe DefinitionClientCapabilities
definition = DefinitionClientCapabilities -> Maybe DefinitionClientCapabilities
forall a. a -> Maybe a
Just (Maybe Bool -> Maybe Bool -> DefinitionClientCapabilities
DefinitionClientCapabilities Maybe Bool
dynamicReg (Int -> Int -> Bool -> Maybe Bool
forall a. Int -> Int -> a -> Maybe a
since Int
3 Int
14 Bool
True))
  typeDefinition :: Maybe TypeDefinitionClientCapabilities
typeDefinition = Int
-> Int
-> TypeDefinitionClientCapabilities
-> Maybe TypeDefinitionClientCapabilities
forall a. Int -> Int -> a -> Maybe a
since Int
3 Int
6 (Maybe Bool -> Maybe Bool -> TypeDefinitionClientCapabilities
TypeDefinitionClientCapabilities Maybe Bool
dynamicReg (Int -> Int -> Bool -> Maybe Bool
forall a. Int -> Int -> a -> Maybe a
since Int
3 Int
14 Bool
True))
  implementation :: Maybe ImplementationClientCapabilities
implementation = Int
-> Int
-> ImplementationClientCapabilities
-> Maybe ImplementationClientCapabilities
forall a. Int -> Int -> a -> Maybe a
since Int
3 Int
6 (Maybe Bool -> Maybe Bool -> ImplementationClientCapabilities
ImplementationClientCapabilities Maybe Bool
dynamicReg (Int -> Int -> Bool -> Maybe Bool
forall a. Int -> Int -> a -> Maybe a
since Int
3 Int
14 Bool
True))
  codeAction :: Maybe CodeActionClientCapabilities
codeAction =
    CodeActionClientCapabilities -> Maybe CodeActionClientCapabilities
forall a. a -> Maybe a
Just (CodeActionClientCapabilities
 -> Maybe CodeActionClientCapabilities)
-> CodeActionClientCapabilities
-> Maybe CodeActionClientCapabilities
forall a b. (a -> b) -> a -> b
$
      CodeActionClientCapabilities
        { $sel:_dynamicRegistration:CodeActionClientCapabilities :: Maybe Bool
_dynamicRegistration = Maybe Bool
dynamicReg
        , $sel:_codeActionLiteralSupport:CodeActionClientCapabilities :: Maybe ClientCodeActionLiteralOptions
_codeActionLiteralSupport = Int
-> Int
-> ClientCodeActionLiteralOptions
-> Maybe ClientCodeActionLiteralOptions
forall a. Int -> Int -> a -> Maybe a
since Int
3 Int
8 (ClientCodeActionLiteralOptions{$sel:_codeActionKind:ClientCodeActionLiteralOptions :: ClientCodeActionKindOptions
_codeActionKind = ClientCodeActionKindOptions{$sel:_valueSet:ClientCodeActionKindOptions :: [CodeActionKind]
_valueSet = Set CodeActionKind -> [CodeActionKind]
forall a. Set a -> [a]
Set.toList Set CodeActionKind
forall a. LspEnum a => Set a
knownValues}})
        , $sel:_isPreferredSupport:CodeActionClientCapabilities :: Maybe Bool
_isPreferredSupport = Int -> Int -> Bool -> Maybe Bool
forall a. Int -> Int -> a -> Maybe a
since Int
3 Int
15 Bool
True
        , $sel:_disabledSupport:CodeActionClientCapabilities :: Maybe Bool
_disabledSupport = Int -> Int -> Bool -> Maybe Bool
forall a. Int -> Int -> a -> Maybe a
since Int
3 Int
16 Bool
True
        , $sel:_dataSupport:CodeActionClientCapabilities :: Maybe Bool
_dataSupport = Int -> Int -> Bool -> Maybe Bool
forall a. Int -> Int -> a -> Maybe a
since Int
3 Int
16 Bool
True
        , $sel:_resolveSupport:CodeActionClientCapabilities :: Maybe ClientCodeActionResolveOptions
_resolveSupport = Int
-> Int
-> ClientCodeActionResolveOptions
-> Maybe ClientCodeActionResolveOptions
forall a. Int -> Int -> a -> Maybe a
since Int
3 Int
16 (ClientCodeActionResolveOptions{$sel:_properties:ClientCodeActionResolveOptions :: [Text]
_properties = []})
        , $sel:_honorsChangeAnnotations:CodeActionClientCapabilities :: Maybe Bool
_honorsChangeAnnotations = Int -> Int -> Bool -> Maybe Bool
forall a. Int -> Int -> a -> Maybe a
since Int
3 Int
16 Bool
True
        }
  codeLens :: Maybe CodeLensClientCapabilities
codeLens = CodeLensClientCapabilities -> Maybe CodeLensClientCapabilities
forall a. a -> Maybe a
Just (Maybe Bool -> CodeLensClientCapabilities
CodeLensClientCapabilities Maybe Bool
dynamicReg)
  documentLink :: Maybe DocumentLinkClientCapabilities
documentLink = DocumentLinkClientCapabilities
-> Maybe DocumentLinkClientCapabilities
forall a. a -> Maybe a
Just (Maybe Bool -> Maybe Bool -> DocumentLinkClientCapabilities
DocumentLinkClientCapabilities Maybe Bool
dynamicReg (Int -> Int -> Bool -> Maybe Bool
forall a. Int -> Int -> a -> Maybe a
since Int
3 Int
15 Bool
True))
  colorProvider :: Maybe DocumentColorClientCapabilities
colorProvider = Int
-> Int
-> DocumentColorClientCapabilities
-> Maybe DocumentColorClientCapabilities
forall a. Int -> Int -> a -> Maybe a
since Int
3 Int
6 (Maybe Bool -> DocumentColorClientCapabilities
DocumentColorClientCapabilities Maybe Bool
dynamicReg)
  rename :: Maybe RenameClientCapabilities
rename = RenameClientCapabilities -> Maybe RenameClientCapabilities
forall a. a -> Maybe a
Just (Maybe Bool
-> Maybe Bool
-> Maybe PrepareSupportDefaultBehavior
-> Maybe Bool
-> RenameClientCapabilities
RenameClientCapabilities Maybe Bool
dynamicReg (Int -> Int -> Bool -> Maybe Bool
forall a. Int -> Int -> a -> Maybe a
since Int
3 Int
12 Bool
True) (Int
-> Int
-> PrepareSupportDefaultBehavior
-> Maybe PrepareSupportDefaultBehavior
forall a. Int -> Int -> a -> Maybe a
since Int
3 Int
16 PrepareSupportDefaultBehavior
PrepareSupportDefaultBehavior_Identifier) (Int -> Int -> Bool -> Maybe Bool
forall a. Int -> Int -> a -> Maybe a
since Int
3 Int
16 Bool
True))
  publishDiagnostics :: Maybe PublishDiagnosticsClientCapabilities
publishDiagnostics =
    PublishDiagnosticsClientCapabilities
-> Maybe PublishDiagnosticsClientCapabilities
forall a. a -> Maybe a
Just
      PublishDiagnosticsClientCapabilities
        { $sel:_relatedInformation:PublishDiagnosticsClientCapabilities :: Maybe Bool
_relatedInformation = Int -> Int -> Bool -> Maybe Bool
forall a. Int -> Int -> a -> Maybe a
since Int
3 Int
7 Bool
True
        , $sel:_tagSupport:PublishDiagnosticsClientCapabilities :: Maybe ClientDiagnosticsTagOptions
_tagSupport = Int
-> Int
-> ClientDiagnosticsTagOptions
-> Maybe ClientDiagnosticsTagOptions
forall a. Int -> Int -> a -> Maybe a
since Int
3 Int
15 (ClientDiagnosticsTagOptions{$sel:_valueSet:ClientDiagnosticsTagOptions :: [DiagnosticTag]
_valueSet = [DiagnosticTag
DiagnosticTag_Unnecessary, DiagnosticTag
DiagnosticTag_Deprecated]})
        , $sel:_versionSupport:PublishDiagnosticsClientCapabilities :: Maybe Bool
_versionSupport = Int -> Int -> Bool -> Maybe Bool
forall a. Int -> Int -> a -> Maybe a
since Int
3 Int
15 Bool
True
        , $sel:_codeDescriptionSupport:PublishDiagnosticsClientCapabilities :: Maybe Bool
_codeDescriptionSupport = Int -> Int -> Bool -> Maybe Bool
forall a. Int -> Int -> a -> Maybe a
since Int
3 Int
16 Bool
True
        , $sel:_dataSupport:PublishDiagnosticsClientCapabilities :: Maybe Bool
_dataSupport = Int -> Int -> Bool -> Maybe Bool
forall a. Int -> Int -> a -> Maybe a
since Int
3 Int
16 Bool
True
        }
  foldingRange :: Maybe FoldingRangeClientCapabilities
foldingRange =
    Int
-> Int
-> FoldingRangeClientCapabilities
-> Maybe FoldingRangeClientCapabilities
forall a. Int -> Int -> a -> Maybe a
since Int
3 Int
10 (FoldingRangeClientCapabilities
 -> Maybe FoldingRangeClientCapabilities)
-> FoldingRangeClientCapabilities
-> Maybe FoldingRangeClientCapabilities
forall a b. (a -> b) -> a -> b
$
      FoldingRangeClientCapabilities
        { $sel:_dynamicRegistration:FoldingRangeClientCapabilities :: Maybe Bool
_dynamicRegistration = Maybe Bool
dynamicReg
        , $sel:_rangeLimit:FoldingRangeClientCapabilities :: Maybe UInt
_rangeLimit = Maybe UInt
forall a. Maybe a
Nothing
        , $sel:_lineFoldingOnly:FoldingRangeClientCapabilities :: Maybe Bool
_lineFoldingOnly = Maybe Bool
forall a. Maybe a
Nothing
        , $sel:_foldingRangeKind:FoldingRangeClientCapabilities :: Maybe ClientFoldingRangeKindOptions
_foldingRangeKind = Int
-> Int
-> ClientFoldingRangeKindOptions
-> Maybe ClientFoldingRangeKindOptions
forall a. Int -> Int -> a -> Maybe a
since Int
3 Int
17 (ClientFoldingRangeKindOptions{$sel:_valueSet:ClientFoldingRangeKindOptions :: Maybe [FoldingRangeKind]
_valueSet = [FoldingRangeKind] -> Maybe [FoldingRangeKind]
forall a. a -> Maybe a
Just []})
        , $sel:_foldingRange:FoldingRangeClientCapabilities :: Maybe ClientFoldingRangeOptions
_foldingRange = Int
-> Int
-> ClientFoldingRangeOptions
-> Maybe ClientFoldingRangeOptions
forall a. Int -> Int -> a -> Maybe a
since Int
3 Int
16 (ClientFoldingRangeOptions{$sel:_collapsedText:ClientFoldingRangeOptions :: Maybe Bool
_collapsedText = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
True})
        }
  selectionRange :: Maybe SelectionRangeClientCapabilities
selectionRange = Int
-> Int
-> SelectionRangeClientCapabilities
-> Maybe SelectionRangeClientCapabilities
forall a. Int -> Int -> a -> Maybe a
since Int
3 Int
5 (Maybe Bool -> SelectionRangeClientCapabilities
SelectionRangeClientCapabilities Maybe Bool
dynamicReg)
  callHierarchy :: Maybe CallHierarchyClientCapabilities
callHierarchy = Int
-> Int
-> CallHierarchyClientCapabilities
-> Maybe CallHierarchyClientCapabilities
forall a. Int -> Int -> a -> Maybe a
since Int
3 Int
16 (Maybe Bool -> CallHierarchyClientCapabilities
CallHierarchyClientCapabilities Maybe Bool
dynamicReg)
  semanticTokens :: Maybe SemanticTokensClientCapabilities
semanticTokens =
    Int
-> Int
-> SemanticTokensClientCapabilities
-> Maybe SemanticTokensClientCapabilities
forall a. Int -> Int -> a -> Maybe a
since Int
3 Int
16 (SemanticTokensClientCapabilities
 -> Maybe SemanticTokensClientCapabilities)
-> SemanticTokensClientCapabilities
-> Maybe SemanticTokensClientCapabilities
forall a b. (a -> b) -> a -> b
$
      SemanticTokensClientCapabilities
        { $sel:_dynamicRegistration:SemanticTokensClientCapabilities :: Maybe Bool
_dynamicRegistration = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
True
        , $sel:_requests:SemanticTokensClientCapabilities :: ClientSemanticTokensRequestOptions
_requests = ClientSemanticTokensRequestOptions{$sel:_range:ClientSemanticTokensRequestOptions :: Maybe (Bool |? Rec Empty)
_range = (Bool |? Rec Empty) -> Maybe (Bool |? Rec Empty)
forall a. a -> Maybe a
Just (Bool -> Bool |? Rec Empty
forall a b. a -> a |? b
InL Bool
True), $sel:_full:ClientSemanticTokensRequestOptions :: Maybe (Bool |? ClientSemanticTokensRequestFullDelta)
_full = (Bool |? ClientSemanticTokensRequestFullDelta)
-> Maybe (Bool |? ClientSemanticTokensRequestFullDelta)
forall a. a -> Maybe a
Just (ClientSemanticTokensRequestFullDelta
-> Bool |? ClientSemanticTokensRequestFullDelta
forall a b. b -> a |? b
InR (ClientSemanticTokensRequestFullDelta{$sel:_delta:ClientSemanticTokensRequestFullDelta :: Maybe Bool
_delta = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
True}))}
        , $sel:_tokenTypes:SemanticTokensClientCapabilities :: [Text]
_tokenTypes = SemanticTokenTypes -> Text
SemanticTokenTypes -> EnumBaseType SemanticTokenTypes
forall a. LspEnum a => a -> EnumBaseType a
toEnumBaseType (SemanticTokenTypes -> Text) -> [SemanticTokenTypes] -> [Text]
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Set SemanticTokenTypes -> [SemanticTokenTypes]
forall a. Set a -> [a]
Set.toList (forall a. LspEnum a => Set a
knownValues @SemanticTokenTypes)
        , $sel:_tokenModifiers:SemanticTokensClientCapabilities :: [Text]
_tokenModifiers = SemanticTokenModifiers -> Text
SemanticTokenModifiers -> EnumBaseType SemanticTokenModifiers
forall a. LspEnum a => a -> EnumBaseType a
toEnumBaseType (SemanticTokenModifiers -> Text)
-> [SemanticTokenModifiers] -> [Text]
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Set SemanticTokenModifiers -> [SemanticTokenModifiers]
forall a. Set a -> [a]
Set.toList (forall a. LspEnum a => Set a
knownValues @SemanticTokenModifiers)
        , $sel:_formats:SemanticTokensClientCapabilities :: [TokenFormat]
_formats = [TokenFormat]
tfs
        , $sel:_overlappingTokenSupport:SemanticTokensClientCapabilities :: Maybe Bool
_overlappingTokenSupport = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
True
        , $sel:_multilineTokenSupport:SemanticTokensClientCapabilities :: Maybe Bool
_multilineTokenSupport = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
True
        , $sel:_serverCancelSupport:SemanticTokensClientCapabilities :: Maybe Bool
_serverCancelSupport = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
True
        , $sel:_augmentsSyntaxTokens:SemanticTokensClientCapabilities :: Maybe Bool
_augmentsSyntaxTokens = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
True
        }
  linkedEditingRange :: Maybe LinkedEditingRangeClientCapabilities
linkedEditingRange = Int
-> Int
-> LinkedEditingRangeClientCapabilities
-> Maybe LinkedEditingRangeClientCapabilities
forall a. Int -> Int -> a -> Maybe a
since Int
3 Int
16 (Maybe Bool -> LinkedEditingRangeClientCapabilities
LinkedEditingRangeClientCapabilities Maybe Bool
dynamicReg)
  moniker :: Maybe MonikerClientCapabilities
moniker = Int
-> Int
-> MonikerClientCapabilities
-> Maybe MonikerClientCapabilities
forall a. Int -> Int -> a -> Maybe a
since Int
3 Int
16 (Maybe Bool -> MonikerClientCapabilities
MonikerClientCapabilities Maybe Bool
dynamicReg)
  inlayHint :: Maybe InlayHintClientCapabilities
inlayHint =
    Int
-> Int
-> InlayHintClientCapabilities
-> Maybe InlayHintClientCapabilities
forall a. Int -> Int -> a -> Maybe a
since Int
3 Int
17 (InlayHintClientCapabilities -> Maybe InlayHintClientCapabilities)
-> InlayHintClientCapabilities -> Maybe InlayHintClientCapabilities
forall a b. (a -> b) -> a -> b
$
      InlayHintClientCapabilities
        { $sel:_dynamicRegistration:InlayHintClientCapabilities :: Maybe Bool
_dynamicRegistration = Maybe Bool
dynamicReg
        , $sel:_resolveSupport:InlayHintClientCapabilities :: Maybe ClientInlayHintResolveOptions
_resolveSupport = ClientInlayHintResolveOptions
-> Maybe ClientInlayHintResolveOptions
forall a. a -> Maybe a
Just (ClientInlayHintResolveOptions{$sel:_properties:ClientInlayHintResolveOptions :: [Text]
_properties = []})
        }
  typeHierarchy :: Maybe TypeHierarchyClientCapabilities
typeHierarchy = Int
-> Int
-> TypeHierarchyClientCapabilities
-> Maybe TypeHierarchyClientCapabilities
forall a. Int -> Int -> a -> Maybe a
since Int
3 Int
17 (Maybe Bool -> TypeHierarchyClientCapabilities
TypeHierarchyClientCapabilities Maybe Bool
dynamicReg)
  inlineValue :: Maybe InlineValueClientCapabilities
inlineValue = Int
-> Int
-> InlineValueClientCapabilities
-> Maybe InlineValueClientCapabilities
forall a. Int -> Int -> a -> Maybe a
since Int
3 Int
17 (Maybe Bool -> InlineValueClientCapabilities
InlineValueClientCapabilities Maybe Bool
dynamicReg)
  diagnostic :: Maybe DiagnosticClientCapabilities
diagnostic = Int
-> Int
-> DiagnosticClientCapabilities
-> Maybe DiagnosticClientCapabilities
forall a. Int -> Int -> a -> Maybe a
since Int
3 Int
17 (Maybe Bool -> Maybe Bool -> DiagnosticClientCapabilities
DiagnosticClientCapabilities Maybe Bool
dynamicReg (Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
True))

  completionItemCapabilities :: ClientCompletionItemOptions
completionItemCapabilities =
    ClientCompletionItemOptions
      { $sel:_snippetSupport:ClientCompletionItemOptions :: Maybe Bool
_snippetSupport = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
True
      , $sel:_commitCharactersSupport:ClientCompletionItemOptions :: Maybe Bool
_commitCharactersSupport = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
True
      , $sel:_documentationFormat:ClientCompletionItemOptions :: Maybe [MarkupKind]
_documentationFormat = Int -> Int -> [MarkupKind] -> Maybe [MarkupKind]
forall a. Int -> Int -> a -> Maybe a
since Int
3 Int
3 [MarkupKind]
allMarkups
      , $sel:_deprecatedSupport:ClientCompletionItemOptions :: Maybe Bool
_deprecatedSupport = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
True
      , $sel:_preselectSupport:ClientCompletionItemOptions :: Maybe Bool
_preselectSupport = Int -> Int -> Bool -> Maybe Bool
forall a. Int -> Int -> a -> Maybe a
since Int
3 Int
9 Bool
True
      , $sel:_tagSupport:ClientCompletionItemOptions :: Maybe CompletionItemTagOptions
_tagSupport = Int
-> Int
-> CompletionItemTagOptions
-> Maybe CompletionItemTagOptions
forall a. Int -> Int -> a -> Maybe a
since Int
3 Int
15 (CompletionItemTagOptions{$sel:_valueSet:CompletionItemTagOptions :: [CompletionItemTag]
_valueSet = []})
      , $sel:_insertReplaceSupport:ClientCompletionItemOptions :: Maybe Bool
_insertReplaceSupport = Int -> Int -> Bool -> Maybe Bool
forall a. Int -> Int -> a -> Maybe a
since Int
3 Int
16 Bool
True
      , $sel:_resolveSupport:ClientCompletionItemOptions :: Maybe ClientCompletionItemResolveOptions
_resolveSupport = Int
-> Int
-> ClientCompletionItemResolveOptions
-> Maybe ClientCompletionItemResolveOptions
forall a. Int -> Int -> a -> Maybe a
since Int
3 Int
16 (ClientCompletionItemResolveOptions{$sel:_properties:ClientCompletionItemResolveOptions :: [Text]
_properties = [Text
"documentation", Text
"details"]})
      , $sel:_insertTextModeSupport:ClientCompletionItemOptions :: Maybe ClientCompletionItemInsertTextModeOptions
_insertTextModeSupport = Int
-> Int
-> ClientCompletionItemInsertTextModeOptions
-> Maybe ClientCompletionItemInsertTextModeOptions
forall a. Int -> Int -> a -> Maybe a
since Int
3 Int
16 (ClientCompletionItemInsertTextModeOptions{$sel:_valueSet:ClientCompletionItemInsertTextModeOptions :: [InsertTextMode]
_valueSet = []})
      , $sel:_labelDetailsSupport:ClientCompletionItemOptions :: Maybe Bool
_labelDetailsSupport = Int -> Int -> Bool -> Maybe Bool
forall a. Int -> Int -> a -> Maybe a
since Int
3 Int
17 Bool
True
      }

  sKs :: [SymbolKind]
sKs
    | Int
maj Int -> Int -> Bool
forall a. Ord a => a -> a -> Bool
>= Int
3 Bool -> Bool -> Bool
&& Int
min Int -> Int -> Bool
forall a. Ord a => a -> a -> Bool
>= Int
4 = [SymbolKind]
oldSKs [SymbolKind] -> [SymbolKind] -> [SymbolKind]
forall a. [a] -> [a] -> [a]
++ [SymbolKind]
newSKs
    | Bool
otherwise = [SymbolKind]
oldSKs

  oldSKs :: [SymbolKind]
oldSKs =
    [ SymbolKind
SymbolKind_File
    , SymbolKind
SymbolKind_Module
    , SymbolKind
SymbolKind_Namespace
    , SymbolKind
SymbolKind_Package
    , SymbolKind
SymbolKind_Class
    , SymbolKind
SymbolKind_Method
    , SymbolKind
SymbolKind_Property
    , SymbolKind
SymbolKind_Field
    , SymbolKind
SymbolKind_Constructor
    , SymbolKind
SymbolKind_Enum
    , SymbolKind
SymbolKind_Interface
    , SymbolKind
SymbolKind_Function
    , SymbolKind
SymbolKind_Variable
    , SymbolKind
SymbolKind_Constant
    , SymbolKind
SymbolKind_String
    , SymbolKind
SymbolKind_Number
    , SymbolKind
SymbolKind_Boolean
    , SymbolKind
SymbolKind_Array
    ]

  newSKs :: [SymbolKind]
newSKs =
    [ SymbolKind
SymbolKind_Object
    , SymbolKind
SymbolKind_Key
    , SymbolKind
SymbolKind_Null
    , SymbolKind
SymbolKind_EnumMember
    , SymbolKind
SymbolKind_Struct
    , SymbolKind
SymbolKind_Event
    , SymbolKind
SymbolKind_Operator
    , SymbolKind
SymbolKind_TypeParameter
    ]

  ciKs :: [CompletionItemKind]
ciKs
    | Int
maj Int -> Int -> Bool
forall a. Ord a => a -> a -> Bool
>= Int
3 Bool -> Bool -> Bool
&& Int
min Int -> Int -> Bool
forall a. Ord a => a -> a -> Bool
>= Int
4 = [CompletionItemKind]
oldCiKs [CompletionItemKind]
-> [CompletionItemKind] -> [CompletionItemKind]
forall a. [a] -> [a] -> [a]
++ [CompletionItemKind]
newCiKs
    | Bool
otherwise = [CompletionItemKind]
oldCiKs

  oldCiKs :: [CompletionItemKind]
oldCiKs =
    [ CompletionItemKind
CompletionItemKind_Text
    , CompletionItemKind
CompletionItemKind_Method
    , CompletionItemKind
CompletionItemKind_Function
    , CompletionItemKind
CompletionItemKind_Constructor
    , CompletionItemKind
CompletionItemKind_Field
    , CompletionItemKind
CompletionItemKind_Variable
    , CompletionItemKind
CompletionItemKind_Class
    , CompletionItemKind
CompletionItemKind_Interface
    , CompletionItemKind
CompletionItemKind_Module
    , CompletionItemKind
CompletionItemKind_Property
    , CompletionItemKind
CompletionItemKind_Unit
    , CompletionItemKind
CompletionItemKind_Value
    , CompletionItemKind
CompletionItemKind_Enum
    , CompletionItemKind
CompletionItemKind_Keyword
    , CompletionItemKind
CompletionItemKind_Snippet
    , CompletionItemKind
CompletionItemKind_Color
    , CompletionItemKind
CompletionItemKind_File
    , CompletionItemKind
CompletionItemKind_Reference
    ]

  newCiKs :: [CompletionItemKind]
newCiKs =
    [ CompletionItemKind
CompletionItemKind_Folder
    , CompletionItemKind
CompletionItemKind_EnumMember
    , CompletionItemKind
CompletionItemKind_Constant
    , CompletionItemKind
CompletionItemKind_Struct
    , CompletionItemKind
CompletionItemKind_Event
    , CompletionItemKind
CompletionItemKind_Operator
    , CompletionItemKind
CompletionItemKind_TypeParameter
    ]

  allMarkups :: [MarkupKind]
allMarkups = [MarkupKind
MarkupKind_PlainText, MarkupKind
MarkupKind_Markdown]

  tfs :: [TokenFormat]
tfs = [TokenFormat
TokenFormat_Relative]

  dynamicReg :: Maybe Bool
dynamicReg
    | Int
maj Int -> Int -> Bool
forall a. Ord a => a -> a -> Bool
>= Int
3 = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
True
    | Bool
otherwise = Maybe Bool
forall a. Maybe a
Nothing
  since :: Int -> Int -> a -> Maybe a
  since :: forall a. Int -> Int -> a -> Maybe a
since Int
x Int
y a
a
    | Int
maj Int -> Int -> Bool
forall a. Ord a => a -> a -> Bool
>= Int
x Bool -> Bool -> Bool
&& Int
min Int -> Int -> Bool
forall a. Ord a => a -> a -> Bool
>= Int
y = a -> Maybe a
forall a. a -> Maybe a
Just a
a
    | Bool
otherwise = Maybe a
forall a. Maybe a
Nothing

---- SERVER CAPABILITIES

type DocumentSyncCaps = TextDocumentSyncOptions |? TextDocumentSyncKind
type NotebookDocumentSyncCaps = NotebookDocumentSyncOptions |? NotebookDocumentSyncRegistrationOptions

type ServerCapability :: forall f t. Method f t -> Type

-- See Note [Capability mappings]

{- | The server capability associated with a given method.

Where several methods are provided together (e.g. the three `callHierarchy` methods), we associate all of them
with the capaiblity, even if there is one "primary" method.

For methods which strictly only need a client capability but which are closely related to a server capability
(e.g. `codeLens/refresh`), we also associate them with that server capability.
-}
type family ServerCapability (m :: Method f t) where
  ServerCapability Method_TextDocumentDeclaration = Bool |? (DeclarationOptions |? DeclarationRegistrationOptions)
  ServerCapability Method_TextDocumentImplementation = Bool |? (ImplementationOptions |? ImplementationRegistrationOptions)
  ServerCapability Method_TextDocumentTypeDefinition = Bool |? (TypeDefinitionOptions |? TypeDefinitionRegistrationOptions)
  ServerCapability Method_TextDocumentHover = Bool |? HoverOptions
  ServerCapability Method_TextDocumentSignatureHelp = SignatureHelpOptions
  ServerCapability Method_TextDocumentDefinition = Bool |? DefinitionOptions
  ServerCapability Method_TextDocumentReferences = Bool |? ReferenceOptions
  ServerCapability Method_TextDocumentDocumentHighlight = Bool |? DocumentHighlightOptions
  ServerCapability Method_TextDocumentDocumentSymbol = Bool |? DocumentSymbolOptions
  ServerCapability Method_TextDocumentFoldingRange = Bool |? (FoldingRangeOptions |? FoldingRangeRegistrationOptions)
  ServerCapability Method_TextDocumentSelectionRange = Bool |? (SelectionRangeOptions |? SelectionRangeRegistrationOptions)
  ServerCapability Method_WorkspaceExecuteCommand = ExecuteCommandOptions
  ServerCapability Method_TextDocumentLinkedEditingRange = Bool |? (LinkedEditingRangeOptions |? LinkedEditingRangeRegistrationOptions)
  ServerCapability Method_TextDocumentMoniker = Bool |? (MonikerOptions |? MonikerRegistrationOptions)
  ServerCapability Method_WorkspaceWorkspaceFolders = WorkspaceFoldersServerCapabilities
  ServerCapability Method_TextDocumentCompletion = CompletionOptions
  ServerCapability Method_CompletionItemResolve = CompletionOptions
  ServerCapability Method_TextDocumentCodeAction = Bool |? CodeActionOptions
  ServerCapability Method_CodeActionResolve = Bool |? CodeActionOptions
  ServerCapability Method_TextDocumentCodeLens = CodeLensOptions
  ServerCapability Method_CodeLensResolve = CodeLensOptions
  ServerCapability Method_WorkspaceCodeLensRefresh = CodeLensOptions
  ServerCapability Method_TextDocumentDocumentLink = DocumentLinkOptions
  ServerCapability Method_DocumentLinkResolve = DocumentLinkOptions
  ServerCapability Method_WorkspaceSymbol = Bool |? WorkspaceSymbolOptions
  ServerCapability Method_WorkspaceSymbolResolve = Bool |? WorkspaceSymbolOptions
  ServerCapability Method_TextDocumentRename = Bool |? RenameOptions
  ServerCapability Method_TextDocumentPrepareRename = Bool |? RenameOptions
  ServerCapability Method_TextDocumentDocumentColor = Bool |? (DocumentColorOptions |? DocumentColorRegistrationOptions)
  ServerCapability Method_TextDocumentColorPresentation = Bool |? (DocumentColorOptions |? DocumentColorRegistrationOptions)
  ServerCapability Method_TextDocumentFormatting = Bool |? DocumentFormattingOptions
  ServerCapability Method_TextDocumentRangeFormatting = Bool |? DocumentRangeFormattingOptions
  ServerCapability Method_TextDocumentOnTypeFormatting = DocumentOnTypeFormattingOptions
  ServerCapability Method_TextDocumentPrepareCallHierarchy = Bool |? (CallHierarchyOptions |? CallHierarchyRegistrationOptions)
  ServerCapability Method_CallHierarchyIncomingCalls = Bool |? (CallHierarchyOptions |? CallHierarchyRegistrationOptions)
  ServerCapability Method_CallHierarchyOutgoingCalls = Bool |? (CallHierarchyOptions |? CallHierarchyRegistrationOptions)
  ServerCapability Method_TextDocumentSemanticTokensFull = SemanticTokensOptions |? SemanticTokensRegistrationOptions
  ServerCapability Method_TextDocumentSemanticTokensFullDelta = SemanticTokensOptions |? SemanticTokensRegistrationOptions
  ServerCapability Method_TextDocumentSemanticTokensRange = SemanticTokensOptions |? SemanticTokensRegistrationOptions
  ServerCapability Method_WorkspaceSemanticTokensRefresh = SemanticTokensOptions |? SemanticTokensRegistrationOptions
  ServerCapability Method_TextDocumentPrepareTypeHierarchy = Bool |? (TypeHierarchyOptions |? TypeHierarchyRegistrationOptions)
  ServerCapability Method_TypeHierarchySupertypes = Bool |? (TypeHierarchyOptions |? TypeHierarchyRegistrationOptions)
  ServerCapability Method_TypeHierarchySubtypes = Bool |? (TypeHierarchyOptions |? TypeHierarchyRegistrationOptions)
  ServerCapability Method_TextDocumentInlineValue = Bool |? (InlineValueOptions |? InlineValueRegistrationOptions)
  ServerCapability Method_WorkspaceInlineValueRefresh = Bool |? (InlineValueOptions |? InlineValueRegistrationOptions)
  ServerCapability Method_TextDocumentInlayHint = Bool |? (InlayHintOptions |? InlayHintRegistrationOptions)
  ServerCapability Method_InlayHintResolve = Bool |? (InlayHintOptions |? InlayHintRegistrationOptions)
  ServerCapability Method_WorkspaceInlayHintRefresh = Bool |? (InlayHintOptions |? InlayHintRegistrationOptions)
  ServerCapability Method_TextDocumentDiagnostic = DiagnosticOptions |? DiagnosticRegistrationOptions
  ServerCapability Method_WorkspaceDiagnostic = DiagnosticOptions |? DiagnosticRegistrationOptions
  ServerCapability Method_WorkspaceDiagnosticRefresh = DiagnosticOptions |? DiagnosticRegistrationOptions
  ServerCapability Method_WorkspaceWillCreateFiles = FileOperationOptions
  ServerCapability Method_WorkspaceWillRenameFiles = FileOperationOptions
  ServerCapability Method_WorkspaceWillDeleteFiles = FileOperationOptions
  ServerCapability Method_WorkspaceDidCreateFiles = FileOperationOptions
  ServerCapability Method_WorkspaceDidRenameFiles = FileOperationOptions
  ServerCapability Method_WorkspaceDidDeleteFiles = FileOperationOptions
  ServerCapability Method_TextDocumentDidOpen = DocumentSyncCaps
  ServerCapability Method_TextDocumentDidChange = DocumentSyncCaps
  ServerCapability Method_TextDocumentDidClose = DocumentSyncCaps
  ServerCapability Method_TextDocumentDidSave = DocumentSyncCaps
  ServerCapability Method_TextDocumentWillSave = DocumentSyncCaps
  ServerCapability Method_TextDocumentWillSaveWaitUntil = DocumentSyncCaps
  ServerCapability Method_NotebookDocumentDidOpen = NotebookDocumentSyncCaps
  ServerCapability Method_NotebookDocumentDidChange = NotebookDocumentSyncCaps
  ServerCapability Method_NotebookDocumentDidSave = NotebookDocumentSyncCaps
  ServerCapability Method_NotebookDocumentDidClose = NotebookDocumentSyncCaps
  -- Dynamic registration only
  ServerCapability Method_WorkspaceDidChangeConfiguration = Void
  ServerCapability Method_WorkspaceDidChangeWatchedFiles = Void
  ServerCapability Method_WorkspaceDidChangeWorkspaceFolders = Void
  -- Client capability only
  ServerCapability Method_TextDocumentPublishDiagnostics = Void
  ServerCapability Method_WorkspaceConfiguration = Void
  -- All required by default, no capabilities
  ServerCapability Method_WindowWorkDoneProgressCreate = Void
  ServerCapability Method_WindowWorkDoneProgressCancel = Void
  ServerCapability Method_Progress = Void
  ServerCapability Method_WindowShowDocument = Void
  ServerCapability Method_WindowShowMessageRequest = Void
  ServerCapability Method_WindowShowMessage = Void
  ServerCapability Method_WindowLogMessage = Void
  ServerCapability Method_ClientRegisterCapability = Void
  ServerCapability Method_ClientUnregisterCapability = Void
  ServerCapability Method_Initialize = Void
  ServerCapability Method_Initialized = Void
  ServerCapability Method_Shutdown = Void
  ServerCapability Method_Exit = Void
  ServerCapability Method_WorkspaceApplyEdit = Void
  ServerCapability Method_TelemetryEvent = Void
  ServerCapability Method_SetTrace = Void
  ServerCapability Method_LogTrace = Void
  ServerCapability Method_CancelRequest = Void
  ServerCapability (Method_CustomMethod s) = Void

-- See Note [Capability mappings]

-- | A lens which focusses on the (possibly absent) server capability associated with a method.
serverCapability :: forall m. SMethod m -> Lens' ServerCapabilities (Maybe (ServerCapability m))
serverCapability :: forall {f :: MessageDirection} {t :: MessageKind}
       (m :: Method f t).
SMethod m -> Lens' ServerCapabilities (Maybe (ServerCapability m))
serverCapability = \case
  SMethod m
SMethod_TextDocumentDeclaration -> (Maybe
   (Bool |? (DeclarationOptions |? DeclarationRegistrationOptions))
 -> f (Maybe
         (Bool |? (DeclarationOptions |? DeclarationRegistrationOptions))))
-> ServerCapabilities -> f ServerCapabilities
(Maybe (ServerCapability m) -> f (Maybe (ServerCapability m)))
-> ServerCapabilities -> f ServerCapabilities
forall s a. HasDeclarationProvider s a => Lens' s a
Lens'
  ServerCapabilities
  (Maybe
     (Bool |? (DeclarationOptions |? DeclarationRegistrationOptions)))
L.declarationProvider
  SMethod m
SMethod_TextDocumentImplementation -> (Maybe
   (Bool
    |? (ImplementationOptions |? ImplementationRegistrationOptions))
 -> f (Maybe
         (Bool
          |? (ImplementationOptions |? ImplementationRegistrationOptions))))
-> ServerCapabilities -> f ServerCapabilities
(Maybe (ServerCapability m) -> f (Maybe (ServerCapability m)))
-> ServerCapabilities -> f ServerCapabilities
forall s a. HasImplementationProvider s a => Lens' s a
Lens'
  ServerCapabilities
  (Maybe
     (Bool
      |? (ImplementationOptions |? ImplementationRegistrationOptions)))
L.implementationProvider
  SMethod m
SMethod_TextDocumentTypeDefinition -> (Maybe
   (Bool
    |? (TypeDefinitionOptions |? TypeDefinitionRegistrationOptions))
 -> f (Maybe
         (Bool
          |? (TypeDefinitionOptions |? TypeDefinitionRegistrationOptions))))
-> ServerCapabilities -> f ServerCapabilities
(Maybe (ServerCapability m) -> f (Maybe (ServerCapability m)))
-> ServerCapabilities -> f ServerCapabilities
forall s a. HasTypeDefinitionProvider s a => Lens' s a
Lens'
  ServerCapabilities
  (Maybe
     (Bool
      |? (TypeDefinitionOptions |? TypeDefinitionRegistrationOptions)))
L.typeDefinitionProvider
  SMethod m
SMethod_TextDocumentHover -> (Maybe (Bool |? HoverOptions) -> f (Maybe (Bool |? HoverOptions)))
-> ServerCapabilities -> f ServerCapabilities
(Maybe (ServerCapability m) -> f (Maybe (ServerCapability m)))
-> ServerCapabilities -> f ServerCapabilities
forall s a. HasHoverProvider s a => Lens' s a
Lens' ServerCapabilities (Maybe (Bool |? HoverOptions))
L.hoverProvider
  SMethod m
SMethod_TextDocumentSignatureHelp -> (Maybe SignatureHelpOptions -> f (Maybe SignatureHelpOptions))
-> ServerCapabilities -> f ServerCapabilities
(Maybe (ServerCapability m) -> f (Maybe (ServerCapability m)))
-> ServerCapabilities -> f ServerCapabilities
forall s a. HasSignatureHelpProvider s a => Lens' s a
Lens' ServerCapabilities (Maybe SignatureHelpOptions)
L.signatureHelpProvider
  SMethod m
SMethod_TextDocumentDefinition -> (Maybe (Bool |? DefinitionOptions)
 -> f (Maybe (Bool |? DefinitionOptions)))
-> ServerCapabilities -> f ServerCapabilities
(Maybe (ServerCapability m) -> f (Maybe (ServerCapability m)))
-> ServerCapabilities -> f ServerCapabilities
forall s a. HasDefinitionProvider s a => Lens' s a
Lens' ServerCapabilities (Maybe (Bool |? DefinitionOptions))
L.definitionProvider
  SMethod m
SMethod_TextDocumentReferences -> (Maybe (Bool |? ReferenceOptions)
 -> f (Maybe (Bool |? ReferenceOptions)))
-> ServerCapabilities -> f ServerCapabilities
(Maybe (ServerCapability m) -> f (Maybe (ServerCapability m)))
-> ServerCapabilities -> f ServerCapabilities
forall s a. HasReferencesProvider s a => Lens' s a
Lens' ServerCapabilities (Maybe (Bool |? ReferenceOptions))
L.referencesProvider
  SMethod m
SMethod_TextDocumentDocumentHighlight -> (Maybe (Bool |? DocumentHighlightOptions)
 -> f (Maybe (Bool |? DocumentHighlightOptions)))
-> ServerCapabilities -> f ServerCapabilities
(Maybe (ServerCapability m) -> f (Maybe (ServerCapability m)))
-> ServerCapabilities -> f ServerCapabilities
forall s a. HasDocumentHighlightProvider s a => Lens' s a
Lens' ServerCapabilities (Maybe (Bool |? DocumentHighlightOptions))
L.documentHighlightProvider
  SMethod m
SMethod_TextDocumentDocumentSymbol -> (Maybe (Bool |? DocumentSymbolOptions)
 -> f (Maybe (Bool |? DocumentSymbolOptions)))
-> ServerCapabilities -> f ServerCapabilities
(Maybe (ServerCapability m) -> f (Maybe (ServerCapability m)))
-> ServerCapabilities -> f ServerCapabilities
forall s a. HasDocumentSymbolProvider s a => Lens' s a
Lens' ServerCapabilities (Maybe (Bool |? DocumentSymbolOptions))
L.documentSymbolProvider
  SMethod m
SMethod_TextDocumentFoldingRange -> (Maybe
   (Bool |? (FoldingRangeOptions |? FoldingRangeRegistrationOptions))
 -> f (Maybe
         (Bool
          |? (FoldingRangeOptions |? FoldingRangeRegistrationOptions))))
-> ServerCapabilities -> f ServerCapabilities
(Maybe (ServerCapability m) -> f (Maybe (ServerCapability m)))
-> ServerCapabilities -> f ServerCapabilities
forall s a. HasFoldingRangeProvider s a => Lens' s a
Lens'
  ServerCapabilities
  (Maybe
     (Bool |? (FoldingRangeOptions |? FoldingRangeRegistrationOptions)))
L.foldingRangeProvider
  SMethod m
SMethod_TextDocumentSelectionRange -> (Maybe
   (Bool
    |? (SelectionRangeOptions |? SelectionRangeRegistrationOptions))
 -> f (Maybe
         (Bool
          |? (SelectionRangeOptions |? SelectionRangeRegistrationOptions))))
-> ServerCapabilities -> f ServerCapabilities
(Maybe (ServerCapability m) -> f (Maybe (ServerCapability m)))
-> ServerCapabilities -> f ServerCapabilities
forall s a. HasSelectionRangeProvider s a => Lens' s a
Lens'
  ServerCapabilities
  (Maybe
     (Bool
      |? (SelectionRangeOptions |? SelectionRangeRegistrationOptions)))
L.selectionRangeProvider
  SMethod m
SMethod_WorkspaceExecuteCommand -> (Maybe ExecuteCommandOptions -> f (Maybe ExecuteCommandOptions))
-> ServerCapabilities -> f ServerCapabilities
(Maybe (ServerCapability m) -> f (Maybe (ServerCapability m)))
-> ServerCapabilities -> f ServerCapabilities
forall s a. HasExecuteCommandProvider s a => Lens' s a
Lens' ServerCapabilities (Maybe ExecuteCommandOptions)
L.executeCommandProvider
  SMethod m
SMethod_TextDocumentMoniker -> (Maybe (Bool |? (MonikerOptions |? MonikerRegistrationOptions))
 -> f (Maybe
         (Bool |? (MonikerOptions |? MonikerRegistrationOptions))))
-> ServerCapabilities -> f ServerCapabilities
(Maybe (ServerCapability m) -> f (Maybe (ServerCapability m)))
-> ServerCapabilities -> f ServerCapabilities
forall s a. HasMonikerProvider s a => Lens' s a
Lens'
  ServerCapabilities
  (Maybe (Bool |? (MonikerOptions |? MonikerRegistrationOptions)))
L.monikerProvider
  SMethod m
SMethod_TextDocumentCompletion -> (Maybe CompletionOptions -> f (Maybe CompletionOptions))
-> ServerCapabilities -> f ServerCapabilities
(Maybe (ServerCapability m) -> f (Maybe (ServerCapability m)))
-> ServerCapabilities -> f ServerCapabilities
forall s a. HasCompletionProvider s a => Lens' s a
Lens' ServerCapabilities (Maybe CompletionOptions)
L.completionProvider
  SMethod m
SMethod_CompletionItemResolve -> (Maybe CompletionOptions -> f (Maybe CompletionOptions))
-> ServerCapabilities -> f ServerCapabilities
(Maybe (ServerCapability m) -> f (Maybe (ServerCapability m)))
-> ServerCapabilities -> f ServerCapabilities
forall s a. HasCompletionProvider s a => Lens' s a
Lens' ServerCapabilities (Maybe CompletionOptions)
L.completionProvider
  SMethod m
SMethod_TextDocumentCodeAction -> (Maybe (Bool |? CodeActionOptions)
 -> f (Maybe (Bool |? CodeActionOptions)))
-> ServerCapabilities -> f ServerCapabilities
(Maybe (ServerCapability m) -> f (Maybe (ServerCapability m)))
-> ServerCapabilities -> f ServerCapabilities
forall s a. HasCodeActionProvider s a => Lens' s a
Lens' ServerCapabilities (Maybe (Bool |? CodeActionOptions))
L.codeActionProvider
  SMethod m
SMethod_CodeActionResolve -> (Maybe (Bool |? CodeActionOptions)
 -> f (Maybe (Bool |? CodeActionOptions)))
-> ServerCapabilities -> f ServerCapabilities
(Maybe (ServerCapability m) -> f (Maybe (ServerCapability m)))
-> ServerCapabilities -> f ServerCapabilities
forall s a. HasCodeActionProvider s a => Lens' s a
Lens' ServerCapabilities (Maybe (Bool |? CodeActionOptions))
L.codeActionProvider
  SMethod m
SMethod_TextDocumentCodeLens -> (Maybe CodeLensOptions -> f (Maybe CodeLensOptions))
-> ServerCapabilities -> f ServerCapabilities
(Maybe (ServerCapability m) -> f (Maybe (ServerCapability m)))
-> ServerCapabilities -> f ServerCapabilities
forall s a. HasCodeLensProvider s a => Lens' s a
Lens' ServerCapabilities (Maybe CodeLensOptions)
L.codeLensProvider
  SMethod m
SMethod_CodeLensResolve -> (Maybe CodeLensOptions -> f (Maybe CodeLensOptions))
-> ServerCapabilities -> f ServerCapabilities
(Maybe (ServerCapability m) -> f (Maybe (ServerCapability m)))
-> ServerCapabilities -> f ServerCapabilities
forall s a. HasCodeLensProvider s a => Lens' s a
Lens' ServerCapabilities (Maybe CodeLensOptions)
L.codeLensProvider
  SMethod m
SMethod_WorkspaceCodeLensRefresh -> (Maybe CodeLensOptions -> f (Maybe CodeLensOptions))
-> ServerCapabilities -> f ServerCapabilities
(Maybe (ServerCapability m) -> f (Maybe (ServerCapability m)))
-> ServerCapabilities -> f ServerCapabilities
forall s a. HasCodeLensProvider s a => Lens' s a
Lens' ServerCapabilities (Maybe CodeLensOptions)
L.codeLensProvider
  SMethod m
SMethod_TextDocumentDocumentLink -> (Maybe DocumentLinkOptions -> f (Maybe DocumentLinkOptions))
-> ServerCapabilities -> f ServerCapabilities
(Maybe (ServerCapability m) -> f (Maybe (ServerCapability m)))
-> ServerCapabilities -> f ServerCapabilities
forall s a. HasDocumentLinkProvider s a => Lens' s a
Lens' ServerCapabilities (Maybe DocumentLinkOptions)
L.documentLinkProvider
  SMethod m
SMethod_DocumentLinkResolve -> (Maybe DocumentLinkOptions -> f (Maybe DocumentLinkOptions))
-> ServerCapabilities -> f ServerCapabilities
(Maybe (ServerCapability m) -> f (Maybe (ServerCapability m)))
-> ServerCapabilities -> f ServerCapabilities
forall s a. HasDocumentLinkProvider s a => Lens' s a
Lens' ServerCapabilities (Maybe DocumentLinkOptions)
L.documentLinkProvider
  SMethod m
SMethod_TextDocumentDocumentColor -> (Maybe
   (Bool
    |? (DocumentColorOptions |? DocumentColorRegistrationOptions))
 -> f (Maybe
         (Bool
          |? (DocumentColorOptions |? DocumentColorRegistrationOptions))))
-> ServerCapabilities -> f ServerCapabilities
(Maybe (ServerCapability m) -> f (Maybe (ServerCapability m)))
-> ServerCapabilities -> f ServerCapabilities
forall s a. HasColorProvider s a => Lens' s a
Lens'
  ServerCapabilities
  (Maybe
     (Bool
      |? (DocumentColorOptions |? DocumentColorRegistrationOptions)))
L.colorProvider
  SMethod m
SMethod_TextDocumentColorPresentation -> (Maybe
   (Bool
    |? (DocumentColorOptions |? DocumentColorRegistrationOptions))
 -> f (Maybe
         (Bool
          |? (DocumentColorOptions |? DocumentColorRegistrationOptions))))
-> ServerCapabilities -> f ServerCapabilities
(Maybe (ServerCapability m) -> f (Maybe (ServerCapability m)))
-> ServerCapabilities -> f ServerCapabilities
forall s a. HasColorProvider s a => Lens' s a
Lens'
  ServerCapabilities
  (Maybe
     (Bool
      |? (DocumentColorOptions |? DocumentColorRegistrationOptions)))
L.colorProvider
  SMethod m
SMethod_WorkspaceSymbol -> (Maybe (Bool |? WorkspaceSymbolOptions)
 -> f (Maybe (Bool |? WorkspaceSymbolOptions)))
-> ServerCapabilities -> f ServerCapabilities
(Maybe (ServerCapability m) -> f (Maybe (ServerCapability m)))
-> ServerCapabilities -> f ServerCapabilities
forall s a. HasWorkspaceSymbolProvider s a => Lens' s a
Lens' ServerCapabilities (Maybe (Bool |? WorkspaceSymbolOptions))
L.workspaceSymbolProvider
  SMethod m
SMethod_WorkspaceSymbolResolve -> (Maybe (Bool |? WorkspaceSymbolOptions)
 -> f (Maybe (Bool |? WorkspaceSymbolOptions)))
-> ServerCapabilities -> f ServerCapabilities
(Maybe (ServerCapability m) -> f (Maybe (ServerCapability m)))
-> ServerCapabilities -> f ServerCapabilities
forall s a. HasWorkspaceSymbolProvider s a => Lens' s a
Lens' ServerCapabilities (Maybe (Bool |? WorkspaceSymbolOptions))
L.workspaceSymbolProvider
  SMethod m
SMethod_TextDocumentFormatting -> (Maybe (Bool |? DocumentFormattingOptions)
 -> f (Maybe (Bool |? DocumentFormattingOptions)))
-> ServerCapabilities -> f ServerCapabilities
(Maybe (ServerCapability m) -> f (Maybe (ServerCapability m)))
-> ServerCapabilities -> f ServerCapabilities
forall s a. HasDocumentFormattingProvider s a => Lens' s a
Lens'
  ServerCapabilities (Maybe (Bool |? DocumentFormattingOptions))
L.documentFormattingProvider
  SMethod m
SMethod_TextDocumentRangeFormatting -> (Maybe (Bool |? DocumentRangeFormattingOptions)
 -> f (Maybe (Bool |? DocumentRangeFormattingOptions)))
-> ServerCapabilities -> f ServerCapabilities
(Maybe (ServerCapability m) -> f (Maybe (ServerCapability m)))
-> ServerCapabilities -> f ServerCapabilities
forall s a. HasDocumentRangeFormattingProvider s a => Lens' s a
Lens'
  ServerCapabilities (Maybe (Bool |? DocumentRangeFormattingOptions))
L.documentRangeFormattingProvider
  SMethod m
SMethod_TextDocumentOnTypeFormatting -> (Maybe DocumentOnTypeFormattingOptions
 -> f (Maybe DocumentOnTypeFormattingOptions))
-> ServerCapabilities -> f ServerCapabilities
(Maybe (ServerCapability m) -> f (Maybe (ServerCapability m)))
-> ServerCapabilities -> f ServerCapabilities
forall s a. HasDocumentOnTypeFormattingProvider s a => Lens' s a
Lens' ServerCapabilities (Maybe DocumentOnTypeFormattingOptions)
L.documentOnTypeFormattingProvider
  SMethod m
SMethod_TextDocumentRename -> (Maybe (Bool |? RenameOptions)
 -> f (Maybe (Bool |? RenameOptions)))
-> ServerCapabilities -> f ServerCapabilities
(Maybe (ServerCapability m) -> f (Maybe (ServerCapability m)))
-> ServerCapabilities -> f ServerCapabilities
forall s a. HasRenameProvider s a => Lens' s a
Lens' ServerCapabilities (Maybe (Bool |? RenameOptions))
L.renameProvider
  SMethod m
SMethod_TextDocumentPrepareRename -> (Maybe (Bool |? RenameOptions)
 -> f (Maybe (Bool |? RenameOptions)))
-> ServerCapabilities -> f ServerCapabilities
(Maybe (ServerCapability m) -> f (Maybe (ServerCapability m)))
-> ServerCapabilities -> f ServerCapabilities
forall s a. HasRenameProvider s a => Lens' s a
Lens' ServerCapabilities (Maybe (Bool |? RenameOptions))
L.renameProvider
  SMethod m
SMethod_TextDocumentPrepareCallHierarchy -> (Maybe
   (Bool
    |? (CallHierarchyOptions |? CallHierarchyRegistrationOptions))
 -> f (Maybe
         (Bool
          |? (CallHierarchyOptions |? CallHierarchyRegistrationOptions))))
-> ServerCapabilities -> f ServerCapabilities
(Maybe (ServerCapability m) -> f (Maybe (ServerCapability m)))
-> ServerCapabilities -> f ServerCapabilities
forall s a. HasCallHierarchyProvider s a => Lens' s a
Lens'
  ServerCapabilities
  (Maybe
     (Bool
      |? (CallHierarchyOptions |? CallHierarchyRegistrationOptions)))
L.callHierarchyProvider
  SMethod m
SMethod_CallHierarchyIncomingCalls -> (Maybe
   (Bool
    |? (CallHierarchyOptions |? CallHierarchyRegistrationOptions))
 -> f (Maybe
         (Bool
          |? (CallHierarchyOptions |? CallHierarchyRegistrationOptions))))
-> ServerCapabilities -> f ServerCapabilities
(Maybe (ServerCapability m) -> f (Maybe (ServerCapability m)))
-> ServerCapabilities -> f ServerCapabilities
forall s a. HasCallHierarchyProvider s a => Lens' s a
Lens'
  ServerCapabilities
  (Maybe
     (Bool
      |? (CallHierarchyOptions |? CallHierarchyRegistrationOptions)))
L.callHierarchyProvider
  SMethod m
SMethod_CallHierarchyOutgoingCalls -> (Maybe
   (Bool
    |? (CallHierarchyOptions |? CallHierarchyRegistrationOptions))
 -> f (Maybe
         (Bool
          |? (CallHierarchyOptions |? CallHierarchyRegistrationOptions))))
-> ServerCapabilities -> f ServerCapabilities
(Maybe (ServerCapability m) -> f (Maybe (ServerCapability m)))
-> ServerCapabilities -> f ServerCapabilities
forall s a. HasCallHierarchyProvider s a => Lens' s a
Lens'
  ServerCapabilities
  (Maybe
     (Bool
      |? (CallHierarchyOptions |? CallHierarchyRegistrationOptions)))
L.callHierarchyProvider
  SMethod m
SMethod_TextDocumentLinkedEditingRange -> (Maybe
   (Bool
    |? (LinkedEditingRangeOptions
        |? LinkedEditingRangeRegistrationOptions))
 -> f (Maybe
         (Bool
          |? (LinkedEditingRangeOptions
              |? LinkedEditingRangeRegistrationOptions))))
-> ServerCapabilities -> f ServerCapabilities
(Maybe (ServerCapability m) -> f (Maybe (ServerCapability m)))
-> ServerCapabilities -> f ServerCapabilities
forall s a. HasLinkedEditingRangeProvider s a => Lens' s a
Lens'
  ServerCapabilities
  (Maybe
     (Bool
      |? (LinkedEditingRangeOptions
          |? LinkedEditingRangeRegistrationOptions)))
L.linkedEditingRangeProvider
  SMethod m
SMethod_TextDocumentSemanticTokensFull -> (Maybe (SemanticTokensOptions |? SemanticTokensRegistrationOptions)
 -> f (Maybe
         (SemanticTokensOptions |? SemanticTokensRegistrationOptions)))
-> ServerCapabilities -> f ServerCapabilities
(Maybe (ServerCapability m) -> f (Maybe (ServerCapability m)))
-> ServerCapabilities -> f ServerCapabilities
forall s a. HasSemanticTokensProvider s a => Lens' s a
Lens'
  ServerCapabilities
  (Maybe
     (SemanticTokensOptions |? SemanticTokensRegistrationOptions))
L.semanticTokensProvider
  SMethod m
SMethod_TextDocumentSemanticTokensFullDelta -> (Maybe (SemanticTokensOptions |? SemanticTokensRegistrationOptions)
 -> f (Maybe
         (SemanticTokensOptions |? SemanticTokensRegistrationOptions)))
-> ServerCapabilities -> f ServerCapabilities
(Maybe (ServerCapability m) -> f (Maybe (ServerCapability m)))
-> ServerCapabilities -> f ServerCapabilities
forall s a. HasSemanticTokensProvider s a => Lens' s a
Lens'
  ServerCapabilities
  (Maybe
     (SemanticTokensOptions |? SemanticTokensRegistrationOptions))
L.semanticTokensProvider
  SMethod m
SMethod_TextDocumentSemanticTokensRange -> (Maybe (SemanticTokensOptions |? SemanticTokensRegistrationOptions)
 -> f (Maybe
         (SemanticTokensOptions |? SemanticTokensRegistrationOptions)))
-> ServerCapabilities -> f ServerCapabilities
(Maybe (ServerCapability m) -> f (Maybe (ServerCapability m)))
-> ServerCapabilities -> f ServerCapabilities
forall s a. HasSemanticTokensProvider s a => Lens' s a
Lens'
  ServerCapabilities
  (Maybe
     (SemanticTokensOptions |? SemanticTokensRegistrationOptions))
L.semanticTokensProvider
  SMethod m
SMethod_WorkspaceSemanticTokensRefresh -> (Maybe (SemanticTokensOptions |? SemanticTokensRegistrationOptions)
 -> f (Maybe
         (SemanticTokensOptions |? SemanticTokensRegistrationOptions)))
-> ServerCapabilities -> f ServerCapabilities
(Maybe (ServerCapability m) -> f (Maybe (ServerCapability m)))
-> ServerCapabilities -> f ServerCapabilities
forall s a. HasSemanticTokensProvider s a => Lens' s a
Lens'
  ServerCapabilities
  (Maybe
     (SemanticTokensOptions |? SemanticTokensRegistrationOptions))
L.semanticTokensProvider
  SMethod m
SMethod_TextDocumentPrepareTypeHierarchy -> (Maybe
   (Bool
    |? (TypeHierarchyOptions |? TypeHierarchyRegistrationOptions))
 -> f (Maybe
         (Bool
          |? (TypeHierarchyOptions |? TypeHierarchyRegistrationOptions))))
-> ServerCapabilities -> f ServerCapabilities
(Maybe (ServerCapability m) -> f (Maybe (ServerCapability m)))
-> ServerCapabilities -> f ServerCapabilities
forall s a. HasTypeHierarchyProvider s a => Lens' s a
Lens'
  ServerCapabilities
  (Maybe
     (Bool
      |? (TypeHierarchyOptions |? TypeHierarchyRegistrationOptions)))
L.typeHierarchyProvider
  SMethod m
SMethod_TypeHierarchySubtypes -> (Maybe
   (Bool
    |? (TypeHierarchyOptions |? TypeHierarchyRegistrationOptions))
 -> f (Maybe
         (Bool
          |? (TypeHierarchyOptions |? TypeHierarchyRegistrationOptions))))
-> ServerCapabilities -> f ServerCapabilities
(Maybe (ServerCapability m) -> f (Maybe (ServerCapability m)))
-> ServerCapabilities -> f ServerCapabilities
forall s a. HasTypeHierarchyProvider s a => Lens' s a
Lens'
  ServerCapabilities
  (Maybe
     (Bool
      |? (TypeHierarchyOptions |? TypeHierarchyRegistrationOptions)))
L.typeHierarchyProvider
  SMethod m
SMethod_TypeHierarchySupertypes -> (Maybe
   (Bool
    |? (TypeHierarchyOptions |? TypeHierarchyRegistrationOptions))
 -> f (Maybe
         (Bool
          |? (TypeHierarchyOptions |? TypeHierarchyRegistrationOptions))))
-> ServerCapabilities -> f ServerCapabilities
(Maybe (ServerCapability m) -> f (Maybe (ServerCapability m)))
-> ServerCapabilities -> f ServerCapabilities
forall s a. HasTypeHierarchyProvider s a => Lens' s a
Lens'
  ServerCapabilities
  (Maybe
     (Bool
      |? (TypeHierarchyOptions |? TypeHierarchyRegistrationOptions)))
L.typeHierarchyProvider
  SMethod m
SMethod_TextDocumentInlineValue -> (Maybe
   (Bool |? (InlineValueOptions |? InlineValueRegistrationOptions))
 -> f (Maybe
         (Bool |? (InlineValueOptions |? InlineValueRegistrationOptions))))
-> ServerCapabilities -> f ServerCapabilities
(Maybe (ServerCapability m) -> f (Maybe (ServerCapability m)))
-> ServerCapabilities -> f ServerCapabilities
forall s a. HasInlineValueProvider s a => Lens' s a
Lens'
  ServerCapabilities
  (Maybe
     (Bool |? (InlineValueOptions |? InlineValueRegistrationOptions)))
L.inlineValueProvider
  SMethod m
SMethod_WorkspaceInlineValueRefresh -> (Maybe
   (Bool |? (InlineValueOptions |? InlineValueRegistrationOptions))
 -> f (Maybe
         (Bool |? (InlineValueOptions |? InlineValueRegistrationOptions))))
-> ServerCapabilities -> f ServerCapabilities
(Maybe (ServerCapability m) -> f (Maybe (ServerCapability m)))
-> ServerCapabilities -> f ServerCapabilities
forall s a. HasInlineValueProvider s a => Lens' s a
Lens'
  ServerCapabilities
  (Maybe
     (Bool |? (InlineValueOptions |? InlineValueRegistrationOptions)))
L.inlineValueProvider
  SMethod m
SMethod_TextDocumentInlayHint -> (Maybe (Bool |? (InlayHintOptions |? InlayHintRegistrationOptions))
 -> f (Maybe
         (Bool |? (InlayHintOptions |? InlayHintRegistrationOptions))))
-> ServerCapabilities -> f ServerCapabilities
(Maybe (ServerCapability m) -> f (Maybe (ServerCapability m)))
-> ServerCapabilities -> f ServerCapabilities
forall s a. HasInlayHintProvider s a => Lens' s a
Lens'
  ServerCapabilities
  (Maybe
     (Bool |? (InlayHintOptions |? InlayHintRegistrationOptions)))
L.inlayHintProvider
  SMethod m
SMethod_InlayHintResolve -> (Maybe (Bool |? (InlayHintOptions |? InlayHintRegistrationOptions))
 -> f (Maybe
         (Bool |? (InlayHintOptions |? InlayHintRegistrationOptions))))
-> ServerCapabilities -> f ServerCapabilities
(Maybe (ServerCapability m) -> f (Maybe (ServerCapability m)))
-> ServerCapabilities -> f ServerCapabilities
forall s a. HasInlayHintProvider s a => Lens' s a
Lens'
  ServerCapabilities
  (Maybe
     (Bool |? (InlayHintOptions |? InlayHintRegistrationOptions)))
L.inlayHintProvider
  SMethod m
SMethod_WorkspaceInlayHintRefresh -> (Maybe (Bool |? (InlayHintOptions |? InlayHintRegistrationOptions))
 -> f (Maybe
         (Bool |? (InlayHintOptions |? InlayHintRegistrationOptions))))
-> ServerCapabilities -> f ServerCapabilities
(Maybe (ServerCapability m) -> f (Maybe (ServerCapability m)))
-> ServerCapabilities -> f ServerCapabilities
forall s a. HasInlayHintProvider s a => Lens' s a
Lens'
  ServerCapabilities
  (Maybe
     (Bool |? (InlayHintOptions |? InlayHintRegistrationOptions)))
L.inlayHintProvider
  SMethod m
SMethod_TextDocumentDiagnostic -> (Maybe (DiagnosticOptions |? DiagnosticRegistrationOptions)
 -> f (Maybe (DiagnosticOptions |? DiagnosticRegistrationOptions)))
-> ServerCapabilities -> f ServerCapabilities
(Maybe (ServerCapability m) -> f (Maybe (ServerCapability m)))
-> ServerCapabilities -> f ServerCapabilities
forall s a. HasDiagnosticProvider s a => Lens' s a
Lens'
  ServerCapabilities
  (Maybe (DiagnosticOptions |? DiagnosticRegistrationOptions))
L.diagnosticProvider
  SMethod m
SMethod_WorkspaceDiagnostic -> (Maybe (DiagnosticOptions |? DiagnosticRegistrationOptions)
 -> f (Maybe (DiagnosticOptions |? DiagnosticRegistrationOptions)))
-> ServerCapabilities -> f ServerCapabilities
(Maybe (ServerCapability m) -> f (Maybe (ServerCapability m)))
-> ServerCapabilities -> f ServerCapabilities
forall s a. HasDiagnosticProvider s a => Lens' s a
Lens'
  ServerCapabilities
  (Maybe (DiagnosticOptions |? DiagnosticRegistrationOptions))
L.diagnosticProvider
  SMethod m
SMethod_WorkspaceDiagnosticRefresh -> (Maybe (DiagnosticOptions |? DiagnosticRegistrationOptions)
 -> f (Maybe (DiagnosticOptions |? DiagnosticRegistrationOptions)))
-> ServerCapabilities -> f ServerCapabilities
(Maybe (ServerCapability m) -> f (Maybe (ServerCapability m)))
-> ServerCapabilities -> f ServerCapabilities
forall s a. HasDiagnosticProvider s a => Lens' s a
Lens'
  ServerCapabilities
  (Maybe (DiagnosticOptions |? DiagnosticRegistrationOptions))
L.diagnosticProvider
  SMethod m
SMethod_WorkspaceWorkspaceFolders -> (Maybe WorkspaceOptions -> f (Maybe WorkspaceOptions))
-> ServerCapabilities -> f ServerCapabilities
forall s a. HasWorkspace s a => Lens' s a
Lens' ServerCapabilities (Maybe WorkspaceOptions)
L.workspace ((Maybe WorkspaceOptions -> f (Maybe WorkspaceOptions))
 -> ServerCapabilities -> f ServerCapabilities)
-> ((Maybe WorkspaceFoldersServerCapabilities
     -> f (Maybe WorkspaceFoldersServerCapabilities))
    -> Maybe WorkspaceOptions -> f (Maybe WorkspaceOptions))
-> (Maybe WorkspaceFoldersServerCapabilities
    -> f (Maybe WorkspaceFoldersServerCapabilities))
-> ServerCapabilities
-> f ServerCapabilities
forall b c a. (b -> c) -> (a -> b) -> a -> c
. WorkspaceOptions -> Iso' (Maybe WorkspaceOptions) WorkspaceOptions
forall a. Eq a => a -> Iso' (Maybe a) a
non WorkspaceOptions
emptyWorkspaceServerCaps ((WorkspaceOptions -> f WorkspaceOptions)
 -> Maybe WorkspaceOptions -> f (Maybe WorkspaceOptions))
-> ((Maybe WorkspaceFoldersServerCapabilities
     -> f (Maybe WorkspaceFoldersServerCapabilities))
    -> WorkspaceOptions -> f WorkspaceOptions)
-> (Maybe WorkspaceFoldersServerCapabilities
    -> f (Maybe WorkspaceFoldersServerCapabilities))
-> Maybe WorkspaceOptions
-> f (Maybe WorkspaceOptions)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Maybe WorkspaceFoldersServerCapabilities
 -> f (Maybe WorkspaceFoldersServerCapabilities))
-> WorkspaceOptions -> f WorkspaceOptions
forall s a. HasWorkspaceFolders s a => Lens' s a
Lens' WorkspaceOptions (Maybe WorkspaceFoldersServerCapabilities)
L.workspaceFolders
  SMethod m
SMethod_WorkspaceWillCreateFiles -> (Maybe FileOperationOptions -> f (Maybe FileOperationOptions))
-> ServerCapabilities -> f ServerCapabilities
(Maybe (ServerCapability m) -> f (Maybe (ServerCapability m)))
-> ServerCapabilities -> f ServerCapabilities
Lens' ServerCapabilities (Maybe FileOperationOptions)
fileOps
  SMethod m
SMethod_WorkspaceWillRenameFiles -> (Maybe FileOperationOptions -> f (Maybe FileOperationOptions))
-> ServerCapabilities -> f ServerCapabilities
(Maybe (ServerCapability m) -> f (Maybe (ServerCapability m)))
-> ServerCapabilities -> f ServerCapabilities
Lens' ServerCapabilities (Maybe FileOperationOptions)
fileOps
  SMethod m
SMethod_WorkspaceWillDeleteFiles -> (Maybe FileOperationOptions -> f (Maybe FileOperationOptions))
-> ServerCapabilities -> f ServerCapabilities
(Maybe (ServerCapability m) -> f (Maybe (ServerCapability m)))
-> ServerCapabilities -> f ServerCapabilities
Lens' ServerCapabilities (Maybe FileOperationOptions)
fileOps
  SMethod m
SMethod_WorkspaceDidCreateFiles -> (Maybe FileOperationOptions -> f (Maybe FileOperationOptions))
-> ServerCapabilities -> f ServerCapabilities
(Maybe (ServerCapability m) -> f (Maybe (ServerCapability m)))
-> ServerCapabilities -> f ServerCapabilities
Lens' ServerCapabilities (Maybe FileOperationOptions)
fileOps
  SMethod m
SMethod_WorkspaceDidRenameFiles -> (Maybe FileOperationOptions -> f (Maybe FileOperationOptions))
-> ServerCapabilities -> f ServerCapabilities
(Maybe (ServerCapability m) -> f (Maybe (ServerCapability m)))
-> ServerCapabilities -> f ServerCapabilities
Lens' ServerCapabilities (Maybe FileOperationOptions)
fileOps
  SMethod m
SMethod_WorkspaceDidDeleteFiles -> (Maybe FileOperationOptions -> f (Maybe FileOperationOptions))
-> ServerCapabilities -> f ServerCapabilities
(Maybe (ServerCapability m) -> f (Maybe (ServerCapability m)))
-> ServerCapabilities -> f ServerCapabilities
Lens' ServerCapabilities (Maybe FileOperationOptions)
fileOps
  SMethod m
SMethod_TextDocumentDidOpen -> (Maybe DocumentSyncCaps -> f (Maybe DocumentSyncCaps))
-> ServerCapabilities -> f ServerCapabilities
(Maybe (ServerCapability m) -> f (Maybe (ServerCapability m)))
-> ServerCapabilities -> f ServerCapabilities
Lens' ServerCapabilities (Maybe DocumentSyncCaps)
documentSync
  SMethod m
SMethod_TextDocumentDidChange -> (Maybe DocumentSyncCaps -> f (Maybe DocumentSyncCaps))
-> ServerCapabilities -> f ServerCapabilities
(Maybe (ServerCapability m) -> f (Maybe (ServerCapability m)))
-> ServerCapabilities -> f ServerCapabilities
Lens' ServerCapabilities (Maybe DocumentSyncCaps)
documentSync
  SMethod m
SMethod_TextDocumentDidClose -> (Maybe DocumentSyncCaps -> f (Maybe DocumentSyncCaps))
-> ServerCapabilities -> f ServerCapabilities
(Maybe (ServerCapability m) -> f (Maybe (ServerCapability m)))
-> ServerCapabilities -> f ServerCapabilities
Lens' ServerCapabilities (Maybe DocumentSyncCaps)
documentSync
  SMethod m
SMethod_TextDocumentDidSave -> (Maybe DocumentSyncCaps -> f (Maybe DocumentSyncCaps))
-> ServerCapabilities -> f ServerCapabilities
(Maybe (ServerCapability m) -> f (Maybe (ServerCapability m)))
-> ServerCapabilities -> f ServerCapabilities
Lens' ServerCapabilities (Maybe DocumentSyncCaps)
documentSync
  SMethod m
SMethod_TextDocumentWillSave -> (Maybe DocumentSyncCaps -> f (Maybe DocumentSyncCaps))
-> ServerCapabilities -> f ServerCapabilities
(Maybe (ServerCapability m) -> f (Maybe (ServerCapability m)))
-> ServerCapabilities -> f ServerCapabilities
Lens' ServerCapabilities (Maybe DocumentSyncCaps)
documentSync
  SMethod m
SMethod_TextDocumentWillSaveWaitUntil -> (Maybe DocumentSyncCaps -> f (Maybe DocumentSyncCaps))
-> ServerCapabilities -> f ServerCapabilities
(Maybe (ServerCapability m) -> f (Maybe (ServerCapability m)))
-> ServerCapabilities -> f ServerCapabilities
Lens' ServerCapabilities (Maybe DocumentSyncCaps)
documentSync
  SMethod m
SMethod_NotebookDocumentDidOpen -> (Maybe NotebookDocumentSyncCaps
 -> f (Maybe NotebookDocumentSyncCaps))
-> ServerCapabilities -> f ServerCapabilities
(Maybe (ServerCapability m) -> f (Maybe (ServerCapability m)))
-> ServerCapabilities -> f ServerCapabilities
Lens' ServerCapabilities (Maybe NotebookDocumentSyncCaps)
notebookDocumentSync
  SMethod m
SMethod_NotebookDocumentDidChange -> (Maybe NotebookDocumentSyncCaps
 -> f (Maybe NotebookDocumentSyncCaps))
-> ServerCapabilities -> f ServerCapabilities
(Maybe (ServerCapability m) -> f (Maybe (ServerCapability m)))
-> ServerCapabilities -> f ServerCapabilities
Lens' ServerCapabilities (Maybe NotebookDocumentSyncCaps)
notebookDocumentSync
  SMethod m
SMethod_NotebookDocumentDidSave -> (Maybe NotebookDocumentSyncCaps
 -> f (Maybe NotebookDocumentSyncCaps))
-> ServerCapabilities -> f ServerCapabilities
(Maybe (ServerCapability m) -> f (Maybe (ServerCapability m)))
-> ServerCapabilities -> f ServerCapabilities
Lens' ServerCapabilities (Maybe NotebookDocumentSyncCaps)
notebookDocumentSync
  SMethod m
SMethod_NotebookDocumentDidClose -> (Maybe NotebookDocumentSyncCaps
 -> f (Maybe NotebookDocumentSyncCaps))
-> ServerCapabilities -> f ServerCapabilities
(Maybe (ServerCapability m) -> f (Maybe (ServerCapability m)))
-> ServerCapabilities -> f ServerCapabilities
Lens' ServerCapabilities (Maybe NotebookDocumentSyncCaps)
notebookDocumentSync
  SMethod m
SMethod_WorkspaceDidChangeConfiguration -> (Maybe Void -> f (Maybe Void))
-> ServerCapabilities -> f ServerCapabilities
(Maybe (ServerCapability m) -> f (Maybe (ServerCapability m)))
-> ServerCapabilities -> f ServerCapabilities
forall a (f :: * -> *).
Functor f =>
(Maybe Void -> f (Maybe Void)) -> a -> f a
noCap
  SMethod m
SMethod_WorkspaceDidChangeWatchedFiles -> (Maybe Void -> f (Maybe Void))
-> ServerCapabilities -> f ServerCapabilities
(Maybe (ServerCapability m) -> f (Maybe (ServerCapability m)))
-> ServerCapabilities -> f ServerCapabilities
forall a (f :: * -> *).
Functor f =>
(Maybe Void -> f (Maybe Void)) -> a -> f a
noCap
  SMethod m
SMethod_WorkspaceDidChangeWorkspaceFolders -> (Maybe Void -> f (Maybe Void))
-> ServerCapabilities -> f ServerCapabilities
(Maybe (ServerCapability m) -> f (Maybe (ServerCapability m)))
-> ServerCapabilities -> f ServerCapabilities
forall a (f :: * -> *).
Functor f =>
(Maybe Void -> f (Maybe Void)) -> a -> f a
noCap
  SMethod m
SMethod_TextDocumentPublishDiagnostics -> (Maybe Void -> f (Maybe Void))
-> ServerCapabilities -> f ServerCapabilities
(Maybe (ServerCapability m) -> f (Maybe (ServerCapability m)))
-> ServerCapabilities -> f ServerCapabilities
forall a (f :: * -> *).
Functor f =>
(Maybe Void -> f (Maybe Void)) -> a -> f a
noCap
  SMethod m
SMethod_WorkspaceConfiguration -> (Maybe Void -> f (Maybe Void))
-> ServerCapabilities -> f ServerCapabilities
(Maybe (ServerCapability m) -> f (Maybe (ServerCapability m)))
-> ServerCapabilities -> f ServerCapabilities
forall a (f :: * -> *).
Functor f =>
(Maybe Void -> f (Maybe Void)) -> a -> f a
noCap
  SMethod m
SMethod_WindowWorkDoneProgressCreate -> (Maybe Void -> f (Maybe Void))
-> ServerCapabilities -> f ServerCapabilities
(Maybe (ServerCapability m) -> f (Maybe (ServerCapability m)))
-> ServerCapabilities -> f ServerCapabilities
forall a (f :: * -> *).
Functor f =>
(Maybe Void -> f (Maybe Void)) -> a -> f a
noCap
  SMethod m
SMethod_WindowWorkDoneProgressCancel -> (Maybe Void -> f (Maybe Void))
-> ServerCapabilities -> f ServerCapabilities
(Maybe (ServerCapability m) -> f (Maybe (ServerCapability m)))
-> ServerCapabilities -> f ServerCapabilities
forall a (f :: * -> *).
Functor f =>
(Maybe Void -> f (Maybe Void)) -> a -> f a
noCap
  SMethod m
SMethod_Progress -> (Maybe Void -> f (Maybe Void))
-> ServerCapabilities -> f ServerCapabilities
(Maybe (ServerCapability m) -> f (Maybe (ServerCapability m)))
-> ServerCapabilities -> f ServerCapabilities
forall a (f :: * -> *).
Functor f =>
(Maybe Void -> f (Maybe Void)) -> a -> f a
noCap
  SMethod m
SMethod_WindowShowDocument -> (Maybe Void -> f (Maybe Void))
-> ServerCapabilities -> f ServerCapabilities
(Maybe (ServerCapability m) -> f (Maybe (ServerCapability m)))
-> ServerCapabilities -> f ServerCapabilities
forall a (f :: * -> *).
Functor f =>
(Maybe Void -> f (Maybe Void)) -> a -> f a
noCap
  SMethod m
SMethod_WindowShowMessageRequest -> (Maybe Void -> f (Maybe Void))
-> ServerCapabilities -> f ServerCapabilities
(Maybe (ServerCapability m) -> f (Maybe (ServerCapability m)))
-> ServerCapabilities -> f ServerCapabilities
forall a (f :: * -> *).
Functor f =>
(Maybe Void -> f (Maybe Void)) -> a -> f a
noCap
  SMethod m
SMethod_WindowShowMessage -> (Maybe Void -> f (Maybe Void))
-> ServerCapabilities -> f ServerCapabilities
(Maybe (ServerCapability m) -> f (Maybe (ServerCapability m)))
-> ServerCapabilities -> f ServerCapabilities
forall a (f :: * -> *).
Functor f =>
(Maybe Void -> f (Maybe Void)) -> a -> f a
noCap
  SMethod m
SMethod_WindowLogMessage -> (Maybe Void -> f (Maybe Void))
-> ServerCapabilities -> f ServerCapabilities
(Maybe (ServerCapability m) -> f (Maybe (ServerCapability m)))
-> ServerCapabilities -> f ServerCapabilities
forall a (f :: * -> *).
Functor f =>
(Maybe Void -> f (Maybe Void)) -> a -> f a
noCap
  SMethod m
SMethod_ClientRegisterCapability -> (Maybe Void -> f (Maybe Void))
-> ServerCapabilities -> f ServerCapabilities
(Maybe (ServerCapability m) -> f (Maybe (ServerCapability m)))
-> ServerCapabilities -> f ServerCapabilities
forall a (f :: * -> *).
Functor f =>
(Maybe Void -> f (Maybe Void)) -> a -> f a
noCap
  SMethod m
SMethod_ClientUnregisterCapability -> (Maybe Void -> f (Maybe Void))
-> ServerCapabilities -> f ServerCapabilities
(Maybe (ServerCapability m) -> f (Maybe (ServerCapability m)))
-> ServerCapabilities -> f ServerCapabilities
forall a (f :: * -> *).
Functor f =>
(Maybe Void -> f (Maybe Void)) -> a -> f a
noCap
  SMethod m
SMethod_Initialize -> (Maybe Void -> f (Maybe Void))
-> ServerCapabilities -> f ServerCapabilities
(Maybe (ServerCapability m) -> f (Maybe (ServerCapability m)))
-> ServerCapabilities -> f ServerCapabilities
forall a (f :: * -> *).
Functor f =>
(Maybe Void -> f (Maybe Void)) -> a -> f a
noCap
  SMethod m
SMethod_Initialized -> (Maybe Void -> f (Maybe Void))
-> ServerCapabilities -> f ServerCapabilities
(Maybe (ServerCapability m) -> f (Maybe (ServerCapability m)))
-> ServerCapabilities -> f ServerCapabilities
forall a (f :: * -> *).
Functor f =>
(Maybe Void -> f (Maybe Void)) -> a -> f a
noCap
  SMethod m
SMethod_Shutdown -> (Maybe Void -> f (Maybe Void))
-> ServerCapabilities -> f ServerCapabilities
(Maybe (ServerCapability m) -> f (Maybe (ServerCapability m)))
-> ServerCapabilities -> f ServerCapabilities
forall a (f :: * -> *).
Functor f =>
(Maybe Void -> f (Maybe Void)) -> a -> f a
noCap
  SMethod m
SMethod_Exit -> (Maybe Void -> f (Maybe Void))
-> ServerCapabilities -> f ServerCapabilities
(Maybe (ServerCapability m) -> f (Maybe (ServerCapability m)))
-> ServerCapabilities -> f ServerCapabilities
forall a (f :: * -> *).
Functor f =>
(Maybe Void -> f (Maybe Void)) -> a -> f a
noCap
  SMethod m
SMethod_WorkspaceApplyEdit -> (Maybe Void -> f (Maybe Void))
-> ServerCapabilities -> f ServerCapabilities
(Maybe (ServerCapability m) -> f (Maybe (ServerCapability m)))
-> ServerCapabilities -> f ServerCapabilities
forall a (f :: * -> *).
Functor f =>
(Maybe Void -> f (Maybe Void)) -> a -> f a
noCap
  SMethod m
SMethod_TelemetryEvent -> (Maybe Void -> f (Maybe Void))
-> ServerCapabilities -> f ServerCapabilities
(Maybe (ServerCapability m) -> f (Maybe (ServerCapability m)))
-> ServerCapabilities -> f ServerCapabilities
forall a (f :: * -> *).
Functor f =>
(Maybe Void -> f (Maybe Void)) -> a -> f a
noCap
  SMethod m
SMethod_SetTrace -> (Maybe Void -> f (Maybe Void))
-> ServerCapabilities -> f ServerCapabilities
(Maybe (ServerCapability m) -> f (Maybe (ServerCapability m)))
-> ServerCapabilities -> f ServerCapabilities
forall a (f :: * -> *).
Functor f =>
(Maybe Void -> f (Maybe Void)) -> a -> f a
noCap
  SMethod m
SMethod_LogTrace -> (Maybe Void -> f (Maybe Void))
-> ServerCapabilities -> f ServerCapabilities
(Maybe (ServerCapability m) -> f (Maybe (ServerCapability m)))
-> ServerCapabilities -> f ServerCapabilities
forall a (f :: * -> *).
Functor f =>
(Maybe Void -> f (Maybe Void)) -> a -> f a
noCap
  SMethod m
SMethod_CancelRequest -> (Maybe Void -> f (Maybe Void))
-> ServerCapabilities -> f ServerCapabilities
(Maybe (ServerCapability m) -> f (Maybe (ServerCapability m)))
-> ServerCapabilities -> f ServerCapabilities
forall a (f :: * -> *).
Functor f =>
(Maybe Void -> f (Maybe Void)) -> a -> f a
noCap
  (SMethod_CustomMethod Proxy s
_s) -> (Maybe Void -> f (Maybe Void))
-> ServerCapabilities -> f ServerCapabilities
(Maybe (ServerCapability m) -> f (Maybe (ServerCapability m)))
-> ServerCapabilities -> f ServerCapabilities
forall a (f :: * -> *).
Functor f =>
(Maybe Void -> f (Maybe Void)) -> a -> f a
noCap
 where
  fileOps :: Lens' ServerCapabilities (Maybe FileOperationOptions)
  fileOps :: Lens' ServerCapabilities (Maybe FileOperationOptions)
fileOps = (Maybe WorkspaceOptions -> f (Maybe WorkspaceOptions))
-> ServerCapabilities -> f ServerCapabilities
forall s a. HasWorkspace s a => Lens' s a
Lens' ServerCapabilities (Maybe WorkspaceOptions)
L.workspace ((Maybe WorkspaceOptions -> f (Maybe WorkspaceOptions))
 -> ServerCapabilities -> f ServerCapabilities)
-> ((Maybe FileOperationOptions -> f (Maybe FileOperationOptions))
    -> Maybe WorkspaceOptions -> f (Maybe WorkspaceOptions))
-> (Maybe FileOperationOptions -> f (Maybe FileOperationOptions))
-> ServerCapabilities
-> f ServerCapabilities
forall b c a. (b -> c) -> (a -> b) -> a -> c
. WorkspaceOptions -> Iso' (Maybe WorkspaceOptions) WorkspaceOptions
forall a. Eq a => a -> Iso' (Maybe a) a
non WorkspaceOptions
emptyWorkspaceServerCaps ((WorkspaceOptions -> f WorkspaceOptions)
 -> Maybe WorkspaceOptions -> f (Maybe WorkspaceOptions))
-> ((Maybe FileOperationOptions -> f (Maybe FileOperationOptions))
    -> WorkspaceOptions -> f WorkspaceOptions)
-> (Maybe FileOperationOptions -> f (Maybe FileOperationOptions))
-> Maybe WorkspaceOptions
-> f (Maybe WorkspaceOptions)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Maybe FileOperationOptions -> f (Maybe FileOperationOptions))
-> WorkspaceOptions -> f WorkspaceOptions
forall s a. HasFileOperations s a => Lens' s a
Lens' WorkspaceOptions (Maybe FileOperationOptions)
L.fileOperations
  documentSync :: Lens' ServerCapabilities (Maybe DocumentSyncCaps)
  documentSync :: Lens' ServerCapabilities (Maybe DocumentSyncCaps)
documentSync = (Maybe DocumentSyncCaps -> f (Maybe DocumentSyncCaps))
-> ServerCapabilities -> f ServerCapabilities
forall s a. HasTextDocumentSync s a => Lens' s a
Lens' ServerCapabilities (Maybe DocumentSyncCaps)
L.textDocumentSync
  notebookDocumentSync :: Lens' ServerCapabilities (Maybe NotebookDocumentSyncCaps)
  notebookDocumentSync :: Lens' ServerCapabilities (Maybe NotebookDocumentSyncCaps)
notebookDocumentSync = (Maybe NotebookDocumentSyncCaps
 -> f (Maybe NotebookDocumentSyncCaps))
-> ServerCapabilities -> f ServerCapabilities
forall s a. HasNotebookDocumentSync s a => Lens' s a
Lens' ServerCapabilities (Maybe NotebookDocumentSyncCaps)
L.notebookDocumentSync

noCap :: Lens' a (Maybe Void)
noCap :: forall a (f :: * -> *).
Functor f =>
(Maybe Void -> f (Maybe Void)) -> a -> f a
noCap = (a -> Maybe Void)
-> (a -> Maybe Void -> a) -> Lens a a (Maybe Void) (Maybe Void)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
lens a -> Maybe Void
forall {p} {a}. p -> Maybe a
g a -> Maybe Void -> a
forall {p}. p -> Maybe Void -> p
s
 where
  g :: p -> Maybe a
g p
_ = Maybe a
forall a. Maybe a
Nothing
  s :: p -> Maybe Void -> p
s p
a Maybe Void
Nothing = p
a
  s p
_ (Just Void
v) = Void -> p
forall a. Void -> a
absurd Void
v

-- TODO: this is silly
emptyWorkspaceClientCaps :: WorkspaceClientCapabilities
emptyWorkspaceClientCaps :: WorkspaceClientCapabilities
emptyWorkspaceClientCaps = Maybe Bool
-> Maybe WorkspaceEditClientCapabilities
-> Maybe DidChangeConfigurationClientCapabilities
-> Maybe DidChangeWatchedFilesClientCapabilities
-> Maybe WorkspaceSymbolClientCapabilities
-> Maybe ExecuteCommandClientCapabilities
-> Maybe Bool
-> Maybe Bool
-> Maybe SemanticTokensWorkspaceClientCapabilities
-> Maybe CodeLensWorkspaceClientCapabilities
-> Maybe FileOperationClientCapabilities
-> Maybe InlineValueWorkspaceClientCapabilities
-> Maybe InlayHintWorkspaceClientCapabilities
-> Maybe DiagnosticWorkspaceClientCapabilities
-> WorkspaceClientCapabilities
WorkspaceClientCapabilities Maybe Bool
forall a. Maybe a
Nothing Maybe WorkspaceEditClientCapabilities
forall a. Maybe a
Nothing Maybe DidChangeConfigurationClientCapabilities
forall a. Maybe a
Nothing Maybe DidChangeWatchedFilesClientCapabilities
forall a. Maybe a
Nothing Maybe WorkspaceSymbolClientCapabilities
forall a. Maybe a
Nothing Maybe ExecuteCommandClientCapabilities
forall a. Maybe a
Nothing Maybe Bool
forall a. Maybe a
Nothing Maybe Bool
forall a. Maybe a
Nothing Maybe SemanticTokensWorkspaceClientCapabilities
forall a. Maybe a
Nothing Maybe CodeLensWorkspaceClientCapabilities
forall a. Maybe a
Nothing Maybe FileOperationClientCapabilities
forall a. Maybe a
Nothing Maybe InlineValueWorkspaceClientCapabilities
forall a. Maybe a
Nothing Maybe InlayHintWorkspaceClientCapabilities
forall a. Maybe a
Nothing Maybe DiagnosticWorkspaceClientCapabilities
forall a. Maybe a
Nothing
emptyWindowClientCaps :: WindowClientCapabilities
emptyWindowClientCaps :: WindowClientCapabilities
emptyWindowClientCaps = Maybe Bool
-> Maybe ShowMessageRequestClientCapabilities
-> Maybe ShowDocumentClientCapabilities
-> WindowClientCapabilities
WindowClientCapabilities Maybe Bool
forall a. Maybe a
Nothing Maybe ShowMessageRequestClientCapabilities
forall a. Maybe a
Nothing Maybe ShowDocumentClientCapabilities
forall a. Maybe a
Nothing
emptyTextDocumentClientCaps :: TextDocumentClientCapabilities
emptyTextDocumentClientCaps :: TextDocumentClientCapabilities
emptyTextDocumentClientCaps = Maybe TextDocumentSyncClientCapabilities
-> Maybe CompletionClientCapabilities
-> Maybe HoverClientCapabilities
-> Maybe SignatureHelpClientCapabilities
-> Maybe DeclarationClientCapabilities
-> Maybe DefinitionClientCapabilities
-> Maybe TypeDefinitionClientCapabilities
-> Maybe ImplementationClientCapabilities
-> Maybe ReferenceClientCapabilities
-> Maybe DocumentHighlightClientCapabilities
-> Maybe DocumentSymbolClientCapabilities
-> Maybe CodeActionClientCapabilities
-> Maybe CodeLensClientCapabilities
-> Maybe DocumentLinkClientCapabilities
-> Maybe DocumentColorClientCapabilities
-> Maybe DocumentFormattingClientCapabilities
-> Maybe DocumentRangeFormattingClientCapabilities
-> Maybe DocumentOnTypeFormattingClientCapabilities
-> Maybe RenameClientCapabilities
-> Maybe FoldingRangeClientCapabilities
-> Maybe SelectionRangeClientCapabilities
-> Maybe PublishDiagnosticsClientCapabilities
-> Maybe CallHierarchyClientCapabilities
-> Maybe SemanticTokensClientCapabilities
-> Maybe LinkedEditingRangeClientCapabilities
-> Maybe MonikerClientCapabilities
-> Maybe TypeHierarchyClientCapabilities
-> Maybe InlineValueClientCapabilities
-> Maybe InlayHintClientCapabilities
-> Maybe DiagnosticClientCapabilities
-> TextDocumentClientCapabilities
TextDocumentClientCapabilities Maybe TextDocumentSyncClientCapabilities
forall a. Maybe a
Nothing Maybe CompletionClientCapabilities
forall a. Maybe a
Nothing Maybe HoverClientCapabilities
forall a. Maybe a
Nothing Maybe SignatureHelpClientCapabilities
forall a. Maybe a
Nothing Maybe DeclarationClientCapabilities
forall a. Maybe a
Nothing Maybe DefinitionClientCapabilities
forall a. Maybe a
Nothing Maybe TypeDefinitionClientCapabilities
forall a. Maybe a
Nothing Maybe ImplementationClientCapabilities
forall a. Maybe a
Nothing Maybe ReferenceClientCapabilities
forall a. Maybe a
Nothing Maybe DocumentHighlightClientCapabilities
forall a. Maybe a
Nothing Maybe DocumentSymbolClientCapabilities
forall a. Maybe a
Nothing Maybe CodeActionClientCapabilities
forall a. Maybe a
Nothing Maybe CodeLensClientCapabilities
forall a. Maybe a
Nothing Maybe DocumentLinkClientCapabilities
forall a. Maybe a
Nothing Maybe DocumentColorClientCapabilities
forall a. Maybe a
Nothing Maybe DocumentFormattingClientCapabilities
forall a. Maybe a
Nothing Maybe DocumentRangeFormattingClientCapabilities
forall a. Maybe a
Nothing Maybe DocumentOnTypeFormattingClientCapabilities
forall a. Maybe a
Nothing Maybe RenameClientCapabilities
forall a. Maybe a
Nothing Maybe FoldingRangeClientCapabilities
forall a. Maybe a
Nothing Maybe SelectionRangeClientCapabilities
forall a. Maybe a
Nothing Maybe PublishDiagnosticsClientCapabilities
forall a. Maybe a
Nothing Maybe CallHierarchyClientCapabilities
forall a. Maybe a
Nothing Maybe SemanticTokensClientCapabilities
forall a. Maybe a
Nothing Maybe LinkedEditingRangeClientCapabilities
forall a. Maybe a
Nothing Maybe MonikerClientCapabilities
forall a. Maybe a
Nothing Maybe TypeHierarchyClientCapabilities
forall a. Maybe a
Nothing Maybe InlineValueClientCapabilities
forall a. Maybe a
Nothing Maybe InlayHintClientCapabilities
forall a. Maybe a
Nothing Maybe DiagnosticClientCapabilities
forall a. Maybe a
Nothing
emptyNotebookDocumentClientCaps :: NotebookDocumentClientCapabilities
emptyNotebookDocumentClientCaps :: NotebookDocumentClientCapabilities
emptyNotebookDocumentClientCaps = NotebookDocumentSyncClientCapabilities
-> NotebookDocumentClientCapabilities
NotebookDocumentClientCapabilities (Maybe Bool -> Maybe Bool -> NotebookDocumentSyncClientCapabilities
NotebookDocumentSyncClientCapabilities Maybe Bool
forall a. Maybe a
Nothing Maybe Bool
forall a. Maybe a
Nothing)

emptyWorkspaceServerCaps :: WorkspaceOptions
emptyWorkspaceServerCaps :: WorkspaceOptions
emptyWorkspaceServerCaps = Maybe WorkspaceFoldersServerCapabilities
-> Maybe FileOperationOptions -> WorkspaceOptions
WorkspaceOptions Maybe WorkspaceFoldersServerCapabilities
forall a. Maybe a
Nothing Maybe FileOperationOptions
forall a. Maybe a
Nothing

{- Note [Capability mappings]
Sadly these are all manually defined as we don't have the information in the metamodel to do them automatically.
-}