def handle

bolt@1.27.0.0 · src/lsp/server.bend:604

import bolt@1.27.0.0/src/lsp/server.bend as Server
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/docs.bend as Docs
import bolt@1.27.0.0/src/lsp/checker/answer.bend as C
import bolt@1.27.0.0/src/lsp/files/service.bend as F
import bolt@1.27.0.0/src/lsp/enc.bend as Enc

604# one message: its method's work, then step's decision on it
605def handle(  # noqa: L001 LSP IO glue
606  ~fs: F.Files,
607  ~ck: C.Checker,
608  ee: Enc.Enc,
609  +msg: J.Json,
610  docs: List<&2, Docs.Doc>
611) -> IO(Out):
612  +mm = method(name_of(msg))
613  do IO<Out>:
614    w : Work <- work(~fs, ~ck, ee, mm, Ezjson.get(msg, "params"), docs)
615    return step(mm, id_of(msg), w)

Uses (17)

Used by (1)