Commit Graph

62 Commits

Author SHA1 Message Date
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
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
54090ccf64 add yank functionality in imperative shell 2024-11-11 05:27:20 +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
428e5f2ecd complete implementation of rightwards navigation (viL) 2024-10-17 02:57:26 +01:00
c77777cc09 add CHAR_EVENT message type (next is to handle hjkl navigation) 2024-10-17 01:38:31 +01:00
ce23e50c8d scaffolding for char callback 2024-10-17 01:20:48 +01:00
5cc4357cc7 progress drawing cursor 2024-10-09 11:59:41 +01:00
9d7d00e8d1 add cursor buffer and cursor program to imperative shell 2024-10-09 11:22:39 +01:00
bfc5a3914c hardcode more pleasant (in my opinion) colour scheme for the moment 2024-10-09 01:23:26 +01:00
68a1787958 done scaffolding cml and adding resize functionality 2024-10-06 10:23:07 +01:00