@@ -518,6 +518,29 @@ describe('Buffer', () => {
|
||||
assert.equal(secondMarker.line, 1, 'second marker should be restored');
|
||||
assert.equal(thirdMarker.line, 2, 'third marker should be restored');
|
||||
});
|
||||
it('should correctly reflow wrapped lines that end in null space (via tab char)', () => {
|
||||
buffer.fillViewportRows();
|
||||
buffer.resize(4, 10);
|
||||
buffer.y = 2;
|
||||
buffer.lines.get(0).set(0, [null, 'a', 1, 'a'.charCodeAt(0)]);
|
||||
buffer.lines.get(0).set(1, [null, 'b', 1, 'b'.charCodeAt(0)]);
|
||||
buffer.lines.get(1).set(0, [null, 'c', 1, 'c'.charCodeAt(0)]);
|
||||
buffer.lines.get(1).set(1, [null, 'd', 1, 'd'.charCodeAt(0)]);
|
||||
buffer.lines.get(1).isWrapped = true;
|
||||
// Buffer:
|
||||
// "ab " (wrapped)
|
||||
// "cd"
|
||||
buffer.resize(5, 10);
|
||||
assert.equal(buffer.ybase, 0);
|
||||
assert.equal(buffer.lines.length, 10);
|
||||
assert.equal(buffer.lines.get(0).translateToString(true), 'ab c');
|
||||
assert.equal(buffer.lines.get(1).translateToString(false), 'd ');
|
||||
buffer.resize(6, 10);
|
||||
assert.equal(buffer.ybase, 0);
|
||||
assert.equal(buffer.lines.length, 10);
|
||||
assert.equal(buffer.lines.get(0).translateToString(true), 'ab cd');
|
||||
assert.equal(buffer.lines.get(1).translateToString(false), ' ');
|
||||
});
|
||||
it('should wrap wide characters correctly when reflowing larger', () => {
|
||||
buffer.fillViewportRows();
|
||||
buffer.resize(12, 10);
|
||||
@@ -553,6 +576,32 @@ describe('Buffer', () => {
|
||||
assert.equal(buffer.lines.get(1).translateToString(true), '语汉语汉语');
|
||||
assert.equal(buffer.lines.get(1).translateToString(false), '语汉语汉语 ');
|
||||
});
|
||||
it('should correctly reflow wrapped lines that end in null space (via tab char)', () => {
|
||||
buffer.fillViewportRows();
|
||||
buffer.resize(4, 10);
|
||||
buffer.y = 2;
|
||||
buffer.lines.get(0).set(0, [null, 'a', 1, 'a'.charCodeAt(0)]);
|
||||
buffer.lines.get(0).set(1, [null, 'b', 1, 'b'.charCodeAt(0)]);
|
||||
buffer.lines.get(1).set(0, [null, 'c', 1, 'c'.charCodeAt(0)]);
|
||||
buffer.lines.get(1).set(1, [null, 'd', 1, 'd'.charCodeAt(0)]);
|
||||
buffer.lines.get(1).isWrapped = true;
|
||||
// Buffer:
|
||||
// "ab " (wrapped)
|
||||
// "cd"
|
||||
buffer.resize(3, 10);
|
||||
assert.equal(buffer.y, 2);
|
||||
assert.equal(buffer.ybase, 0);
|
||||
assert.equal(buffer.lines.length, 10);
|
||||
assert.equal(buffer.lines.get(0).translateToString(false), 'ab ');
|
||||
assert.equal(buffer.lines.get(1).translateToString(false), ' cd');
|
||||
buffer.resize(2, 10);
|
||||
assert.equal(buffer.y, 3);
|
||||
assert.equal(buffer.ybase, 0);
|
||||
assert.equal(buffer.lines.length, 10);
|
||||
assert.equal(buffer.lines.get(0).translateToString(false), 'ab');
|
||||
assert.equal(buffer.lines.get(1).translateToString(false), ' ');
|
||||
assert.equal(buffer.lines.get(2).translateToString(false), 'cd');
|
||||
});
|
||||
it('should wrap wide characters correctly when reflowing smaller', () => {
|
||||
buffer.fillViewportRows();
|
||||
buffer.resize(12, 10);
|
||||
|
||||
Reference in New Issue
Block a user