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# a candidate replaces everything typed of the name, dots included: the
233# editor's own idea of a word stops at a dot
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})]))])

Uses (11)

Used by (1)