Skip to content

Commit 1a62c8a

Browse files
committed
Require ctrl on link provider link
Fixes microsoft#101473
1 parent cac8f2e commit 1a62c8a

2 files changed

Lines changed: 5 additions & 2 deletions

File tree

src/vs/workbench/contrib/terminal/browser/links/terminalExternalLinkProviderAdapter.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import { TerminalLink } from 'vs/workbench/contrib/terminal/browser/links/termin
99
import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation';
1010
import { TerminalBaseLinkProvider } from 'vs/workbench/contrib/terminal/browser/links/terminalBaseLinkProvider';
1111
import { ITerminalExternalLinkProvider, ITerminalInstance } from 'vs/workbench/contrib/terminal/browser/terminal';
12+
import { XtermLinkMatcherHandler } from 'vs/workbench/contrib/terminal/browser/links/terminalLinkManager';
1213

1314
/**
1415
* An adapter to convert a simple external link provider into an internal link provider that
@@ -20,6 +21,7 @@ export class TerminalExternalLinkProviderAdapter extends TerminalBaseLinkProvide
2021
private readonly _xterm: Terminal,
2122
private readonly _instance: ITerminalInstance,
2223
private readonly _externalLinkProvider: ITerminalExternalLinkProvider,
24+
private readonly _wrapLinkHandler: (handler: (event: MouseEvent | undefined, link: string) => void) => XtermLinkMatcherHandler,
2325
private readonly _tooltipCallback: (link: TerminalLink, viewportRange: IViewportRange, modifierDownCallback?: () => void, modifierUpCallback?: () => void) => void,
2426
@IInstantiationService private readonly _instantiationService: IInstantiationService
2527
) {
@@ -58,7 +60,8 @@ export class TerminalExternalLinkProviderAdapter extends TerminalBaseLinkProvide
5860
endLineNumber: 1
5961
}, startLine);
6062
const matchingText = lineContent.substr(link.startIndex, link.length) || '';
61-
return this._instantiationService.createInstance(TerminalLink, bufferRange, matchingText, this._xterm.buffer.active.viewportY, (_, text) => link.activate(text), this._tooltipCallback, true, link.label);
63+
const activateLink = this._wrapLinkHandler((_, text) => link.activate(text));
64+
return this._instantiationService.createInstance(TerminalLink, bufferRange, matchingText, this._xterm.buffer.active.viewportY, activateLink, this._tooltipCallback, true, link.label);
6265
});
6366
}
6467
}

src/vs/workbench/contrib/terminal/browser/links/terminalLinkManager.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -156,7 +156,7 @@ export class TerminalLinkManager extends DisposableStore {
156156
}
157157

158158
public registerExternalLinkProvider(instance: ITerminalInstance, linkProvider: ITerminalExternalLinkProvider): IDisposable {
159-
const wrappedLinkProvider = this._instantiationService.createInstance(TerminalExternalLinkProviderAdapter, this._xterm, instance, linkProvider, this._tooltipCallback2.bind(this));
159+
const wrappedLinkProvider = this._instantiationService.createInstance(TerminalExternalLinkProviderAdapter, this._xterm, instance, linkProvider, this._wrapLinkHandler.bind(this), this._tooltipCallback2.bind(this));
160160
const newLinkProvider = this._xterm.registerLinkProvider(wrappedLinkProvider);
161161
// Re-register the standard link providers so they are a lower priority that the new one
162162
this._registerStandardLinkProviders();

0 commit comments

Comments
 (0)