164 Commits

Author SHA1 Message Date
01213fb2fb fix bug with tillNextChr which would place cursor on a newline 2024-10-26 16:20:24 +01:00
eeacde8e7a address edge case when '0' is input, because '0' may either be a count if some number preceded it, or else it is a command to go the start of the line 2024-10-26 11:04:04 +01:00
62a9aaaaab progress with moving cursor to specific char (vi's 't' command and vi's 'f' command) 2024-10-26 10:47:45 +01:00
816f064558 progress parsing normal mode commands 2024-10-26 06:01:48 +01:00
defb17af20 add mode type to app type (equivalent of vi's normal mode, visual mode, insert mode, etc.) 2024-10-26 04:46:05 +01:00
17a69720fd add function to go to first non-space character in line 2024-10-25 21:44:46 +01:00
7a62ad3afc pass higher order function to word motions, for less code duplication 2024-10-25 21:27:58 +01:00
39e867bd35 reduce code duplication in app-update.sml by using higher order function 2024-10-25 21:10:53 +01:00
a198840961 add WORD motions (as opposed to word motions) 2024-10-25 21:01:48 +01:00
b79a8696f5 refactor many functions in cursor.sml so they don't need to be mutually recursive 2024-10-25 15:25:39 +01:00
8b3bd97af3 fully remove 'word_type' datatype from cursor.sml 2024-10-24 13:44:12 +01:00
5534fd3645 refactor another cursor.sml function 2024-10-24 13:30:02 +01:00
50a0a3e31b begin preparation to remove 'word_type' datatype in cursor.sml, which will simplify implementation of word motions 2024-10-24 13:13:49 +01:00
1f9b01c858 implement equivalent of vi's 'e' command 2024-10-24 12:29:43 +01:00
15ff3a111a implement equivalent of vi's 'b' cursor motion 2024-10-24 06:26:40 +01:00
80cdcdccd6 implement nextWord in cursor.sml (vi's lowercase w) 2024-10-23 04:31:34 +01:00
a454524ecc reimplement part of non-recursive start function 'viK' in cursor.sml 2024-10-22 09:46:29 +01:00
dd71dda9f2 in start of cursor.sml's viK function, use vi0 function if cursor is at newline, so there's no need to worry about or track column 2024-10-22 07:06:16 +01:00
b22222cf5d implement vi0 and viDlr (viDlr = function called when pressing $), which both work fine 2024-10-21 03:04:47 +01:00
e08f2c4f77 add implementation of viK, completing hjkl movement keys 2024-10-21 01:34:54 +01:00
d8e1c9d0fd in cursor.sml's 'viJ' function, make sure to call helpViJString with nest str hd/tl, when strIdx is in the strTl 2024-10-20 21:58:58 +01:00
6b3d322c1c progress with viJ to move cursor downwards 2024-10-20 21:30:06 +01:00
47f4d452fe amend error in cursor.sml's 'getCursorColumn' function, where we may need to check tail of string to start convert cursorIdx to relative strIdx 2024-10-19 23:04:26 +01:00
e0f44fc8ea better handling of double linebreaks in cursor.sml's viH function 2024-10-19 07:24:27 +01:00
7fd59c734a add function to retrieve column that cursor is on, relative to line 2024-10-19 07:03:32 +01:00
5f4be185e8 add preferredColumn field to app type 2024-10-18 06:44:45 +01:00
92b834427c code 'viH' function to move leftwards by one char 2024-10-18 00:40:43 +01:00
19073cb56c improve code to move rightwards in cursor.sml (making it clearer with comments), and improve code to draw cursor at newline in text=builder.sml 2024-10-17 08:40:28 +01:00
0299a9e6b2 draw cursor at newline linebreaks (only \n though and not \r\n) 2024-10-17 06:25:43 +01:00
8fb362ba8b handle \r\n pair in 'viL' function 2024-10-17 04:03:45 +01:00
766ab6787c in viL function, use 'cursorIdx + 1' instead of 'bufferIdx + ...' because what we want is to increment the cursor by one index, rather than to move the cursor to the end of the hd 2024-10-17 03:17:57 +01:00
428e5f2ecd complete implementation of rightwards navigation (viL) 2024-10-17 02:57:26 +01:00
21652a5381 in TextBuilder, forgot to build cursor when cursorIdx is over space, so now we build cursor when cursorIdx is over space 2024-10-17 02:14:09 +01:00
c77777cc09 add CHAR_EVENT message type (next is to handle hjkl navigation) 2024-10-17 01:38:31 +01:00
ce23e50c8d scaffolding for char callback 2024-10-17 01:20:48 +01:00
e7f20a5c7f undo hardcoded parameter for visual testing purposes 2024-10-09 12:43:42 +01:00
6344dca6cb done fiddling with cursor; looks fine now 2024-10-09 12:42:07 +01:00
306d693877 have cursor drawn now, but it is not appropriate size for character so have to fix that next 2024-10-09 12:05:40 +01:00
5cc4357cc7 progress drawing cursor 2024-10-09 11:59:41 +01:00
2afc54abc5 additional preparation for drawing cursor (next, just need to send cursor vector) 2024-10-09 11:36:05 +01:00
9d7d00e8d1 add cursor buffer and cursor program to imperative shell 2024-10-09 11:22:39 +01:00
418adc4502 add cursorIdx to app type in fcore 2024-10-09 10:59:32 +01:00
cfaa66bc0b begin preparation for drawing cursor 2024-10-09 10:53:00 +01:00
fc1d08f364 receive latest commit of cozette-sml which fixes position of _underscore and backtick, which were swapped with each other 2024-10-09 01:25:38 +01:00
bfc5a3914c hardcode more pleasant (in my opinion) colour scheme for the moment 2024-10-09 01:23:26 +01:00
1ae15e5585 expand comment to reflect a bit of planning 2024-10-09 00:02:12 +01:00
6e4cc9acff a bit of refactoring 2024-10-08 08:53:43 +01:00
68a1787958 done scaffolding cml and adding resize functionality 2024-10-06 10:23:07 +01:00
b95fc48252 scaffolding for concurrent ml 2024-10-06 09:32:56 +01:00
6766fd1485 a bit of scaffolding to prepare for adding resize callback + message types 2024-10-06 08:18:24 +01:00