Skip to content

Commit ce71a91

Browse files
committed
fix: ensure cloneMarker stays within the terminal bottom bounds
Signed-off-by: Chapman Pendery <[email protected]>
1 parent fe5152a commit ce71a91

File tree

1 file changed

+4
-2
lines changed

1 file changed

+4
-2
lines changed

src/vs/platform/terminal/common/capabilities/commandDetectionCapability.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import { Emitter } from 'vs/base/common/event';
99
import { Disposable, MandatoryMutableDisposable, MutableDisposable } from 'vs/base/common/lifecycle';
1010
import { ILogService } from 'vs/platform/log/common/log';
1111
import { CommandInvalidationReason, ICommandDetectionCapability, ICommandInvalidationRequest, IHandleCommandOptions, ISerializedCommandDetectionCapability, ISerializedTerminalCommand, ITerminalCommand, IXtermMarker, TerminalCapability } from 'vs/platform/terminal/common/capabilities/capabilities';
12-
import { ITerminalOutputMatcher } from 'vs/platform/terminal/common/terminal';
12+
import { ITerminalLogService, ITerminalOutputMatcher } from 'vs/platform/terminal/common/terminal';
1313

1414
// Importing types is safe in any layer
1515
// eslint-disable-next-line local/code-import-patterns
@@ -1068,5 +1068,7 @@ function getXtermLineContent(buffer: IBuffer, lineStart: number, lineEnd: number
10681068
}
10691069

10701070
function cloneMarker(xterm: Terminal, marker: IXtermMarker, offset: number = 0): IXtermMarker | undefined {
1071-
return xterm.registerMarker(Math.max(0, marker.line - (xterm.buffer.active.baseY + xterm.buffer.active.cursorY) + offset));
1071+
const cursorY = xterm.buffer.active.baseY + xterm.buffer.active.cursorY;
1072+
const cursorYOffset = marker.line - cursorY + offset;
1073+
return xterm.registerMarker((cursorY + cursorYOffset) < 0 ? 0 : cursorYOffset);
10721074
}

0 commit comments

Comments
 (0)