Separate link provider service from linkifier

This commit is contained in:
Daniel Imms
2023-12-23 08:21:35 -08:00
parent b3737d6ff0
commit 8733d2cfa2
11 changed files with 77 additions and 47 deletions
+2 -7
View File
@@ -7,7 +7,7 @@ import { IEvent } from 'common/EventEmitter';
import { CharData, IColor, ICoreTerminal, ITerminalOptions } from 'common/Types';
import { IBuffer } from 'common/buffer/Types';
import { IDisposable, Terminal as ITerminalApi } from '@xterm/xterm';
import { IMouseService, IRenderService } from './services/Services';
import { IMouseService, IRenderService } from 'browser/services/Services';
/**
* A portion of the public API that are implemented identially internally and simply passed through.
@@ -18,9 +18,9 @@ export interface ITerminal extends InternalPassthroughApis, ICoreTerminal {
screenElement: HTMLElement | undefined;
browser: IBrowser;
buffer: IBuffer;
linkifier: ILinkifier2 | undefined;
viewport: IViewport | undefined;
options: Required<ITerminalOptions>;
linkifier2: ILinkifier2;
onBlur: IEvent<void>;
onFocus: IEvent<void>;
@@ -130,11 +130,6 @@ export interface ILinkifier2 extends IDisposable {
readonly currentLink: ILinkWithState | undefined;
attachToDom(element: HTMLElement, mouseService: IMouseService, renderService: IRenderService): void;
registerLinkProvider(linkProvider: ILinkProvider): IDisposable;
}
interface ILinkProvider {
provideLinks(y: number, callback: (links: ILink[] | undefined) => void): void;
}
interface ILink {