add collapse lines in range

This commit is contained in:
Fabian Jakobs 2010-12-15 18:40:46 +01:00
commit bfa4748b1b
3 changed files with 24 additions and 8 deletions

View file

@ -715,16 +715,11 @@ var Editor =function(renderer, doc) {
};
this.$getSelectedRows = function() {
var range = this.getSelectionRange();
var firstRow = range.start.row;
var lastRow = range.end.row;
if (range.end.column == 0 && (range.start.row !== range.end.row)) {
lastRow -= 1;
}
var range = this.getSelectionRange().collapseRows();
return {
first: firstRow,
last: lastRow
first: range.start.row,
last: range.end.row
};
};

View file

@ -137,6 +137,13 @@ var Range = function(startRow, startColumn, endRow, endColumn) {
this.clone = function() {
return Range.fromPoints(this.start, this.end);
};
this.collapseLines = function() {
if (this.end.column == 0)
return new Range(this.start.row, 0, Math.max(this.start.row, this.end.row-1), 0)
else
return new Range(this.start.row, 0, this.end.row, 0)
};
this.toScreenRange = function(doc) {
return new Range(

View file

@ -144,6 +144,20 @@ var Test = {
var range = range.extend(6, 10);
assert.range(range, 1, 4, 6, 10);
},
"test: collapse rows" : function() {
var range = new Range(0, 2, 1, 2);
assert.range(range.collapseRows(), 0, 0, 1, 0);
var range = new Range(2, 2, 3, 1);
assert.range(range.collapseRows(), 2, 0, 3, 0);
var range = new Range(2, 2, 3, 0);
assert.range(range.collapseRows(), 2, 0, 2, 0);
var range = new Range(2, 0, 2, 0);
assert.range(range.collapseRows(), 2, 0, 2, 0);
}
};