def capabilities

bolt@1.27.0.0 · src/lsp/proto.bend:37

import bolt@1.27.0.0/src/lsp/proto.bend as Proto
import Base
import emerging-ezjson@1.2.0.0/main.bend as Ezjson
import emerging-ezjson@1.2.0.0/src/value.bend as J
import bolt@1.27.0.0/src/lsp/semantic.bend as Semantic
import bolt@1.27.0.0/src/version.bend as Ver
import bolt@1.27.0.0/src/lsp/enc.bend as Enc

37# what the server can do. It takes whole-text edits (change: 1) for hover,
38# definition and symbols; diagnostics still follow open and save, as the
39# checker reads files and their imports from disk
40def capabilities(ee: Enc.Enc) -> J.Json:
41  Ezjson.obj([
42    ("capabilities", Ezjson.obj([
43      ("positionEncoding", J.JStr{Enc.name(ee)}),
44      ("textDocumentSync", Ezjson.obj([("openClose", J.JBool{True{}}), ("change", J.JNum{U32.show(1)}), ("save", J.JBool{True{}})])),
45      ("hoverProvider", J.JBool{True{}}),
46      ("definitionProvider", J.JBool{True{}}),
47      ("documentSymbolProvider", J.JBool{True{}}),
48      ("completionProvider", Ezjson.obj([("triggerCharacters", Ezjson.arr([J.JStr{"."}]))])),
49      ("referencesProvider", J.JBool{True{}}),
50      ("renameProvider", J.JBool{True{}}),
51      ("semanticTokensProvider", Ezjson.obj([
52        ("legend", Ezjson.obj([("tokenTypes", Ezjson.arr(strings(Semantic.legend()))), ("tokenModifiers", Ezjson.arr([]))])),
53        ("full", J.JBool{True{}})]))])),
54    ("serverInfo", Ezjson.obj([("name", J.JStr{"bolt"}), ("version", J.JStr{Ver.text()})]))])

Uses (12)

Used by (1)