Skip to content

Instantly share code, notes, and snippets.

@pepeiborra
Created February 20, 2021 10:48
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save pepeiborra/fcad435bdf8717ceeecf392549329c19 to your computer and use it in GitHub Desktop.
Save pepeiborra/fcad435bdf8717ceeecf392549329c19 to your computer and use it in GitHub Desktop.
--> {
"jsonrpc": "2.0",
"params": {
"rootUri": "file:///Users/pepeiborra/scratch/ide/test/testdata/format",
"processId": 78600,
"clientInfo": {
"name": "lsp-test",
"version": "0.13.0.0"
},
"rootPath": "/Users/pepeiborra/scratch/ide/test/testdata/format",
"capabilities": {
"window": {
"workDoneProgress": true
},
"workspace": {
"didChangeWatchedFiles": {
"dynamicRegistration": true
},
haskell-language-server
"symbol": {
"symbolKind": {
"valueSet": [
format document
1,
2,
3,
formatting provider
4,
5,
6,
respects initial: 7,
8,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20,
21,
22,
23,
24,
25,
26
]
},
"dynamicRegistration": true
},
"workspaceEdit": {
"documentChanges": true,
"resourceOperations": [
"create",
"delete",
"rename"
]
},
"didChangeConfiguration": {
"dynamicRegistration": true
},
"applyEdit": true,
"executeCommand": {
"dynamicRegistration": true
},
"workspaceFolders": true,
"configuration": true
},
"textDocument": {
"completion": {
"dynamicRegistration": true,
"contextSupport": true,
"completionItem": {
"tagSupport": {
"valueSet": [
1
]
},
"preselectSupport": true,
"commitCharactersSupport": true,
"snippetSupport": true,
"deprecatedSupport": true,
"documentationFormat": [
"plaintext",
"markdown"
]
},
"completionItemKind": {
"valueSet": [
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20,
21,
22,
23,
24,
25
]
}
},
"documentHighlight": {
"dynamicRegistration": true
},
"selectionRange": {
"dynamicRegistration": true
},
"synchronization": {
"dynamicRegistration": true,
"willSave": true,
"didSave": true,
"willSaveWaitUntil": true
},
"definition": {
"linkSupport": true,
"dynamicRegistration": true
},
"signatureHelp": {
"dynamicRegistration": true,
"signatureInformation": {
"documentationFormat": [
"plaintext",
"markdown"
]
}
},
"references": {
"dynamicRegistration": true
},
"rangeFormatting": {
"dynamicRegistration": true
},
"declaration": {
"linkSupport": true,
"dynamicRegistration": true
},
"codeAction": {
"codeActionLiteralSupport": {
"codeActionKind": {
"valueSet": [
"quickfix",
"refactor",
"refactor.extract",
"refactor.inline",
"refactor.rewrite",
"source",
"source.organizeImports"
]
}
},
"isPreferredSupport": true,
"dynamicRegistration": true
},
"foldingRange": {
"lineFoldingOnly": false,
"dynamicRegistration": true
},
"onTypeFormatting": {
"dynamicRegistration": true
},
"codeLens": {
"dynamicRegistration": true
},
"documentSymbol": {
"hierarchicalDocumentSymbolSupport": true,
"symbolKind": {
"valueSet": [
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20,
21,
22,
23,
24,
25,
26
]
},
"dynamicRegistration": true
},
"colorProvider": {
"dynamicRegistration": true
},
"documentLink": {
"tooltipSupport": true,
"dynamicRegistration": true
},
"formatting": {
"dynamicRegistration": true
},
"implementation": {
"linkSupport": true,
"dynamicRegistration": true
},
"typeDefinition": {
"linkSupport": true,
"dynamicRegistration": true
},
"publishDiagnostics": {
"tagSupport": {
"valueSet": [
1,
2
]
},
"relatedInformation": true,
"versionSupport": true
},
"rename": {
"prepareSupport": true,
"dynamicRegistration": true
},
"hover": {
"contentFormat": [
"plaintext",
"markdown"
],
"dynamicRegistration": true
}
}
},
"trace": "off"
},
"method": "initialize",
"id": 0
}
<-- {
"result": {
"capabilities": {
"typeDefinitionProvider": true,
"foldingRangeProvider": false,
"workspaceSymbolProvider": true,
"textDocumentSync": {
"openClose": true,
"change": 2,
"save": {}
},
"workspace": {
"workspaceFolders": {
"supported": true,
"changeNotifications": true
}
},
"implementationProvider": false,
"selectionRangeProvider": false,
"documentRangeFormattingProvider": true,
"documentHighlightProvider": true,
"executeCommandProvider": {
"commands": [
"78602:class:addMinimalMethodPlaceholders",
"78602:eval:evalCommand",
"78602:ghcide-completions:extendImport",
"78602:ghcide-type-lenses:typesignature.add",
"78602:importLens:ImportLensCommand",
"78602:moduleName:edit",
"78602:retrie:retrieCommand",
"78602:splice:expandTHSpliceInplace",
"78602:tactic:tacticsAutoCommand",
"78602:tactic:tacticsIntrosCommand",
"78602:tactic:tacticsDestructCommand",
"78602:tactic:tacticsHomomorphismCommand",
"78602:tactic:tacticsDestructLambdaCaseCommand",
"78602:tactic:tacticsHomomorphismLambdaCaseCommand"
]
},
"renameProvider": false,
"colorProvider": false,
"definitionProvider": true,
"hoverProvider": true,
"codeActionProvider": true,
"completionProvider": {
"triggerCharacters": [
"."
],
"resolveProvider": false
},
"codeLensProvider": {
"resolveProvider": false,
"workDoneProgress": false
},
"documentSymbolProvider": true,
"documentFormattingProvider": true,
"referencesProvider": true,
"declarationProvider": false
}
},
"jsonrpc": "2.0",
"id": 0
}
--> {
"jsonrpc": "2.0",
"params": {},
"method": "initialized"
}
--> {
"jsonrpc": "2.0",
"params": {
"settings": {
"haskell": {
"formattingProvider": "floskell"
}
}
},
"method": "workspace/didChangeConfiguration"
}
--> {
"jsonrpc": "2.0",
"params": {
"textDocument": {
"languageId": "haskell",
"text": "module Format where\nimport Data.List\n\nimport Prelude\nimport Data.Int\nfoo :: Int -> Int\nfoo 3 = 2\nfoo x = x\nbar :: String -> IO String\nbar s = do\n x <- return \"hello\"\n return \"asdf\"\n\ndata Baz = Baz { a :: Int, b :: String }\n\n",
"uri": "file:///Users/pepeiborra/scratch/ide/test/testdata/format/Format.hs",
"version": 0
}
},
"method": "textDocument/didOpen"
}
--> {
"jsonrpc": "2.0",
"params": {
"textDocument": {
"uri": "file:///Users/pepeiborra/scratch/ide/test/testdata/format/Format.hs"
},
"options": {
"tabSize": 2,
"insertSpaces": true
}
},
"method": "textDocument/formatting",
"id": 1
}
<-- {
"jsonrpc": "2.0",
"params": {
"registrations": [
{
"registerOptions": {
"watchers": [
{
"kind": 5,
"globPattern": "**/*.hs"
},
{
"kind": 5,
"globPattern": "**/*.hs-boot"
},
{
"kind": 5,
"globPattern": "**/*.lhs"
},
{
"kind": 5,
"globPattern": "**/*.lhs-boot"
}
]
},
"method": "workspace/didChangeWatchedFiles",
"id": "globalFileWatches"
}
]
},
"method": "client/registerCapability",
"id": 0
}
<-- {
"result": [
{
"range": {
"start": {
"line": 0,
"character": 0
},
"end": {
"line": 15,
"character": 0
}
},
"newText": "module Format where\n\nimport Data.List\nimport Prelude\nimport Data.Int\n\nfoo :: Int -> Int\nfoo 3 = 2\nfoo x = x\n\nbar :: String -> IO String\nbar s = do\n x <- return \"hello\"\n return \"asdf\"\n\ndata Baz = Baz { a :: Int, b :: String }\n\n"
}
],
"jsonrpc": "2.0",
"id": 1
}
--> {
"jsonrpc": "2.0",
"params": {
"contentChanges": [
{
"text": "module Format where\n\nimport Data.List\nimport Prelude\nimport Data.Int\n\nfoo :: Int -> Int\nfoo 3 = 2\nfoo x = x\n\nbar :: String -> IO String\nbar s = do\n x <- return \"hello\"\n return \"asdf\"\n\ndata Baz = Baz { a :: Int, b :: String }\n\n",
"range": {
"start": {
"line": 0,
"character": 0
},
"end": {
"line": 15,
"character": 0
}
}
}
],
"textDocument": {
"uri": "file:///Users/pepeiborra/scratch/ide/test/testdata/format/Format.hs",
"version": 1
}
},
"method": "textDocument/didChange"
}
--> {
"jsonrpc": "2.0",
"params": null,
"method": "shutdown",
"id": 0
}
--> {
"result": [],
"jsonrpc": "2.0",
"id": 1
}
<-- {
"jsonrpc": "2.0",
"params": {
"token": 0
},
"method": "window/workDoneProgress/create",
"id": 1
}
<-- {
"jsonrpc": "2.0",
"params": {
"value": {
"kind": "begin",
"cancellable": false,
"title": "Setting up testdata (for Format.hs)"
},
"token": 0
},
"method": "$/progress"
}
<-- {
"jsonrpc": "2.0",
"params": {
"value": {
"kind": "end"
},
"token": 0
},
"method": "$/progress"
}
<-- {
"result": null,
"jsonrpc": "2.0",
"id": 0
}
--> {
"jsonrpc": "2.0",
"params": null,
"method": "exit"
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment