Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion src/browser/Linkifier.ts
Original file line number Diff line number Diff line change
Expand Up @@ -306,7 +306,7 @@ export class Linkifier implements ILinkifier {
e => {
this._onLinkTooltip.fire(this._createLinkHoverEvent(x1, y1, x2, y2, fg));
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 } });
}
},
() => {
Expand Down
15 changes: 9 additions & 6 deletions src/browser/Types.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -43,15 +43,18 @@ export interface IViewport extends IDisposable {
onThemeChange(colors: IColorSet): void;
}

export interface ILinkLocation {
startColumn: number;
startRow: number;
endColumn: number;
endRow: number;
export interface IViewportRange {
start: IViewportCellPosition;
end: IViewportCellPosition;
}

export interface IViewportCellPosition {
col: number;
row: number;
}

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 interface ILinkMatcher {
Expand Down
27 changes: 16 additions & 11 deletions typings/xterm.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -269,7 +269,7 @@ declare module 'xterm' {
/**
* 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
Expand Down Expand Up @@ -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.
Comment thread
Tyriar marked this conversation as resolved.
Outdated
*/
interface IViewportCellPosition {
/**
* The end column of the link.
* The column of the cell.
*/
endColumn: number;
col: number;

/**
* The end row of the link.
* The row of the cell.
*/
endRow: number;
row: number;
}

/**
Expand Down