|
|
cf93d5885f
|
remove unneeded function
|
2025-08-03 16:52:55 +01:00 |
|
|
|
cc276b5454
|
functorise character folders for vi WORD
|
2025-08-03 16:48:45 +01:00 |
|
|
|
b8a5df814e
|
begin functorising some char-iteration functions
|
2025-08-03 16:34:31 +01:00 |
|
|
|
473ea8e35d
|
functorise character folders to reduce repetitive boilerplate code (but have not functorised yet)
|
2025-08-03 16:21:36 +01:00 |
|
|
|
9662540889
|
remove a couple of unneded functions
|
2025-08-03 14:32:44 +01:00 |
|
|
|
ff9d61bba0
|
a bit of formatting
|
2025-08-03 14:18:17 +01:00 |
|
|
|
e078ca89d2
|
refactor some code to use looping in DFA (which is faster than looping outside of the data structure)
|
2025-08-03 14:17:25 +01:00 |
|
|
|
904526cd63
|
fix bug in building search list from range: if first index is less than 0, then start from 0, or else start from calculation
|
2025-08-03 13:41:11 +01:00 |
|
|
|
16fdfc7ac2
|
print stack trace for when an exception occurs
|
2025-08-03 13:14:28 +01:00 |
|
|
|
a8ee1d5d37
|
a little refactoring to make implementation of word and WORD selection (viW, ciW, diW) easier
|
2025-07-21 09:40:32 +01:00 |
|
|
|
51c9090adf
|
add a test for 'b' motion, checking that we move to start of prev word when on first character of next word
|
2025-07-21 00:28:25 +01:00 |
|
|
|
af900057b0
|
delete dead code
|
2025-07-20 17:55:43 +01:00 |
|
|
|
d3e54d4102
|
reimplement vi's 'e' command
|
2025-07-20 17:48:45 +01:00 |
|
|
|
146953c25d
|
reimplement vi's 'b' command
|
2025-07-20 17:36:33 +01:00 |
|
|
|
33474fb5ae
|
formatting
|
2025-07-20 16:57:22 +01:00 |
|
|
|
41ca612ca1
|
reimplement vi's 'ge' command (endOfPrevWord)
|
2025-07-20 16:55:42 +01:00 |
|
|
|
8d67c33893
|
reimplement vi's 'w' command to use ViWordDfa
|
2025-07-20 16:04:48 +01:00 |
|
|
|
15fc36c7a4
|
delete some code which is now dead
|
2025-07-20 14:10:35 +01:00 |
|
|
|
90c0d657bc
|
reimplement vi's 'E' command
|
2025-07-20 14:00:59 +01:00 |
|
|
|
2b060b99a0
|
add a 'MakeNextDfaLoopPlus1' functor to later use in forward word motions which ignore state of current character but start tracking state from next character. To be used in reimplementations of Vi's 'e' and 'E' commands.
|
2025-07-20 13:52:23 +01:00 |
|
|
|
c6f4d1d8f3
|
reduce indentation level in MakeDfaLoop functors a bit, by performing 'strIdx = ...' calculation before we branch in case expression
|
2025-07-20 13:48:14 +01:00 |
|
|
|
f57af737b9
|
further refactoring, functorising a function because it will later be used elsewhere as well
|
2025-07-20 13:39:48 +01:00 |
|
|
|
554c3b0354
|
done refactoring 'startOfCurrentWORD' function, with tests still passing
|
2025-07-20 13:28:40 +01:00 |
|
|
|
6b5a95ff45
|
reimplemented vi's 'B' command (although it needs a little refactoring)
|
2025-07-20 13:09:21 +01:00 |
|
|
|
cf15077480
|
a bit of refactoring
|
2025-07-20 09:56:32 +01:00 |
|
|
|
10b76d98c5
|
functorise some boilerplate code to start a DFA loop
|
2025-07-20 09:39:17 +01:00 |
|
|
|
25fb8bfc5e
|
make DFA for vi next WORD motion, still passing tests
|
2025-07-20 09:12:23 +01:00 |
|
|
|
aa068ea48e
|
remove some opaque signature ascriptions
|
2025-04-22 20:49:56 +01:00 |
|
|
|
e59a1c67d8
|
begin scaffolding for adding deletion tests
|
2025-03-23 07:47:38 +00:00 |
|
|
|
cbc1359de1
|
add tests for cursor movement 'gg', which means all cursor movements have tests now. Next: add tests for delete motions.
|
2025-03-22 20:58:39 +00:00 |
|
|
|
dc3c1340bf
|
add tests for 'F' motion
|
2025-03-22 13:50:24 +00:00 |
|
|
|
8fa5677d4d
|
add tests for 'f' motion
|
2025-03-22 13:41:50 +00:00 |
|
|
|
87272a2667
|
add tests for 'T' motion
|
2025-03-22 13:09:50 +00:00 |
|
|
|
9eae0c2d48
|
begin adding multi-char tests (for motions such as 't<char>')
|
2025-03-22 06:13:01 +00:00 |
|
|
|
884c5fa08d
|
pull new update from lib/brolib-sml
|
2025-03-22 05:31:58 +00:00 |
|
|
|
649bcb66e1
|
a bit of refactoring to allow addition of more tests
|
2025-03-22 05:18:25 +00:00 |
|
|
|
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 |
|