mirror of
https://github.com/wavetermdev/xterm.js.git
synced 2026-08-05 13:43:48 -07:00
Make link matcher API the default for web links addon
This commit is contained in:
@@ -43,7 +43,8 @@ export class WebLinksAddon implements ITerminalAddon {
|
||||
|
||||
constructor(
|
||||
private _handler: (event: MouseEvent, uri: string) => void = handleLink,
|
||||
private _options: ILinkMatcherOptions = {}
|
||||
private _options: ILinkMatcherOptions = {},
|
||||
private _useLinkProvider: boolean = false
|
||||
) {
|
||||
this._options.matchIndex = 1;
|
||||
}
|
||||
@@ -51,10 +52,12 @@ export class WebLinksAddon implements ITerminalAddon {
|
||||
public activate(terminal: Terminal): void {
|
||||
this._terminal = terminal;
|
||||
|
||||
if ('registerLinkProvider' in this._terminal) {
|
||||
if (this._useLinkProvider && 'registerLinkProvider' in this._terminal) {
|
||||
console.log('link provider');
|
||||
this._linkProvider = this._terminal.registerLinkProvider(new WebLinkProvider(this._terminal, strictUrlRegex, this._handler));
|
||||
} else {
|
||||
// HACK: This is an older version of xterm.js, use registerLinkMatcher
|
||||
console.log('link matcher');
|
||||
// TODO: This should be removed eventually
|
||||
this._linkMatcherId = (<Terminal>this._terminal).registerLinkMatcher(strictUrlRegex, this._handler, this._options);
|
||||
}
|
||||
}
|
||||
|
||||
+2
-1
@@ -152,7 +152,8 @@ function createTerminal(): void {
|
||||
addons.serialize.instance = new SerializeAddon();
|
||||
addons.fit.instance = new FitAddon();
|
||||
addons.unicode11.instance = new Unicode11Addon();
|
||||
addons['web-links'].instance = new WebLinksAddon();
|
||||
// TODO: Remove arguments when link provider API is the default
|
||||
addons['web-links'].instance = new WebLinksAddon(undefined, undefined, true);
|
||||
typedTerm.loadAddon(addons.fit.instance);
|
||||
typedTerm.loadAddon(addons.search.instance);
|
||||
typedTerm.loadAddon(addons.serialize.instance);
|
||||
|
||||
@@ -173,7 +173,7 @@ export class Linkifier2 implements ILinkifier2 {
|
||||
|
||||
// Add listener for rerendering
|
||||
if (this._renderService) {
|
||||
this._linkCacheDisposables.push(this._renderService.onRender((e: { start: number, end: number }) => {
|
||||
this._linkCacheDisposables.push(this._renderService.onRender(e => {
|
||||
this._clearCurrentLink(e.start + 1 + this._bufferService.buffer.ydisp, e.end + 1 + this._bufferService.buffer.ydisp);
|
||||
}));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user