Commit Graph

875 Commits

Author SHA1 Message Date
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
000cf4ab62 implement 'yj' motion. (Next: add tests for it.) 2026-01-31 12:05:16 +00:00
900343203a enable vsync in rgfw shell, to majorly decrease cpu usage 2026-01-23 23:20:40 +00:00
fdc289e237 change use of 'Bool' type to 'bool' in rgfw-exports.c 2026-01-23 21:19:10 +00:00
00df20042a update gitignore to ignore shf-glfw and shf-rgfw test files 2026-01-23 21:10:01 +00:00
faa15866f8 seems like 'NormalYankDelete' functions need to yank one character more than the deletion range, so implement that, and make note to add tests for that module 2026-01-23 21:08:12 +00:00
8b46f1edfc make sure that characters sent from RGFW to mlton char callback are shifted if shift is held 2026-01-23 21:05:12 +00:00
238e6f8907 mostly done implementing callbacks for rgfw 2026-01-23 20:53:37 +00:00
2b383ce756 change if statement in keyCallback (on C side) to a switch statement, so adding more cases becomes easier 2026-01-23 15:09:43 +00:00
0b91362fd1 fix compile error for rgfw shell. The compile error was on the C side, and was caused by a dependency (<GL/glx.h>) having the typedef 'Bool', and the mlton-generated export headers also having a typedef 'Bool' with the same name. The solution for this project is just to delete the typedef from the mlton-generated headers. 2026-01-23 14:56:55 +00:00
8d68bcbd13 remove duplicate '<stdboo.h>' include in ffi/glfw-export.c, and disambiguate mlton-generated export file for GLFW shell further (by prepending 'mlton-' to the file) 2026-01-23 13:37:13 +00:00
a8f69bec06 disambiguate exports (rename 'export.h' to 'glfw-export.h' because now we are beginning to add RGFW as a back-end with its own separate exports) 2026-01-23 13:10:34 +00:00
e18032dcc8 checkpoint (seem to have encountered an FFI bug?) 2026-01-23 12:52:47 +00:00
609c30bef5 mark 'Rgfw.swapBuffers' as reentrant, because calling this function will likely trigger the registered key callbacks 2026-01-23 11:16:14 +00:00
a89bb8fa5f consume events in RGFW loop. (Next: react to input events.) 2026-01-23 11:13:33 +00:00
b4573441fb progrfess scaffolding rgfw (next: consume events and add callbacks for events) 2026-01-23 10:55:43 +00:00
df20641af1 refactor functional core into its own .mlb file that can be shared across different shells 2026-01-23 10:08:57 +00:00
13d4989792 additional scaffolding for making RGFW main loop 2026-01-23 10:04:44 +00:00
e7ab53310e ffi progress 2026-01-23 09:47:27 +00:00
dee5e72f39 add rule to Makefile to run RGFW build more quickly 2026-01-22 21:38:15 +00:00
d0f9220cfe progress binding RGFW and making RGFW shell 2026-01-22 21:02:22 +00:00
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