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/ring.ml.html
Source file ring.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 81let move_to_top x xs = x :: List.filter (( != ) x) xs let wrapped_search p l lst = let rec aux (wrapped : bool) = function | x :: _ when p x -> Some x | [ x ] when not wrapped -> l x |> aux true | _ :: xs -> aux wrapped xs | [] -> None in aux false lst ;; let next_or_first e = function | [] -> None | first :: _ as lst -> let rec aux = function | x :: y :: _ when x == e -> Some y | [ x ] when x == e -> Some first | _ :: rest -> aux rest | [] -> None in aux lst ;; let prev_or_last e lst = List.rev lst |> next_or_first e let shift_right p l = let rec aux acc = function | [ x ] when p x -> x :: List.rev acc | x :: y :: xs when p x -> (List.rev @@ (x :: y :: acc)) @ xs | x :: xs -> aux (x :: acc) xs | [] -> List.rev acc in aux [] l ;; let shift_left p l = List.rev l |> shift_right p |> List.rev let hop_right sel vis l = let rec aux p before = function | x :: xs when p x -> Some (List.rev before, x, xs) | x :: xs -> aux p (x :: before) xs | [] -> None in match aux sel [] l with | None -> l | Some (b, x, a) -> (match aux vis [] a with | Some (b', y, a') -> b @ b' @ [ y; x ] @ a' | None -> (match aux vis [] b with | Some (b', y, a') -> b' @ [ x; y ] @ a' @ a | None -> l)) ;; let hop_left sel vis l = List.rev l |> hop_right sel vis |> List.rev let rearrange vis order l = List.fold_left_map (fun ol slot -> if vis slot then ( match ol with | [] -> invalid_arg "order does not contain all the elements of the list that satisfy vis" | x :: xs -> xs, x) else ol, slot) order l |> snd ;; let insert_relative ~after ~point ~e stack = let rec aux = function | [] -> [ e ] | x :: xs when x == point -> if after then x :: e :: xs else e :: x :: xs | x :: xs -> x :: aux xs in List.filter (( != ) e) stack |> aux ;;
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>