stitch
Note taking for messy minimalists
git clone git://mccd.space/stitchcommit 964d6773395b7008661b38c11acd24959f280fb1
parent 5aec082b915416107cec9e8c811bbbedafb70b59
Author: Marc Coquand <marc@mccd.space>
Date: Mon, 20 May 2024 09:23:23 -0500
Replace ugly conversion
Diffstat:
4 files changed, 6 insertions(+), 4 deletions(-)
diff --git a/lib/basic.ml b/lib/basic.ml
@@ -0,0 +1,3 @@
+let array_drop n arr =
+ if Array.length arr < n then [||] else Array.sub arr n (max (Array.length arr - n) 0)
+
diff --git a/lib/done.ml b/lib/done.ml
@@ -72,7 +72,7 @@ let rec render
if i == y - scroll
then I.strf "%s" el |> I.pad ~l:2 ~t:(i + content_start)
else I.strf "%s" el |> I.pad ~l:2 ~t:(i + content_start))
- (Array.to_seq content_pretty |> Seq.drop scroll |> Array.of_seq)
+ (content_pretty |> Basic.array_drop scroll)
in
let open I in
Array.fold_left (fun sum el -> el </> sum) (title </> dot </> output_info) elements
diff --git a/lib/headlines.ml b/lib/headlines.ml
@@ -44,7 +44,6 @@ let init ~goto_done_view ~goto_todos_view ~regexp =
let title = I.strf ~attr:A.(st bold) "%s" "Notes" |> I.pad ~l:0 ~t:0
-(* TODO: Add page title *)
let rec render
t
({ pos
@@ -80,7 +79,7 @@ let rec render
if i + 1 == y - scroll (* TODO: Should be reverse *)
then I.strf "%s" el |> I.pad ~l:2 ~t:(i + content_start)
else I.strf "%s" el |> I.pad ~l:2 ~t:(i + content_start))
- (Array.to_seq content_pretty |> Seq.drop scroll |> Array.of_seq)
+ (Basic.array_drop scroll content_pretty)
in
let open I in
Array.fold_left (fun sum el -> sum </> el) (title </> dot </> output_info) elements
diff --git a/lib/todos.ml b/lib/todos.ml
@@ -73,7 +73,7 @@ let rec render
if i == y - scroll
then I.strf "%s" el |> I.pad ~l:2 ~t:(i + content_start)
else I.strf "%s" el |> I.pad ~l:2 ~t:(i + content_start))
- (Array.to_seq content_pretty |> Seq.drop scroll |> Array.of_seq)
+ (content_pretty |> Basic.array_drop scroll)
in
let open I in
Array.fold_left (fun sum el -> el </> sum) (title </> dot </> output_info) elements