package oxbow
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>
Dynamic window manager for the river Wayland compositor
Install
dune-project
Dependency
Authors
Maintainers
Sources
v0.1.0.tar.gz
md5=a637acaa0e19046cd65fff733874eb97
sha512=76230cbecd7510de7a05b5d1f335915ef7b6c4aa557d8dbfd23591606618d2cfa25082d17b93f2f4b53a118d1cbf6a80e4ad51cf0f099b4921fb83d6df0c9801
doc/src/oxbow.core/output_match.ml.html
Source file output_match.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 39open! Ppx_yojson_conv_lib.Yojson_conv type t = { name : string option [@yojson.option] ; label : string option [@yojson.option] ; case : Pattern.Case.t ; invert : bool } [@@deriving yojson] let is_empty = function | { name = None; label = None; case = _; invert = _ } -> true | _ -> false ;; let to_string m = let field_value name value = match value with | None -> None | Some s -> Some (Printf.sprintf "%s=%s" name s) in let invert = if m.invert then Some "[invert]" else None in let parts = List.filter_map Fun.id [ field_value "name" m.name; field_value "label" m.label; invert ] in let body = String.concat " " parts in match m.case with | Sensitive -> body | Insensitive -> Printf.sprintf "%s (insensitive)" body ;; let compile m = Pattern.compile_specs ~case:m.case [ (m.name, fun (n, _) -> Option.to_list n); (m.label, fun (_, ls) -> ls) ] |> Result.map (fun m ~name ~labels -> m (name, labels)) ;;
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>