|
|
fd96032949
|
fix bug in line_gap.sml: when we convert a line number to an absolute index and travel leftwards, make sure we continue travelling leftwards when the current node is at the correct line number but the line number does not start at this node.
|
2026-02-07 03:04:49 +00:00 |
|
|
|
e7a08e27af
|
fix compiler error (was using curent module's name to refer to a function from current module, which is not supported in SML)
|
2025-12-03 00:34:30 +00:00 |
|
|
|
7a8961af9c
|
special case LineGap.goToLine, when the line requested to go to is 0. When this happens, we call 'LineGap.goToStart'.
|
2025-12-03 00:31:57 +00:00 |
|
|
|
4925bcd370
|
for LineGap.lineNumberToIdx function, add a branch at the start checking if we are trying to get the idx corresponding to line number 0. This is needed by the current implementation because the 'lineNumberToIdxLeft' function uses (findLine - 1) in the implementation, and (0 - 1) is an invalid line idx as it is below 0.
|
2025-12-02 23:49:29 +00:00 |
|
|
|
ec62efb40c
|
add 'textLength' value to line_gap.sml's string_iterator, and remove function to check if iterator is t end
|
2025-10-08 06:49:39 +01:00 |
|
|
|
1d6213636e
|
add function to line_gap.sml to check if iterator is at end
|
2025-10-08 06:24:40 +01:00 |
|
|
|
7248a3e27f
|
add function to get a char from a string_iterator in line_gap.sml
|
2025-10-08 06:17:01 +01:00 |
|
|
|
3345f618ca
|
progress making string iterator for line_gap.sml
|
2025-10-08 06:12:40 +01:00 |
|
|
|
56a469e578
|
handle edge case in line_gap.sml when deleting to the left: we sometimes need to delete to the end of the string, so add a branch handling that case
|
2025-10-06 22:56:18 +01:00 |
|
|
|
265e6e1a90
|
fix bugs in 'LineGap.subRight' (we were not passing nextIdx in recursion properly)
|
2025-09-30 05:23:31 +01:00 |
|
|
|
14bb447289
|
fix known errors in LineGap.sub function
|
2025-09-29 22:29:28 +01:00 |
|
|
|
863b4ba47b
|
do not require pattern matching head when in subRight/subLeft loop, but only require that in some cases
|
2025-09-29 22:13:03 +01:00 |
|
|
|
6de33a65c2
|
fix minor type error introduced in line_gap.sml in last commit (was returning an integer instead of a char)
|
2025-09-29 22:03:36 +01:00 |
|
|
|
f4422cc36c
|
add function to line_gap.sml to retrieve a single specific char
|
2025-09-29 21:56:39 +01:00 |
|
|
|
d6e119a161
|
fix bug in line_gap.sml's 'deleteRightFromHere' function: when we reach end of buffer, return with current index and current line instead of setting these to 0, and return input leftString and leftLines when we reach the end, instead of an empty list for these fields, because all of our text content is in those values and it would disappear if we return empty lists instead
|
2025-09-22 15:06:36 +01:00 |
|
|
|
5b6b13278b
|
remove unused arguments from 'moveLeft' and 'moveRight' functions in line_gap.sml, and adjust the callers of these functions so that they do not pass these parameters
|
2025-09-22 10:23:29 +01:00 |
|
|
|
d76ab0c3fe
|
fix bug in line_gap.sml's 'lineNumberToIdxRight' function: when calling 'lineNumberToIdxRight', pass tails of 'rightStrings' and 'rightLines', instead of passing 'rightStrings' and 'rightLines' themselves, so that we advance through the list
|
2025-09-22 10:20:27 +01:00 |
|
|
|
8c56f9cc95
|
fix typo in line_gap.sml which caused a compilation error
|
2025-09-19 04:40:34 +01:00 |
|
|
|
7ea31ace35
|
add function to LineGap to get the index of a line number
|
2025-09-19 04:37:21 +01:00 |
|
|
|
749a0d0e5f
|
better naming for a function in line_gap.sml, making it clear that it takes an index and returns the line number that this index is at.
|
2025-09-16 21:48:05 +01:00 |
|
|
|
bef4620cdb
|
amend LineGap.append function: previously, we were calculating the updated textLength and lineLength, but we were not using them, instead passing the old parameters instead. Now we use them as well.
|
2025-09-16 05:36:26 +01:00 |
|
|
|
09fe611efb
|
fix tracking of textLength and lineLength fields, which were previously buggy in only one delete branch; the current commit fixes that branch and verifies the tests pass
|
2025-09-14 15:48:26 +01:00 |
|
|
|
a95e90214d
|
improve test reporting information a bit
|
2025-09-14 15:30:47 +01:00 |
|
|
|
1c59dbf943
|
implemented textLength and lineLength tracking in line_gap.sml: need to check if they are valid next
|
2025-09-14 15:23:53 +01:00 |
|
|
|
76dd6b2b2a
|
begin tracking and adjusting textLength/lineLength for delete functions
|
2025-09-14 13:12:49 +01:00 |
|
|
|
eebf793fbf
|
refactor test code to check if textLength and lineLength are also correct
|
2025-09-14 12:54:23 +01:00 |
|
|
|
92a98bfb56
|
update all functions in line_gap.sml to track textLength and lineLength, except for test code and delete functions
|
2025-09-14 12:41:50 +01:00 |
|
|
|
52f0da2751
|
refactor LineGap.append function to track textLength and lineLength
|
2025-09-14 12:27:11 +01:00 |
|
|
|
9927e6bf1c
|
begin adding textLength and lineLength values in line_gap.sml (they are currently kept up to date only in the insert functions)
|
2025-09-14 12:22:15 +01:00 |
|
|
|
26862436d0
|
fix LineGap.goToLine bug: we weren't properly searching to check if the start of the searchLine was accessible in the node we stopped at
|
2025-09-13 17:58:42 +01:00 |
|
|
|
737e8695e7
|
fix bugs in helper functions for 'LineGap.getLineNumberOfIdx'. Main bug was that we were passing 'curLine' to 'getLineNumberRight' twice, instead of first passing 'curIdx' and then 'curLine' afterwards.
|
2025-09-13 04:55:27 +01:00 |
|
|
|
5c7ec252c2
|
don't index into line vector when getting line number from index; instead, just get how many previous-lines there are in the vector (if any) and add it to the line number of the current node. We do this because we are trying to get the line number of a particular index; accessing the line vector's contents (which are string indices) is not necessary nor helpful for that, but getting the relative line number is helpful for that
|
2025-09-13 03:51:33 +01:00 |
|
|
|
db6fd56aca
|
perform bounds checking when we try to index into a vector, in LineGap's 'getLineNumberOfIdx' helper functions
|
2025-09-13 03:32:35 +01:00 |
|
|
|
5d2a2ef737
|
add function to get line number of LineGap to signature, so that it is available to callers
|
2025-09-11 18:01:19 +01:00 |
|
|
|
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 |
|
|
|
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 |
|