Commit Graph

33 Commits

Author SHA1 Message Date
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
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
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
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
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