Commit Graph

900 Commits

Author SHA1 Message Date
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
bd3d5ef54c pull in changes from brolib-sml to receive new version of LineGap module containing bug fixes. These bug fixes special case going to line 0 or convert line 0 to idx 0, as previous implementations did not work correctly when provided with 0 as a value. 2025-12-03 00:37:27 +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
995ee01470 begin adding tests for 'diw' (delete-inside-word) motion 2025-10-19 21:55:55 +01:00
308c28c709 done adding tests for 'dT<char>' motion 2025-10-19 14:52:04 +01: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
597b5beb3d add tests (some of Which currently fail) for 'dF<char>' motion 2025-10-18 13:37:42 +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
0799128f7c add tests for 'dt<char>' motion 2025-10-17 16:24:43 +01:00
b8beeaaa60 add some more tests for 'df<char' motion, and fix implementation to pass those tests (if our cursor is at the same position after calling 'fMove', then exit the loop to find the next occurrence of <char>) 2025-10-17 16:19:17 +01:00
09c9a92029 add tests for 'df<char>' motion. Some fail and need the implementation to be fixed. 2025-10-17 15:56:08 +01:00
52f8e2307c add tests for 'dN' motion 2025-10-16 21:28:18 +01:00
ad506c0c0a add tests for 'dn' motion 2025-10-16 21:21:09 +01:00
c4c6634d79 add 'D' motion, which does the same thing as 'd$' (these two aliases exist in Vim too, to do the same thing) 2025-10-16 15:02:45 +01:00
3e1e80cd93 remove 'dd' tests from todo list, because we already have tests for 'dd' motion 2025-10-16 14:49:27 +01:00
a28e099b6f add another test for 'd^' motion, that we don't delete anything when cursor is on a newline (this one passes but it is an important case to test) 2025-10-16 13:22:34 +01:00
2667e58a26 done adding tests for d^ motion 2025-10-16 13:19:01 +01:00
91b7d54cc4 begin adding tests for d^ motion 2025-10-16 13:11:39 +01:00
7676556513 fix failing test for 'd$' motion, which means completing tests for 'd$' motion too 2025-10-16 12:07:27 +01:00
f804a2a9fc add tests for 'd$' motion, including one failing test whose implementation needs to be fixed 2025-10-16 12:02:20 +01:00
c2eaa5537c modify 'd$' implementation to pass failing test (we don't want to delete newline at end of line, so we don't do that now) 2025-10-16 11:09:20 +01:00
c190cec868 add failing test for 'd$' motion 2025-10-16 11:04:26 +01:00
abde4dc8a6 add tests for 'dG' motion 2025-10-16 01:21:30 +01:00
a855cecd25 implement 'dG' motion (need to test it next) 2025-10-16 01:13:14 +01:00
5fcee88911 add tests for 'd0' motion 2025-10-15 22:38:15 +01:00
e1347da0e1 add to-do list of things to do next 2025-10-15 15:29:19 +01:00
82c1d48c6f add tests for 'dgg' motion 2025-10-15 15:06:04 +01:00
4c8f588ce9 add tests for 'dge' motion 2025-10-15 14:46:09 +01:00
60b6cc6d6d better naming of functions to create search/char highlight 2025-10-15 10:01:50 +01:00
e2ed022ccc clearer names for colour-related fields in text-builder-utils.sml 2025-10-15 09:55:36 +01:00