Update API to use IViewportRange and IViewportCellPosition

This commit is contained in:
Jon Bockhorst
2019-10-17 12:25:42 -05:00
parent 040f9f49d9
commit 08475eb495
3 changed files with 29 additions and 21 deletions
+1 -1
View File
@@ -306,7 +306,7 @@ export class Linkifier implements ILinkifier {
e => { e => {
this._onLinkTooltip.fire(this._createLinkHoverEvent(x1, y1, x2, y2, fg)); this._onLinkTooltip.fire(this._createLinkHoverEvent(x1, y1, x2, y2, fg));
if (matcher.hoverTooltipCallback) { if (matcher.hoverTooltipCallback) {
matcher.hoverTooltipCallback(e, uri, { startRow: y1, startColumn: x1, endRow: y2, endColumn: x2 }); matcher.hoverTooltipCallback(e, uri, { start: { row: y1, col: x1 }, end: { row: y2, col: x2 } });
} }
}, },
() => { () => {
+9 -6
View File
@@ -43,15 +43,18 @@ export interface IViewport extends IDisposable {
onThemeChange(colors: IColorSet): void; onThemeChange(colors: IColorSet): void;
} }
export interface ILinkLocation { export interface IViewportRange {
startColumn: number; start: IViewportCellPosition;
startRow: number; end: IViewportCellPosition;
endColumn: number; }
endRow: number;
export interface IViewportCellPosition {
col: number;
row: number;
} }
export type LinkMatcherHandler = (event: MouseEvent, uri: string) => void; export type LinkMatcherHandler = (event: MouseEvent, uri: string) => void;
export type LinkMatcherHoverTooltipCallback = (event: MouseEvent, uri: string, position: ILinkLocation) => void; export type LinkMatcherHoverTooltipCallback = (event: MouseEvent, uri: string, position: IViewportRange) => void;
export type LinkMatcherValidationCallback = (uri: string, callback: (isValid: boolean) => void) => void; export type LinkMatcherValidationCallback = (uri: string, callback: (isValid: boolean) => void) => void;
export interface ILinkMatcher { export interface ILinkMatcher {
+19 -14
View File
@@ -269,7 +269,7 @@ declare module 'xterm' {
/** /**
* A callback that fires when the mouse hovers over a link for a moment. * A callback that fires when the mouse hovers over a link for a moment.
*/ */
tooltipCallback?: (event: MouseEvent, uri: string, location: ILinkLocation) => boolean | void; tooltipCallback?: (event: MouseEvent, uri: string, location: IViewportRange) => boolean | void;
/** /**
* A callback that fires when the mouse leaves a link. Note that this can * A callback that fires when the mouse leaves a link. Note that this can
@@ -843,28 +843,33 @@ declare module 'xterm' {
} }
/** /**
* An object representing a link location within the terminal. * An object representing a range within the viewport of the terminal.
*/ */
interface ILinkLocation { interface IViewportRange {
/** /**
* The start column of the link. * The start cell of the range.
*/ */
startColumn: number; start: IViewportCellPosition;
/** /**
* The start row of the link. * The end cell of the range.
*/ */
startRow: number; end: IViewportCellPosition;
}
/**
* An object representing a cell within the viewport of the terminal.
*/
interface IViewportCellPosition {
/**
* The column of the cell.
*/
col: number;
/** /**
* The end column of the link. * The row of the cell.
*/ */
endColumn: number; row: number;
/**
* The end row of the link.
*/
endRow: number;
} }
/** /**