|
|
5ba82ea7e1
|
if we can fit at least 80 chars in a single line on the screen, centre all visible text on the screen
|
2025-08-31 01:15:29 +01:00 |
|
|
|
7ac676e621
|
add textLineWidth value to text-constants.sml, which we can use to calculate functionality of centering on screen
|
2025-08-31 01:00:31 +01:00 |
|
|
|
83e062eb60
|
fix visual bug resulting from 'TextBuilder.buildTextStringSearch' function. When we have a search string 'abc' and a file 'abcabc', there are two matches and it should also look like there are two matches, but it did not look like there were two matches prior to this commit. This commit fixes that by advancing the search position before adding to the text accumulator.
|
2025-08-31 00:05:48 +01:00 |
|
|
|
659a1d2585
|
change buildRange length from 777 to 1111
|
2025-08-30 23:36:14 +01:00 |
|
|
|
2b3f0405c6
|
reimplement search-range functionality to scan range from the string from left to right
|
2025-08-30 23:31:55 +01:00 |
|
|
|
de46376e4e
|
reimplement search list functionality (when building whole search list, not from range) to start from index 0, to get rid of edge cases resulting from reading the string backwards
|
2025-08-30 23:05:11 +01:00 |
|
|
|
148b72835b
|
move buffer to start before creating searchMsg
|
2025-08-30 18:21:47 +01:00 |
|
|
|
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 |
|
|
|
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 |
|
|
|
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 |
|
|
|
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 |
|
|
|
229bf59f5d
|
pass correct variable as argument ('startIdx' instead of 'cursorIdx')
|
2025-08-04 10:46:24 +01:00 |
|