This lets the embedder choose which Document object to use for creating
elements, adding event listeners, etc. The reason this exists is because
when working with multiple windows it can be convenient to create all
elements under the primary window to make instanceof usage consistent.
See microsoft/vscode#195595
Replace fg, bg, and eAttrs parameters by single IAttributeData parameter.
In addition to making for a simpler/cleaner API, it also increases flexibility
for future CellData or BufferLine changes.
(Rename function to reduce risk of using accidentally using old function.)
Also removed redundant eraseAttr parameter in deleteCells, insertCells, and replaceCells.
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
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.