1 -- TODO: Move this into haskell-lsp
2 module Language.Haskell.LSP.Test.Capabilities where
3 import Language.Haskell.LSP.Types
4 import Language.Haskell.LSP.Types.Capabilities
6 -- | Capabilities for full conformance to the current (v3.10) LSP specification.
8 fullCaps :: ClientCapabilities
9 fullCaps = capsForVersion (LSPVersion maxBound maxBound)
11 -- | A specific version of the LSP specification.
12 data LSPVersion = LSPVersion Int -- ^ Major
15 -- | Capabilities for full conformance to the LSP specification up until a version.
16 capsForVersion :: LSPVersion -> ClientCapabilities
17 capsForVersion (LSPVersion maj min) = ClientCapabilities (Just w) (Just td) Nothing
19 w = WorkspaceClientCapabilities
21 (Just (WorkspaceEditClientCapabilities (Just True)))
22 (Just (DidChangeConfigurationClientCapabilities (Just True)))
23 (Just (DidChangeWatchedFilesClientCapabilities (Just True)))
24 (Just (SymbolClientCapabilities (Just True)))
25 (Just (ExecuteClientCapabilities (Just True)))
26 td = TextDocumentClientCapabilities
28 (Just (CompletionClientCapabilities
30 (Just (CompletionItemClientCapabilities (Just True)))))
31 (Just (HoverClientCapabilities (Just True)))
32 (Just (SignatureHelpClientCapabilities (Just True)))
33 (Just (ReferencesClientCapabilities (Just True)))
34 (Just (DocumentHighlightClientCapabilities (Just True)))
35 (Just (DocumentSymbolClientCapabilities (Just True)))
36 (Just (FormattingClientCapabilities (Just True)))
37 (Just (RangeFormattingClientCapabilities (Just True)))
38 (Just (OnTypeFormattingClientCapabilities (Just True)))
39 (Just (DefinitionClientCapabilities (Just True)))
41 (Just (CodeLensClientCapabilities (Just True)))
42 (Just (DocumentLinkClientCapabilities (Just True)))
43 (Just (RenameClientCapabilities (Just True)))
44 sync = SynchronizationTextDocumentClientCapabilities
49 codeAction = CodeActionClientCapabilities
53 | maj >= 3 && min >= 8 = Just (CodeActionLiteralSupport kinds)
55 kinds = CodeActionKindValueSet
56 (List [ CodeActionQuickFix
58 , CodeActionRefactorExtract
59 , CodeActionRefactorInline
60 , CodeActionRefactorRewrite
62 , CodeActionSourceOrganizeImports