From 70dab815ec112db4f246ebce3070340f931a27ae Mon Sep 17 00:00:00 2001 From: Luke Lau Date: Tue, 31 Jul 2018 17:43:49 +0100 Subject: [PATCH] Enable/disable dynamic registration in caps past 3.0 --- src/Language/Haskell/LSP/Test/Capabilities.hs | 43 +++++++++++-------- 1 file changed, 25 insertions(+), 18 deletions(-) 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 -- 2.30.2