package coq-lsp

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

Install

Dune Dependency

Authors

Maintainers

Sources

coq-lsp-0.1.0.tbz
sha256=d2e95a517ff35f59150c4f8399dc23899923a9cc93fce190efaa05422d3bbcf5
sha512=5593afa6fef241a63cf685fe6e4af42482884aa9078d080503f1aa7987da5f96cc95ddb48b1393ac1bd240e3510f4f7a61fe83882c0f5f8a38c0279eed4a0a11

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.