Commit Graph

156 Commits

Author SHA1 Message Date
92006ae680 add functions to get line number (where first line is 0) to line_gap.sml 2025-09-11 17:59:03 +01:00
fe8d3906de fix regression introduced by previous commit (we need to be more careful when consing to 'leftStringsTl/rightStringsTl' than when consing to 'leftStrings/rightStrings', because our usage of consing the 'tl' variant in some places implies we have modified the head of that respective list 2025-08-05 16:17:53 +01:00
a2ca88da92 fix bug in index metadata in line_gap.sml (make sure we add and subtract by size of string by calling String.size) 2025-08-05 15:58:08 +01:00
a84490c86c use parametric polymorphism for value in gap_map.sml, instead of specifying value via functor. This is more flexible because a type which is defined after the functor can be used with the map. (The key in gap_map.sml is still specified by functor, though, which is necessary because the structure uses comparison functions which work with the key.) 2025-03-12 23:25:29 +00:00
e2da10e908 amend 'removeMiddle' function in gap_map.sml: before, we were leaving element we want to remove in rkhd/rvhd because we started the slice at 'insPos', but now we increment 'insPos' by 1 so we filter that desired element out 2025-02-14 13:02:42 +00:00
5f834ddaa4 add functor to fold over GapMap in gap_map.sml 2025-02-13 12:40:27 +00:00
f3cc41e9a2 add 'env' parameter to gap_map.sml's mapper 2025-02-13 12:06:20 +00:00
9c32e53160 add 'env' parameter to gap_map.sml's mapper 2025-02-13 12:01:40 +00:00
aa127b28fd add 'env' parameter to gap_map.sml's mapper 2025-02-13 12:01:07 +00:00
9749abf1d5 add 'env' parameter to mapper in gap_map.sml 2025-02-13 11:56:12 +00:00
d23396f5d1 cover exhaustive case reported in gap_map.sml (in 'joinSlices' function), and make it possible to map over values by using a functor 2025-02-13 10:52:55 +00:00
ae3238eabe minor adjustments to gap_vector.sml to make functor fit GAP_VECTOR signature 2025-02-13 08:26:48 +00:00
cfce329255 add gap_vector.sml, which is just the same as gap_buffer.sml, except generic through the use of functors 2025-02-13 08:22:55 +00:00
33678f2b0d code 'remove' function for gap_map.sml, completing the functionality I need for GapMap (but warning that, although most functions were edited from gap_set.sml, gap_map.sml is entirely untested) 2025-02-13 03:21:18 +00:00
2c187d0e87 implement 'moveTo' function for gap_map.sml 2025-02-13 02:41:29 +00:00
d3cca23549 implement 'moveToStart' and 'moveToEnd' functions in gap_map.sml 2025-02-12 13:59:27 +00:00
18bd71d608 fix compile errors regarding 'add' function in gap_map.sml (error was that 'joinSlices' helper function returned 'rightVals = rightKeys' instead of 'rightVals = rightVals') 2025-02-12 13:44:34 +00:00
2e03ae9828 add 'min' and 'max' functions to gap_map.sml 2025-02-12 12:45:45 +00:00
55d20a2b82 done with adding/inserting into GapMap 2025-02-12 12:25:35 +00:00
206df031b3 implement 'insRight' function for inserting to the right 2025-02-12 12:25:08 +00:00
0b8b47312a implement 'insRight' function for inserting to the right 2025-02-12 12:12:27 +00:00
ca3e357fde code 'insLeft' function for gap_map.sml 2025-02-12 11:08:05 +00:00
2048c04179 progress implementing 'add' in gap_map.sml 2025-02-12 10:15:36 +00:00
0ba1679e9a begin implementation of gap_map.sml 2025-02-12 01:51:39 +00:00
713d17fdd3 implement removeMany function for gap_set.sml (but it is untested and more complicated than all the other functions) 2025-02-03 06:39:46 +00:00
47c1492136 implement remove function for gap-set.sml (todo: a 'removeMany' function that takes a startToRemove and endToRemove value, and deletes values in that range) 2025-02-02 04:13:18 +00:00
707a62021a implement 'exists' functions on gap-set.sml 2025-02-01 23:56:33 +00:00
43bff91227 add functions to move around in gap set 2025-02-01 23:21:15 +00:00
7780b767a3 code insert function for gap-set.sml 2025-02-01 22:36:37 +00:00
50a7935612 minor change the nullSubstring function (use string literal for endWith parameter; no need to convert char to string) 2024-11-10 22:02:22 +00:00
6eb74c4332 add a substring function to line_gap.sml which is null terminated, which may be required for C FFI 2024-11-10 21:57:04 +00:00
c2e74d89fd fully implement substring for line_gap.sml 2024-11-10 11:13:12 +00:00
2cd6605ee4 progress adding substring to line_gap.sml 2024-11-10 10:41:41 +00:00
446e335f54 fix minor bug in 'helpGoToEnd' function in line_gap.sml (we were meant to pass rStrTl and rLnTl, but we were passing empty lists instead which caused us to lose data) 2024-10-30 10:53:17 +00:00
16f65c0d9d add 'goToEnd' function in line_gap.sml 2024-10-30 10:23:55 +00:00
d59d0bb17f fix starting 'goToLine' function in line_gap.sml; previously, we were comparing 'searchLine' to 'idx' to decide where to move buffer, but now we are comparing 'searchLine' to buffer's 'line' instead which is correct 2024-10-28 21:33:52 +00:00
d2e5c23c61 abstract reusable function from goToLine so it can be used in goToIdx, and implement goToIdx 2024-10-10 22:56:24 +01:00
d4ef45630d add function to move to specific line number (or the node containing a specific line number if node contains multiple line breaks) 2024-10-05 23:01:19 +01:00
36edbb6dee add function to go to start of line_gap.sml 2024-10-05 14:17:15 +01:00
2a5a5b0787 add append function to line_gap.sml 2024-10-05 12:39:45 +01:00
599252e5ed add function to create a LineGap.t from a string (although, for performance reasons, it's best to use this function when string is shorter than 1024 chars) 2024-10-05 00:57:12 +01:00
014c2ef7d1 add signature to line_gap.sml 2024-10-04 15:00:14 +01:00
9be5d36e50 add benchmark files for line_gap.sml and adjust the Makefile in /bench/ directory to use them 2024-07-21 00:45:37 +01:00
98f93701fd clean line_gap.sml a little - done with this now 2024-07-20 14:41:51 +01:00
2fd0df641a remove debugging print statements from line_gap.sml 2024-07-20 11:31:31 +01:00
8b296d0332 verify that all known bugs have been fixed and that none of the datasets give any issues with string contents or line metadata 2024-07-20 01:23:38 +01:00
59ac0aded8 after amending a few more bugs, it seems that line metadata and index metadata are handled correctly. At least for svelte dataset; worth checking others as well 2024-07-20 00:52:49 +01:00
fa9e5567ca amend another idx metadata bug, but now there is another one 2024-07-20 00:28:25 +01:00
d71fd80398 amend few bugs - now there is another error with buffer having wrong index 2024-07-20 00:14:21 +01:00
f6c3a01b11 amend error with buffer having wrong index 2024-07-19 23:56:40 +01:00