{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE OverloadedLabels #-}
{-# LANGUAGE OverloadedStrings #-}
module Language.LSP.Protocol.Capabilities
(
fullCaps
, LSPVersion(..)
, capsForVersion
) where
import Data.Row
import qualified Data.Set as Set
import Language.LSP.Protocol.Types
import Prelude hiding (min)
fullCaps :: ClientCapabilities
fullCaps :: ClientCapabilities
fullCaps = LSPVersion -> ClientCapabilities
capsForVersion (Int -> Int -> LSPVersion
LSPVersion forall a. Bounded a => a
maxBound forall a. Bounded a => a
maxBound)
data LSPVersion = LSPVersion Int Int
capsForVersion :: LSPVersion -> ClientCapabilities
capsForVersion :: LSPVersion -> ClientCapabilities
capsForVersion (LSPVersion Int
maj Int
min) = ClientCapabilities
caps
where
caps :: ClientCapabilities
caps = ClientCapabilities {
$sel:_workspace:ClientCapabilities :: Maybe WorkspaceClientCapabilities
_workspace=forall a. a -> Maybe a
Just WorkspaceClientCapabilities
w
, $sel:_textDocument:ClientCapabilities :: Maybe TextDocumentClientCapabilities
_textDocument=forall a. a -> Maybe a
Just TextDocumentClientCapabilities
td
, $sel:_window:ClientCapabilities :: Maybe WindowClientCapabilities
_window=forall a. a -> Maybe a
Just WindowClientCapabilities
window
, $sel:_general:ClientCapabilities :: Maybe GeneralClientCapabilities
_general=forall a. Int -> Int -> a -> Maybe a
since Int
3 Int
16 GeneralClientCapabilities
general
, $sel:_experimental:ClientCapabilities :: Maybe Value
_experimental=forall a. Maybe a
Nothing
, $sel:_notebookDocument:ClientCapabilities :: Maybe NotebookDocumentClientCapabilities
_notebookDocument=forall a. Maybe a
Nothing
}
w :: WorkspaceClientCapabilities
w = WorkspaceClientCapabilities {
$sel:_applyEdit:WorkspaceClientCapabilities :: Maybe Bool
_applyEdit = forall a. a -> Maybe a
Just Bool
True
, $sel:_workspaceEdit:WorkspaceClientCapabilities :: Maybe WorkspaceEditClientCapabilities
_workspaceEdit = forall a. a -> Maybe a
Just (Maybe Bool
-> Maybe [ResourceOperationKind]
-> Maybe FailureHandlingKind
-> Maybe Bool
-> Maybe (Rec (("groupsOnLabel" .== Maybe Bool) .+ 'R '[]))
-> WorkspaceEditClientCapabilities
WorkspaceEditClientCapabilities
(forall a. a -> Maybe a
Just Bool
True)
(forall a. Int -> Int -> a -> Maybe a
since Int
3 Int
13 [ResourceOperationKind]
resourceOperations)
forall a. Maybe a
Nothing
(forall a. Int -> Int -> a -> Maybe a
since Int
3 Int
16 Bool
True)
(forall a. Int -> Int -> a -> Maybe a
since Int
3 Int
16 (forall a. IsLabel "groupsOnLabel" a => a
#groupsOnLabel forall (l :: Symbol) a.
KnownSymbol l =>
Label l -> a -> Rec (l .== a)
.== forall a. a -> Maybe a
Just Bool
True)))
, $sel:_didChangeConfiguration:WorkspaceClientCapabilities :: Maybe DidChangeConfigurationClientCapabilities
_didChangeConfiguration = forall a. a -> Maybe a
Just (Maybe Bool -> DidChangeConfigurationClientCapabilities
DidChangeConfigurationClientCapabilities Maybe Bool
dynamicReg)
, $sel:_didChangeWatchedFiles:WorkspaceClientCapabilities :: Maybe DidChangeWatchedFilesClientCapabilities
_didChangeWatchedFiles = forall a. a -> Maybe a
Just (Maybe Bool -> Maybe Bool -> DidChangeWatchedFilesClientCapabilities
DidChangeWatchedFilesClientCapabilities Maybe Bool
dynamicReg (forall a. a -> Maybe a
Just Bool
True))
, $sel:_symbol:WorkspaceClientCapabilities :: Maybe WorkspaceSymbolClientCapabilities
_symbol = forall a. a -> Maybe a
Just WorkspaceSymbolClientCapabilities
symbolCapabilities
, $sel:_executeCommand:WorkspaceClientCapabilities :: Maybe ExecuteCommandClientCapabilities
_executeCommand = forall a. a -> Maybe a
Just (Maybe Bool -> ExecuteCommandClientCapabilities
ExecuteCommandClientCapabilities Maybe Bool
dynamicReg)
, $sel:_workspaceFolders:WorkspaceClientCapabilities :: Maybe Bool
_workspaceFolders = forall a. Int -> Int -> a -> Maybe a
since Int
3 Int
6 Bool
True
, $sel:_configuration:WorkspaceClientCapabilities :: Maybe Bool
_configuration = forall a. Int -> Int -> a -> Maybe a
since Int
3 Int
6 Bool
True
, $sel:_semanticTokens:WorkspaceClientCapabilities :: Maybe SemanticTokensWorkspaceClientCapabilities
_semanticTokens = forall a. Int -> Int -> a -> Maybe a
since Int
3 Int
16 (Maybe Bool -> SemanticTokensWorkspaceClientCapabilities
SemanticTokensWorkspaceClientCapabilities forall a b. (a -> b) -> a -> b
$ forall a. a -> Maybe a
Just Bool
True)
, $sel:_codeLens:WorkspaceClientCapabilities :: Maybe CodeLensWorkspaceClientCapabilities
_codeLens = forall a. Maybe a
Nothing
, $sel:_fileOperations:WorkspaceClientCapabilities :: Maybe FileOperationClientCapabilities
_fileOperations = forall a. Maybe a
Nothing
, $sel:_inlineValue:WorkspaceClientCapabilities :: Maybe InlineValueWorkspaceClientCapabilities
_inlineValue = forall a. Maybe a
Nothing
, $sel:_inlayHint:WorkspaceClientCapabilities :: Maybe InlayHintWorkspaceClientCapabilities
_inlayHint = forall a. Maybe a
Nothing
, $sel:_diagnostics:WorkspaceClientCapabilities :: Maybe DiagnosticWorkspaceClientCapabilities
_diagnostics = forall a. Maybe a
Nothing
}
resourceOperations :: [ResourceOperationKind]
resourceOperations =
[ ResourceOperationKind
ResourceOperationKind_Create
, ResourceOperationKind
ResourceOperationKind_Delete
, ResourceOperationKind
ResourceOperationKind_Rename
]
symbolCapabilities :: WorkspaceSymbolClientCapabilities
symbolCapabilities = Maybe Bool
-> Maybe (Rec (("valueSet" .== Maybe [SymbolKind]) .+ 'R '[]))
-> Maybe (Rec (("valueSet" .== [SymbolTag]) .+ 'R '[]))
-> Maybe (Rec (("properties" .== [Text]) .+ 'R '[]))
-> WorkspaceSymbolClientCapabilities
WorkspaceSymbolClientCapabilities
Maybe Bool
dynamicReg
(forall a. Int -> Int -> a -> Maybe a
since Int
3 Int
4 (forall a. IsLabel "valueSet" a => a
#valueSet forall (l :: Symbol) a.
KnownSymbol l =>
Label l -> a -> Rec (l .== a)
.== forall a. a -> Maybe a
Just [SymbolKind]
sKs))
(forall a. Int -> Int -> a -> Maybe a
since Int
3 Int
16 (forall a. IsLabel "valueSet" a => a
#valueSet forall (l :: Symbol) a.
KnownSymbol l =>
Label l -> a -> Rec (l .== a)
.== [SymbolTag
SymbolTag_Deprecated]))
(forall a. Int -> Int -> a -> Maybe a
since Int
3 Int
17 (forall a. IsLabel "properties" a => a
#properties forall (l :: Symbol) a.
KnownSymbol l =>
Label l -> a -> Rec (l .== a)
.== []))
sKs :: [SymbolKind]
sKs
| Int
maj forall a. Ord a => a -> a -> Bool
>= Int
3 Bool -> Bool -> Bool
&& Int
min forall a. Ord a => a -> a -> Bool
>= Int
4 = [SymbolKind]
oldSKs 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
]
tfs :: [TokenFormat]
tfs = [ TokenFormat
TokenFormat_Relative ]
semanticTokensCapabilities :: SemanticTokensClientCapabilities
semanticTokensCapabilities = SemanticTokensClientCapabilities {
$sel:_dynamicRegistration:SemanticTokensClientCapabilities :: Maybe Bool
_dynamicRegistration=forall a. a -> Maybe a
Just Bool
True
, $sel:_requests:SemanticTokensClientCapabilities :: Rec
(Extend "range" (Maybe (Bool |? Rec ('R '[]))) ('R '[])
.+ (("full"
.== Maybe (Bool |? Rec (("delta" .== Maybe Bool) .+ 'R '[])))
.+ 'R '[]))
_requests= forall a. IsLabel "range" a => a
#range forall (l :: Symbol) a.
KnownSymbol l =>
Label l -> a -> Rec (l .== a)
.== forall a. a -> Maybe a
Just (forall a b. a -> a |? b
InL Bool
True) forall (l :: Row (*)) (r :: Row (*)).
FreeForall l =>
Rec l -> Rec r -> Rec (l .+ r)
.+ forall a. IsLabel "full" a => a
#full forall (l :: Symbol) a.
KnownSymbol l =>
Label l -> a -> Rec (l .== a)
.== forall a. a -> Maybe a
Just (forall a b. b -> a |? b
InR (forall a. IsLabel "delta" a => a
#delta forall (l :: Symbol) a.
KnownSymbol l =>
Label l -> a -> Rec (l .== a)
.== forall a. a -> Maybe a
Just Bool
True))
, $sel:_tokenTypes:SemanticTokensClientCapabilities :: [Text]
_tokenTypes=forall a. LspEnum a => a -> EnumBaseType a
toEnumBaseType forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> forall a. Set a -> [a]
Set.toList (forall a. LspEnum a => Set a
knownValues @SemanticTokenTypes)
, $sel:_tokenModifiers:SemanticTokensClientCapabilities :: [Text]
_tokenModifiers=forall a. LspEnum a => a -> EnumBaseType a
toEnumBaseType forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> 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=forall a. a -> Maybe a
Just Bool
True
, $sel:_multilineTokenSupport:SemanticTokensClientCapabilities :: Maybe Bool
_multilineTokenSupport=forall a. a -> Maybe a
Just Bool
True
, $sel:_serverCancelSupport:SemanticTokensClientCapabilities :: Maybe Bool
_serverCancelSupport=forall a. a -> Maybe a
Just Bool
True
, $sel:_augmentsSyntaxTokens:SemanticTokensClientCapabilities :: Maybe Bool
_augmentsSyntaxTokens=forall a. a -> Maybe a
Just Bool
True
}
td :: TextDocumentClientCapabilities
td = TextDocumentClientCapabilities {
$sel:_synchronization:TextDocumentClientCapabilities :: Maybe TextDocumentSyncClientCapabilities
_synchronization=forall a. a -> Maybe a
Just TextDocumentSyncClientCapabilities
sync
, $sel:_completion:TextDocumentClientCapabilities :: Maybe CompletionClientCapabilities
_completion=forall a. a -> Maybe a
Just CompletionClientCapabilities
completionCapability
, $sel:_hover:TextDocumentClientCapabilities :: Maybe HoverClientCapabilities
_hover=forall a. a -> Maybe a
Just HoverClientCapabilities
hoverCapability
, $sel:_signatureHelp:TextDocumentClientCapabilities :: Maybe SignatureHelpClientCapabilities
_signatureHelp=forall a. a -> Maybe a
Just SignatureHelpClientCapabilities
signatureHelpCapability
, $sel:_references:TextDocumentClientCapabilities :: Maybe ReferenceClientCapabilities
_references=forall a. a -> Maybe a
Just (Maybe Bool -> ReferenceClientCapabilities
ReferenceClientCapabilities Maybe Bool
dynamicReg)
, $sel:_documentHighlight:TextDocumentClientCapabilities :: Maybe DocumentHighlightClientCapabilities
_documentHighlight=forall a. a -> Maybe a
Just (Maybe Bool -> DocumentHighlightClientCapabilities
DocumentHighlightClientCapabilities Maybe Bool
dynamicReg)
, $sel:_documentSymbol:TextDocumentClientCapabilities :: Maybe DocumentSymbolClientCapabilities
_documentSymbol=forall a. a -> Maybe a
Just DocumentSymbolClientCapabilities
documentSymbolCapability
, $sel:_formatting:TextDocumentClientCapabilities :: Maybe DocumentFormattingClientCapabilities
_formatting=forall a. a -> Maybe a
Just (Maybe Bool -> DocumentFormattingClientCapabilities
DocumentFormattingClientCapabilities Maybe Bool
dynamicReg)
, $sel:_rangeFormatting:TextDocumentClientCapabilities :: Maybe DocumentRangeFormattingClientCapabilities
_rangeFormatting=forall a. a -> Maybe a
Just (Maybe Bool -> DocumentRangeFormattingClientCapabilities
DocumentRangeFormattingClientCapabilities Maybe Bool
dynamicReg)
, $sel:_onTypeFormatting:TextDocumentClientCapabilities :: Maybe DocumentOnTypeFormattingClientCapabilities
_onTypeFormatting=forall a. a -> Maybe a
Just (Maybe Bool -> DocumentOnTypeFormattingClientCapabilities
DocumentOnTypeFormattingClientCapabilities Maybe Bool
dynamicReg)
, $sel:_declaration:TextDocumentClientCapabilities :: Maybe DeclarationClientCapabilities
_declaration=forall a. Int -> Int -> a -> Maybe a
since Int
3 Int
14 (Maybe Bool -> Maybe Bool -> DeclarationClientCapabilities
DeclarationClientCapabilities Maybe Bool
dynamicReg (forall a. a -> Maybe a
Just Bool
True))
, $sel:_definition:TextDocumentClientCapabilities :: Maybe DefinitionClientCapabilities
_definition=forall a. a -> Maybe a
Just (Maybe Bool -> Maybe Bool -> DefinitionClientCapabilities
DefinitionClientCapabilities Maybe Bool
dynamicReg (forall a. Int -> Int -> a -> Maybe a
since Int
3 Int
14 Bool
True))
, $sel:_typeDefinition:TextDocumentClientCapabilities :: Maybe TypeDefinitionClientCapabilities
_typeDefinition=forall a. Int -> Int -> a -> Maybe a
since Int
3 Int
6 (Maybe Bool -> Maybe Bool -> TypeDefinitionClientCapabilities
TypeDefinitionClientCapabilities Maybe Bool
dynamicReg (forall a. Int -> Int -> a -> Maybe a
since Int
3 Int
14 Bool
True))
, $sel:_implementation:TextDocumentClientCapabilities :: Maybe ImplementationClientCapabilities
_implementation=forall a. Int -> Int -> a -> Maybe a
since Int
3 Int
6 (Maybe Bool -> Maybe Bool -> ImplementationClientCapabilities
ImplementationClientCapabilities Maybe Bool
dynamicReg (forall a. Int -> Int -> a -> Maybe a
since Int
3 Int
14 Bool
True))
, $sel:_codeAction:TextDocumentClientCapabilities :: Maybe CodeActionClientCapabilities
_codeAction=forall a. a -> Maybe a
Just CodeActionClientCapabilities
codeActionCapability
, $sel:_codeLens:TextDocumentClientCapabilities :: Maybe CodeLensClientCapabilities
_codeLens=forall a. a -> Maybe a
Just (Maybe Bool -> CodeLensClientCapabilities
CodeLensClientCapabilities Maybe Bool
dynamicReg)
, $sel:_documentLink:TextDocumentClientCapabilities :: Maybe DocumentLinkClientCapabilities
_documentLink=forall a. a -> Maybe a
Just (Maybe Bool -> Maybe Bool -> DocumentLinkClientCapabilities
DocumentLinkClientCapabilities Maybe Bool
dynamicReg (forall a. Int -> Int -> a -> Maybe a
since Int
3 Int
15 Bool
True))
, $sel:_colorProvider:TextDocumentClientCapabilities :: Maybe DocumentColorClientCapabilities
_colorProvider=forall a. Int -> Int -> a -> Maybe a
since Int
3 Int
6 (Maybe Bool -> DocumentColorClientCapabilities
DocumentColorClientCapabilities Maybe Bool
dynamicReg)
, $sel:_rename:TextDocumentClientCapabilities :: Maybe RenameClientCapabilities
_rename=forall a. a -> Maybe a
Just (Maybe Bool
-> Maybe Bool
-> Maybe PrepareSupportDefaultBehavior
-> Maybe Bool
-> RenameClientCapabilities
RenameClientCapabilities Maybe Bool
dynamicReg (forall a. Int -> Int -> a -> Maybe a
since Int
3 Int
12 Bool
True) (forall a. Int -> Int -> a -> Maybe a
since Int
3 Int
16 PrepareSupportDefaultBehavior
PrepareSupportDefaultBehavior_Identifier) (forall a. Int -> Int -> a -> Maybe a
since Int
3 Int
16 Bool
True))
, $sel:_publishDiagnostics:TextDocumentClientCapabilities :: Maybe PublishDiagnosticsClientCapabilities
_publishDiagnostics=forall a. a -> Maybe a
Just PublishDiagnosticsClientCapabilities
publishDiagnosticsCapabilities
, $sel:_foldingRange:TextDocumentClientCapabilities :: Maybe FoldingRangeClientCapabilities
_foldingRange=forall a. Int -> Int -> a -> Maybe a
since Int
3 Int
10 FoldingRangeClientCapabilities
foldingRangeCapability
, $sel:_selectionRange:TextDocumentClientCapabilities :: Maybe SelectionRangeClientCapabilities
_selectionRange=forall a. Int -> Int -> a -> Maybe a
since Int
3 Int
5 (Maybe Bool -> SelectionRangeClientCapabilities
SelectionRangeClientCapabilities Maybe Bool
dynamicReg)
, $sel:_callHierarchy:TextDocumentClientCapabilities :: Maybe CallHierarchyClientCapabilities
_callHierarchy=forall a. Int -> Int -> a -> Maybe a
since Int
3 Int
16 (Maybe Bool -> CallHierarchyClientCapabilities
CallHierarchyClientCapabilities Maybe Bool
dynamicReg)
, $sel:_semanticTokens:TextDocumentClientCapabilities :: Maybe SemanticTokensClientCapabilities
_semanticTokens=forall a. Int -> Int -> a -> Maybe a
since Int
3 Int
16 SemanticTokensClientCapabilities
semanticTokensCapabilities
, $sel:_linkedEditingRange:TextDocumentClientCapabilities :: Maybe LinkedEditingRangeClientCapabilities
_linkedEditingRange=forall a. Maybe a
Nothing
, $sel:_moniker:TextDocumentClientCapabilities :: Maybe MonikerClientCapabilities
_moniker=forall a. Maybe a
Nothing
, $sel:_typeHierarchy:TextDocumentClientCapabilities :: Maybe TypeHierarchyClientCapabilities
_typeHierarchy=forall a. Maybe a
Nothing
, $sel:_inlineValue:TextDocumentClientCapabilities :: Maybe InlineValueClientCapabilities
_inlineValue=forall a. Maybe a
Nothing
, $sel:_inlayHint:TextDocumentClientCapabilities :: Maybe InlayHintClientCapabilities
_inlayHint=forall a. Maybe a
Nothing
, $sel:_diagnostic:TextDocumentClientCapabilities :: Maybe DiagnosticClientCapabilities
_diagnostic=forall a. Maybe a
Nothing
}
sync :: TextDocumentSyncClientCapabilities
sync =
TextDocumentSyncClientCapabilities {
$sel:_dynamicRegistration:TextDocumentSyncClientCapabilities :: Maybe Bool
_dynamicRegistration=Maybe Bool
dynamicReg
, $sel:_willSave:TextDocumentSyncClientCapabilities :: Maybe Bool
_willSave=forall a. a -> Maybe a
Just Bool
True
, $sel:_willSaveWaitUntil:TextDocumentSyncClientCapabilities :: Maybe Bool
_willSaveWaitUntil=forall a. a -> Maybe a
Just Bool
True
, $sel:_didSave:TextDocumentSyncClientCapabilities :: Maybe Bool
_didSave=forall a. a -> Maybe a
Just Bool
True
}
completionCapability :: CompletionClientCapabilities
completionCapability =
CompletionClientCapabilities{
$sel:_dynamicRegistration:CompletionClientCapabilities :: Maybe Bool
_dynamicRegistration=Maybe Bool
dynamicReg
, $sel:_completionItem:CompletionClientCapabilities :: Maybe
(Rec
(("snippetSupport" .== Maybe Bool)
.+ (("commitCharactersSupport" .== Maybe Bool)
.+ (Extend "documentationFormat" (Maybe [MarkupKind]) ('R '[])
.+ (("deprecatedSupport" .== Maybe Bool)
.+ (("preselectSupport" .== Maybe Bool)
.+ (("tagSupport"
.== Maybe (Rec (("valueSet" .== [CompletionItemTag]) .+ 'R '[])))
.+ (("insertReplaceSupport" .== Maybe Bool)
.+ (("resolveSupport"
.== Maybe (Rec (("properties" .== [Text]) .+ 'R '[])))
.+ (("insertTextModeSupport"
.== Maybe
(Rec (("valueSet" .== [InsertTextMode]) .+ 'R '[])))
.+ (("labelDetailsSupport" .== Maybe Bool)
.+ 'R '[])))))))))))
_completionItem=forall a. a -> Maybe a
Just forall {a} {a}.
Rec
('R
'[ "commitCharactersSupport" ':-> Maybe Bool,
"deprecatedSupport" ':-> Maybe Bool,
"documentationFormat" ':-> Maybe [MarkupKind],
"insertReplaceSupport" ':-> Maybe Bool,
"insertTextModeSupport"
':-> Maybe (Rec ('R '[ "valueSet" ':-> [a]])),
"labelDetailsSupport" ':-> Maybe Bool,
"preselectSupport" ':-> Maybe Bool,
"resolveSupport"
':-> Maybe (Rec ('R '[ "properties" ':-> [Text]])),
"snippetSupport" ':-> Maybe Bool,
"tagSupport" ':-> Maybe (Rec ('R '[ "valueSet" ':-> [a]]))])
completionItemCapabilities
, $sel:_completionItemKind:CompletionClientCapabilities :: Maybe (Rec (("valueSet" .== Maybe [CompletionItemKind]) .+ 'R '[]))
_completionItemKind=forall a. Int -> Int -> a -> Maybe a
since Int
3 Int
4 (forall a. IsLabel "valueSet" a => a
#valueSet forall (l :: Symbol) a.
KnownSymbol l =>
Label l -> a -> Rec (l .== a)
.== forall a. a -> Maybe a
Just [CompletionItemKind]
ciKs)
, $sel:_insertTextMode:CompletionClientCapabilities :: Maybe InsertTextMode
_insertTextMode=forall a. Int -> Int -> a -> Maybe a
since Int
3 Int
17 InsertTextMode
InsertTextMode_AsIs
, $sel:_contextSupport:CompletionClientCapabilities :: Maybe Bool
_contextSupport=forall a. Int -> Int -> a -> Maybe a
since Int
3 Int
3 Bool
True
, $sel:_completionList:CompletionClientCapabilities :: Maybe (Rec (("itemDefaults" .== Maybe [Text]) .+ 'R '[]))
_completionList=forall a. Int -> Int -> a -> Maybe a
since Int
3 Int
17 (forall a. IsLabel "itemDefaults" a => a
#itemDefaults forall (l :: Symbol) a.
KnownSymbol l =>
Label l -> a -> Rec (l .== a)
.== forall a. a -> Maybe a
Just [])
}
completionItemCapabilities :: Rec
((((((((('R '[ "snippetSupport" ':-> Maybe Bool]
.+ 'R '[ "commitCharactersSupport" ':-> Maybe Bool])
.+ 'R '[ "documentationFormat" ':-> Maybe [MarkupKind]])
.+ 'R '[ "deprecatedSupport" ':-> Maybe Bool])
.+ 'R '[ "preselectSupport" ':-> Maybe Bool])
.+ 'R
'[ "tagSupport" ':-> Maybe (Rec ('R '[ "valueSet" ':-> [a]]))])
.+ 'R '[ "insertReplaceSupport" ':-> Maybe Bool])
.+ 'R
'[ "resolveSupport"
':-> Maybe (Rec ('R '[ "properties" ':-> [Text]]))])
.+ 'R
'[ "insertTextModeSupport"
':-> Maybe (Rec ('R '[ "valueSet" ':-> [a]]))])
.+ 'R '[ "labelDetailsSupport" ':-> Maybe Bool])
completionItemCapabilities =
#snippetSupport .== Just True
.+ #commitCharactersSupport .== Just True
.+ #documentationFormat .== since 3 3 allMarkups
.+ #deprecatedSupport .== Just True
.+ #preselectSupport .== since 3 9 True
.+ #tagSupport .== since 3 15 (#valueSet .== [])
.+ #insertReplaceSupport .== since 3 16 True
.+ #resolveSupport .== since 3 16 (#properties .== ["documentation", "details"])
.+ #insertTextModeSupport .== since 3 16 (#valueSet .== [])
.+ #labelDetailsSupport .== since 3 17 True
ciKs :: [CompletionItemKind]
ciKs
| Int
maj forall a. Ord a => a -> a -> Bool
>= Int
3 Bool -> Bool -> Bool
&& Int
min forall a. Ord a => a -> a -> Bool
>= Int
4 = [CompletionItemKind]
oldCiKs 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
]
hoverCapability :: HoverClientCapabilities
hoverCapability =
HoverClientCapabilities {
$sel:_dynamicRegistration:HoverClientCapabilities :: Maybe Bool
_dynamicRegistration=Maybe Bool
dynamicReg
, $sel:_contentFormat:HoverClientCapabilities :: Maybe [MarkupKind]
_contentFormat=forall a. Int -> Int -> a -> Maybe a
since Int
3 Int
3 [MarkupKind]
allMarkups
}
codeActionCapability :: CodeActionClientCapabilities
codeActionCapability
= CodeActionClientCapabilities {
$sel:_dynamicRegistration:CodeActionClientCapabilities :: Maybe Bool
_dynamicRegistration=Maybe Bool
dynamicReg
, $sel:_codeActionLiteralSupport:CodeActionClientCapabilities :: Maybe
(Rec
(("codeActionKind"
.== Rec (("valueSet" .== [CodeActionKind]) .+ 'R '[]))
.+ 'R '[]))
_codeActionLiteralSupport=forall a. Int -> Int -> a -> Maybe a
since Int
3 Int
8 (forall a. IsLabel "codeActionKind" a => a
#codeActionKind forall (l :: Symbol) a.
KnownSymbol l =>
Label l -> a -> Rec (l .== a)
.== (forall a. IsLabel "valueSet" a => a
#valueSet forall (l :: Symbol) a.
KnownSymbol l =>
Label l -> a -> Rec (l .== a)
.== forall a. Set a -> [a]
Set.toList forall a. LspEnum a => Set a
knownValues))
, $sel:_isPreferredSupport:CodeActionClientCapabilities :: Maybe Bool
_isPreferredSupport=forall a. Int -> Int -> a -> Maybe a
since Int
3 Int
15 Bool
True
, $sel:_disabledSupport:CodeActionClientCapabilities :: Maybe Bool
_disabledSupport=forall a. Int -> Int -> a -> Maybe a
since Int
3 Int
16 Bool
True
, $sel:_dataSupport:CodeActionClientCapabilities :: Maybe Bool
_dataSupport=forall a. Int -> Int -> a -> Maybe a
since Int
3 Int
16 Bool
True
, $sel:_resolveSupport:CodeActionClientCapabilities :: Maybe (Rec (("properties" .== [Text]) .+ 'R '[]))
_resolveSupport=forall a. Int -> Int -> a -> Maybe a
since Int
3 Int
16 (forall a. IsLabel "properties" a => a
#properties forall (l :: Symbol) a.
KnownSymbol l =>
Label l -> a -> Rec (l .== a)
.== [])
, $sel:_honorsChangeAnnotations:CodeActionClientCapabilities :: Maybe Bool
_honorsChangeAnnotations=forall a. Int -> Int -> a -> Maybe a
since Int
3 Int
16 Bool
True
}
signatureHelpCapability :: SignatureHelpClientCapabilities
signatureHelpCapability =
SignatureHelpClientCapabilities {
$sel:_dynamicRegistration:SignatureHelpClientCapabilities :: Maybe Bool
_dynamicRegistration=Maybe Bool
dynamicReg
, $sel:_signatureInformation:SignatureHelpClientCapabilities :: Maybe
(Rec
(Extend "documentationFormat" (Maybe [MarkupKind]) ('R '[])
.+ (("parameterInformation"
.== Maybe (Rec (("labelOffsetSupport" .== Maybe Bool) .+ 'R '[])))
.+ (("activeParameterSupport" .== Maybe Bool) .+ 'R '[]))))
_signatureInformation=forall a. a -> Maybe a
Just (forall a. IsLabel "documentationFormat" a => a
#documentationFormat forall (l :: Symbol) a.
KnownSymbol l =>
Label l -> a -> Rec (l .== a)
.== forall a. a -> Maybe a
Just [MarkupKind]
allMarkups forall (l :: Row (*)) (r :: Row (*)).
FreeForall l =>
Rec l -> Rec r -> Rec (l .+ r)
.+ forall a. IsLabel "parameterInformation" a => a
#parameterInformation forall (l :: Symbol) a.
KnownSymbol l =>
Label l -> a -> Rec (l .== a)
.== forall a. a -> Maybe a
Just (forall a. IsLabel "labelOffsetSupport" a => a
#labelOffsetSupport forall (l :: Symbol) a.
KnownSymbol l =>
Label l -> a -> Rec (l .== a)
.== forall a. a -> Maybe a
Just Bool
True) forall (l :: Row (*)) (r :: Row (*)).
FreeForall l =>
Rec l -> Rec r -> Rec (l .+ r)
.+ forall a. IsLabel "activeParameterSupport" a => a
#activeParameterSupport forall (l :: Symbol) a.
KnownSymbol l =>
Label l -> a -> Rec (l .== a)
.== forall a. a -> Maybe a
Just Bool
True)
, $sel:_contextSupport:SignatureHelpClientCapabilities :: Maybe Bool
_contextSupport=forall a. Int -> Int -> a -> Maybe a
since Int
3 Int
16 Bool
True
}
documentSymbolCapability :: DocumentSymbolClientCapabilities
documentSymbolCapability =
DocumentSymbolClientCapabilities {
$sel:_dynamicRegistration:DocumentSymbolClientCapabilities :: Maybe Bool
_dynamicRegistration=Maybe Bool
dynamicReg
, $sel:_symbolKind:DocumentSymbolClientCapabilities :: Maybe (Rec (("valueSet" .== Maybe [SymbolKind]) .+ 'R '[]))
_symbolKind=forall a. a -> Maybe a
Just (forall a. IsLabel "valueSet" a => a
#valueSet forall (l :: Symbol) a.
KnownSymbol l =>
Label l -> a -> Rec (l .== a)
.== forall a. a -> Maybe a
Just [SymbolKind]
sKs)
, $sel:_hierarchicalDocumentSymbolSupport:DocumentSymbolClientCapabilities :: Maybe Bool
_hierarchicalDocumentSymbolSupport=forall a. Int -> Int -> a -> Maybe a
since Int
3 Int
10 Bool
True
, $sel:_tagSupport:DocumentSymbolClientCapabilities :: Maybe (Rec (("valueSet" .== [SymbolTag]) .+ 'R '[]))
_tagSupport=forall a. Int -> Int -> a -> Maybe a
since Int
3 Int
16 (forall a. IsLabel "valueSet" a => a
#valueSet forall (l :: Symbol) a.
KnownSymbol l =>
Label l -> a -> Rec (l .== a)
.== [SymbolTag
SymbolTag_Deprecated])
, $sel:_labelSupport:DocumentSymbolClientCapabilities :: Maybe Bool
_labelSupport=forall a. Int -> Int -> a -> Maybe a
since Int
3 Int
16 Bool
True
}
foldingRangeCapability :: FoldingRangeClientCapabilities
foldingRangeCapability =
FoldingRangeClientCapabilities {
$sel:_dynamicRegistration:FoldingRangeClientCapabilities :: Maybe Bool
_dynamicRegistration=Maybe Bool
dynamicReg
, $sel:_rangeLimit:FoldingRangeClientCapabilities :: Maybe UInt
_rangeLimit=forall a. Maybe a
Nothing
, $sel:_lineFoldingOnly:FoldingRangeClientCapabilities :: Maybe Bool
_lineFoldingOnly=forall a. Maybe a
Nothing
, $sel:_foldingRangeKind:FoldingRangeClientCapabilities :: Maybe (Rec (("valueSet" .== Maybe [FoldingRangeKind]) .+ 'R '[]))
_foldingRangeKind=forall a. Int -> Int -> a -> Maybe a
since Int
3 Int
17 (forall a. IsLabel "valueSet" a => a
#valueSet forall (l :: Symbol) a.
KnownSymbol l =>
Label l -> a -> Rec (l .== a)
.== forall a. a -> Maybe a
Just [])
, $sel:_foldingRange:FoldingRangeClientCapabilities :: Maybe (Rec (("collapsedText" .== Maybe Bool) .+ 'R '[]))
_foldingRange=forall a. Int -> Int -> a -> Maybe a
since Int
3 Int
16 (forall a. IsLabel "collapsedText" a => a
#collapsedText forall (l :: Symbol) a.
KnownSymbol l =>
Label l -> a -> Rec (l .== a)
.== forall a. a -> Maybe a
Just Bool
True)
}
publishDiagnosticsCapabilities :: PublishDiagnosticsClientCapabilities
publishDiagnosticsCapabilities =
PublishDiagnosticsClientCapabilities {
$sel:_relatedInformation:PublishDiagnosticsClientCapabilities :: Maybe Bool
_relatedInformation=forall a. Int -> Int -> a -> Maybe a
since Int
3 Int
7 Bool
True
, $sel:_tagSupport:PublishDiagnosticsClientCapabilities :: Maybe (Rec (("valueSet" .== [DiagnosticTag]) .+ 'R '[]))
_tagSupport=forall a. Int -> Int -> a -> Maybe a
since Int
3 Int
15 (forall a. IsLabel "valueSet" a => a
#valueSet forall (l :: Symbol) a.
KnownSymbol l =>
Label l -> a -> Rec (l .== a)
.== [ DiagnosticTag
DiagnosticTag_Unnecessary, DiagnosticTag
DiagnosticTag_Deprecated ])
, $sel:_versionSupport:PublishDiagnosticsClientCapabilities :: Maybe Bool
_versionSupport=forall a. Int -> Int -> a -> Maybe a
since Int
3 Int
15 Bool
True
, $sel:_codeDescriptionSupport:PublishDiagnosticsClientCapabilities :: Maybe Bool
_codeDescriptionSupport=forall a. Int -> Int -> a -> Maybe a
since Int
3 Int
16 Bool
True
, $sel:_dataSupport:PublishDiagnosticsClientCapabilities :: Maybe Bool
_dataSupport=forall a. Int -> Int -> a -> Maybe a
since Int
3 Int
16 Bool
True
}
dynamicReg :: Maybe Bool
dynamicReg
| Int
maj forall a. Ord a => a -> a -> Bool
>= Int
3 = forall a. a -> Maybe a
Just Bool
True
| Bool
otherwise = 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 forall a. Ord a => a -> a -> Bool
>= Int
x Bool -> Bool -> Bool
&& Int
min forall a. Ord a => a -> a -> Bool
>= Int
y = forall a. a -> Maybe a
Just a
a
| Bool
otherwise = forall a. Maybe a
Nothing
window :: WindowClientCapabilities
window =
WindowClientCapabilities {
$sel:_workDoneProgress:WindowClientCapabilities :: Maybe Bool
_workDoneProgress=forall a. Int -> Int -> a -> Maybe a
since Int
3 Int
15 Bool
True
, $sel:_showMessage:WindowClientCapabilities :: Maybe ShowMessageRequestClientCapabilities
_showMessage=forall a. Int -> Int -> a -> Maybe a
since Int
3 Int
16 forall a b. (a -> b) -> a -> b
$ Maybe
(Rec (("additionalPropertiesSupport" .== Maybe Bool) .+ 'R '[]))
-> ShowMessageRequestClientCapabilities
ShowMessageRequestClientCapabilities forall a. Maybe a
Nothing
, $sel:_showDocument:WindowClientCapabilities :: Maybe ShowDocumentClientCapabilities
_showDocument=forall a. Int -> Int -> a -> Maybe a
since Int
3 Int
16 forall a b. (a -> b) -> a -> b
$ Bool -> ShowDocumentClientCapabilities
ShowDocumentClientCapabilities Bool
True
}
general :: GeneralClientCapabilities
general = GeneralClientCapabilities {
$sel:_staleRequestSupport:GeneralClientCapabilities :: Maybe
(Rec
(Extend "cancel" Bool ('R '[])
.+ (("retryOnContentModified" .== [Text]) .+ 'R '[])))
_staleRequestSupport=forall a. Int -> Int -> a -> Maybe a
since Int
3 Int
16 (forall a. IsLabel "cancel" a => a
#cancel forall (l :: Symbol) a.
KnownSymbol l =>
Label l -> a -> Rec (l .== a)
.== Bool
True forall (l :: Row (*)) (r :: Row (*)).
FreeForall l =>
Rec l -> Rec r -> Rec (l .+ r)
.+ forall a. IsLabel "retryOnContentModified" a => a
#retryOnContentModified forall (l :: Symbol) a.
KnownSymbol l =>
Label l -> a -> Rec (l .== a)
.== [])
, $sel:_regularExpressions:GeneralClientCapabilities :: Maybe RegularExpressionsClientCapabilities
_regularExpressions=forall a. Int -> Int -> a -> Maybe a
since Int
3 Int
16 forall a b. (a -> b) -> a -> b
$ Text -> Maybe Text -> RegularExpressionsClientCapabilities
RegularExpressionsClientCapabilities Text
"" forall a. Maybe a
Nothing
, $sel:_markdown:GeneralClientCapabilities :: Maybe MarkdownClientCapabilities
_markdown=forall a. Int -> Int -> a -> Maybe a
since Int
3 Int
16 forall a b. (a -> b) -> a -> b
$ Text -> Maybe Text -> Maybe [Text] -> MarkdownClientCapabilities
MarkdownClientCapabilities Text
"" forall a. Maybe a
Nothing (forall a. a -> Maybe a
Just [])
, $sel:_positionEncodings:GeneralClientCapabilities :: Maybe [PositionEncodingKind]
_positionEncodings=forall a. Maybe a
Nothing
}
allMarkups :: [MarkupKind]
allMarkups = [MarkupKind
MarkupKind_PlainText, MarkupKind
MarkupKind_Markdown]