diff --git a/src/Terminal.test.ts b/src/Terminal.test.ts index e2bd4d56..4d590699 100644 --- a/src/Terminal.test.ts +++ b/src/Terminal.test.ts @@ -9,7 +9,7 @@ import { DEFAULT_ATTR_DATA } from 'common/buffer/BufferLine'; import { CellData } from 'common/buffer/CellData'; import { IBufferService, IUnicodeService } from 'common/services/Services'; import { Linkifier } from 'browser/Linkifier'; -import { MockLogService, MockOptionsService, MockUnicodeService } from 'common/TestUtils.test'; +import { MockLogService, MockUnicodeService } from 'common/TestUtils.test'; import { IRegisteredLinkMatcher, IMouseZoneManager, IMouseZone } from 'browser/Types'; const INIT_COLS = 80; @@ -1407,7 +1407,7 @@ describe('Terminal', () => { class TestLinkifier extends Linkifier { constructor(bufferService: IBufferService, unicodeService: IUnicodeService) { - super(bufferService, new MockLogService(), new MockOptionsService(), unicodeService); + super(bufferService, new MockLogService(), unicodeService); Linkifier._timeBeforeLatency = 0; } diff --git a/src/Terminal.ts b/src/Terminal.ts index ea689877..e3a3801d 100644 --- a/src/Terminal.ts +++ b/src/Terminal.ts @@ -257,10 +257,10 @@ export class Terminal extends Disposable implements ITerminal, IDisposable, IInp } if (!this.linkifier) { - this.linkifier = new Linkifier(this._bufferService, this._logService, this.optionsService, this.unicodeService); + this.linkifier = this._instantiationService.createInstance(Linkifier); } if (!this.linkifier2) { - this.linkifier2 = new Linkifier2(this._bufferService); + this.linkifier2 = this._instantiationService.createInstance(Linkifier2); } if (this.options.windowsMode) { diff --git a/src/browser/Linkifier.test.ts b/src/browser/Linkifier.test.ts index c0dc6bf6..81741df4 100644 --- a/src/browser/Linkifier.test.ts +++ b/src/browser/Linkifier.test.ts @@ -9,13 +9,13 @@ import { IBufferLine } from 'common/Types'; import { Linkifier } from 'browser/Linkifier'; import { BufferLine } from 'common/buffer/BufferLine'; import { CellData } from 'common/buffer/CellData'; -import { MockLogService, MockBufferService, MockOptionsService } from 'common/TestUtils.test'; +import { MockLogService, MockBufferService } from 'common/TestUtils.test'; import { IBufferService } from 'common/services/Services'; import { UnicodeService } from 'common/services/UnicodeService'; class TestLinkifier extends Linkifier { constructor(bufferService: IBufferService) { - super(bufferService, new MockLogService(), new MockOptionsService(), new UnicodeService()); + super(bufferService, new MockLogService(), new UnicodeService()); Linkifier._timeBeforeLatency = 0; } diff --git a/src/browser/Linkifier.ts b/src/browser/Linkifier.ts index ca45ef2a..6d25e730 100644 --- a/src/browser/Linkifier.ts +++ b/src/browser/Linkifier.ts @@ -43,10 +43,9 @@ export class Linkifier implements ILinkifier { public get onLinkTooltip(): IEvent { return this._onLinkTooltip.event; } constructor( - protected readonly _bufferService: IBufferService, - private readonly _logService: ILogService, - private readonly _optionsService: IOptionsService, - private readonly _unicodeService: IUnicodeService + @IBufferService protected readonly _bufferService: IBufferService, + @ILogService private readonly _logService: ILogService, + @IUnicodeService private readonly _unicodeService: IUnicodeService ) { this._rowsToLinkify = { start: undefined, diff --git a/src/browser/Linkifier2.ts b/src/browser/Linkifier2.ts index bcdbffe6..54812169 100644 --- a/src/browser/Linkifier2.ts +++ b/src/browser/Linkifier2.ts @@ -32,7 +32,7 @@ export class Linkifier2 implements ILinkifier2 { public get onHideLinkUnderline(): IEvent { return this._onHideLinkUnderline.event; } constructor( - private readonly _bufferService: IBufferService + @IBufferService private readonly _bufferService: IBufferService ) { } diff --git a/src/common/TestUtils.test.ts b/src/common/TestUtils.test.ts index 7e024140..cfa1abd7 100644 --- a/src/common/TestUtils.test.ts +++ b/src/common/TestUtils.test.ts @@ -109,6 +109,7 @@ export class MockOptionsService implements IOptionsService { // defaults to V6 always to keep tests passing export class MockUnicodeService implements IUnicodeService { + public serviceBrand: any; private _provider = new UnicodeV6(); public register(provider: IUnicodeVersionProvider): void { throw new Error('Method not implemented.'); diff --git a/src/common/services/Services.ts b/src/common/services/Services.ts index 0f3ab374..8a3e9b28 100644 --- a/src/common/services/Services.ts +++ b/src/common/services/Services.ts @@ -311,6 +311,7 @@ export interface ITheme { export const IUnicodeService = createDecorator('UnicodeService'); export interface IUnicodeService { + serviceBrand: any; /** Register an Unicode version provider. */ register(provider: IUnicodeVersionProvider): void; /** Registered Unicode versions. */ diff --git a/src/common/services/UnicodeService.ts b/src/common/services/UnicodeService.ts index 14b9979f..e96b7579 100644 --- a/src/common/services/UnicodeService.ts +++ b/src/common/services/UnicodeService.ts @@ -8,6 +8,8 @@ import { UnicodeV6 } from 'common/input/UnicodeV6'; export class UnicodeService implements IUnicodeService { + public serviceBrand: any; + private _providers: {[key: string]: IUnicodeVersionProvider} = Object.create(null); private _active: string = ''; private _activeProvider: IUnicodeVersionProvider;