From 3408a0537f6c89d2155c933669830455c6562012 Mon Sep 17 00:00:00 2001 From: Daniel Imms Date: Sat, 11 Apr 2020 07:22:20 -0700 Subject: [PATCH 1/7] Add linkTooltipHoverDuration setting Fixes #2822 --- src/browser/MouseZoneManager.ts | 9 ++++----- src/common/services/OptionsService.ts | 1 + src/common/services/Services.ts | 1 + typings/xterm.d.ts | 11 +++++++++-- 4 files changed, 15 insertions(+), 7 deletions(-) diff --git a/src/browser/MouseZoneManager.ts b/src/browser/MouseZoneManager.ts index d697c1334..59b6b0f1d 100644 --- a/src/browser/MouseZoneManager.ts +++ b/src/browser/MouseZoneManager.ts @@ -7,9 +7,7 @@ import { Disposable } from 'common/Lifecycle'; import { addDisposableDomListener } from 'browser/Lifecycle'; import { IMouseService, ISelectionService } from 'browser/services/Services'; import { IMouseZoneManager, IMouseZone } from 'browser/Types'; -import { IBufferService } from 'common/services/Services'; - -const HOVER_DURATION = 500; +import { IBufferService, IOptionsService } from 'common/services/Services'; /** * The MouseZoneManager allows components to register zones within the terminal @@ -37,7 +35,8 @@ export class MouseZoneManager extends Disposable implements IMouseZoneManager { private readonly _screenElement: HTMLElement, @IBufferService private readonly _bufferService: IBufferService, @IMouseService private readonly _mouseService: IMouseService, - @ISelectionService private readonly _selectionService: ISelectionService + @ISelectionService private readonly _selectionService: ISelectionService, + @IOptionsService private readonly _optionsService: IOptionsService ) { super(); @@ -151,7 +150,7 @@ export class MouseZoneManager extends Disposable implements IMouseZoneManager { } // Restart the tooltip timeout - this._tooltipTimeout = setTimeout(() => this._onTooltip(e), HOVER_DURATION); + this._tooltipTimeout = window.setTimeout(() => this._onTooltip(e), this._optionsService.options.linkTooltipHoverDuration); } private _onTooltip(e: MouseEvent): void { diff --git a/src/common/services/OptionsService.ts b/src/common/services/OptionsService.ts index 44a55d33d..614eee3a1 100644 --- a/src/common/services/OptionsService.ts +++ b/src/common/services/OptionsService.ts @@ -31,6 +31,7 @@ export const DEFAULT_OPTIONS: ITerminalOptions = Object.freeze({ fontWeight: 'normal', fontWeightBold: 'bold', lineHeight: 1.0, + linkTooltipHoverDuration: 500, letterSpacing: 0, logLevel: 'info', scrollback: 1000, diff --git a/src/common/services/Services.ts b/src/common/services/Services.ts index fc9f9e203..0f3ab374f 100644 --- a/src/common/services/Services.ts +++ b/src/common/services/Services.ts @@ -262,6 +262,7 @@ export interface ITerminalOptions { fontWeightBold: FontWeight; letterSpacing: number; lineHeight: number; + linkTooltipHoverDuration: number; logLevel: LogLevel; macOptionIsMeta: boolean; macOptionClickForcesSelection: boolean; diff --git a/typings/xterm.d.ts b/typings/xterm.d.ts index 9445d0754..9a06448c8 100644 --- a/typings/xterm.d.ts +++ b/typings/xterm.d.ts @@ -118,7 +118,7 @@ declare module 'xterm' { fontWeightBold?: FontWeight; /** - * The spacing in whole pixels between characters.. + * The spacing in whole pixels between characters. */ letterSpacing?: number; @@ -127,6 +127,12 @@ declare module 'xterm' { */ lineHeight?: number; + /** + * The duration in milliseconds before link tooltip events fire when + * hovering on a link. + */ + linkTooltipHoverDuration?: number; + /** * What log level to use, this will log for all levels below and including * what is set: @@ -305,7 +311,8 @@ declare module 'xterm' { validationCallback?: (uri: string, callback: (isValid: boolean) => void) => void; /** - * A callback that fires when the mouse hovers over a link for a moment. + * A callback that fires when the mouse hovers over a link for a period of + * time (defined by {@link ITerminalOptions.linkTooltipHoverDuration}). */ tooltipCallback?: (event: MouseEvent, uri: string, location: IViewportRange) => boolean | void; From f070be8dd347041cf26c676cd7bf921dbcda71c4 Mon Sep 17 00:00:00 2001 From: Daniel Imms Date: Sat, 11 Apr 2020 07:23:53 -0700 Subject: [PATCH 2/7] Add deprecated with explanation --- typings/xterm.d.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/typings/xterm.d.ts b/typings/xterm.d.ts index 9a06448c8..79379058c 100644 --- a/typings/xterm.d.ts +++ b/typings/xterm.d.ts @@ -130,6 +130,7 @@ declare module 'xterm' { /** * The duration in milliseconds before link tooltip events fire when * hovering on a link. + * @deprecated This will be removed when the link matcher API is removed. */ linkTooltipHoverDuration?: number; From 55f9203f60e8e74557a536c8efcf3c4e504ae9db Mon Sep 17 00:00:00 2001 From: Daniel Imms Date: Sat, 11 Apr 2020 09:51:28 -0700 Subject: [PATCH 3/7] Only fire IRenderService.onRender when buffer changes occurred Fixes #2836 --- addons/xterm-addon-webgl/src/WebglRenderer.ts | 10 +++++----- .../src/renderLayer/CursorRenderLayer.ts | 4 ++-- src/TestUtils.test.ts | 4 ++-- src/browser/Linkifier2.ts | 4 ++-- src/browser/renderer/CursorRenderLayer.ts | 10 +++++----- src/browser/renderer/Renderer.ts | 8 ++++---- src/browser/renderer/Types.d.ts | 8 ++++++-- src/browser/renderer/dom/DomRenderer.ts | 5 ++--- src/browser/services/RenderService.ts | 15 +++++++++++---- src/browser/services/Services.ts | 4 ++++ 10 files changed, 43 insertions(+), 29 deletions(-) diff --git a/addons/xterm-addon-webgl/src/WebglRenderer.ts b/addons/xterm-addon-webgl/src/WebglRenderer.ts index b06ff3c38..8d52a35e6 100644 --- a/addons/xterm-addon-webgl/src/WebglRenderer.ts +++ b/addons/xterm-addon-webgl/src/WebglRenderer.ts @@ -16,7 +16,7 @@ import { Disposable } from 'common/Lifecycle'; import { NULL_CELL_CODE } from 'common/buffer/Constants'; import { Terminal, IEvent } from 'xterm'; import { IRenderLayer } from './renderLayer/Types'; -import { IRenderDimensions, IRenderer, IRequestRefreshRowsEvent } from 'browser/renderer/Types'; +import { IRenderDimensions, IRenderer, IRequestRedrawEvent } from 'browser/renderer/Types'; import { IColorSet } from 'browser/Types'; import { EventEmitter } from 'common/EventEmitter'; import { CellData } from 'common/buffer/CellData'; @@ -39,8 +39,8 @@ export class WebglRenderer extends Disposable implements IRenderer { private _core: ITerminal; private _isAttached: boolean; - private _onRequestRefreshRows = new EventEmitter(); - public get onRequestRefreshRows(): IEvent { return this._onRequestRefreshRows.event; } + private _onRequestRedraw = new EventEmitter(); + public get onRequestRedraw(): IEvent { return this._onRequestRedraw.event; } constructor( private _terminal: Terminal, @@ -53,7 +53,7 @@ export class WebglRenderer extends Disposable implements IRenderer { this._renderLayers = [ new LinkRenderLayer(this._core.screenElement, 2, this._colors, this._core), - new CursorRenderLayer(this._core.screenElement, 3, this._colors, this._onRequestRefreshRows) + new CursorRenderLayer(this._core.screenElement, 3, this._colors, this._onRequestRedraw) ]; this.dimensions = { scaledCharWidth: 0, @@ -178,7 +178,7 @@ export class WebglRenderer extends Disposable implements IRenderer { this._rectangleRenderer.updateSelection(this._model.selection, columnSelectMode); this._glyphRenderer.updateSelection(this._model, columnSelectMode); - this._onRequestRefreshRows.fire({ start: 0, end: this._terminal.rows - 1 }); + this._onRequestRedraw.fire({ start: 0, end: this._terminal.rows - 1 }); } public onCursorMove(): void { diff --git a/addons/xterm-addon-webgl/src/renderLayer/CursorRenderLayer.ts b/addons/xterm-addon-webgl/src/renderLayer/CursorRenderLayer.ts index 75201f47d..b2e834d30 100644 --- a/addons/xterm-addon-webgl/src/renderLayer/CursorRenderLayer.ts +++ b/addons/xterm-addon-webgl/src/renderLayer/CursorRenderLayer.ts @@ -8,7 +8,7 @@ import { BaseRenderLayer } from './BaseRenderLayer'; import { ICellData } from 'common/Types'; import { CellData } from 'common/buffer/CellData'; import { IColorSet } from 'browser/Types'; -import { IRenderDimensions, IRequestRefreshRowsEvent } from 'browser/renderer/Types'; +import { IRenderDimensions, IRequestRedrawEvent } from 'browser/renderer/Types'; import { IEventEmitter } from 'common/EventEmitter'; interface ICursorState { @@ -34,7 +34,7 @@ export class CursorRenderLayer extends BaseRenderLayer { container: HTMLElement, zIndex: number, colors: IColorSet, - private _onRequestRefreshRowsEvent: IEventEmitter + private _onRequestRefreshRowsEvent: IEventEmitter ) { super(container, 'cursor', zIndex, true, colors); this._state = { diff --git a/src/TestUtils.test.ts b/src/TestUtils.test.ts index 5d8347abb..9f0b2701c 100644 --- a/src/TestUtils.test.ts +++ b/src/TestUtils.test.ts @@ -3,7 +3,7 @@ * @license MIT */ -import { IRenderer, IRenderDimensions, CharacterJoinerHandler, IRequestRefreshRowsEvent } from 'browser/renderer/Types'; +import { IRenderer, IRenderDimensions, CharacterJoinerHandler, IRequestRedrawEvent } from 'browser/renderer/Types'; import { IInputHandlingTerminal, ICompositionHelper, ITerminal, IBrowser, ITerminalOptions } from './Types'; import { IBuffer, IBufferStringIterator, IBufferSet } from 'common/buffer/Types'; import { IBufferLine, ICellData, IAttributeData, ICircularList, XtermListener, ICharset } from 'common/Types'; @@ -281,7 +281,7 @@ export class MockBuffer implements IBuffer { } export class MockRenderer implements IRenderer { - onRequestRefreshRows: IEvent; + onRequestRedraw: IEvent; onCanvasResize: IEvent<{ width: number, height: number }>; onRender: IEvent<{ start: number, end: number }>; dispose(): void { diff --git a/src/browser/Linkifier2.ts b/src/browser/Linkifier2.ts index 893677188..1a076bc55 100644 --- a/src/browser/Linkifier2.ts +++ b/src/browser/Linkifier2.ts @@ -50,7 +50,7 @@ export class Linkifier2 implements ILinkifier2 { this._renderService = renderService; this._element.addEventListener('mousemove', this._onMouseMove.bind(this)); - this._element.addEventListener('click', this._onMouseDown.bind(this)); + this._element.addEventListener('click', this._onClick.bind(this)); } private _onMouseMove(event: MouseEvent): void { @@ -125,7 +125,7 @@ export class Linkifier2 implements ILinkifier2 { }); } - private _onMouseDown(event: MouseEvent): void { + private _onClick(event: MouseEvent): void { if (!this._element || !this._mouseService || !this._currentLink) { return; } diff --git a/src/browser/renderer/CursorRenderLayer.ts b/src/browser/renderer/CursorRenderLayer.ts index 607180ae0..123075c66 100644 --- a/src/browser/renderer/CursorRenderLayer.ts +++ b/src/browser/renderer/CursorRenderLayer.ts @@ -3,7 +3,7 @@ * @license MIT */ -import { IRenderDimensions, IRequestRefreshRowsEvent } from 'browser/renderer/Types'; +import { IRenderDimensions, IRequestRedrawEvent } from 'browser/renderer/Types'; import { BaseRenderLayer } from 'browser/renderer/BaseRenderLayer'; import { ICellData } from 'common/Types'; import { CellData } from 'common/buffer/CellData'; @@ -36,7 +36,7 @@ export class CursorRenderLayer extends BaseRenderLayer { zIndex: number, colors: IColorSet, rendererId: number, - private _onRequestRefreshRowsEvent: IEventEmitter, + private _onRequestRedraw: IEventEmitter, readonly bufferService: IBufferService, readonly optionsService: IOptionsService, private readonly _coreService: ICoreService, @@ -83,14 +83,14 @@ export class CursorRenderLayer extends BaseRenderLayer { if (this._cursorBlinkStateManager) { this._cursorBlinkStateManager.pause(); } - this._onRequestRefreshRowsEvent.fire({ start: this._bufferService.buffer.y, end: this._bufferService.buffer.y }); + this._onRequestRedraw.fire({ start: this._bufferService.buffer.y, end: this._bufferService.buffer.y }); } public onFocus(): void { if (this._cursorBlinkStateManager) { this._cursorBlinkStateManager.resume(); } else { - this._onRequestRefreshRowsEvent.fire({ start: this._bufferService.buffer.y, end: this._bufferService.buffer.y }); + this._onRequestRedraw.fire({ start: this._bufferService.buffer.y, end: this._bufferService.buffer.y }); } } @@ -107,7 +107,7 @@ export class CursorRenderLayer extends BaseRenderLayer { } // Request a refresh from the terminal as management of rendering is being // moved back to the terminal - this._onRequestRefreshRowsEvent.fire({ start: this._bufferService.buffer.y, end: this._bufferService.buffer.y }); + this._onRequestRedraw.fire({ start: this._bufferService.buffer.y, end: this._bufferService.buffer.y }); } public onCursorMove(): void { diff --git a/src/browser/renderer/Renderer.ts b/src/browser/renderer/Renderer.ts index a1161d4f2..4259add4e 100644 --- a/src/browser/renderer/Renderer.ts +++ b/src/browser/renderer/Renderer.ts @@ -6,7 +6,7 @@ import { TextRenderLayer } from 'browser/renderer/TextRenderLayer'; import { SelectionRenderLayer } from 'browser/renderer/SelectionRenderLayer'; import { CursorRenderLayer } from 'browser/renderer/CursorRenderLayer'; -import { IRenderLayer, IRenderer, IRenderDimensions, CharacterJoinerHandler, ICharacterJoinerRegistry, IRequestRefreshRowsEvent } from 'browser/renderer/Types'; +import { IRenderLayer, IRenderer, IRenderDimensions, CharacterJoinerHandler, ICharacterJoinerRegistry, IRequestRedrawEvent } from 'browser/renderer/Types'; import { LinkRenderLayer } from 'browser/renderer/LinkRenderLayer'; import { CharacterJoinerRegistry } from 'browser/renderer/CharacterJoinerRegistry'; import { Disposable } from 'common/Lifecycle'; @@ -27,8 +27,8 @@ export class Renderer extends Disposable implements IRenderer { public dimensions: IRenderDimensions; - private _onRequestRefreshRows = new EventEmitter(); - public get onRequestRefreshRows(): IEvent { return this._onRequestRefreshRows.event; } + private _onRequestRedraw = new EventEmitter(); + public get onRequestRedraw(): IEvent { return this._onRequestRedraw.event; } constructor( private _colors: IColorSet, @@ -49,7 +49,7 @@ export class Renderer extends Disposable implements IRenderer { new TextRenderLayer(this._screenElement, 0, this._colors, this._characterJoinerRegistry, allowTransparency, this._id, this._bufferService, _optionsService), new SelectionRenderLayer(this._screenElement, 1, this._colors, this._id, this._bufferService, _optionsService), new LinkRenderLayer(this._screenElement, 2, this._colors, this._id, linkifier, linkifier2, this._bufferService, _optionsService), - new CursorRenderLayer(this._screenElement, 3, this._colors, this._id, this._onRequestRefreshRows, this._bufferService, _optionsService, coreService, coreBrowserService) + new CursorRenderLayer(this._screenElement, 3, this._colors, this._id, this._onRequestRedraw, this._bufferService, _optionsService, coreService, coreBrowserService) ]; this.dimensions = { scaledCharWidth: 0, diff --git a/src/browser/renderer/Types.d.ts b/src/browser/renderer/Types.d.ts index b4c321a19..02c62ab2e 100644 --- a/src/browser/renderer/Types.d.ts +++ b/src/browser/renderer/Types.d.ts @@ -24,7 +24,7 @@ export interface IRenderDimensions { actualCellHeight: number; } -export interface IRequestRefreshRowsEvent { +export interface IRequestRedrawEvent { start: number; end: number; } @@ -36,7 +36,11 @@ export interface IRequestRefreshRowsEvent { export interface IRenderer extends IDisposable { readonly dimensions: IRenderDimensions; - readonly onRequestRefreshRows: IEvent; + /** + * Fires when the renderer is requesting to be redrawn on the next animation + * frame but is _not_ a result of content changing (eg. selection changes). + */ + readonly onRequestRedraw: IEvent; dispose(): void; setColors(colors: IColorSet): void; diff --git a/src/browser/renderer/dom/DomRenderer.ts b/src/browser/renderer/dom/DomRenderer.ts index f8ad717bd..a2e370fc4 100644 --- a/src/browser/renderer/dom/DomRenderer.ts +++ b/src/browser/renderer/dom/DomRenderer.ts @@ -3,7 +3,7 @@ * @license MIT */ -import { IRenderer, IRenderDimensions, CharacterJoinerHandler, IRequestRefreshRowsEvent } from 'browser/renderer/Types'; +import { IRenderer, IRenderDimensions, CharacterJoinerHandler, IRequestRedrawEvent } from 'browser/renderer/Types'; import { BOLD_CLASS, ITALIC_CLASS, CURSOR_CLASS, CURSOR_STYLE_BLOCK_CLASS, CURSOR_BLINK_CLASS, CURSOR_STYLE_BAR_CLASS, CURSOR_STYLE_UNDERLINE_CLASS, DomRendererRowFactory } from 'browser/renderer/dom/DomRendererRowFactory'; import { INVERTED_DEFAULT_COLOR } from 'browser/renderer/atlas/Constants'; import { Disposable } from 'common/Lifecycle'; @@ -39,8 +39,7 @@ export class DomRenderer extends Disposable implements IRenderer { public dimensions: IRenderDimensions; - private _onRequestRefreshRows = new EventEmitter(); - public get onRequestRefreshRows(): IEvent { return this._onRequestRefreshRows.event; } + public get onRequestRedraw(): IEvent { return new EventEmitter().event; } constructor( private _colors: IColorSet, diff --git a/src/browser/services/RenderService.ts b/src/browser/services/RenderService.ts index 2949c2c50..4d195585f 100644 --- a/src/browser/services/RenderService.ts +++ b/src/browser/services/RenderService.ts @@ -21,6 +21,7 @@ export class RenderService extends Disposable implements IRenderService { private _isPaused: boolean = false; private _needsFullRefresh: boolean = false; + private _isNextRenderRedrawOnly: boolean = true; private _canvasWidth: number = 0; private _canvasHeight: number = 0; @@ -52,7 +53,7 @@ export class RenderService extends Disposable implements IRenderService { this.register(charSizeService.onCharSizeChange(() => this.onCharSizeChanged())); // No need to register this as renderer is explicitly disposed in RenderService.dispose - this._renderer.onRequestRefreshRows(e => this.refreshRows(e.start, e.end)); + this._renderer.onRequestRedraw(e => this.refreshRows(e.start, e.end, true)); // dprchange should handle this case, we need this as well for browsers that don't support the // matchMedia query. @@ -75,17 +76,23 @@ export class RenderService extends Disposable implements IRenderService { } } - public refreshRows(start: number, end: number): void { + public refreshRows(start: number, end: number, isRedrawOnly: boolean = false): void { if (this._isPaused) { this._needsFullRefresh = true; return; } + if (!isRedrawOnly) { + this._isNextRenderRedrawOnly = false; + } this._renderDebouncer.refresh(start, end, this._rowCount); } private _renderRows(start: number, end: number): void { this._renderer.renderRows(start, end); - this._onRender.fire({ start, end }); + if (!this._isNextRenderRedrawOnly) { + this._onRender.fire({ start, end }); + } + this._isNextRenderRedrawOnly = true; } public resize(cols: number, rows: number): void { @@ -116,7 +123,7 @@ export class RenderService extends Disposable implements IRenderService { // TODO: RenderService should be the only one to dispose the renderer this._renderer.dispose(); this._renderer = renderer; - this._renderer.onRequestRefreshRows(e => this.refreshRows(e.start, e.end)); + this._renderer.onRequestRedraw(e => this.refreshRows(e.start, e.end, true)); this.refreshRows(0, this._rowCount - 1); } diff --git a/src/browser/services/Services.ts b/src/browser/services/Services.ts index 785fec34e..e79d0c9f7 100644 --- a/src/browser/services/Services.ts +++ b/src/browser/services/Services.ts @@ -43,6 +43,10 @@ export interface IRenderService extends IDisposable { serviceBrand: any; onDimensionsChange: IEvent; + /** + * Fires when buffer changes are rendered. This does not fire when only cursor + * or selections are rendered. + */ onRender: IEvent<{ start: number, end: number }>; onRefreshRequest: IEvent<{ start: number, end: number }>; From 309bdf3d7085107b698ba44d58b2c602e7ed8812 Mon Sep 17 00:00:00 2001 From: Daniel Imms Date: Sat, 11 Apr 2020 09:53:22 -0700 Subject: [PATCH 4/7] Rename onRender --- src/Terminal.ts | 2 +- src/browser/Linkifier2.ts | 2 +- src/browser/TestUtils.test.ts | 2 +- src/browser/services/RenderService.ts | 2 +- src/browser/services/Services.ts | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/Terminal.ts b/src/Terminal.ts index ee2261151..ea6898775 100644 --- a/src/Terminal.ts +++ b/src/Terminal.ts @@ -543,7 +543,7 @@ export class Terminal extends Disposable implements ITerminal, IDisposable, IInp const renderer = this._createRenderer(); this._renderService = this._instantiationService.createInstance(RenderService, renderer, this.rows, this.screenElement); this._instantiationService.setService(IRenderService, this._renderService); - this._renderService.onRender(e => this._onRender.fire(e)); + this._renderService.onRenderedBufferChange(e => this._onRender.fire(e)); this.onResize(e => this._renderService.resize(e.cols, e.rows)); this._soundService = this._instantiationService.createInstance(SoundService); diff --git a/src/browser/Linkifier2.ts b/src/browser/Linkifier2.ts index 1a076bc55..7030e5d2b 100644 --- a/src/browser/Linkifier2.ts +++ b/src/browser/Linkifier2.ts @@ -173,7 +173,7 @@ export class Linkifier2 implements ILinkifier2 { // Add listener for rerendering if (this._renderService) { - this._linkCacheDisposables.push(this._renderService.onRender(e => { + this._linkCacheDisposables.push(this._renderService.onRenderedBufferChange(e => { this._clearCurrentLink(e.start + 1 + this._bufferService.buffer.ydisp, e.end + 1 + this._bufferService.buffer.ydisp); })); } diff --git a/src/browser/TestUtils.test.ts b/src/browser/TestUtils.test.ts index 3e304bcfc..6ca12d9c3 100644 --- a/src/browser/TestUtils.test.ts +++ b/src/browser/TestUtils.test.ts @@ -30,7 +30,7 @@ export class MockMouseService implements IMouseService { export class MockRenderService implements IRenderService { serviceBrand: any; onDimensionsChange: IEvent = new EventEmitter().event; - onRender: IEvent<{ start: number, end: number }, void> = new EventEmitter<{ start: number, end: number }>().event; + onRenderedBufferChange: IEvent<{ start: number, end: number }, void> = new EventEmitter<{ start: number, end: number }>().event; onRefreshRequest: IEvent<{ start: number, end: number}, void> = new EventEmitter<{ start: number, end: number }>().event; dimensions: IRenderDimensions = { scaledCharWidth: 0, diff --git a/src/browser/services/RenderService.ts b/src/browser/services/RenderService.ts index 4d195585f..1413f0d30 100644 --- a/src/browser/services/RenderService.ts +++ b/src/browser/services/RenderService.ts @@ -28,7 +28,7 @@ export class RenderService extends Disposable implements IRenderService { private _onDimensionsChange = new EventEmitter(); public get onDimensionsChange(): IEvent { return this._onDimensionsChange.event; } private _onRender = new EventEmitter<{ start: number, end: number }>(); - public get onRender(): IEvent<{ start: number, end: number }> { return this._onRender.event; } + public get onRenderedBufferChange(): IEvent<{ start: number, end: number }> { return this._onRender.event; } private _onRefreshRequest = new EventEmitter<{ start: number, end: number }>(); public get onRefreshRequest(): IEvent<{ start: number, end: number }> { return this._onRefreshRequest.event; } diff --git a/src/browser/services/Services.ts b/src/browser/services/Services.ts index e79d0c9f7..3754e6fed 100644 --- a/src/browser/services/Services.ts +++ b/src/browser/services/Services.ts @@ -47,7 +47,7 @@ export interface IRenderService extends IDisposable { * Fires when buffer changes are rendered. This does not fire when only cursor * or selections are rendered. */ - onRender: IEvent<{ start: number, end: number }>; + onRenderedBufferChange: IEvent<{ start: number, end: number }>; onRefreshRequest: IEvent<{ start: number, end: number }>; dimensions: IRenderDimensions; From f5c4c3e45049a9e900149e874da290a31fc4b0e4 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Mon, 13 Apr 2020 08:19:05 +0000 Subject: [PATCH 5/7] Bump @types/webpack from 4.41.10 to 4.41.11 Bumps [@types/webpack](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/webpack) from 4.41.10 to 4.41.11. - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/webpack) Signed-off-by: dependabot-preview[bot] --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index df6208c8c..d997a6877 100644 --- a/package.json +++ b/package.json @@ -44,7 +44,7 @@ "@types/mocha": "^7.0.2", "@types/node": "^10.17.17", "@types/utf8": "^2.1.6", - "@types/webpack": "^4.41.10", + "@types/webpack": "^4.41.11", "@types/ws": "^7.2.3", "@typescript-eslint/eslint-plugin": "^2.27.0", "@typescript-eslint/parser": "^2.27.0", diff --git a/yarn.lock b/yarn.lock index fb86558ba..340abff7b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -352,10 +352,10 @@ "@types/source-list-map" "*" source-map "^0.6.1" -"@types/webpack@^4.41.10": - version "4.41.10" - resolved "https://registry.yarnpkg.com/@types/webpack/-/webpack-4.41.10.tgz#2e1f6b3508a249854efe3dcc7690905ac5ee10be" - integrity sha512-vIy0qaq8AjOjZLuFPqpo7nAJzcoVXMdw3mvpNN07Uvdy0p1IpJeLNBe3obdRP7FX2jIusDE7z1pZa0A6qYUgnA== +"@types/webpack@^4.41.11": + version "4.41.11" + resolved "https://registry.yarnpkg.com/@types/webpack/-/webpack-4.41.11.tgz#7b7f725397d3b630bede05415d34e9ff30d9771f" + integrity sha512-PtEZISfBMWL05qOpZN19hztZPt0rPuGQh5sbBP3bB4RrJgzdb0SScn47hdcMaoN1IgaU7NZWeDO6reFcKTK2iQ== dependencies: "@types/anymatch" "*" "@types/node" "*" From c396518736c6ab88d27c0ecf933a4c340299486f Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Mon, 13 Apr 2020 12:34:17 +0000 Subject: [PATCH 6/7] Bump @types/jsdom from 16.2.0 to 16.2.1 Bumps [@types/jsdom](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/jsdom) from 16.2.0 to 16.2.1. - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/jsdom) Signed-off-by: dependabot-preview[bot] --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index d997a6877..83b1bc4db 100644 --- a/package.json +++ b/package.json @@ -40,7 +40,7 @@ "@types/debug": "^4.1.5", "@types/deep-equal": "^1.0.1", "@types/glob": "^7.1.1", - "@types/jsdom": "^16.2.0", + "@types/jsdom": "^16.2.1", "@types/mocha": "^7.0.2", "@types/node": "^10.17.17", "@types/utf8": "^2.1.6", diff --git a/yarn.lock b/yarn.lock index 340abff7b..616cbe5cf 100644 --- a/yarn.lock +++ b/yarn.lock @@ -253,10 +253,10 @@ "@types/minimatch" "*" "@types/node" "*" -"@types/jsdom@^16.2.0": - version "16.2.0" - resolved "https://registry.yarnpkg.com/@types/jsdom/-/jsdom-16.2.0.tgz#5a371a2efc1e0feec02c4bd2b3ce689e6ae691a2" - integrity sha512-I+qrFCzB97VlGJgvzGEwcUqmajpwqwTalmMvVfgJqFRVsY80lcCEQEGLJuVvge+whQyB1xcqTstAdxJshVVq0g== +"@types/jsdom@^16.2.1": + version "16.2.1" + resolved "https://registry.yarnpkg.com/@types/jsdom/-/jsdom-16.2.1.tgz#9e6eee6a578f74eed5997558ab430dbc11aac753" + integrity sha512-KCEq427OsWfpX7FRyEMb3i2XIuz8Pt3XPls4nmX0iMTDJWsHD4Kzoa3v4Uv9c9IDf11ALeHUtPcyAjTz/HV03Q== dependencies: "@types/node" "*" "@types/parse5" "*" From f8f9c06ed8db5fa485d5f3efe300e2c9fbdb819c Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Tue, 14 Apr 2020 08:14:38 +0000 Subject: [PATCH 7/7] Bump @types/ws from 7.2.3 to 7.2.4 Bumps [@types/ws](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/ws) from 7.2.3 to 7.2.4. - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/ws) Signed-off-by: dependabot-preview[bot] --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 83b1bc4db..388d468b9 100644 --- a/package.json +++ b/package.json @@ -45,7 +45,7 @@ "@types/node": "^10.17.17", "@types/utf8": "^2.1.6", "@types/webpack": "^4.41.11", - "@types/ws": "^7.2.3", + "@types/ws": "^7.2.4", "@typescript-eslint/eslint-plugin": "^2.27.0", "@typescript-eslint/parser": "^2.27.0", "chai": "^4.2.0", diff --git a/yarn.lock b/yarn.lock index 616cbe5cf..a17b12f78 100644 --- a/yarn.lock +++ b/yarn.lock @@ -364,10 +364,10 @@ "@types/webpack-sources" "*" source-map "^0.6.0" -"@types/ws@^7.2.3": - version "7.2.3" - resolved "https://registry.yarnpkg.com/@types/ws/-/ws-7.2.3.tgz#a3add56077ac6cc9396b9502c7252a1635922032" - integrity sha512-VT/GK7nvDA7lfHy40G3LKM+ICqmdIsBLBHGXcWD97MtqQEjNMX+7Gudo8YGpaSlYdTX7IFThhCE8Jx09HegymQ== +"@types/ws@^7.2.4": + version "7.2.4" + resolved "https://registry.yarnpkg.com/@types/ws/-/ws-7.2.4.tgz#b3859f7b9c243b220efac9716ec42c716a72969d" + integrity sha512-9S6Ask71vujkVyeEXKxjBSUV8ZUB0mjL5la4IncBoheu04bDaYyUKErh1BQcY9+WzOUOiKqz/OnpJHYckbMfNg== dependencies: "@types/node" "*"