The corruption was caused by confusion with page indexes when
merging pages. The fix is to simplify it by deleting all pages
and then just adding the new page.
Fixes#4534Fixes#4351
- Changed the threshold at which pages start to merge from MAX/2 to
MAX.
- If a glyph is about to create a new page that will be merged,
check if the existing row fits when ignoring the row pixel
threshold. This will improve texture utilization by using the
available space before the page is merged and becomes static.
repeatPrecedingCharacter (for REP sequence) changed to look at
the grapheme cluser to the "left" in the BufferLine, and repeat that.
This is an extension of the xterm behavior, and changes the
semantics of REP, so is not fully compatible.
However, the new behavior is cleaner and saner.
Moved precedingJoinState property to EscapeSequenceParser.
- New 'trace' log level in the API, you should expect very spammy logs when
trace is on and filter them down. As opposed to 'debug' which should be more
readable.
- traceCall decorator logs the args and return value of the decorated method.
Wecan use this on key functions in various parts of the code to assist
debugging issues that are hard to reproduce such as #4665.
- Decorated a few webgl render methods for #4665.
- There's an early exit in traceCall when not on the trace log level so the
runtime impact when not in trace is negligable.
Part of #4665
Summary:
- Selection cell reuse has been added to the DOM renderer
- Selection bg override is now correctly set correctly
- Selection elements 'pretend' to be a decoration in order to render bg
Fixes#4097
This is a rule I try enforce in PR but it's a bit of a hassle, this will
give a lint warning when it happens resulting in:
- Yellow underline in supported editors when eslint is installed
- Compilation will succeed since it's a warning not an error
- CI will fail as it does not allow lint warnings
Special case comments are ignored which includes @vt comments, table
comments and commented out code.