package acgtk
Abstract Categorial Grammar development toolkit
Install
Dune Dependency
Authors
Maintainers
Sources
acg-2.1.0-20240219.tar.gz
sha512=5d380a947658fb1201895cb4cb449b1f60f54914c563e85181d628a89f045c1dd7b5b2226bb7865dd090f87caa9187e0ea6c7a4ee3dc3dda340d404c4e76c7c2
doc/src/acgtk.utilsLib/xlog.ml.html
Source file xlog.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 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89
module type MyLOG = sig include Logs.LOG val src : Logs.src end let stamp_tag : Mtime.span Logs.Tag.def = Logs.Tag.def "stamp" ~doc:"Relative monotonic time stamp" Mtime.Span.pp let stamp c = Logs.Tag.(empty |> add stamp_tag (Mtime_clock.count c)) let log_pairs ~src level f = Logs.msg ~src level (fun m -> f (fun fmt (f1, arg1) (f2, arg2) -> m fmt (f1 arg1) (f2 arg2))) let my_reporter ~app ppf = let new_report src level ~over k msgf = let k _ = over (); k () in match level with | Logs.App -> msgf @@ fun ?header ? fmt -> let _ = tags in (* in order to get rid of the tags unused variable warning *) Fmt.kpf k ppf ("%a@[" ^^ fmt ^^ "@]@.") Logs_fmt.pp_header (level, header) | Logs.Error | Logs.Warning -> msgf @@ fun ?header ? fmt -> let _ = tags in (* in order to get rid of the tags unused variable warning *) Fmt.kpf k ppf ("%a @[" ^^ fmt ^^ "@]@.") Logs_fmt.pp_header (level, header) | _ -> let p1, p2 = if (src = Logs.default) || (String.trim (Logs.Src.name src) = "") then (app, "") else (app ^ "/", Logs.Src.name src) in let with_src h k ppf fmt = let stamp = match tags with | None -> None | Some -> Logs.Tag.find stamp_tag tags in match stamp with | None -> Fmt.kpf k ppf ("%a%a: %a @[" ^^ fmt ^^ "@]@.") Fmt.(styled `Magenta string) p1 Fmt.(styled `Magenta string) p2 Logs_fmt.pp_header (level, h) | Some s -> Fmt.kpf k ppf ("%a%a: %a[%a] @[" ^^ fmt ^^ "@]@.") Fmt.(styled `Magenta string) p1 Fmt.(styled `Magenta string) p2 Logs_fmt.pp_header (level, h) Mtime.Span.pp s in msgf @@ fun ?header ? fmt -> with_src header tags k ppf fmt in { Logs.report = new_report } let setup_log ~app style_renderer level = Fmt_tty.setup_std_outputs ~utf_8:true ~style_renderer (); Logs.set_level level; Logs.set_reporter (my_reporter ~app Format.std_formatter); () let set_level ~app ?(colored = true) l = let tt = match colored with true -> `Ansi_tty | false -> `None in setup_log ~app tt (Some l) module Make (I : sig val name : string end) = struct let doc = Printf.sprintf "logs ACGtkLib %s events" I.name let src = Logs.Src.create ~doc I.name module Log = (val Logs.src_log src) include Log end
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>