|
|
deb24c2063
|
with cursor movements, instead of passing in functions as parameters (callbacks/higher order functions), functorise the cursor movement functions instead so we can take advantage of defunctorisation and avoid the runtime cost of closures/higher order functions/function pointers
|
2025-01-09 22:30:51 +00:00 |
|
|
|
7045b69ce8
|
eliminate instance of currying/partial application with constant value (a constant mailbox) is shell/shell.sml
|
2024-12-17 10:55:58 +00:00 |
|
|
|
90f8732f06
|
move msgs into AppType.app_type, and refactor AppUpdate.update function to have type (app_type -> app_type) instead of pervious case which was (app_type -> app_type * MailboxType.t list). Reason: no need to allocate/return tuple when can store messages in type directly; previous msg list will be reset after each app update. All tests after refactor are passing.
|
2024-12-17 10:40:06 +00:00 |
|
|
|
24cdea7da3
|
pull in new version of railroad library, and make a one-line change to print exclusively tests that have failed (because terminal output is noisy otherwise)
|
2024-12-17 09:49:07 +00:00 |
|
|
|
fa723f27fa
|
basic motion tests done
|
2024-11-27 10:17:42 +00:00 |
|
|
|
57f012d655
|
reimplement vi0 and helper functions so that they are likely faster (vi0 bring cursor to start of current line; before, this was done by checking each character in the string backwards, but now it is done by looking at the line metadata, which is faster for us by some constant factor)
|
2024-11-26 21:57:02 +00:00 |
|
|
|
db64917416
|
add tests for 'E' motion
|
2024-11-26 11:20:32 +00:00 |
|
|
|
bc856d3470
|
add tests for 'e' motion
|
2024-11-26 11:03:52 +00:00 |
|
|
|
233a21456d
|
add tests for matching pairs
|
2024-11-26 00:43:02 +00:00 |
|
|
|
2cc7bebbd7
|
add tests for caret ^ motion
|
2024-11-25 22:13:02 +00:00 |
|
|
|
c28dc429b7
|
address todo in text-builder.sml by adding prerequisite: always call SearchList.goToNum before calling TextBuilder.build
|
2024-11-25 04:37:47 +00:00 |
|
|
|
d399016c1a
|
add 'SearchList.exists' function to fcore/search-list.sml function, and make sure we check if mmatchedIdx exists before inserting or appending (so we maintain set-like semantics where each number exists only once)
|
2024-11-24 21:38:58 +00:00 |
|
|
|
c6343cac40
|
in fcore/search-list.sml, only call 'insMiddle' function if new value is not in middle
|
2024-11-24 20:42:17 +00:00 |
|
|
|
eb3eb6c41f
|
fix bug in '^' motion: only move cursor if (chr = /home/humza/Downloads/sml/shf/fcore/cursor.sml' '), not if Char.isSpace (which also returns true if chr is newline or tab) is true
|
2024-11-24 20:32:47 +00:00 |
|
|
|
98f8313141
|
add motion tests for '$' command
|
2024-11-24 20:15:07 +00:00 |
|
|
|
7d73146cf4
|
remove line breaks between tests in test/test.sml, because more code fits on screen that way, and the differing intentation is enough of a visual sign to mark when new test begins (aside from the 'test' keyword itself)
|
2024-11-24 19:43:06 +00:00 |
|
|
|
88ef79ad41
|
add tests for '0' movement motion
|
2024-11-24 19:35:47 +00:00 |
|
|
|
73482a7cc2
|
give different strings for some tests
|
2024-11-24 13:43:22 +00:00 |
|
|
|
d76b753fa7
|
add tests for 'W' move motion
|
2024-11-24 12:19:43 +00:00 |
|
|
|
04d4e013e2
|
ensure that searchList is deleted from when calling delete functions other than 'helpRemoveChr'
|
2024-11-23 06:10:40 +00:00 |
|
|
|
0bfe549e04
|
add just one more 'word' test, extract steps to delete from search list into a reusable function (don't need to memorise the steps), and fix bug in cursor.sml where we were looking at tl without calculating correct strIdx
|
2024-11-23 05:16:37 +00:00 |
|
|
|
4a09a5716d
|
add more 'w'/'word' motion tests
|
2024-11-19 22:41:07 +00:00 |
|
|
|
c48eeb07b3
|
finish testing motions for 'k', meaning tests for hjkl motions are complete (can test other motions like 'w', '0', 'e', etc. next, and then test delete motions after that)
|
2024-11-19 13:02:13 +00:00 |
|
|
|
26850da6d3
|
done testing 'j' motion; next is to test 'k' motion
|
2024-11-19 06:43:00 +00:00 |
|
|
|
f6d4b10d44
|
break test suite in test.sml into more managable chunks (one test per motion)
|
2024-11-19 06:35:47 +00:00 |
|
|
|
64eec10049
|
add tests for 'j' motion
|
2024-11-19 06:27:38 +00:00 |
|
|
|
e2dfe25d36
|
a bit of refactoring in test.sml
|
2024-11-19 05:51:46 +00:00 |
|
|
|
96080d0964
|
a bit of repository management (add Makefile to make it less verbose to run tests, and add .gitignore to avoid committing built binaries)
|
2024-11-19 04:32:37 +00:00 |
|
|
|
afcd3ee70b
|
add additional tests for vi's 'h' and 'l' motions
|
2024-11-19 04:21:54 +00:00 |
|
|
|
09165b48d9
|
format test file
|
2024-11-19 03:53:22 +00:00 |
|
|
|
d92d3b3a26
|
add a couple of tests
|
2024-11-19 03:53:05 +00:00 |
|
|
|
55c371370f
|
add a couple of tests
|
2024-11-19 03:48:30 +00:00 |
|
|
|
ee73a1c858
|
add Railroad framework as a git submodule properly
|
2024-11-18 13:50:02 +00:00 |
|
|
|
b5e1c3757f
|
add unit tests, etc.
|
2024-11-18 13:47:00 +00:00 |
|
|
|
ef395feea8
|
add similar fix described in previous commit to 'moveLeftAndDelete' function
|
2024-11-18 11:42:23 +00:00 |
|
|
|
25046dcb88
|
bug fix to search-list.sml's 'moveRightAndDelete' function by possibly deleting if start > finish, rather than terminating
|
2024-11-18 11:29:54 +00:00 |
|
|
|
e90df37b43
|
in search-list.sml: fix 'delRightFromHere' and 'delLeftFromHere' functions which joined newHd with left/right, rather than the tl, and therefore added new numbers to the list, which is incorrect behaviour. Fixed this by using joining with 'tl' rather than left/right. In build-search-list.sml: make fromRange function return tuple instead of an instance of app. Finally, in app-update.sml: progress towards refactoring 'helpRemoveChr' function to map and delete from searchList as desired.
|
2024-11-17 09:25:01 +00:00 |
|
|
|
f7cc2d4740
|
change 'targetLength' of SearchList.t from 1024 to 32
|
2024-11-16 19:59:46 +00:00 |
|
|
|
5e9f118b15
|
fixed two issues related to insertion in search-list.sml. First issue: in top level 'insert' function, we called 'insLeft' if new value is greater than first value on right, and we called 'insRight' in the opposite case; this is backwards. Second issue: in base cases of 'insLeft' and 'insRight', when we have reached the end of one side of the list, we used to return the same list we got back instead of adding the new value to this end of the list; this is now fixed.
|
2024-11-16 19:51:29 +00:00 |
|
|
|
09d9945201
|
add function to build search list from specific range
|
2024-11-16 12:27:14 +00:00 |
|
|
|
f2b4f256ec
|
bugfix: in search-list.sml's 'delRightFromHere' function, make sure we preserve the last part of the vector when finish < last
|
2024-11-16 09:05:47 +00:00 |
|
|
|
436b3e0d92
|
simplify and rewrite function 'del' in search-list.sml
|
2024-11-16 08:33:26 +00:00 |
|
|
|
0ba56bf6d3
|
amend lambdas in search-list.sml's 'moveRightAndMap' function, where wrong variable was used in lambda, and rename 'num' variable in that function to 'from' to make purpose and intent clearer
|
2024-11-16 04:55:02 +00:00 |
|
|
|
d6c59e140e
|
replace text-builder.sml's 'buildCursor' function with a new 'Rect.lerp' function (which is in fcore/rect.sml)
|
2024-11-15 21:14:43 +00:00 |
|
|
|
2a2f64f00c
|
add bgVertexBuffer and bgProgram to imperative shell, so we can draw bg and cursor without overlap, and without z-index
|
2024-11-15 10:26:22 +00:00 |
|
|
|
d5eb19f8d9
|
progress drawing spaces within search string, and drawing behind background of search string
|
2024-11-15 09:50:35 +00:00 |
|
|
|
025f9d2bf4
|
fix exception in bin-search.sml, by making sure that forwardLinearSearch always starts at 0 or more
|
2024-11-15 09:24:48 +00:00 |
|
|
|
c0c1a7c885
|
refactor app-update.sml to pass additional parameters to TextBuilder.build
|
2024-11-15 08:24:48 +00:00 |
|
|
|
35de4582e9
|
refactor TextBuilder and inner functions to handle highlighting searched characters
|
2024-11-15 08:13:32 +00:00 |
|
|
|
91688441cf
|
refactor fcore/text-builder.sml to take non-changing parameters as records, for brevity
|
2024-11-15 06:43:14 +00:00 |
|