Merge pull request #5954 from xtermjs/cursor/align-headless-marker-alt-buffer-2866
Allow markers on alt buffer in headless terminal
This commit is contained in:
@@ -69,12 +69,7 @@ export class Terminal extends CoreTerminal {
|
||||
return this.buffer.markers;
|
||||
}
|
||||
|
||||
public registerMarker(cursorYOffset: number): IMarker | undefined {
|
||||
// Disallow markers on the alt buffer
|
||||
if (this.buffer !== this.buffers.normal) {
|
||||
return;
|
||||
}
|
||||
|
||||
public registerMarker(cursorYOffset: number): IMarker {
|
||||
return this.buffer.addMarker(this.buffer.ybase + this.buffer.y + cursorYOffset);
|
||||
}
|
||||
|
||||
|
||||
@@ -120,10 +120,10 @@ describe('Headless API Tests', function (): void {
|
||||
await writeSync('\n\rtest' + i);
|
||||
}
|
||||
const markers = [
|
||||
term.registerMarker(1)!,
|
||||
term.registerMarker(2)!,
|
||||
term.registerMarker(3)!,
|
||||
term.registerMarker(4)!
|
||||
term.registerMarker(1),
|
||||
term.registerMarker(2),
|
||||
term.registerMarker(3),
|
||||
term.registerMarker(4)
|
||||
];
|
||||
let disposeCount = 0;
|
||||
for (const marker of markers) {
|
||||
@@ -419,6 +419,15 @@ describe('Headless API Tests', function (): void {
|
||||
strictEqual(term.buffer.normal.getLine(0)!.translateToString(), 'norm ');
|
||||
strictEqual(term.buffer.alternate.getLine(0), undefined);
|
||||
});
|
||||
|
||||
it('registerMarker on alternate buffer', async () => {
|
||||
term = new Terminal({ cols: 5, allowProposedApi: true });
|
||||
await writeSync('\x1b[?47h');
|
||||
const marker = term.registerMarker(0);
|
||||
strictEqual(term.buffer.active.type, 'alternate');
|
||||
strictEqual(term.markers.length, 1);
|
||||
strictEqual(term.markers[0], marker);
|
||||
});
|
||||
});
|
||||
|
||||
describe('modes', () => {
|
||||
|
||||
@@ -130,11 +130,11 @@ export class Terminal extends Disposable implements ITerminalApi {
|
||||
this._verifyIntegers(columns, rows);
|
||||
this._core.resize(columns, rows);
|
||||
}
|
||||
public registerMarker(cursorYOffset: number = 0): IMarker | undefined {
|
||||
public registerMarker(cursorYOffset: number = 0): IMarker {
|
||||
this._verifyIntegers(cursorYOffset);
|
||||
return this._core.registerMarker(cursorYOffset);
|
||||
}
|
||||
public addMarker(cursorYOffset: number): IMarker | undefined {
|
||||
public addMarker(cursorYOffset: number): IMarker {
|
||||
return this.registerMarker(cursorYOffset);
|
||||
}
|
||||
public dispose(): void {
|
||||
|
||||
Vendored
+2
-3
@@ -825,12 +825,11 @@ declare module '@xterm/headless' {
|
||||
resize(columns: number, rows: number): void;
|
||||
|
||||
/**
|
||||
* Adds a marker to the normal buffer and returns it. If the alt buffer is
|
||||
* active, undefined is returned.
|
||||
* Adds a marker to the normal buffer and returns it.
|
||||
* @param cursorYOffset The y position offset of the marker from the cursor.
|
||||
* @returns The new marker or undefined.
|
||||
*/
|
||||
registerMarker(cursorYOffset?: number): IMarker | undefined;
|
||||
registerMarker(cursorYOffset?: number): IMarker;
|
||||
|
||||
/*
|
||||
* Disposes of the terminal, detaching it from the DOM and removing any
|
||||
|
||||
Reference in New Issue
Block a user