X-Git-Url: http://git.lukelau.me/?p=opengl.git;a=blobdiff_plain;f=src%2FLanguage%2FHaskell%2FLSP%2FTest%2FCapabilities.hs;h=96d5b6708f66222c69f34e0b8d0ff31f468a27df;hp=9947906c4685a521c818de8a027ac3dc9e079a92;hb=70dab815ec112db4f246ebce3070340f931a27ae;hpb=4dce1170b5433bbad129b19b225c9fa533fc0e7e diff --git a/src/Language/Haskell/LSP/Test/Capabilities.hs b/src/Language/Haskell/LSP/Test/Capabilities.hs index 9947906..96d5b67 100644 --- a/src/Language/Haskell/LSP/Test/Capabilities.hs +++ b/src/Language/Haskell/LSP/Test/Capabilities.hs @@ -13,41 +13,45 @@ data LSPVersion = LSPVersion Int -- ^ Major Int -- ^ Minor -- | Capabilities for full conformance to the LSP specification up until a version. +-- Some important milestones: +-- +-- * 3.8 codeAction literals +-- * 3.0 dynamic registration capsForVersion :: LSPVersion -> ClientCapabilities capsForVersion (LSPVersion maj min) = ClientCapabilities (Just w) (Just td) Nothing where w = WorkspaceClientCapabilities (Just True) (Just (WorkspaceEditClientCapabilities (Just True))) - (Just (DidChangeConfigurationClientCapabilities (Just True))) - (Just (DidChangeWatchedFilesClientCapabilities (Just True))) - (Just (SymbolClientCapabilities (Just True))) - (Just (ExecuteClientCapabilities (Just True))) + (Just (DidChangeConfigurationClientCapabilities dynamicReg)) + (Just (DidChangeWatchedFilesClientCapabilities dynamicReg)) + (Just (SymbolClientCapabilities dynamicReg)) + (Just (ExecuteClientCapabilities dynamicReg)) td = TextDocumentClientCapabilities (Just sync) (Just (CompletionClientCapabilities - (Just True) + dynamicReg (Just (CompletionItemClientCapabilities (Just True))))) - (Just (HoverClientCapabilities (Just True))) - (Just (SignatureHelpClientCapabilities (Just True))) - (Just (ReferencesClientCapabilities (Just True))) - (Just (DocumentHighlightClientCapabilities (Just True))) - (Just (DocumentSymbolClientCapabilities (Just True))) + (Just (HoverClientCapabilities dynamicReg)) + (Just (SignatureHelpClientCapabilities dynamicReg)) + (Just (ReferencesClientCapabilities dynamicReg)) + (Just (DocumentHighlightClientCapabilities dynamicReg)) + (Just (DocumentSymbolClientCapabilities dynamicReg)) (Just (FormattingClientCapabilities (Just True))) - (Just (RangeFormattingClientCapabilities (Just True))) - (Just (OnTypeFormattingClientCapabilities (Just True))) - (Just (DefinitionClientCapabilities (Just True))) + (Just (RangeFormattingClientCapabilities dynamicReg)) + (Just (OnTypeFormattingClientCapabilities dynamicReg)) + (Just (DefinitionClientCapabilities dynamicReg)) (Just codeAction) - (Just (CodeLensClientCapabilities (Just True))) - (Just (DocumentLinkClientCapabilities (Just True))) - (Just (RenameClientCapabilities (Just True))) + (Just (CodeLensClientCapabilities dynamicReg)) + (Just (DocumentLinkClientCapabilities dynamicReg)) + (Just (RenameClientCapabilities dynamicReg)) sync = SynchronizationTextDocumentClientCapabilities - (Just True) + dynamicReg (Just True) (Just True) (Just True) codeAction = CodeActionClientCapabilities - (Just True) + dynamicReg codeActionLiterals codeActionLiterals | maj >= 3 && min >= 8 = Just (CodeActionLiteralSupport kinds) @@ -61,3 +65,6 @@ capsForVersion (LSPVersion maj min) = ClientCapabilities (Just w) (Just td) Noth , CodeActionSource , CodeActionSourceOrganizeImports ]) + dynamicReg + | maj >= 3 = Just True + | otherwise = Nothing