Commit Graph

614 Commits

Author SHA1 Message Date
d1b865bda8 implmenet 'daW' motion (next: test it) 2025-12-13 03:57:21 +00:00
204f549c79 implement 'daw' motion 2025-12-13 03:40:32 +00:00
7130fe7dda add tests for 'diW' motion, and fix a bug in the implementation (contiguous spaces were not deleted properly) 2025-12-12 20:08:53 +00:00
90a103082a after performing delete-inside-word motion, make sure we move cursor back by 1 if cursor is on a newline which is preceded by a non-newline character 2025-12-12 11:37:52 +00:00
11cb00860b reimplemen 'diw' motion to fix failing test 2025-12-12 11:32:03 +00:00
1330bcdff9 add a couple of more tests, and revert persistent-vector.sml to how it was before adding rope-like metadata 2025-12-12 10:30:21 +00:00
2f2d530dae fix calculation for delete function (we needed to fix the calculation of how much to decrement by) 2025-12-09 13:10:23 +00:00
7a5aca7bf2 add function in persistent-vector.sml to insert 2025-12-09 12:33:06 +00:00
e6bda83309 begin adding tests for persistent-vector.sml, and add bug fix to 'PersistentVector.delete' in light of one of the tests. (We were decrementing by the wrong value previously, but I fixed it and added a comment of how we arrive at the value we want to decrement by 2025-12-09 11:42:30 +00:00
51bce52ea4 add from/toList conversion functions for testing persistent-vector.sml 2025-12-09 10:44:43 +00:00
cd8958cced implement a function to delete from persistent-vector.sml 2025-12-09 10:31:31 +00:00
69fcbfc35d add function to decrement indices in persistent-vector.sml 2025-12-09 10:07:46 +00:00
d52c350a90 formatting for persistent-vector.sml (absolutely no changes other than formatting) 2025-12-08 22:40:38 +00:00
2ba18a38b0 entirely done with first pass implementing persistent-vector.sml's 'prependJoin' helper function. 2025-12-08 22:37:13 +00:00
0c668c9f14 almost done implementing persistent-vector.sml's 'prependJoin' helper function. (BRANCH case is fully implemented, but I need to implement the LEAF case next.) 2025-12-08 22:23:01 +00:00
b6cad904f9 implement function to join when left has greater depth than right. (I need to implement a function to join when right is greater than left though. 2025-12-08 10:57:00 +00:00
3aab8698ed begin coding function to join two 'PersistentVector.t's. 2025-12-07 04:12:39 +00:00
0650b372b2 complete first pass of implementing 'splitRight' in persistent-vector.sml 2025-12-07 03:43:15 +00:00
3318501c00 in persistent-vector.sml's 'splitRight' function, make sure we decrement the remaining size table that remains after the split. 2025-12-07 03:22:38 +00:00
470d36f82b delete insert function and helper functions in persistent-vector.sml, due to a simpler approach: for insertion, we will split the vector into left and right halves, then append the new element to the left half, then concat both halves together again. This is similar to the approach for RRB trees. 2025-12-06 02:19:42 +00:00
ca5baf8fd7 progress with ''helpInset' function in persistent-vector.sml: BRANCH case is fully implemented, and need to impelement LEAF case next 2025-12-06 00:28:29 +00:00
db459d59ad progress reimplementing 'helpInsert' in persistent-vector.sml by adding a helper function for creating a vector when the current node is split 2025-12-05 18:53:02 +00:00
1f5cf157b1 progress reimplementing 'helpInsert' so that it is aware of rope-like metadata 2025-12-05 13:32:16 +00:00
343951948c begin reimplementing persistent-vector.sml's 'helpInsert' function so that it uses rope-like metadata 2025-12-05 10:11:06 +00:00
237d9f8a38 formatting for fcore/persistent-vector.sml 2025-12-03 11:06:08 +00:00
0625c33bec modify next/prev match functions to index using rope-like metadata 2025-12-03 11:00:02 +00:00
22aa18699e modify PersistentVector.nextMatch and relevant functions so that they index using the roles of rope-like metadata 2025-12-03 10:18:44 +00:00
137cbfee19 fix bug when saving search from NORMAL_SEARCH_MODE. Previously, when pressing <Enter> to save the search, the tempSearchList (which searches against a subset of the buffer's text instead of all of it, to ensure we do not spend too much time was spent while the user was entering the regex/search string) was being saved instead of the newly built searchList (which executes the DFA against all of the text) 2025-12-02 17:55:25 +00:00
fde27123cf begin adjusting persistent-vector.sml so that it uses rope-like metadata, meaning relative index offsets to support efficient arbitrary insertion/deletion 2025-12-02 08:53:23 +00:00
6fba536f6f when insert forces persistent-vector.sml to split, distribute half of nodes to left side and half of nodes to right side. (We avoid repeated tiny vectors this way, which reduces tree height and maintains balance.) 2025-12-01 14:24:41 +00:00
328a4e76f1 done implementing 'helpInsert' (both leaf and branch caases)for persistent-vector.sml 2025-12-01 13:51:12 +00:00
17fdeff9ae almost done implementing 'helpInsert' for LEAF case of persistent-vector.sml 2025-12-01 13:40:53 +00:00
94a3d8eeb4 done implementing 'helpInsert' for BRANCH case (need to imlement the LEAF case next) 2025-12-01 13:09:46 +00:00
780aefae34 begin implementing function to insert into PersistentVector.t 2025-12-01 12:24:45 +00:00
8fdc710db4 begin parsing right-arrow in normal mode, for normal mode commands 2025-11-25 21:37:09 +00:00
d60e8bf7aa add todo note to implement yh/yj/yk/yl motions (yank according to h/j/k/l motions) 2025-11-23 23:44:24 +00:00
eefe5221ba begin parsing left arrow in normal mode 2025-11-23 23:19:31 +00:00
766945ac88 remove some dead code 2025-10-19 14:32:57 +01:00
7d1272180b remove 'Cursor.tillPrevChr', replacing usages of that function with 'Cursor.toPrevChr' 2025-10-19 14:30:26 +01:00
60ec24453f reimplement 'yt<char>' motion to use 'Cursor.toNextChr' 2025-10-18 19:55:53 +01:00
9f53c5549a rename 'Cursor.toNextChrNew' function to 'Cursor.toNextChr', and update usages to change the name as well. 2025-10-18 15:17:26 +01:00
e07f21d6f4 remove usages of 'Cursor.toNextChr' and delete it 2025-10-18 15:14:41 +01:00
ee96419901 repace usage of 'Cursor.toNextChr' with 'Cursor.toNextChrNew' ins make-normal-delete.sml 2025-10-18 15:07:14 +01:00
d7adae374f reimplement 'dt' motion 2025-10-18 14:59:37 +01:00
bc44c7bcd0 add another test for 'df<char>' motion, checking that we leave a newline behind if the whole buffer is deleted 2025-10-18 14:29:20 +01:00
5d00da2cbb reimplement 'df' motion as per previous commits, and add a new test for 'df' motion to check that cursor does not land on a 'newline following a non-newline' position, after deleting using 'df<char>' 2025-10-18 14:24:16 +01:00
239aaacfc5 reimplement 't' movement motion the same way that 'f' movement motion was reimplemented in previous commit 2025-10-18 14:05:25 +01:00
e44eae6d46 reimplement 'f' move motion more efficiently, not leaving the LineGap.t data structure while iterating to next count 2025-10-18 14:01:06 +01:00
05961a460c adjust colours to be same as 'morning' theme in neovim 2025-10-17 23:37:09 +01:00
111e0cf66d remove usage of concurrent ml, deciding that we prefer to run everything in the main thread instead 2025-10-17 23:08:16 +01:00