|
|
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 |
|
|
|
1dc77e629e
|
add char event which triggers log
|
2025-08-04 09:29:37 +01:00 |
|
|
|
ce0f700253
|
abstract exception handler/logger into its own file
|
2025-08-04 09:03:47 +01:00 |
|
|
|
f4c9039af1
|
fix failing unit test in search-list.sml/build-search-list.sml: perform bounds checking into array
|
2025-08-04 08:33:48 +01:00 |
|
|
|
d4532e37cf
|
add boilerplate to ease regression testing
|
2025-08-04 07:14:00 +01:00 |
|
|
|
83634ef20e
|
log exceptions that occur to a local file
|
2025-08-04 06:23:52 +01:00 |
|
|
|
528aea59a1
|
reimplement vi's '$' motion as a DFA, also eliminating a bug that involves double deleteion in the process
|
2025-08-04 05:37:08 +01:00 |
|
|
|
fe9dd0f034
|
progress functorising
|
2025-08-04 04:24:24 +01:00 |
|
|
|
895c286b4b
|
additional functorisation progress
|
2025-08-04 04:14:17 +01:00 |
|
|
|
55e5778ff7
|
pass env argument in if-character-folder functor, to make it more generic (can access some environment data, which enables more reuse)
|
2025-08-04 04:05:39 +01:00 |
|
|
|
aca8ba44b9
|
functorise some additional functions to reduce boilerplate
|
2025-08-04 03:44:45 +01:00 |
|
|
|
cef8467ff6
|
begin functorising some char iterators which use if-expressions instead of DFAs
|
2025-08-04 03:23:27 +01:00 |
|
|
|
e55a7e2bca
|
add separate folder when deleting end of current word, so that we can fix 'de' and 'dE' motions (the result of the folders for the cursor motion is meant to be decremented by 1, but the result for deleting is not meant to be decremented or incremented at all)
|
2025-08-03 17:35:33 +01:00 |
|
|
|
0f3b6a39fb
|
done functorising character iterators for vi word
|
2025-08-03 17:13:26 +01:00 |
|
|
|
bf9e8be3b0
|
almost done functorising character iterators for vi word
|
2025-08-03 17:10:15 +01:00 |
|
|
|
cd6ce4ffcc
|
begin functorins vi word char iterators
|
2025-08-03 17:01:50 +01:00 |
|
|
|
cf93d5885f
|
remove unneeded function
|
2025-08-03 16:52:55 +01:00 |
|
|
|
cc276b5454
|
functorise character folders for vi WORD
|
2025-08-03 16:48:45 +01:00 |
|
|
|
b8a5df814e
|
begin functorising some char-iteration functions
|
2025-08-03 16:34:31 +01:00 |
|
|
|
473ea8e35d
|
functorise character folders to reduce repetitive boilerplate code (but have not functorised yet)
|
2025-08-03 16:21:36 +01:00 |
|
|
|
9662540889
|
remove a couple of unneded functions
|
2025-08-03 14:32:44 +01:00 |
|
|
|
ff9d61bba0
|
a bit of formatting
|
2025-08-03 14:18:17 +01:00 |
|
|
|
e078ca89d2
|
refactor some code to use looping in DFA (which is faster than looping outside of the data structure)
|
2025-08-03 14:17:25 +01:00 |
|
|
|
904526cd63
|
fix bug in building search list from range: if first index is less than 0, then start from 0, or else start from calculation
|
2025-08-03 13:41:11 +01:00 |
|
|
|
16fdfc7ac2
|
print stack trace for when an exception occurs
|
2025-08-03 13:14:28 +01:00 |
|
|
|
a8ee1d5d37
|
a little refactoring to make implementation of word and WORD selection (viW, ciW, diW) easier
|
2025-07-21 09:40:32 +01:00 |
|
|
|
51c9090adf
|
add a test for 'b' motion, checking that we move to start of prev word when on first character of next word
|
2025-07-21 00:28:25 +01:00 |
|
|
|
af900057b0
|
delete dead code
|
2025-07-20 17:55:43 +01:00 |
|
|
|
d3e54d4102
|
reimplement vi's 'e' command
|
2025-07-20 17:48:45 +01:00 |
|
|
|
146953c25d
|
reimplement vi's 'b' command
|
2025-07-20 17:36:33 +01:00 |
|
|
|
33474fb5ae
|
formatting
|
2025-07-20 16:57:22 +01:00 |
|
|
|
41ca612ca1
|
reimplement vi's 'ge' command (endOfPrevWord)
|
2025-07-20 16:55:42 +01:00 |
|
|
|
8d67c33893
|
reimplement vi's 'w' command to use ViWordDfa
|
2025-07-20 16:04:48 +01:00 |
|