|
|
d6c59e140e
|
replace text-builder.sml's 'buildCursor' function with a new 'Rect.lerp' function (which is in fcore/rect.sml)
|
2024-11-15 21:14:43 +00:00 |
|
|
|
2a2f64f00c
|
add bgVertexBuffer and bgProgram to imperative shell, so we can draw bg and cursor without overlap, and without z-index
|
2024-11-15 10:26:22 +00:00 |
|
|
|
d5eb19f8d9
|
progress drawing spaces within search string, and drawing behind background of search string
|
2024-11-15 09:50:35 +00:00 |
|
|
|
025f9d2bf4
|
fix exception in bin-search.sml, by making sure that forwardLinearSearch always starts at 0 or more
|
2024-11-15 09:24:48 +00:00 |
|
|
|
c0c1a7c885
|
refactor app-update.sml to pass additional parameters to TextBuilder.build
|
2024-11-15 08:24:48 +00:00 |
|
|
|
91688441cf
|
refactor fcore/text-builder.sml to take non-changing parameters as records, for brevity
|
2024-11-15 06:43:14 +00:00 |
|
|
|
df9c0e3b51
|
break out of infinite loop in build-search-list.sml's 'helpBuild' function, by passing 'matchedIdx + 1' to tail call, and return correct matchedIdx value from 'helpNextMatch' function by adding 1 rather than subtracting
|
2024-11-15 06:04:11 +00:00 |
|
|
|
13d6d51fe9
|
when buildinng search list, also save searchString into app
|
2024-11-15 05:40:57 +00:00 |
|
|
|
cac0d02fab
|
initial implementation of building search list
|
2024-11-15 05:37:53 +00:00 |
|
|
|
f279dc0937
|
make 'de', 'dE', 'dj' and 'dk' commands work similarly to vi (details are in comments)
|
2024-11-14 08:57:31 +00:00 |
|
|
|
cae9f19787
|
add search list to app type
|
2024-11-14 08:12:27 +00:00 |
|
|
|
91663a6cae
|
done implementing search list
|
2024-11-13 12:54:47 +00:00 |
|
|
|
11df1a6bcd
|
done implementing delete function in SearchList
|
2024-11-13 03:49:12 +00:00 |
|
|
|
3b81d087f0
|
implement function to go specific number in search-list.sml
|
2024-11-12 07:57:36 +00:00 |
|
|
|
1bae34a067
|
done with insert into search list
|
2024-11-12 03:15:04 +00:00 |
|
|
|
8bf0b64ef3
|
implement insRight function in search-list.sml
|
2024-11-12 03:05:14 +00:00 |
|
|
|
54090ccf64
|
add yank functionality in imperative shell
|
2024-11-11 05:27:20 +00:00 |
|
|
|
5294da6780
|
use 'Cursor.clipIdx' in app-update.sml's 'helpDelete' and 'helpDeleteLine' functions, to ensure we never delete last line (unix text files always end with \n)
|
2024-11-10 07:57:49 +00:00 |
|
|
|
6e4f6b58b9
|
done with 'parseDelete' functionality in app-update.sml': have all the delete commands I would like
|
2024-11-10 07:51:12 +00:00 |
|
|
|
58a9c2ec69
|
add functionality for commands: 'dgg' (delete from cursor to start of buffer), 'dge' (delete from cursor to the end of the previous word) and 'dgE' (delete from cursor to the end of the previous WORD)
|
2024-11-10 07:34:30 +00:00 |
|
|
|
bc27925e75
|
similar loop optimisations described in previous commit to app-update.sml's 'helpDeleteToChr' function
|
2024-11-09 10:49:54 +00:00 |
|
|
|
fed827a6c9
|
same loop optimisation mentioned in previous commit to app-update.sml's 'helpDelete' function
|
2024-11-09 10:41:37 +00:00 |
|
|
|
dece4d4d83
|
break out of loop early in 'helpMove' and 'helpMoveToChr' functions, in case where calling 'fMove' returned the same value as before
|
2024-11-09 10:11:51 +00:00 |
|
|
|
cde4dbc67f
|
reduce unnecessary intermediary allocations in app-update.sml's 'helpDeleteToChr' function, similarly to previous commit
|
2024-11-09 09:59:12 +00:00 |
|
|
|
5804620846
|
small optimisation in app-update.sml's 'helpDelete' function, reducing number of allocations by accumulating otherIdx, and deleting from buffer only once loop is over
|
2024-11-09 09:39:03 +00:00 |
|
|
|
19aaae72f3
|
add functionality to delete to chr (equivalent of Vi commands starting with 'df' like 'dfe' to delete to the next 'e', and also add equivalent of 'dFe' to delete backwards)
|
2024-11-09 09:24:14 +00:00 |
|
|
|
faff848cb4
|
in cursor.sml's 'helpTillPrevChr' function, properly handle edge case where graphical chr is followed by multiple line breaks
|
2024-11-09 06:33:32 +00:00 |
|
|
|
d4d0236dab
|
amend cursor.sml's 'helpTillNextChr' function to work with new line break scheme, and use it to implement 'delete till' functionality starting with 'dt' (for example, 'dta' deletes till 'a', 'dts'detetes till 's', etc.)
|
2024-11-09 05:35:32 +00:00 |
|
|
|
e4f46295d4
|
improvement to app-update.sml's 'deleteEndOfLine' function, where we rely on 'helpRemoveChr' function to handle conditional 'go backwards' logic, and we also make sure not to do anything in 'deleteEndOfLine' if we are at a \n
|
2024-11-09 03:51:39 +00:00 |
|
|
|
267efae4cc
|
add another custom delete function ('deleteToFirstNonSpaceChr', which can be triggered with command d^ and it works fine on testing
|
2024-11-08 22:19:57 +00:00 |
|
|
|
ae80ef5f21
|
code function to delete to end of line with command 'd$' (custom function needed because it did not work as expected to pass 'Cursor.viDlr' as a higher order function as with other motions)
|
2024-11-08 21:52:04 +00:00 |
|
|
|
74822d1541
|
rename cursor.sml's 'clipIdxAfterDelete' function to 'clipIdx', simplify it, and use it in other functions too
|
2024-11-08 20:43:36 +00:00 |
|
|
|
f02a20c6ea
|
clip idx after delete if necessary
|
2024-11-08 18:47:26 +00:00 |
|
|
|
88f4ff6057
|
progress with delete
|
2024-11-08 15:19:16 +00:00 |
|
|
|
6e66d4c968
|
done with imperative shell/ffi aspect of sending KEY_ESC to update thread when that action has occurred
|
2024-11-08 09:46:01 +00:00 |
|
|
|
a4dea7626f
|
add KEY_ESC message type, and refactor app-update.sml to use it (always calls 'clearMode' function which always sets the app to normal mode, and sets the command strnig to empty)
|
2024-11-08 09:30:57 +00:00 |
|
|
|
ff38e39deb
|
do not use 'clearMode' in helpDeleteChr function, because we have 'buffer' and 'cursorIdx' parameters we would like to add to the app state before exiting the loop. Instead, go to end of loop by passing 'count' of 0
|
2024-11-08 04:25:33 +00:00 |
|
|
|
36763fce94
|
add count to 'x' command, allowing [count] chars to be deleted
|
2024-11-08 04:21:05 +00:00 |
|
|
|
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 |
|
|
|
a35c0803fb
|
fix 'getStartLineBefore' in text-window.sml, where we always decrement 'lineNum' variable when encountering \n, and use 'Int.max (lineNum - 1, 0)' to clip lineNum to 0 if it happens to go below 0
|
2024-11-07 11:57:32 +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 |
|
|
|
6b9cf8dbc2
|
amend problem with TextWindow.getStartLineBefore, where we were not following rule mentioned in previous commits to not count (graphical-chr -> \n) as line break
|
2024-11-06 12:46:53 +00:00 |
|
|
|
50d10c1a89
|
delete-chr (equivalent of vi's 'x' cmd) works fine now, except when deleting from the very first line, where first line may become invisible temporarily. I am not sure why that is happening but will find out.
|
2024-11-06 12:17:26 +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 |
|