diff --git a/src/browser/Linkifier2.ts b/src/browser/Linkifier2.ts index 7030e5d2b0..90c9668c1a 100644 --- a/src/browser/Linkifier2.ts +++ b/src/browser/Linkifier2.ts @@ -184,7 +184,9 @@ export class Linkifier2 implements ILinkifier2 { const range = link.range; const scrollOffset = this._bufferService.buffer.ydisp; - this._onLinkHover.fire(this._createLinkHoverEvent(range.start.x - 1, range.start.y - scrollOffset - 1, range.end.x, range.end.y - scrollOffset - 1, undefined)); + if (!link.hideUnderline) { + this._onLinkHover.fire(this._createLinkHoverEvent(range.start.x - 1, range.start.y - scrollOffset - 1, range.end.x, range.end.y - scrollOffset - 1, undefined)); + } element.classList.add('xterm-cursor-pointer'); if (link.hover) { diff --git a/src/browser/Types.d.ts b/src/browser/Types.d.ts index c2b8604eb2..fc790a7ec7 100644 --- a/src/browser/Types.d.ts +++ b/src/browser/Types.d.ts @@ -172,6 +172,7 @@ interface ILinkProvider { interface ILink { range: IBufferRange; text: string; + hideUnderline?: boolean; activate(event: MouseEvent, text: string): void; hover?(event: MouseEvent, text: string): void; leave?(event: MouseEvent, text: string): void; diff --git a/typings/xterm.d.ts b/typings/xterm.d.ts index 79379058ca..9830f4d9ff 100644 --- a/typings/xterm.d.ts +++ b/typings/xterm.d.ts @@ -1120,6 +1120,11 @@ declare module 'xterm' { */ text: string; + /** + * Whether to hide the link's underline. + */ + hideUnderline?: boolean; + /** * Calls when the link is activated. * @param event The mouse event triggering the callback.