Commit Graph

128 Commits

Author SHA1 Message Date
0ed5a23ade some progress moving textWindow, but it is not perfect yet 2024-10-28 10:59:18 +00:00
4b1ee33954 begin moving text window when cursor goes off screen (currently, we only move the window when cursor goes backwards but this works fine and as expected) 2024-10-28 09:34:55 +00:00
deab30c46d add equivalent of vi's 'ge' and 'gE' commands 2024-10-28 06:52:58 +00:00
22f7c7f8c3 return nonLastLine from helpTillPrevChr function 2024-10-27 02:45:15 +00:00
44af1441cf add equivalent functionality of vi's 'T' command 2024-10-26 22:11:52 +01:00
8ef0365e20 a little refactoring 2024-10-26 21:56:11 +01:00
22ca7c5ed4 add equivalent of vi's 'F' 2024-10-26 21:21:33 +01:00
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
f9990636df list non-terminal commands 2024-10-26 06:54:15 +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
c2ea6e5e04 just formatting cursor.sml 2024-10-25 15:47:39 +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
ed33cf97a4 receive new version of brolib, which has new goToIdx function which will be useful for hjkl navigation 2024-10-10 22:58:05 +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