Commit Graph

73 Commits

Author SHA1 Message Date
05961a460c adjust colours to be same as 'morning' theme in neovim 2025-10-17 23:37:09 +01:00
111e0cf66d remove usage of concurrent ml, deciding that we prefer to run everything in the main thread instead 2025-10-17 23:08:16 +01:00
7676556513 fix failing test for 'd$' motion, which means completing tests for 'd$' motion too 2025-10-16 12:07:27 +01:00
f804a2a9fc add tests for 'd$' motion, including one failing test whose implementation needs to be fixed 2025-10-16 12:02:20 +01:00
108e021fdb log an exception if search-thread encounters a failure 2025-10-08 06:51:52 +01:00
4d1b2073dc reimplement functionality to run whole text search using DFA 2025-10-08 06:40:20 +01:00
5c8e74ac11 change type of SEARCH message to take a DFA, instead of a searchString 2025-10-08 05:54:19 +01:00
2c388899ca use different colours for program 2025-09-27 08:00:21 +01:00
169f96f459 fix exception when the buffer is empty 2025-09-16 04:35:49 +01:00
53a4265b07 add back a way to trigger exceptions manually to cause a logging error 2025-09-13 01:47:57 +01:00
77a64ae794 previously forgot to draw char in text builder, but we do that now 2025-09-12 14:02:38 +01:00
2e0f749229 adjust imperative shell to use xyz coordinates for position, instead of simply xy; need to ensure the functional core code outputs a vector in this format too 2025-09-11 01:43:23 +01:00
781691060c begin refactoring code to use a single vertex buffer for all shapes 2025-09-11 01:31:19 +01:00
fee8ba5207 set preemptive scheduling time to change threads every 555 microseconds, instead of every 20 milliseoncds (which was the default) 2025-09-10 01:58:35 +01:00
95a07bcd92 rename 'UpdateThread' structure to 'Updater', because it is no longer a separate thread 2025-09-10 01:44:25 +01:00
6961a76471 done merging draw thread with update thread 2025-09-10 01:41:59 +01:00
dc3009bf54 create separate mailbox structures for draw and input messages, because our plan is to: 'handle input + drawing on a single thread' 2025-09-10 01:04:56 +01:00
299735f500 only update search list if timestamp for search message is greater than the buffer's modified time 2025-09-07 13:37:14 +01:00
f3c1905c0c when constructing SEARCH message, include time in the message as well. This will enable us to ignore any messages when we have a 'later' state available. 2025-09-07 13:24:41 +01:00
ea38e95e6b add a few additional motions to be parsed by yank 2025-09-02 03:07:50 +01:00
72e3b59bb7 because GLFW at this time has clipboard bugs on Wayland (setting clipboard string), we print out whenever the shell receives a 'yank' message indicating for GLFW to copy. This will let us test that the correct string is yanked. 2025-09-02 02:18:14 +01:00
a10e56935e scaffolding for arrow-movement functionality 2025-09-01 11:23:45 +01:00
f4a4dd9161 scaffolding for backspace functionality 2025-09-01 02:52:05 +01:00
a86befdea8 a bit of refactoring 2025-08-31 06:28:05 +01:00
542da2229c a little additional scaffolding for normal mode 2025-08-31 02:41:37 +01:00
a9fda7d88b change text building function in text-builder.sml to use the 'startX' and 'startY' fields added to the environment type 2025-08-31 01:38:42 +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
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
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
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
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
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
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
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
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
b7cdbfbe02 log another exception-throwing test 2025-08-04 10:59:01 +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
83634ef20e log exceptions that occur to a local file 2025-08-04 06:23:52 +01:00
16fdfc7ac2 print stack trace for when an exception occurs 2025-08-03 13:14:28 +01:00
7045b69ce8 eliminate instance of currying/partial application with constant value (a constant mailbox) is shell/shell.sml 2024-12-17 10:55:58 +00:00
90f8732f06 move msgs into AppType.app_type, and refactor AppUpdate.update function to have type (app_type -> app_type) instead of pervious case which was (app_type -> app_type * MailboxType.t list). Reason: no need to allocate/return tuple when can store messages in type directly; previous msg list will be reset after each app update. All tests after refactor are passing. 2024-12-17 10:40:06 +00:00
09d9945201 add function to build search list from specific range 2024-11-16 12:27:14 +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