|
|
bfb653e059
|
pull in new changes to brolib-sml, which fixes the LineGap.goToLine function to properly go to the start of the line
|
2025-09-13 18:04:23 +01:00 |
|
|
|
bbe39f90d4
|
move cursor to low/cursorIdx in helper function
|
2025-09-13 08:48:00 +01:00 |
|
|
|
9208c47622
|
fix exception caused by resizing in normal mode: we were passing 'buffer' to the TextScroll function previously, but we were meant to be passing 'newBuffer'. We are passing 'newBuffer' in this new commit as we are meant to.
|
2025-09-13 05:31:11 +01:00 |
|
|
|
2a332f543a
|
minor adjustment to vertical TextScroll: we shouldn't need to move the cursor to the very line in the visible area, or the ver first line in the visible area, to scroll. We scroll if the cursorLine is some distance close to either edge instead.
|
2025-09-13 05:24:51 +01:00 |
|
|
|
668dd07699
|
pull in new version of brolib-sml so that we can get bug fixes for LineGap.getLineNumberOfIdx, delete the TextWindow structure (which was previously used to get the start line to draw from), and replace previous usages of TextWindow with TextScroll.getStartLine. This enables us to scroll in a way tailored to the reimplemented TextBuilder (which do not wrap lines or characters)
|
2025-09-13 05:12:17 +01:00 |
|
|
|
a3b00e09d8
|
port over bug fixes from mutually recursive functions from test-builder-with-cursor.sml to text-builder-with-highlight.sml
|
2025-09-13 03:02:13 +01:00 |
|
|
|
916e94eaaa
|
fix bug: when we want to skip to next line in TextBuilderWithCursor, we were using binary search on the search list. The search list contained the indices of matched searches, but what we wanted to use binary search on are the lines, as the lines can help us find the next linebreak if any. So, we perform binary search on the lines vector this time to fix the bug.
|
2025-09-13 02:48:07 +01:00 |
|
|
|
20a542df29
|
in BinSearch.equalOrMore and BinSearch.equalOrLess, return ~1 if no item is found, for the sake of less ambiguity in usage. Functions that call these have also been adapted.
|
2025-09-13 02:18:14 +01:00 |
|
|
|
53a4265b07
|
add back a way to trigger exceptions manually to cause a logging error
|
2025-09-13 01:47:57 +01:00 |
|
|
|
a99b6c8df8
|
implement smoother horizontal scrolling. If the new column is already visible without changing the previous scroll column, then don't change. If the new scroll column is prior to the old, then scroll backwards; else, scroll forwards.
|
2025-09-13 01:43:31 +01:00 |
|
|
|
9e76a38ece
|
fix bug in 'TextBuilderUtils.initEnv'. When we have a wide enough space that we can centre the text, we set the 'scrollColumnEnd' field to the length of how many columns we can display. However, we want 'scrollColumnEnd' to contain the last column that can be drawn, not the length of how many columns we can draw. So now we have fixed tis.
|
2025-09-13 01:16:29 +01:00 |
|
|
|
f2ec6b80c2
|
fix bug when the cursor is on the last column of a horizontally-scrollable line. Before this commit, the last column/character was not visible. Now it is. We fixed this by decrementing the 'howManyColumnsCanWeFit' value in the 'TesxtScroll.getScrollColumn' function by 1. This works because it was an off-by-one error that caused this bug in the first place (we didn't previously count column 0 as visible and taking up space)
|
2025-09-13 01:03:44 +01:00 |
|
|
|
295bdc35cf
|
fix bug where some lines were not scrolling horizontally properly. The issue was that, when encountering a line break in 'skipToFirstVisualColumn' function, we should have recursively called the 'skipToFirstVisualColumn' function instead of the 'build' function. The reason is that our current column after a line break is 0, but we don't know if the start column to display is necessarily 0 in all cases.
|
2025-09-13 00:14:07 +01:00 |
|
|
|
b9e2da3ff9
|
add function to skip to first visible column in TextBuilderWithCursor (sometimes the function is buggy, which I need to fix)
|
2025-09-13 00:02:44 +01:00 |
|
|
|
422d6ad9ac
|
fix bugs in implementing and using text buffer. Some functions did not save the drawMsg to the app's state, which we means we didn't draw in those cases. The text builder functions also drew cursors on characters even when the cursor is not at this position. Both of these bugs are fixed.
|
2025-09-12 23:21:53 +01:00 |
|
|
|
77a64ae794
|
previously forgot to draw char in text builder, but we do that now
|
2025-09-12 14:02:38 +01:00 |
|
|
|
2ad7623848
|
fix further compiler errors
|
2025-09-12 13:47:14 +01:00 |
|
|
|
052f0efe16
|
fix compiler errors for normal-move.sml
|
2025-09-12 13:23:46 +01:00 |
|
|
|
22752e3602
|
fix compiler errors in normal-search-finish.sml
|
2025-09-12 13:02:32 +01:00 |
|
|
|
504a054df1
|
fix compiler warniungs in normal-mode/normal-finish.sml, which resulted from reimplementing text-builder functionality
|
2025-09-12 12:49:19 +01:00 |
|
|
|
213b023226
|
fix compiler errors in functions for building search string
|
2025-09-12 12:22:28 +01:00 |
|
|
|
de57af242b
|
create text builder function to call for normal mode
|
2025-09-12 12:05:57 +01:00 |
|
|
|
67db4804fb
|
implement function to initialise env for text builder
|
2025-09-12 11:17:11 +01:00 |
|
|
|
9254fa9f5c
|
create text builder with highlight
|
2025-09-12 10:42:13 +01:00 |
|
|
|
b6de188f7d
|
create a separate directory for different text builders
|
2025-09-12 08:57:17 +01:00 |
|
|
|
9ec74380c4
|
fix compiler errors related to new buildTextString implementation
|
2025-09-12 08:13:18 +01:00 |
|
|
|
a2c3df65f7
|
add mutually recursive functions to skip to start of next line in text builder
|
2025-09-12 08:05:19 +01:00 |
|
|
|
4fb35d075f
|
done implementing one text builder function
|
2025-09-12 05:35:49 +01:00 |
|
|
|
251e7e6962
|
begin reimplementing TextBuilder functions to use line-wrapping instead of char-wrap
|
2025-09-12 05:25:57 +01:00 |
|
|
|
8698333f5b
|
refactor to make sure that we count the visual scroll column on move/delete, in normal mode
|
2025-09-11 23:43:09 +01:00 |
|
|
|
ab177dbd7e
|
pull in new version of brolib-sml, which adds a function to retrieve the line number of an index
|
2025-09-11 18:02:25 +01:00 |
|
|
|
dfb7ecb867
|
add new function to calculate the startLine
|
2025-09-11 17:30:49 +01:00 |
|
|
|
580f014481
|
fix getScrollColumn calculation: the right calculation is to subtract the column number by how many columns we can fit
|
2025-09-11 17:09:43 +01:00 |
|
|
|
77439acef6
|
add function to get the appropriate scroll column
|
2025-09-11 16:17:56 +01:00 |
|
|
|
e85ac5e806
|
add visualScrollColumn' field to app type, which will record the scroll position for us
|
2025-09-11 15:26:30 +01:00 |
|
|
|
5e7f311dc7
|
in ffi, enable GL_DEPTH_TEST and also clear the GL_DEPTH_BUFFER_BIT on each frame; I forgot this before, but it is essential for proper depth testing/layering
|
2025-09-11 02:43:13 +01:00 |
|
|
|
4744d9bfa8
|
pull in new version of cozette-sml, which had a buggy version of the glyph 0 before
|
2025-09-11 02:15:54 +01:00 |
|
|
|
bf18e143c7
|
refactor text builder to use z-index for creating text vector
|
2025-09-11 02:02:41 +01:00 |
|
|
|
0f78a25382
|
add z-index parameter to cursors, and refactor code to use them
|
2025-09-11 01:53:13 +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 |
|
|
|
62e5777f75
|
pull in update to cozette-vector, which will allow us to use the z-index for layering shapes below/on top of each other
|
2025-09-10 12:30:10 +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 |
|
|
|
0a0f723b9b
|
add '<count>yx' function to both yank and delete a specified character
|
2025-09-07 23:39:33 +01:00 |
|
|
|
fd303c0f7d
|
reimplement part of 'deleteToEndOfLine' function in make-normal-delete.sml, so that it doesn't rely on the 'helpRemoveChr' function, and so we can delete the 'helpRemoveChr' function.
|
2025-09-07 23:24:31 +01:00 |
|
|
|
494c702ab6
|
add commends to clarify 'removeChr' logic.
|
2025-09-07 23:06:52 +01:00 |
|
|
|
e2acdd90f4
|
new implementation for removing characters with 'x', which is simpler than previous implementation as well
|
2025-09-07 22:30:39 +01:00 |
|