diff --git a/src/Buffer.test.ts b/src/Buffer.test.ts index 11577707..32492ee0 100644 --- a/src/Buffer.test.ts +++ b/src/Buffer.test.ts @@ -357,7 +357,7 @@ describe('Buffer', () => { it('multiline ascii', () => { const input = 'This is ASCII text spanning multiple lines.'; terminal.writeSync(input); - const s = terminal.buffer.contents(true).next().content; + const s = terminal.buffer.iterator(true).next().content; assert.equal(input, s); for (let i = 0; i < input.length; ++i) { const bufferIndex = terminal.buffer.stringIndexToBufferIndex(0, i); @@ -368,7 +368,7 @@ describe('Buffer', () => { it('combining e\u0301 in a sentence', () => { const input = 'Sitting in the cafe\u0301 drinking coffee.'; terminal.writeSync(input); - const s = terminal.buffer.contents(true).next().content; + const s = terminal.buffer.iterator(true).next().content; assert.equal(input, s); for (let i = 0; i < 19; ++i) { const bufferIndex = terminal.buffer.stringIndexToBufferIndex(0, i); @@ -388,7 +388,7 @@ describe('Buffer', () => { it('multiline combining e\u0301', () => { const input = 'e\u0301e\u0301e\u0301e\u0301e\u0301e\u0301e\u0301e\u0301e\u0301e\u0301e\u0301e\u0301e\u0301e\u0301e\u0301'; terminal.writeSync(input); - const s = terminal.buffer.contents(true).next().content; + const s = terminal.buffer.iterator(true).next().content; assert.equal(input, s); // every buffer cell index contains 2 string indices for (let i = 0; i < input.length; ++i) { @@ -400,7 +400,7 @@ describe('Buffer', () => { it('surrogate char in a sentence', () => { const input = 'The 𝄞 is a clef widely used in modern notation.'; terminal.writeSync(input); - const s = terminal.buffer.contents(true).next().content; + const s = terminal.buffer.iterator(true).next().content; assert.equal(input, s); for (let i = 0; i < 5; ++i) { const bufferIndex = terminal.buffer.stringIndexToBufferIndex(0, i); @@ -420,7 +420,7 @@ describe('Buffer', () => { it('multiline surrogate char', () => { const input = '𝄞𝄞𝄞𝄞𝄞𝄞𝄞𝄞𝄞𝄞𝄞𝄞𝄞𝄞𝄞𝄞𝄞𝄞𝄞𝄞𝄞𝄞𝄞𝄞𝄞𝄞𝄞'; terminal.writeSync(input); - const s = terminal.buffer.contents(true).next().content; + const s = terminal.buffer.iterator(true).next().content; assert.equal(input, s); // every buffer cell index contains 2 string indices for (let i = 0; i < input.length; ++i) { @@ -433,7 +433,7 @@ describe('Buffer', () => { // eye of Ra with acute accent - string length of 3 const input = '𓂀\u0301 - the eye hiroglyph with an acute accent.'; terminal.writeSync(input); - const s = terminal.buffer.contents(true).next().content; + const s = terminal.buffer.iterator(true).next().content; assert.equal(input, s); // index 0..2 should map to 0 assert.deepEqual([0, 0], terminal.buffer.stringIndexToBufferIndex(0, 1)); @@ -447,7 +447,7 @@ describe('Buffer', () => { it('multiline surrogate with combining', () => { const input = '𓂀\u0301𓂀\u0301𓂀\u0301𓂀\u0301𓂀\u0301𓂀\u0301𓂀\u0301𓂀\u0301𓂀\u0301𓂀\u0301𓂀\u0301𓂀\u0301𓂀\u0301𓂀\u0301'; terminal.writeSync(input); - const s = terminal.buffer.contents(true).next().content; + const s = terminal.buffer.iterator(true).next().content; assert.equal(input, s); // every buffer cell index contains 3 string indices for (let i = 0; i < input.length; ++i) { @@ -459,7 +459,7 @@ describe('Buffer', () => { it('fullwidth chars', () => { const input = 'These 123 are some fat numbers.'; terminal.writeSync(input); - const s = terminal.buffer.contents(true).next().content; + const s = terminal.buffer.iterator(true).next().content; assert.equal(input, s); for (let i = 0; i < 6; ++i) { const bufferIndex = terminal.buffer.stringIndexToBufferIndex(0, i); @@ -478,7 +478,7 @@ describe('Buffer', () => { it('multiline fullwidth chars', () => { const input = '12345678901234567890'; terminal.writeSync(input); - const s = terminal.buffer.contents(true).next().content; + const s = terminal.buffer.iterator(true).next().content; assert.equal(input, s); for (let i = 9; i < input.length; ++i) { const bufferIndex = terminal.buffer.stringIndexToBufferIndex(0, i); @@ -489,7 +489,7 @@ describe('Buffer', () => { it('fullwidth combining with emoji - match emoji cell', () => { const input = 'Lots of ¥\u0301 make me 😃.'; terminal.writeSync(input); - const s = terminal.buffer.contents(true).next().content; + const s = terminal.buffer.iterator(true).next().content; assert.equal(input, s); const stringIndex = s.match(/😃/).index; const bufferIndex = terminal.buffer.stringIndexToBufferIndex(0, stringIndex); diff --git a/src/Buffer.ts b/src/Buffer.ts index 6d8952dc..383a1f90 100644 --- a/src/Buffer.ts +++ b/src/Buffer.ts @@ -374,7 +374,7 @@ export class Buffer implements IBuffer { this.markers.splice(this.markers.indexOf(marker), 1); } - public contents(trimRight: boolean, startIndex?: number, endIndex?: number): IBufferStringIterator { + public iterator(trimRight: boolean, startIndex?: number, endIndex?: number): IBufferStringIterator { return new BufferStringIterator(this, trimRight, startIndex, endIndex); } } diff --git a/src/Linkifier.ts b/src/Linkifier.ts index cd5cba96..728cb0c2 100644 --- a/src/Linkifier.ts +++ b/src/Linkifier.ts @@ -91,9 +91,9 @@ export class Linkifier extends EventEmitter implements ILinkifier { // _doLinkifyRow gets full unwrapped lines with the start row as buffer offset for every matcher // for wrapped content over several rows the iterator might return rows outside the viewport // we skip those later in _doLinkifyRow - const linesIterator = this._terminal.buffer.contents(false, absoluteRowIndexStart, this._terminal.buffer.ydisp + this._rowsToLinkify.end + 1); - while (linesIterator.hasNext()) { - const lineData: IBufferStringIteratorResult = linesIterator.next(); + const iterator = this._terminal.buffer.iterator(false, absoluteRowIndexStart, this._terminal.buffer.ydisp + this._rowsToLinkify.end + 1); + while (iterator.hasNext()) { + const lineData: IBufferStringIteratorResult = iterator.next(); for (let i = 0; i < this._linkMatchers.length; i++) { this._doLinkifyRow(lineData.range.first, lineData.content, this._linkMatchers[i]); } diff --git a/src/Types.ts b/src/Types.ts index 063eba17..69c40151 100644 --- a/src/Types.ts +++ b/src/Types.ts @@ -296,7 +296,7 @@ export interface IBuffer { nextStop(x?: number): number; prevStop(x?: number): number; stringIndexToBufferIndex(lineIndex: number, stringIndex: number): number[]; - contents(trimRight: boolean, startIndex?: number, endIndex?: number): IBufferStringIterator; + iterator(trimRight: boolean, startIndex?: number, endIndex?: number): IBufferStringIterator; } export interface IBufferSet extends IEventEmitter { diff --git a/src/utils/TestUtils.test.ts b/src/utils/TestUtils.test.ts index 40a93ded..b38f4b85 100644 --- a/src/utils/TestUtils.test.ts +++ b/src/utils/TestUtils.test.ts @@ -322,8 +322,8 @@ export class MockBuffer implements IBuffer { stringIndexToBufferIndex(lineIndex: number, stringIndex: number): number[] { return Buffer.prototype.stringIndexToBufferIndex.apply(this, arguments); } - contents(trimRight: boolean, startIndex?: number, endIndex?: number): IBufferStringIterator { - return Buffer.prototype.contents.apply(this, arguments); + iterator(trimRight: boolean, startIndex?: number, endIndex?: number): IBufferStringIterator { + return Buffer.prototype.iterator.apply(this, arguments); } }