提交 5075e9a2 编写于 作者: A Alex Dima

Fixes #45735: Fix implementation of getLineCharCode

上级 a4da791b
......@@ -538,7 +538,7 @@ export class PieceTreeBase {
let nodePos = this.nodeAt2(lineNumber, index + 1);
let buffer = this._buffers[nodePos.node.piece.bufferIndex];
let startOffset = this.offsetInBuffer(nodePos.node.piece.bufferIndex, nodePos.node.piece.start);
let targetOffset = startOffset + index;
let targetOffset = startOffset + nodePos.remainder;
return buffer.buffer.charCodeAt(targetOffset);
}
......
......@@ -1571,6 +1571,15 @@ suite('buffer api', () => {
assert(!a.equal(b));
});
test('getLineCharCode - issue #45735', () => {
let pieceTable = createTextBuffer(['LINE1\nline2']);
assert.equal(pieceTable.getLineCharCode(2, 0), 'l'.charCodeAt(0), 'l');
assert.equal(pieceTable.getLineCharCode(2, 1), 'i'.charCodeAt(0), 'i');
assert.equal(pieceTable.getLineCharCode(2, 2), 'n'.charCodeAt(0), 'n');
assert.equal(pieceTable.getLineCharCode(2, 3), 'e'.charCodeAt(0), 'e');
assert.equal(pieceTable.getLineCharCode(2, 4), '2'.charCodeAt(0), '2');
});
});
suite('search offset cache', () => {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册