|
|
7497dc7e7a
|
add code for clojure-style persistent vectors
|
2025-08-30 18:12:47 +01:00 |
|
|
|
0647589f13
|
handle edge case in searching: when we look for 'abba' in the text 'abbabba', it looks like we should have two matches, but to be consistent with other programs, we only have one match
|
2025-08-30 17:16:02 +01:00 |
|
|
|
9051717213
|
remove 'gl_samples' parameter (it was used from antialiasing, but we have a bitmap font, so we don't want antialiasing)
|
2025-08-20 14:01:24 +01:00 |
|
|
|
cd21f87732
|
fix compile error in shell/shell.sml (had to pass an additional parameter: 'Time.now ()')
|
2025-08-20 13:53:31 +01:00 |
|
|
|
4d77aed6ef
|
done refactoring tests
|
2025-08-20 13:50:57 +01:00 |
|
|
|
0dd7a69777
|
propagate 'time' value throughout normal mode updating
|
2025-08-20 13:12:07 +01:00 |
|
|
|
f97a2944ae
|
pass time parameter in normal-delete.sml
|
2025-08-20 13:00:36 +01:00 |
|
|
|
c4f3e921a3
|
formating
|
2025-08-20 12:51:31 +01:00 |
|
|
|
c21d1b8205
|
progress fixing compile errors resulting from adding 'bufferModifyTime' field (fixed normal-mode move expressions)
|
2025-08-20 12:50:39 +01:00 |
|
|
|
642814fb36
|
begin adding a 'bufferModifyTime' field to the app_type (lots of refactoring to do now)
|
2025-08-20 12:17:07 +01:00 |
|
|
|
cdc8c0c734
|
more updates from cozette-sml
|
2025-08-18 03:35:57 +01:00 |
|
|
|
714558a739
|
pull in further updates from cozette-sml librarfy
|
2025-08-18 03:30:28 +01:00 |
|
|
|
023136516e
|
pull new version of cozette library, which fixes some odd-looking letters (lower-case-t, lower-case-j, upper-case-x)
|
2025-08-18 02:59:50 +01:00 |
|
|
|
41153c32a1
|
create new rect which is adapted to new text, and use it in text-builder.sml
|
2025-08-18 02:39:56 +01:00 |
|
|
|
af15b97400
|
pull in new version of cozette-ascii library, and fix resulting compile errors (which all occurred in text-builder.sml)
|
2025-08-18 02:17:13 +01:00 |
|
|
|
850d3b7bcb
|
done refactoring one text builder loop
|
2025-08-17 19:32:46 +01:00 |
|
|
|
845605aa48
|
fix compile error in make-text-builder.sml
|
2025-08-17 17:30:51 +01:00 |
|
|
|
3e67d90512
|
progress functorising text builder
|
2025-08-17 17:15:15 +01:00 |
|
|
|
28593486ed
|
refactor command-parsing code for normal mode, so that non-character events (KEY_ESC, RESIZE_EVENT, WITH_SEARCH_LIST) are dealt with at the beginning, and that the remainder of the parsing code looks at the current string and the new character typed. This is safe because pattern matching on the other commands (KEY_ESC, RESIZE_EVENT, WITH_SEARCH_LIST) always calls the same functions.
|
2025-08-08 23:23:40 +01:00 |
|
|
|
3b8faf28e4
|
add d% motion for deleting a matching pair
|
2025-08-08 07:30:39 +01:00 |
|
|
|
f848d4f301
|
done implementing 'deleteInside' and 'deleteAroundd' commands
|
2025-08-07 23:33:40 +01:00 |
|
|
|
5236579cd5
|
extract some more common code (which was used in many delete functions) into its own function
|
2025-08-07 19:31:34 +01:00 |
|
|
|
0fd63fe82f
|
extract a function which has commonly used code
|
2025-08-07 19:17:47 +01:00 |
|
|
|
1bdf8e457b
|
implement 'deleteInside' motions
|
2025-08-07 19:12:01 +01:00 |
|
|
|
b6960f4c68
|
implemented 'diw' and 'diW' commands for deleting inside a word or WORD
|
2025-08-07 18:33:03 +01:00 |
|
|
|
c6f40ba9a0
|
remove unnecessary linebreak
|
2025-08-07 18:12:27 +01:00 |
|
|
|
14f97ecc57
|
done refactoring normal mode functions
|
2025-08-07 18:09:52 +01:00 |
|
|
|
f63e416e8f
|
move normal-mode deletion functions to their own file
|
2025-08-07 18:02:47 +01:00 |
|
|
|
85c0b09d26
|
put cursor-movement functions in their own file
|
2025-08-07 17:57:47 +01:00 |
|
|
|
bc188b9175
|
begin refactoring (split app-update into different files)
|
2025-08-07 17:41:10 +01:00 |
|
|
|
73affaa83a
|
instead of clearing the search list when we delete, build a small part of it by searching through a small part that is likely to be visible on the user's screen, which gets rid of flickering effect and makes it look like the search list is not rebuilt from scratch
|
2025-08-07 15:37:32 +01:00 |
|
|
|
27c5d11dd7
|
code functions to build search list from a range in the buffer (not searching for every single match, but searching for visible matches on user's window)
|
2025-08-07 15:28:29 +01:00 |
|
|
|
30036177fb
|
remove calls to retrieve 'lineIdx' values which are never used
|
2025-08-07 14:42:40 +01:00 |
|
|
|
752bb4d00f
|
don't return (buffer, searchList) tuple when building search list, but only return search list itself. (No point returning buffer as it is never modified or moved.)
|
2025-08-07 14:40:14 +01:00 |
|
|
|
da2d2f1b55
|
add functionality to delete to/until prev match
|
2025-08-07 13:37:03 +01:00 |
|
|
|
5d6dbb0403
|
add functions to move to prev/next match
|
2025-08-07 13:22:10 +01:00 |
|
|
|
268fd47d7e
|
add functions to help find previous/next match in the search list
|
2025-08-07 13:12:04 +01:00 |
|
|
|
704854c80f
|
use concurrency for rebuilding search list after deletion so we don't block main thread on very, very large files
|
2025-08-07 12:20:57 +01:00 |
|
|
|
fab8cfcf20
|
change representation of search list to be a plain int vector and not a zipper (I am not using it for incremental purposes anyway so no point using a zipper)
|
2025-08-06 00:42:24 +01:00 |
|
|
|
e06a27d5ad
|
delete some dead code
|
2025-08-06 00:30:50 +01:00 |
|
|
|
f0f28a1318
|
clean up some dead code
|
2025-08-06 00:16:50 +01:00 |
|
|
|
faa55abd3d
|
remove some dead code
|
2025-08-05 23:58:54 +01:00 |
|
|
|
3de64ba428
|
receive bug fixes in brolib/src/line_gap.sml
|
2025-08-05 16:20:19 +01:00 |
|
|
|
0729662eef
|
minor formatting changes to exception logging, and begin building from new search list functionality as well
|
2025-08-05 13:59:10 +01:00 |
|
|
|
01369627bf
|
begin reimplementing search list data structure
|
2025-08-05 13:24:55 +01:00 |
|
|
|
7dbd37a65b
|
refactor text builder a bit (I should probably functorise buffer/lineGap iteration code out at some point)
|
2025-08-04 12:57:22 +01:00 |
|
|
|
a4ac1b9ae0
|
add function for testing search-list.sml
|
2025-08-04 12:08:35 +01:00 |
|
|
|
f2f93c5760
|
address bug in text-window.sml: if we want to call getStartLineAfter, then always pass in a positive number
|
2025-08-04 11:11:18 +01:00 |
|
|
|
b7cdbfbe02
|
log another exception-throwing test
|
2025-08-04 10:59:01 +01:00 |
|
|
|
229bf59f5d
|
pass correct variable as argument ('startIdx' instead of 'cursorIdx')
|
2025-08-04 10:46:24 +01:00 |
|