add collapse lines in range
This commit is contained in:
parent
062c396432
commit
bfa4748b1b
3 changed files with 24 additions and 8 deletions
|
|
@ -715,16 +715,11 @@ var Editor =function(renderer, doc) {
|
||||||
};
|
};
|
||||||
|
|
||||||
this.$getSelectedRows = function() {
|
this.$getSelectedRows = function() {
|
||||||
var range = this.getSelectionRange();
|
var range = this.getSelectionRange().collapseRows();
|
||||||
var firstRow = range.start.row;
|
|
||||||
var lastRow = range.end.row;
|
|
||||||
if (range.end.column == 0 && (range.start.row !== range.end.row)) {
|
|
||||||
lastRow -= 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
return {
|
return {
|
||||||
first: firstRow,
|
first: range.start.row,
|
||||||
last: lastRow
|
last: range.end.row
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -138,6 +138,13 @@ var Range = function(startRow, startColumn, endRow, endColumn) {
|
||||||
return Range.fromPoints(this.start, this.end);
|
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) {
|
this.toScreenRange = function(doc) {
|
||||||
return new Range(
|
return new Range(
|
||||||
this.start.row, doc.documentToScreenColumn(this.start.row, this.start.column),
|
this.start.row, doc.documentToScreenColumn(this.start.row, this.start.column),
|
||||||
|
|
|
||||||
|
|
@ -144,6 +144,20 @@ var Test = {
|
||||||
|
|
||||||
var range = range.extend(6, 10);
|
var range = range.extend(6, 10);
|
||||||
assert.range(range, 1, 4, 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);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue