|
|
bbdbe022f3
|
Add 'string-tries-sml/' from commit 'd056e08ce768e014ab409c7f63e8fd0adfc1dff2'
git-subtree-dir: string-tries-sml
git-subtree-mainline: dba78da7ec
git-subtree-split: d056e08ce7
|
2026-04-24 00:34:11 +01:00 |
|
|
|
dba78da7ec
|
Add 'dotscape-art/' from commit 'a1b88b9d3bfd82a91da6fe522e20f83027d17c5e'
git-subtree-dir: dotscape-art
git-subtree-mainline: f3a4e15ed5
git-subtree-split: a1b88b9d3b
|
2026-04-24 00:31:29 +01:00 |
|
|
|
f3a4e15ed5
|
Add 'dotscape/' from commit 'f306501a68a51b634e895c5fdac70788ae899d75'
git-subtree-dir: dotscape
git-subtree-mainline: 6b91d64fc3
git-subtree-split: f306501a68
|
2026-04-24 00:30:08 +01:00 |
|
|
|
6b91d64fc3
|
Add 'shf/' from commit 'b6c5a95b664aeb861d7b33ffc9eefe447ba99dd7'
git-subtree-dir: shf
git-subtree-mainline: 401408448f
git-subtree-split: b6c5a95b66
|
2026-04-24 00:27:49 +01:00 |
|
|
|
401408448f
|
Add 'brolib-sml/' from commit 'fd96032949434207dda3b288f48d7fe579f59e4e'
git-subtree-dir: brolib-sml
git-subtree-mainline: 64471ecf7f
git-subtree-split: fd96032949
|
2026-04-24 00:26:04 +01:00 |
|
|
|
64471ecf7f
|
initial commit
|
2026-04-24 00:19:28 +01:00 |
|
|
|
b6c5a95b66
|
remove some submodules, replacing them with hardcoded paths instead
|
2026-04-23 23:40:14 +01:00 |
|
|
|
d25c42f9f0
|
done adding search-list related tests for 'dN' motion
|
2026-04-01 23:49:30 +01:00 |
|
|
|
9d46ec9f34
|
add additional test for 'dn' motion after finding bug, fixed bug (rewrote high-level delete fundtion in persistent-vector.sml to address it), and begin adding tests for 'dN' motion
|
2026-03-28 00:45:08 +00:00 |
|
|
|
3f6eaa730a
|
add search-list tests for 'dn' motion
|
2026-02-14 20:56:11 +00:00 |
|
|
|
1b07323e54
|
add search-list tests for 'd^' motion
|
2026-02-10 10:11:32 +00:00 |
|
|
|
756f44e7f8
|
add tests for 'd$' motion, and fix bug. When we are extending an existing match and reached the last index of the buffer, we used to return the searchList right away. However, we are meant to add the extended match before returning the searchList. We do this now, and the bug is fixed.
|
2026-02-10 09:56:35 +00:00 |
|
|
|
3c0a1dc034
|
add search-list tests for 'd0' motion
|
2026-02-10 09:10:19 +00:00 |
|
|
|
e0517ca8cd
|
add tests related to searchList for 'dG' and 'dgg' motions
|
2026-02-10 08:57:32 +00:00 |
|
|
|
9a374d30f3
|
add search-list tests for 'dge' and 'dgE' motions
|
2026-02-09 22:30:48 +00:00 |
|
|
|
a270879216
|
add tests regarding search-list for 'db' and 'dB' motions
|
2026-02-09 02:31:36 +00:00 |
|
|
|
66ac1cbc34
|
add search-list tests for 'de' and 'dE' motions
|
2026-02-09 02:11:01 +00:00 |
|
|
|
5fc1b10b24
|
add tests regarding search list for 'dW' motion
|
2026-02-09 02:00:34 +00:00 |
|
|
|
49b7f748aa
|
add search-list tests for 'dw' motion
|
2026-02-09 01:56:29 +00:00 |
|
|
|
ed8d336794
|
add search-list tests for 'dk' motion
|
2026-02-08 20:27:18 +00:00 |
|
|
|
482a8f073c
|
add tests regarding searchList for 'dd' motion
|
2026-02-08 18:48:07 +00:00 |
|
|
|
c87ef22ec7
|
add search-list-deletion tests for 'dj' motion
|
2026-02-08 11:49:03 +00:00 |
|
|
|
bb4d1d318e
|
add a couple of more tests asserting searchList state after deletion
|
2026-02-08 10:13:30 +00:00 |
|
|
|
6c1e5777d1
|
begin adding tests for how searchList should be after a deletion
|
2026-02-08 09:54:39 +00:00 |
|
|
|
3b21025dbc
|
expand plan for addressing to-do list in todo.md a bit
|
2026-02-08 03:21:34 +00:00 |
|
|
|
33866533a3
|
address remainning todo-notes, which had to do with updating the searchList when we insert into a buffer.
|
2026-02-08 03:17:19 +00:00 |
|
|
|
c28ae4d8cd
|
code function that can insert into both searchList and buffer
|
2026-02-08 02:32:32 +00:00 |
|
|
|
1fa2a44a2f
|
progress addressing to-do notes in fcore/normal-mode/make-normal-delete.sml, although some notes are still left. The notes that have been addressed involved cases where we create a new buffer containing just a newline, because all of the text in the buffer has been deleted otherwise. In this case, we call 'SearchList.build' and build the search-list from scratch, which is fast because only one character needs to be checked.
|
2026-02-08 02:16:48 +00:00 |
|
|
|
0c40cad77a
|
done replacing direct calls to 'LineGap.delete' with calls to 'SearchList.deleteBufferAndSearchList', so that the search list is also deleted from whenever the buffer is deleted from
|
2026-02-07 22:27:44 +00:00 |
|
|
|
9b520d71f5
|
pull in new brolib-sml changes, which fixes a minor bug in the 'LineGap.lineNumberToIdx' function. That function tried to index into a vector immediately when the metadata indicated the current node is at the correct line number, without checking if the relevant line break is at the current node. We perform this check first, and continue going leftwards until we find the line break if the relevant line break is not at the current node.
|
2026-02-07 03:10:23 +00:00 |
|
|
|
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 |
|
|
|
340e52019f
|
handle edge case when deleting from buffer: if the previous match is extended into a new match, then replace the old match in the search list with the extended match
|
2026-02-07 02:25:45 +00:00 |
|
|
|
68be55342d
|
fix failing test for 'PersistentVector.extendExistingMatch'. The test itself was wrong, as it forgets that lists are 0-indexed.
|
2026-02-07 01:40:43 +00:00 |
|
|
|
7fa573334f
|
add failing test for PersistentVector.extendExistingMatch. (Need to fix.)
|
2026-02-07 00:33:29 +00:00 |
|
|
|
0ea0d44da3
|
add function to extend an existing match, and add tests for it
|
2026-02-07 00:29:58 +00:00 |
|
|
|
b02b2f53da
|
when deleting from buffer and search list both, don't try to find any matches if the DFA is empty (has a length of 0), because that means there is no search to find a match for
|
2026-02-06 21:25:44 +00:00 |
|
|
|
2292c30cd3
|
bookmark checkpoint in refactoring code to call funhction which deletes from both (searchList and buffer), instead of just deleting buffer
|
2026-02-06 20:43:47 +00:00 |
|
|
|
02086e0922
|
code outline of a function to extend an existing match in search-list.sml.
|
2026-02-06 20:30:07 +00:00 |
|
|
|
11a632556c
|
progress refactoring delete functions in fcore/normal-mode/make-normal-delete.sml so that searchList is incrementally rebuilt when buffer is deleted from
|
2026-02-06 09:41:39 +00:00 |
|
|
|
9c66c3f5e8
|
progress in changing functions to use 'PersistentVector.delete' so that search list is incremental and not rebuilt from scratch after each deletion
|
2026-02-06 08:57:18 +00:00 |
|
|
|
df7669b065
|
progress in changing functions to use 'PersistentVector.delete' so that search list is incremental and not rebuilt from scratch after each deletion
|
2026-02-06 08:52:11 +00:00 |
|
|
|
c856f49a6c
|
amend merge function from persistent-vector.sml. If we reach the same depth and find that there is no space, then climb (using the stack) up by one depth, raise the depth of the smaller node by 1, and merge there. This helps ensure balance. Before, we broke a LEAF into two LEAF objects if we wanted to merge and found that there was no room, but that led to balancing problems, which are addressed by this change.
|
2026-02-05 23:54:31 +00:00 |
|
|
|
0f907769e3
|
add a function to persistent-vector.sml to check if all leaves are at the same depth (which is how we want to balance)
|
2026-02-05 20:39:01 +00:00 |
|
|
|
5c34a4c6ac
|
done with tests for 'yw' motion
|
2026-02-04 10:19:40 +00:00 |
|
|
|
1f2af6aacd
|
amend implementation of 'yw' so that we do not yank newline following last word in line, if we are trying to yank last word
|
2026-02-04 10:12:04 +00:00 |
|
|
|
83c660818e
|
begin adding tests for 'yw' yank motion
|
2026-02-04 09:26:57 +00:00 |
|
|
|
2a8785a373
|
add tests for 'yy' yank motion
|
2026-02-01 09:48:10 +00:00 |
|
|
|
2ee963a3d8
|
done implementing tests for yank. Also simplify 'NormalDelete.deleteLineDown' and 'NormalYank.yankLineDown' functions by removing an if-branch which can never trigger. (The code path can only be executed in the event that 'endLineIdx' is on a newline, and there is an if-expression in that branch checking whether 'endLineIdx' is on a newline, which is redundant.)
|
2026-01-31 22:20:52 +00:00 |
|
|
|
c0d4155808
|
adjust 'NormalYank.yankLineDown' function to pass failing test
|
2026-01-31 21:53:32 +00:00 |
|
|
|
ef9da12a0b
|
begin adding tests for 'yj' motion, based on tests for 'dj' motion
|
2026-01-31 21:18:21 +00:00 |
|