def completion
bolt@1.27.0.0 · src/lsp/proto.bend:232
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/syntax/outline.bend as Outline
import bolt@1.27.0.0/src/lsp/enc.bend as Enc
232
233
234def completion(+cc: Enc.Cols, item: Outline.Item, +line: U32, start: U32, col: U32) -> J.Json:
235 Outline.Item{k, +name, l, sig, doc, path} = item
236 Ezjson.obj([("label", J.JStr{name}), ("kind", J.JNum{U32.show(completion.kind(k))}), ("detail", J.JStr{first_line(sig)}),
237 ("documentation", Ezjson.obj([("kind", J.JStr{"markdown"}), ("value", J.JStr{doc})])),
238 ("filterText", J.JStr{name}),
239 ("textEdit", Ezjson.obj([("range", Ezjson.obj([("start", position(cc, line, start)), ("end", position(cc, line, col))])),
240 ("newText", J.JStr{name})]))])