package forester
A tool for tending mathematical forests
Install
Dune Dependency
Authors
Maintainers
Sources
5.0.tar.gz
md5=24f4aed96a8b8af33aba13fba66f1b37
sha512=d36b896aca11858bb4a00fc704c16cc27a1f197bdb3e479d6132fd70f70d67d7158096285cb0b6fb00db14417f0f822cc27fe65d82f0971e42378fd8271ce573
doc/src/forester.core/Reporter.ml.html
Source file Reporter.ml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73
(* * SPDX-FileCopyrightText: 2024 The Forester Project Contributors * * SPDX-License-Identifier: GPL-3.0-or-later *) module R = Resolver module Sc = R.Scope module Message = Reporter_message include Asai.StructuredReporter.Make(Message) type diagnostic = Message.t Asai.Diagnostic.t let log pp s = Logs.info (fun m -> m "%a...@." pp s) let profile msg body = let before = Unix.gettimeofday () in let result = body () in let after = Unix.gettimeofday () in emit ~extra_remarks: [Asai.Diagnostic.loctextf "%s" msg] (Profiling (after, before)); result module Tty = Asai.Tty.Make(Message) let easy_run k = let fatal diagnostics = Tty.display diagnostics; exit 1 in run ~emit: Tty.display ~fatal k let silence k = let fatal diagnostics = Tty.display diagnostics; exit 1 in run ~emit: Tty.display ~fatal k let test_run k = let fatal diagnostics = Tty.display ~use_color: false ~use_ansi: false diagnostics; exit 1 in let emit _diagnostics = () in run ~emit ~fatal k (* Reporting diagnostics requires a document URI to publish *) let guess_uri (d : diagnostic) = match d with | {explanation; _} -> match explanation.loc with | None -> None | Some loc -> match Range.view loc with | `End_of_file {source; _} | `Range ({source; _}, _) -> match source with | `String _ -> None | `File path -> if path <> "" then Some (Lsp.Uri.of_path path) else None let ignore = let emit _ = () in let fatal _ = fatal Message.Internal_error ~extra_remarks: [Asai.Diagnostic.loctext "ignoring error"] in run ~emit ~fatal
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>