|
|
e37e04a2a2
|
rename 'NormalDelete.deleteLineBack' function to 'NormalDelete.deleteLineUp' which is clearer ('k' in 'dk' motion means move cursor up one line)
|
2026-01-13 23:40:29 +00:00 |
|
|
|
f1dd822d5b
|
add tests for 'yl' motion
|
2026-01-07 07:52:06 +00:00 |
|
|
|
407f78ce7a
|
fix bug in 'NormalYank.yankRight' function. Instead of calling 'Int.max (endOfLineIdx, high)', we should call 'Int.min (endOfLineIdx, high)' because we are trying to get the smaller number, and not the largest.
|
2026-01-07 06:55:42 +00:00 |
|
|
|
cc4716f3db
|
refactor fcore/normal-yank.sml a bit (replace repeated logic with a function call)
|
2026-01-07 06:49:52 +00:00 |
|
|
|
8b0031ca71
|
add tests for 'yh' motion
|
2026-01-07 06:33:10 +00:00 |
|
|
|
adb8757ed8
|
implemented 'yh' motion (yank left)
|
2026-01-05 10:39:42 +00:00 |
|
|
|
d2f32c1512
|
add tests for 'da<symbol>' motion, finishing all delete-tests
|
2026-01-03 08:39:41 +00:00 |
|
|
|
210d535b9f
|
reimplement 'da<symbol>' motion to first check if it is inside a symbol-pair, just like 'di<symbol>' was reimplemented in recent commits
|
2026-01-03 08:36:07 +00:00 |
|
|
|
ba6798f476
|
make implementation of 'di<symbol>' more robust (we check if the cursor is inside a symbol-pair before checking if there is a symbol pair after the cursor), and add tests for 'di<symbol>' motion
|
2026-01-03 08:09:08 +00:00 |
|
|
|
bce2a5a22d
|
finish reimplementing 'di<symbol>' and 'da<symbol>' motions so that they align more closely with the behaviour of Vim. (Todo: test them next)
|
2026-01-02 20:07:36 +00:00 |
|
|
|
886f384490
|
when deleting inside pair, instead of searching either for either chr1 or chr2 and stopping at first match, search instead for openChr and closeChr, and keep an integer tracking what level of nesting we are at. This gives us the behaviour we want, which is to delete the pair at the correct level of nesting. When we encounter openChr, we increment the nesting counter by 1 and continue searching. When we encounter closeChr, if the nesting counter is 0, we return the current index, but if the nesting counter is higher than 0 when encounter closeChr, we decrement the nesting counter by 1 and continue searching.
|
2026-01-02 18:50:04 +00:00 |
|
|
|
37b6f6ab0a
|
implement function which searches for one of two chars (given as arguments) and returns the index, or ~1 if neither char is found
|
2026-01-02 18:12:59 +00:00 |
|
|
|
8fdf2411a8
|
add tests for 'd/home/humza/Downloads/sml/shf/todo.md' motion
|
2026-01-01 18:47:38 +00:00 |
|
|
|
54ef305314
|
reimplement d% motion so that it first searches for the next occurrence of a pair-character before trying to match it. (Next: add tests for d% motion.)
|
2026-01-01 07:05:06 +00:00 |
|
|
|
44dbe1ffb0
|
reimplement '/home/humza/Downloads/sml/shf/todo.md' motion so that it has the same behaviour as Vim. (If the cursor is not at a pair character, then check after the cursor to see if we find a pair-character there. If some location after the cursor has a pair-character, then move the cursor to it and find the pair of the character, if any.)
|
2026-01-01 06:58:30 +00:00 |
|
|
|
a65b950b77
|
add tests for 'daW' motion
|
2025-12-31 11:44:42 +00:00 |
|
|
|
99bb3b257e
|
done with delete-around-word ('daw') tests. Next: delete-around-WORD ('daW') tests.
|
2025-12-28 01:37:29 +00:00 |
|
|
|
6efce2dd67
|
make 'dW' motion use transition function that is specific for deleting, and add a test to ensure that 'dW' does not delete a newline when it is not on a newline character
|
2025-12-27 09:45:11 +00:00 |
|
|
|
5c5910f748
|
change vi-caps-word-dfa.sml to regard newlines as final states, as with vi-word-dfa.sml in previous commit
|
2025-12-27 09:35:32 +00:00 |
|
|
|
1df0952f08
|
implement the difference between the 'w' motion and 'dw' motion using the transition table in vi-word-dfa, rather than convoluted if-branching
|
2025-12-27 08:42:54 +00:00 |
|
|
|
742b571b4e
|
amend 'dw' motion in line with previous commit
|
2025-12-27 07:32:22 +00:00 |
|
|
|
9846750c51
|
change implementation of 'word' so that we stop at newlines when we press 'w' motion, like in Vim and add tests to verify this behaviour (todo: fix regressions in deletion tests)
|
2025-12-27 06:05:36 +00:00 |
|
|
|
9e809e146a
|
done adding tests for when cursor is on a space, for 'daw' motion
|
2025-12-27 02:41:13 +00:00 |
|
|
|
acabbac70a
|
add another test for 'daw' motion
|
2025-12-27 02:22:32 +00:00 |
|
|
|
846a40a0a6
|
begin adding tests for 'daw' motion
|
2025-12-26 22:49:24 +00:00 |
|
|
|
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 |
|
|
|
bf62b35825
|
add tests for 'diW' motion, including one which fails (need to fix)
|
2025-12-12 19:17:00 +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 |
|
|
|
eb650bfd4b
|
add more tests for 'diw' motion, including one failing test which needs to be fixed.
|
2025-12-12 10:45:55 +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 |
|
|
|
102f2788a1
|
add basic tests for PersistentVector.delete
|
2025-12-09 12:27:23 +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 |
|