package core_kernel
Industrial strength alternative to OCaml's standard library
Install
Dune Dependency
Authors
Maintainers
Sources
core_kernel-v0.15.0.tar.gz
sha256=34a0288f16027c6b90e4ad16cb5cc677d7063d310faf918748ce70f1745116c0
doc/src/core_kernel.ansi_kernel/ansi_kernel.ml.html
Source file ansi_kernel.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 90 91 92 93 94 95 96 97 98
open! Core module Color_256 = Color_256 (* NOTE: assorted content lifted from lib/console/src/console.ml *) module Color = struct type primary = [ `Black | `Red | `Green | `Yellow | `Blue | `Magenta | `Cyan | `White ] [@@deriving sexp_of, compare, hash, equal] type t = [ primary | `Color_256 of Color_256.t ] [@@deriving sexp_of, compare, hash, equal] let to_int_list = function | `Black -> [ 30 ] | `Red -> [ 31 ] | `Green -> [ 32 ] | `Yellow -> [ 33 ] | `Blue -> [ 34 ] | `Magenta -> [ 35 ] | `Cyan -> [ 36 ] | `White -> [ 37 ] | `Color_256 c -> [ 38; 5; Color_256.to_int c ] ;; end module Attr = struct type t = [ `Bright | `Dim | `Underscore | `Reverse | Color.t | `Bg of Color.t ] [@@deriving sexp_of, compare, hash, equal] let to_int_list = function | `Bright -> [ 1 ] | `Dim -> [ 2 ] | `Underscore -> [ 4 ] | `Reverse -> [ 7 ] (* Background colors are 40..47, foreground 30..37. 256-color codes start with 48 (bg) or 38 (fg). *) | #Color.t as c -> Color.to_int_list c | `Bg bg -> (match Color.to_int_list bg with | ansi_code :: rest -> (ansi_code + 10) :: rest | [] -> [] (* NOTE: impossible, but appropriate *)) ;; let list_to_string = function | [] -> "" | l -> sprintf "\027[%sm" (String.concat ~sep:";" (List.concat_map l ~f:(fun att -> to_int_list att |> List.map ~f:string_of_int))) ;; end module With_all_attrs = struct type t = [ Attr.t | `Reset | `Blink | `Hidden ] [@@deriving sexp_of, compare, hash, equal] let to_int_list = function | `Reset -> [ 0 ] | `Blink -> [ 5 ] | `Hidden -> [ 8 ] | #Attr.t as attr -> Attr.to_int_list attr ;; let list_to_string = function | [] -> "" | l -> sprintf "\027[%sm" (String.concat ~sep:";" (List.concat_map l ~f:(fun att -> to_int_list att |> List.map ~f:string_of_int))) ;; end
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>