From 48f579977ef9b7b5930e1712f5e5d0ba0fb01368 Mon Sep 17 00:00:00 2001 From: Daniel Imms Date: Fri, 17 Apr 2020 18:46:01 -0700 Subject: [PATCH] Allow hiding of link underlines See microsoft/vscode#95080 --- src/browser/Linkifier2.ts | 4 +++- src/browser/Types.d.ts | 1 + typings/xterm.d.ts | 5 +++++ 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/browser/Linkifier2.ts b/src/browser/Linkifier2.ts index 7030e5d2..90c9668c 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 c2b8604e..fc790a7e 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 79379058..9830f4d9 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.