Skip to content

Commit 78b0769

Browse files
javier-godoypaodb
authored andcommitted
docs: document insertfix-mixin algorithm
1 parent 0132d3b commit 78b0769

File tree

1 file changed

+6
-0
lines changed

1 file changed

+6
-0
lines changed

src/main/resources/META-INF/frontend/fc-xterm/xterm-insertfix-mixin.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ class InsertFixAddon extends TerminalAddon<TerminalMixin> {
4343
const printedLength = end-start;
4444
let trimmedLength = bufferRow.getTrimmedLength();
4545

46+
//If the inserted characters would overflow the current liner
4647
if (buffer.x!=trimmedLength && trimmedLength+printedLength > bufferRow.length) {
4748
let range = buffer.getWrappedRangeForLine(buffer.y + buffer.ybase)
4849
range.first = buffer.y + buffer.ybase;
@@ -54,7 +55,10 @@ class InsertFixAddon extends TerminalAddon<TerminalMixin> {
5455
src = buffer.lines.get(range.last);
5556
trimmedLength = src.getTrimmedLength();
5657
}
58+
59+
//If the inserted characters would overflow the last line in wrapped range
5760
if (trimmedLength+printedLength > src.length) {
61+
//Then wrap the next row
5862
if (range.last == buffer._rows - 1) {
5963
inputHandler._bufferService.scroll(inputHandler._eraseAttrData(), true);
6064
}
@@ -64,6 +68,8 @@ class InsertFixAddon extends TerminalAddon<TerminalMixin> {
6468
inputHandler._dirtyRowService.markDirty(buffer.y+1);
6569
}
6670

71+
//Allocate space for the characters to be inserted
72+
//Wrap-move characters in page memory to the next line
6773
for (let y=range.last;y>range.first;y--) {
6874
let dst = src;
6975
src= buffer.lines.get(y-1);

0 commit comments

Comments
 (0)