package coq-lsp

  1. Overview
  2. Docs
Language Server Protocol native server for Coq

Install

Dune Dependency

Authors

Maintainers

Sources

coq-lsp-0.1.1.v8.16.tbz
sha256=be48fd1449d8a0eb209e83ebbcde95090e94ba74ee7e744a399c3a5b67cc4acb
sha512=c711b953346d3e45ed61c75d5f3825d877820dec38e5dc803cd1ab9a32d6b4a850232a84984c3c340d3939c459ea0595f606d303e1ba714e4245a784b3507ab0

doc/src/coq-lsp.coq/protect.ml.html

Source file protect.ml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
module R = struct
  type 'a t =
    | Completed of ('a, Loc.t option * Pp.t) result
    | Interrupted (* signal sent, eval didn't complete *)
end

let map_loc ~f = function
  | R.Completed (Error (loc, msg)) ->
    R.Completed (Error (Option.map f loc, msg))
  | res -> res

let eval ~f x =
  try
    let res = f x in
    R.Completed (Ok res)
  with
  | Sys.Break -> R.Interrupted
  | exn ->
    let e, info = Exninfo.capture exn in
    let loc = Loc.(get_loc info) in
    let msg = CErrors.iprint (e, info) in
    R.Completed (Error (loc, msg))
OCaml

Innovation. Community. Security.