segregated text stuff to its own set of files agian... progress on strings

This commit is contained in:
ed
2025-02-06 17:03:32 -05:00
parent 75d0f5bca1
commit 1a3f7e0e8a
4 changed files with 671 additions and 400 deletions
+54
View File
@@ -0,0 +1,54 @@
#ifdef INTELLISENSE_DIRECTIVES
# pragma once
# include "strings.h"
#endif
////////////////////////////////
//~ rjf: Text 2D Coordinates & Ranges
typedef struct TxtPt TxtPt;
struct TxtPt
{
S64 line;
S64 column;
};
typedef struct TxtRng TxtRng;
struct TxtRng
{
TxtPt min;
TxtPt max;
};
////////////////////////////////
//~ rjf: String Pair Types
typedef struct String8TxtPtPair String8TxtPtPair;
struct String8TxtPtPair
{
String8 string;
TxtPt pt;
};
////////////////////////////////
//~ rjf: Text Path Helpers
MD_API String8TxtPtPair str8_txt_pt_pair_from_string(String8 string);
////////////////////////////////
//~ rjf: Text 2D Coordinate/Range Functions
TxtPt txt_pt(S64 line, S64 column);
B32 txt_pt_match(TxtPt a, TxtPt b);
B32 txt_pt_less_than(TxtPt a, TxtPt b);
TxtPt txt_pt_min(TxtPt a, TxtPt b);
TxtPt txt_pt_max(TxtPt a, TxtPt b);
TxtRng txt_rng(TxtPt min, TxtPt max);
TxtRng txt_rng_intersect(TxtRng a, TxtRng b);
TxtRng txt_rng_union(TxtRng a, TxtRng b);
B32 txt_rng_contains(TxtRng r, TxtPt pt);
////////////////////////////////
//~ rjf: Text Wrapping
String8List wrapped_lines_from_string(Arena *arena, String8 string, U64 first_line_max_width, U64 max_width, U64 wrap_indent);