assert.equal(selectionManager.selectionText, '1\n2\n3\n4\n5');
});
});
+
+ describe('selectionText', () => {
+ it('should return the empty string when start or end selections are not set', () => {
+ assert.equal(selectionManager.selectionText, '');
+ selectionManager.model.selectionStart = [0, 0];
+ assert.equal(selectionManager.selectionText, '');
+ selectionManager.model.selectionStart = null;
+ selectionManager.model.selectionEnd = [0, 0];
+ assert.equal(selectionManager.selectionText, '');
+ });
+ });
});
model.selectionEnd = [1, 2];
assert.equal(model.finalSelectionEnd, null);
});
+ it('should return null if there is no selection end or selection start length', () => {
+ model.selectionStart = [1, 2];
+ assert.equal(model.finalSelectionEnd, null);
+ });
it('should return selection start + length if there is no selection end', () => {
model.selectionStart = [2, 2];
model.selectionStartLength = 2;
constructor(
private _terminal: ITerminal
) {
+ this.clearSelection();
}
/**
this.selectionStart = null;
this.selectionEnd = null;
this.isSelectAllActive = false;
+ this.selectionStartLength = 0;
}
/**
return [0, 0];
}
- if (!this.selectionEnd) {
+ if (!this.selectionEnd || !this.selectionStart) {
return this.selectionStart;
}
// Use the selection start if the end doesn't exist or they're reversed
if (!this.selectionEnd || this._areSelectionValuesReversed()) {
+ if (this.selectionStartLength === 0) {
+ return null;
+ }
return [this.selectionStart[0] + this.selectionStartLength, this.selectionStart[1]];
}