diff --git a/addons/addon-serialize/src/SerializeAddon.test.ts b/addons/addon-serialize/src/SerializeAddon.test.ts
index aacf76ed..069a0a04 100644
--- a/addons/addon-serialize/src/SerializeAddon.test.ts
+++ b/addons/addon-serialize/src/SerializeAddon.test.ts
@@ -149,17 +149,19 @@ describe('SerializeAddon', () => {
});
it('serializes rows within a provided range', async () => {
- await writeP(terminal, 'hello\r\nworld');
+ await writeP(terminal, 'prompt>hello\r\nworld');
const output = serializeAddon.serializeAsHTML({
range: {
- start: 0,
- end: 0
+ startLine: 0,
+ endLine: 0,
+ startCol: 7
}
});
const rowMatches = output.match(/
.*?<\/span><\/div>/g) || [];
assert.equal(rowMatches.length, 1, output);
assert.ok(rowMatches[0]?.includes('hello'));
+ assert.ok(!output.includes('prompt>'));
assert.ok(!output.includes('world'));
});
diff --git a/addons/addon-serialize/src/SerializeAddon.ts b/addons/addon-serialize/src/SerializeAddon.ts
index 317dec8d..c6a5483c 100644
--- a/addons/addon-serialize/src/SerializeAddon.ts
+++ b/addons/addon-serialize/src/SerializeAddon.ts
@@ -453,8 +453,8 @@ export class SerializeAddon implements ITerminalAddon , ISerializeApi {
const range = options.range;
if (range) {
return handler.serialize({
- start: { x: 0, y: typeof range.start === 'number' ? range.start : range.start.line },
- end: { x: terminal.cols, y: typeof range.end === 'number' ? range.end : range.end.line }
+ start: { x: range.startCol, y: typeof range.startLine === 'number' ? range.startLine : range.startLine },
+ end: { x: terminal.cols, y: typeof range.endLine === 'number' ? range.endLine : range.endLine }
});
}
if (!onlySelection) {
diff --git a/addons/addon-serialize/typings/addon-serialize.d.ts b/addons/addon-serialize/typings/addon-serialize.d.ts
index d8d5fe07..06f41752 100644
--- a/addons/addon-serialize/typings/addon-serialize.d.ts
+++ b/addons/addon-serialize/typings/addon-serialize.d.ts
@@ -92,9 +92,15 @@ declare module '@xterm/addon-serialize' {
includeGlobalBackground: boolean;
/**
- * The row range to serialize. This is prioritized over {@link onlySelection}.
+ * The range to serialize. This is prioritized over {@link onlySelection}.
*/
- range?: ISerializeRange;
+ range?: ISerializeBufferRange;
+ }
+
+ export interface ISerializeBufferRange {
+ startLine: number;
+ endLine: number;
+ startCol: number;
}
export interface ISerializeRange {