package coq-lsp

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

Install

Dune Dependency

Authors

Maintainers

Sources

coq-lsp-0.1.2.v8.16.tbz
sha256=31b83f0908bbabf4079806ce9271a30f7af8fb4e2fd5c81c1ccc3c1e8022f0de
sha512=de9f48cb643944620183243a55a225b33b3b77d2cc2ea26e38377622ea9036e7205634e880d804dd0ae69ce22d321ce4dfbacc94aebb402d1f124d5be348ebca

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.