window = w;
document = window.document;
buffer = new CircularList<any>(100);
- terminal = <any>{ cols: 80 };
+ terminal = <any>{ cols: 80, rows: 2 };
selectionManager = new TestSelectionManager(terminal, buffer, rowContainer, null);
done();
});
assert.deepEqual(selectionManager.model.finalSelectionEnd, [terminal.cols, 0], 'The actual selection spans the entire column');
});
});
+
+ describe('selectAll', () => {
+ it('should select the entire buffer, beyond the viewport', () => {
+ buffer.push(stringToRow('1'));
+ buffer.push(stringToRow('2'));
+ buffer.push(stringToRow('3'));
+ buffer.push(stringToRow('4'));
+ buffer.push(stringToRow('5'));
+ selectionManager.selectAll();
+ terminal.ybase = buffer.length - terminal.rows;
+ assert.equal(selectionManager.selectionText, '1\n2\n3\n4\n5');
+ });
+ });
});
if (start[1] !== end[1]) {
result.push(this._translateBufferLineToString(this._buffer.get(end[1]), true, 0, end[0]));
}
- console.log('selectionText result: "' + result + '"');
+
return result.join('\n');
}
* word selection and triple click line selection.
*/
public get finalSelectionEnd(): [number, number] {
- if (!this.selectionStart) {
- return null;
+ if (this.isSelectAllActive) {
+ return [this._terminal.cols - 1, this._terminal.ybase + this._terminal.rows - 1];
}
- if (this.isSelectAllActive) {
- return [this._terminal.cols - 1, this._terminal.ydisp + this._terminal.rows - 1];
+ if (!this.selectionStart) {
+ return null;
}
// Use the selection start if the end doesn't exist or they're reversed