Refine IViewportRange API to use 'cursor positions' for x value

Fixes #2484
This commit is contained in:
Daniel
2019-10-25 04:43:34 -07:00
parent 080188c468
commit 851fb7ae38
3 changed files with 20 additions and 15 deletions
+1 -1
View File
@@ -308,7 +308,7 @@ export class Linkifier implements ILinkifier {
if (matcher.hoverTooltipCallback) {
// Note that IViewportRange use 1-based coordinates to align with escape sequences such
// as CUP which use 1,1 as the default for row/col
matcher.hoverTooltipCallback(e, uri, { start: { row: y1 + 1, col: x1 + 1 }, end: { row: y2 + 1, col: x2 } });
matcher.hoverTooltipCallback(e, uri, { start: { x: x1, y: y1 }, end: { x: x2, y: y2 } });
}
},
() => {
+5 -5
View File
@@ -44,13 +44,13 @@ export interface IViewport extends IDisposable {
}
export interface IViewportRange {
start: IViewportCellPosition;
end: IViewportCellPosition;
start: IViewportRangePosition;
end: IViewportRangePosition;
}
export interface IViewportCellPosition {
col: number;
row: number;
export interface IViewportRangePosition {
x: number;
y: number;
}
export type LinkMatcherHandler = (event: MouseEvent, uri: string) => void;
+14 -9
View File
@@ -862,29 +862,34 @@ declare module 'xterm' {
*/
export interface IViewportRange {
/**
* The start cell of the range.
* The start of the range.
*/
start: IViewportCellPosition;
start: IViewportRangePosition;
/**
* The end cell of the range.
* The end of the range.
*/
end: IViewportCellPosition;
end: IViewportRangePosition;
}
/**
* An object representing a cell position within the viewport of the terminal.
*/
interface IViewportCellPosition {
interface IViewportRangePosition {
/**
* The column of the cell. Note that this is 1-based; the first column is column 1.
* The x position of the cell. This is a 0-based index that refers to the
* space in between columns, not the column itself. Index 0 refers to the
* left side of the viewport, index `Terminal.cols` refers to the right side
* of the viewport. This can be thought of as how a cursor is positioned in
* a text editor.
*/
col: number;
x: number;
/**
* The row of the cell. Note that this is 1-based; the first row is row 1.
* The y position of the cell. This is a 0-based index that refers to a
* specific row.
*/
row: number;
y: number;
}
/**