|
|
81c516e907
|
fix very minor issue in cursor.sml's 'helpViL' function (previously returned cursorIdx when non-line breaks is followed by non-line break, but now return cursorIdx + 1 instead which is the correct behaviour, because we want to move the cursor rightwards one position in that case
|
2024-11-07 21:07:11 +00:00 |
|
|
|
fdb6e0292a
|
fully done amending 'getCursorColumn' in cursor.sml it seems, because all the inputs I throw at it give the expected results
|
2024-11-07 21:00:56 +00:00 |
|
|
|
63f2945334
|
restore triple-line checking to 'startViK' in cursor.sml, as it seems safer
|
2024-11-07 20:51:02 +00:00 |
|
|
|
a77003e348
|
seem to have viK and viJ fixed for the moment, except when I delete from the first or second line with 'x' (deleting from other lines does not seem to make a difference)
|
2024-11-07 12:59:03 +00:00 |
|
|
|
c07afee77f
|
simplify one part of cursor.sml's 'startViK' function, by calling 'helpVi0' rather than 'helpViK' when we know previous char is \n
|
2024-11-07 11:46:30 +00:00 |
|
|
|
9f0982ad91
|
simplify viK and especially startViK in cursor.sml, by only checking (strIdx - 1) and (strIdx - 2)
|
2024-11-06 19:47:14 +00:00 |
|
|
|
2e13030efb
|
handle more edge cases of viK (and it is now complete)
|
2024-11-06 11:52:40 +00:00 |
|
|
|
62d62a8429
|
rewrite viK in accordance with previous commits
|
2024-11-05 21:42:56 +00:00 |
|
|
|
7f1e5249f0
|
rewrite Cursor.viJ and Cursor.helpViJ for new line break scheme
|
2024-11-05 20:25:08 +00:00 |
|
|
|
b396a1b36b
|
minor fix in Cursor.viH: if strIdx is not in hd of rightStrings, check tl of rightStrings
|
2024-11-05 19:50:36 +00:00 |
|
|
|
0315bd6550
|
rewrite Cursor.viH for new line-break-skip scheme, as mentioned in previous commit
|
2024-11-05 19:44:49 +00:00 |
|
|
|
b0a37c5c56
|
new task: rewrite basic cursor.sml functions (h, j, k, l) to look for 'is line break preceded by non-line break?' rather than 'is there a double line break?' because the second question which is already implemented has buggy behaviour on triple line breaks, where cursor does not go to the place user expects. Currently, on Cursor.viL has been rewritten to match the first question.
|
2024-11-05 13:14:52 +00:00 |
|
|
|
9df6f92a33
|
progress with equivalent of vi's 'x' command
|
2024-11-05 12:38:01 +00:00 |
|
|
|
66d4346c74
|
improvement in Cursor.getLineStartIdx when going to last line in buffer
|
2024-11-04 02:46:02 +00:00 |
|
|
|
b368619df3
|
add functionality to go to specific line in buffer
|
2024-11-02 13:59:55 +00:00 |
|
|
|
f7b755d6a6
|
fix minor bug in cursor.sml (we checked if strPos is equal to 'String.size str - 1' but then accessed strPos + 1, which makes our bound check useless and may cause an exception. Instead, check 'strPos < String.size str - 1'
|
2024-11-01 03:35:12 +00:00 |
|
|
|
25f06b1f9a
|
fix minor bug in Cursor.matchPair fuunction; depending on chr at strIdx, we might want to iterate on the leftStrings or on the rightStrings. Before, we iterated on the rightStrings only, but now we iterate on whichever is appropriate
|
2024-10-31 11:50:18 +00:00 |
|
|
|
fe317ca220
|
add missing implementation of Cursor.matchPair when strIdx is in tl
|
2024-10-31 11:19:10 +00:00 |
|
|
|
553d4605e7
|
add implementation of matching cursor pairs
|
2024-10-31 11:07:52 +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 |
|
|
|
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 |
|