Skip to content

Commit 09acb2b

Browse files
committed
+1 to rangeLength when on a wrapped line to match standard behavior
1 parent 9403478 commit 09acb2b

File tree

2 files changed

+4
-7
lines changed

2 files changed

+4
-7
lines changed

src/common/buffer/BufferRange.test.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,10 @@ describe('BufferRange', () => {
1616
assert.throws(() => getRangeLength(createRange(1, 3, 1, 1), 0));
1717
});
1818
it('should get range multiple lines', () => {
19-
assert.equal(getRangeLength(createRange(1, 1, 4, 5), 5), 23);
19+
assert.equal(getRangeLength(createRange(1, 1, 4, 5), 5), 24);
2020
});
2121
it('should get range for end line right after start line', () => {
22-
assert.equal(getRangeLength(createRange(1, 1, 7, 2), 5), 11);
22+
assert.equal(getRangeLength(createRange(1, 1, 7, 2), 5), 12);
2323
});
2424
});
2525
});

src/common/buffer/BufferRange.ts

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,9 @@
55

66
import { IBufferRange } from 'xterm';
77

8-
export function getRangeLength(range: IBufferRange, cols: number): number {
9-
if (range.start.y === range.end.y) {
10-
return range.end.x - range.start.x + 1;
11-
}
8+
export function getRangeLength(range: IBufferRange, bufferCols: number): number {
129
if (range.start.y > range.end.y) {
1310
throw new Error(`Buffer range end (${range.end.x}, ${range.end.y}) cannot be before start (${range.start.x}, ${range.start.y})`);
1411
}
15-
return cols * (range.end.y - range.start.y - 1) + cols - range.start.x + range.end.x;
12+
return bufferCols * (range.end.y - range.start.y) + (range.end.x - range.start.x + 1);
1613
}

0 commit comments

Comments
 (0)