|
|
e0c09c5480
|
begin adding bindings to rgfw window library
|
2026-01-22 02:00:57 +00:00 |
|
|
|
5eb94f5ccb
|
remove shell/shell.sml and merge its contents into shell/glfw-loop.sml, because shell.sml used to set up and initialise GLFW before calling the main loop. We may want to add additional back-ends later instead, so it's better to keep names specific to the windowing library or platform.
|
2026-01-22 00:57:21 +00:00 |
|
|
|
9ef8231b8b
|
separate OpenGL drawing from GLFW loop in imperative shell, so that other windowing libraries can call the same OpenGL functions.
|
2026-01-22 00:04:22 +00:00 |
|
|
|
a8104131ca
|
add bindings for d-pad directions
|
2026-01-21 22:45:19 +00:00 |
|
|
|
2d1bcf28f7
|
progress reimplementing gamepad support
|
2026-01-21 21:03:20 +00:00 |
|
|
|
50868b830b
|
implement actions for TRIANGLE mode in glfw-gamepad.sml
|
2026-01-21 20:50:04 +00:00 |
|
|
|
0679f4154e
|
begin refactoring shell/glfw-gamepad.sml. (Most functions inside that file are pure now, and I think a 'modal' approach to the face buttons would be better/more ergonomic.)
|
2026-01-21 20:38:13 +00:00 |
|
|
|
96fe9cea0d
|
update todo.md notes with next steps to focus on
|
2026-01-20 09:13:03 +00:00 |
|
|
|
214ea67b76
|
add gamepad-bindings for escape key
|
2026-01-20 09:08:11 +00:00 |
|
|
|
e2454b1093
|
handle l2 and r2
|
2026-01-20 09:01:41 +00:00 |
|
|
|
9962232f83
|
implemented l2 and r2 mostly (except for some to-do items mentioned in comments)
|
2026-01-20 08:32:29 +00:00 |
|
|
|
38e31b2097
|
amend l1 (previous commit only amended r1)
|
2026-01-20 08:02:58 +00:00 |
|
|
|
755d69675f
|
fix how l1 and r1 buttons should be handled (previously, we weren't saving the relevant state to true when they were pressed, but now we are)
|
2026-01-20 08:02:14 +00:00 |
|
|
|
ff33812b27
|
done with handling for gamepad's face buttons; next, handle r2 and l2 buttons
|
2026-01-20 07:56:04 +00:00 |
|
|
|
73d30bfb1f
|
progress implementing SML-side handling of controller
|
2026-01-20 07:10:15 +00:00 |
|
|
|
f2bffc4b6b
|
add bindings to query gamepad's face buttons
|
2026-01-20 04:19:26 +00:00 |
|
|
|
6f89fbc89c
|
begin binding gamepad functions from GLFW to SML
|
2026-01-19 13:23:47 +00:00 |
|
|
|
c6dee6e9f9
|
implement function that deletes from both LineGap.t and SearchList, maintaining an exact match between both
|
2026-01-18 09:59:00 +00:00 |
|
|
|
5e3e8b39b1
|
add function in PersistentVector to insert a match while keeping same absolute indices (to be used when a new match appears after a deletion)
|
2026-01-18 08:52:38 +00:00 |
|
|
|
29d84a9f9f
|
done adding tests for 'PersistentVector.delete' function
|
2026-01-18 08:08:45 +00:00 |
|
|
|
185ef3fc12
|
done implementing 'PersistentVector.merge', which means that 'PersistentVector.delete' is now complete. (Todo: test 'PersistentVector.delete'.)
|
2026-01-18 06:58:41 +00:00 |
|
|
|
79a0c95a58
|
implement another case for 'PersistentVector.merge': merge when right depth is greater than left depth
|
2026-01-18 06:52:49 +00:00 |
|
|
|
7b05490812
|
progress implementing 'PersistentVector.merge' for case where left subtree and right subtree have same depth
|
2026-01-18 06:40:22 +00:00 |
|
|
|
66d672505a
|
fix calculation of number to decrement by in 'PersistentVector.delete', after additional test showed that calculation resulted in incorrect metadata. (Todo: just implement function to merge left and right subtrees.)
|
2026-01-18 00:27:03 +00:00 |
|
|
|
83bb852ae2
|
add another test for 'PersistentVector.delete
|
2026-01-17 23:45:20 +00:00 |
|
|
|
1c947eab7d
|
add a test for 'PersistentVector.delete' (even though the 'PersistentVector.merge' helper function is unimplemented)
|
2026-01-17 23:27:36 +00:00 |
|
|
|
ee58556bde
|
progress implementing 'PersistentVector.delete'. (Todo: implement function to merge left and right vectors.)
|
2026-01-17 23:14:05 +00:00 |
|
|
|
b84713a98e
|
add 'PersistentVector.countDepth' function, which is meant to count the depth, and is to be used for deletion
|
2026-01-17 22:51:06 +00:00 |
|
|
|
4280f580a2
|
add function to decrement persistent-vector.sml. (The plan is to split the left and right, and then decrement the right metadata so that the absolute indices match.)
|
2026-01-17 22:46:08 +00:00 |
|
|
|
98ec1fbee6
|
fix another size-recalculation mistake in 'PersistentVector.splitRight' function. (When we are splitting in the middle of a BRANCH, we want to subtract the old child size from the remainder, and then add the new child size to the remainder, because this calculation will account for the splitting of preceding elements.)
|
2026-01-16 22:40:38 +00:00 |
|
|
|
e52d4856ee
|
amend recalculation of size metadata in 'PersistentVector.splitRIght: we always want to decrement by prevSize in this function. (We will have another function call to decrement so that left split and right split represent the same absolute indices when they are joined, before they are split.)
|
2026-01-16 22:31:43 +00:00 |
|
|
|
ddcb0ea56d
|
finish initial implementation for 'PersistentVector.splitRight'
|
2026-01-16 22:16:44 +00:00 |
|
|
|
eb316d7be2
|
begin implementation of PersistentVector.splitRight function
|
2026-01-16 21:58:59 +00:00 |
|
|
|
08abb43e3b
|
added tests for 'PersistentVector.splitLeft' function
|
2026-01-16 21:30:56 +00:00 |
|
|
|
47cf451501
|
begin adding tests for 'PersistentVector.splitLeft' function
|
2026-01-16 21:16:23 +00:00 |
|
|
|
e0bebb6d1a
|
add tests checking that PersistentVector.toList works as expected
|
2026-01-15 13:20:45 +00:00 |
|
|
|
290cc65a52
|
add tests checking that persistent-vector.sml appends properly, as it is meant to
|
2026-01-15 13:03:23 +00:00 |
|
|
|
ac3b987c42
|
add boilerplate helper functions in persistent-vector-tests.sml to check if list contains indices that are in range, or are not in range
|
2026-01-15 12:49:02 +00:00 |
|
|
|
ef43efb680
|
rename some test files
|
2026-01-15 12:32:13 +00:00 |
|
|
|
2058a57026
|
add functions for testing persistent-vector.sml
|
2026-01-15 07:16:04 +00:00 |
|
|
|
559b254b0c
|
initial implementation of 'PersistentVector.splitLeft' function
|
2026-01-15 06:13:38 +00:00 |
|
|
|
79fda65f78
|
begin coding 'PersistentVector.splitLeft' function
|
2026-01-15 05:51:22 +00:00 |
|
|
|
267c0c5d96
|
change persistent-vector.sml's 'prevMatch' function to use rope-like metadata, and remove dead code
|
2026-01-15 05:39:55 +00:00 |
|
|
|
d6da7a3ea3
|
persistent-vector.sml was in a partial state where some functions use rope-like metadata and some functions do not, so change 'nextMatch' function to use rope-like metatadata (still need to change other functions)
|
2026-01-15 05:25:17 +00:00 |
|
|
|
e1077b7780
|
add tests for 'yk' motion (next: implement 'yj' motion and test it)
|
2026-01-14 04:49:41 +00:00 |
|
|
|
66f1fb0b5e
|
implement 'yk' motion (next: add tests for it)
|
2026-01-13 23:54:48 +00:00 |
|
|
|
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 |
|