diff --git a/.eslintrc.json b/.eslintrc.json index 5849fa517b..e6db42e2cb 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -101,6 +101,14 @@ "regex": "^on[A-Z].+", "match": false } }, + { "selector": "method", "modifiers": ["private"], "format": ["camelCase"], "leadingUnderscore": "require", "custom": { + "regex": "^on[A-Z].+", + "match": false + } }, + { "selector": "method", "modifiers": ["protected"], "format": ["camelCase"], "leadingUnderscore": "require", "custom": { + "regex": "^on[A-Z].+", + "match": false + } }, // typeLike { "selector": "typeLike", "format": ["PascalCase"] }, { "selector": "interface", "format": ["PascalCase"], "prefix": ["I"] } diff --git a/addons/xterm-addon-canvas/src/LinkRenderLayer.ts b/addons/xterm-addon-canvas/src/LinkRenderLayer.ts index da9ebe16b2..b1403f7a10 100644 --- a/addons/xterm-addon-canvas/src/LinkRenderLayer.ts +++ b/addons/xterm-addon-canvas/src/LinkRenderLayer.ts @@ -28,8 +28,8 @@ export class LinkRenderLayer extends BaseRenderLayer { ) { super(terminal, container, 'link', zIndex, true, colors, bufferService, optionsService, decorationService, coreBrowserService); - this.register(linkifier2.onShowLinkUnderline(e => this._onShowLinkUnderline(e))); - this.register(linkifier2.onHideLinkUnderline(e => this._onHideLinkUnderline(e))); + this.register(linkifier2.onShowLinkUnderline(e => this._handleShowLinkUnderline(e))); + this.register(linkifier2.onHideLinkUnderline(e => this._handleHideLinkUnderline(e))); } public resize(dim: IRenderDimensions): void { @@ -54,7 +54,7 @@ export class LinkRenderLayer extends BaseRenderLayer { } } - private _onShowLinkUnderline(e: ILinkifierEvent): void { + private _handleShowLinkUnderline(e: ILinkifierEvent): void { if (e.fg === INVERTED_DEFAULT_COLOR) { this._ctx.fillStyle = this._colors.background.css; } else if (e.fg && is256Color(e.fg)) { @@ -78,7 +78,7 @@ export class LinkRenderLayer extends BaseRenderLayer { this._state = e; } - private _onHideLinkUnderline(e: ILinkifierEvent): void { + private _handleHideLinkUnderline(e: ILinkifierEvent): void { this._clearCurrentLink(); } } diff --git a/addons/xterm-addon-webgl/src/renderLayer/LinkRenderLayer.ts b/addons/xterm-addon-webgl/src/renderLayer/LinkRenderLayer.ts index 1524634822..2ce90daf73 100644 --- a/addons/xterm-addon-webgl/src/renderLayer/LinkRenderLayer.ts +++ b/addons/xterm-addon-webgl/src/renderLayer/LinkRenderLayer.ts @@ -24,8 +24,8 @@ export class LinkRenderLayer extends BaseRenderLayer { ) { super(container, 'link', zIndex, true, colors, coreBrowserService); - this.register(terminal.linkifier2.onShowLinkUnderline(e => this._onShowLinkUnderline(e))); - this.register(terminal.linkifier2.onHideLinkUnderline(e => this._onHideLinkUnderline(e))); + this.register(terminal.linkifier2.onShowLinkUnderline(e => this._handleShowLinkUnderline(e))); + this.register(terminal.linkifier2.onHideLinkUnderline(e => this._handleHideLinkUnderline(e))); } public resize(terminal: Terminal, dim: IRenderDimensions): void { @@ -50,7 +50,7 @@ export class LinkRenderLayer extends BaseRenderLayer { } } - private _onShowLinkUnderline(e: ILinkifierEvent): void { + private _handleShowLinkUnderline(e: ILinkifierEvent): void { if (e.fg === INVERTED_DEFAULT_COLOR) { this._ctx.fillStyle = this._colors.background.css; } else if (e.fg !== undefined && is256Color(e.fg)) { @@ -74,7 +74,7 @@ export class LinkRenderLayer extends BaseRenderLayer { this._state = e; } - private _onHideLinkUnderline(e: ILinkifierEvent): void { + private _handleHideLinkUnderline(e: ILinkifierEvent): void { this._clearCurrentLink(); } } diff --git a/src/browser/AccessibilityManager.ts b/src/browser/AccessibilityManager.ts index d1df4075ee..d0c9f60129 100644 --- a/src/browser/AccessibilityManager.ts +++ b/src/browser/AccessibilityManager.ts @@ -65,8 +65,8 @@ export class AccessibilityManager extends Disposable { this._rowContainer.appendChild(this._rowElements[i]); } - this._topBoundaryFocusListener = e => this._onBoundaryFocus(e, BoundaryPosition.TOP); - this._bottomBoundaryFocusListener = e => this._onBoundaryFocus(e, BoundaryPosition.BOTTOM); + this._topBoundaryFocusListener = e => this._handleBoundaryFocus(e, BoundaryPosition.TOP); + this._bottomBoundaryFocusListener = e => this._handleBoundaryFocus(e, BoundaryPosition.BOTTOM); this._rowElements[0].addEventListener('focus', this._topBoundaryFocusListener); this._rowElements[this._rowElements.length - 1].addEventListener('focus', this._bottomBoundaryFocusListener); @@ -87,14 +87,14 @@ export class AccessibilityManager extends Disposable { this._terminal.element.insertAdjacentElement('afterbegin', this._accessibilityTreeRoot); this.register(this._renderRowsDebouncer); - this.register(this._terminal.onResize(e => this._onResize(e.rows))); + this.register(this._terminal.onResize(e => this._handleResize(e.rows))); this.register(this._terminal.onRender(e => this._refreshRows(e.start, e.end))); this.register(this._terminal.onScroll(() => this._refreshRows())); // Line feed is an issue as the prompt won't be read out after a command is run - this.register(this._terminal.onA11yChar(char => this._onChar(char))); - this.register(this._terminal.onLineFeed(() => this._onChar('\n'))); - this.register(this._terminal.onA11yTab(spaceCount => this._onTab(spaceCount))); - this.register(this._terminal.onKey(e => this._onKey(e.key))); + this.register(this._terminal.onA11yChar(char => this._handleChar(char))); + this.register(this._terminal.onLineFeed(() => this._handleChar('\n'))); + this.register(this._terminal.onA11yTab(spaceCount => this._handleTab(spaceCount))); + this.register(this._terminal.onKey(e => this._handleKey(e.key))); this.register(this._terminal.onBlur(() => this._clearLiveRegion())); this.register(this._renderService.onDimensionsChange(() => this._refreshRowsDimensions())); @@ -110,7 +110,7 @@ export class AccessibilityManager extends Disposable { })); } - private _onBoundaryFocus(e: FocusEvent, position: BoundaryPosition): void { + private _handleBoundaryFocus(e: FocusEvent, position: BoundaryPosition): void { const boundaryElement = e.target as HTMLElement; const beforeBoundaryElement = this._rowElements[position === BoundaryPosition.TOP ? 1 : this._rowElements.length - 2]; @@ -170,7 +170,7 @@ export class AccessibilityManager extends Disposable { e.stopImmediatePropagation(); } - private _onResize(rows: number): void { + private _handleResize(rows: number): void { // Remove bottom boundary listener this._rowElements[this._rowElements.length - 1].removeEventListener('focus', this._bottomBoundaryFocusListener); @@ -198,13 +198,13 @@ export class AccessibilityManager extends Disposable { return element; } - private _onTab(spaceCount: number): void { + private _handleTab(spaceCount: number): void { for (let i = 0; i < spaceCount; i++) { - this._onChar(' '); + this._handleChar(' '); } } - private _onChar(char: string): void { + private _handleChar(char: string): void { if (this._liveRegionLineCount < MAX_ROWS_TO_READ + 1) { if (this._charsToConsume.length > 0) { // Have the screen reader ignore the char if it was just input @@ -244,7 +244,7 @@ export class AccessibilityManager extends Disposable { } } - private _onKey(keyChar: string): void { + private _handleKey(keyChar: string): void { this._clearLiveRegion(); this._charsToConsume.push(keyChar); } @@ -278,7 +278,7 @@ export class AccessibilityManager extends Disposable { return; } if (this._rowElements.length !== this._terminal.rows) { - this._onResize(this._terminal.rows); + this._handleResize(this._terminal.rows); } for (let i = 0; i < this._terminal.rows; i++) { this._refreshRowDimensions(this._rowElements[i]); diff --git a/src/browser/Linkifier2.ts b/src/browser/Linkifier2.ts index c0fc26415b..236efb2285 100644 --- a/src/browser/Linkifier2.ts +++ b/src/browser/Linkifier2.ts @@ -64,12 +64,12 @@ export class Linkifier2 extends Disposable implements ILinkifier2 { this._isMouseOut = true; this._clearCurrentLink(); })); - this.register(addDisposableDomListener(this._element, 'mousemove', this._onMouseMove.bind(this))); + this.register(addDisposableDomListener(this._element, 'mousemove', this._handleMouseMove.bind(this))); this.register(addDisposableDomListener(this._element, 'mousedown', this._handleMouseDown.bind(this))); this.register(addDisposableDomListener(this._element, 'mouseup', this._handleMouseUp.bind(this))); } - private _onMouseMove(event: MouseEvent): void { + private _handleMouseMove(event: MouseEvent): void { this._lastMouseEvent = event; if (!this._element || !this._mouseService) { @@ -97,12 +97,12 @@ export class Linkifier2 extends Disposable implements ILinkifier2 { } if (!this._lastBufferCell || (position.x !== this._lastBufferCell.x || position.y !== this._lastBufferCell.y)) { - this._onHover(position); + this._handleHover(position); this._lastBufferCell = position; } } - private _onHover(position: IBufferCellPosition): void { + private _handleHover(position: IBufferCellPosition): void { // TODO: This currently does not cache link provider results across wrapped lines, activeLine should be something like `activeRange: {startY, endY}` // Check if we need to clear the link if (this._activeLine !== position.y) { diff --git a/src/browser/Terminal.ts b/src/browser/Terminal.ts index 091f6df7cb..b3a5b3174c 100644 --- a/src/browser/Terminal.ts +++ b/src/browser/Terminal.ts @@ -316,7 +316,7 @@ export class Terminal extends CoreTerminal implements ITerminal { /** * Binds the desired focus behavior on a given terminal object. */ - private _onTextAreaFocus(ev: KeyboardEvent): void { + private _handleTextAreaFocus(ev: KeyboardEvent): void { if (this.coreService.decPrivateModes.sendFocus) { this.coreService.triggerDataEvent(C0.ESC + '[I'); } @@ -337,7 +337,7 @@ export class Terminal extends CoreTerminal implements ITerminal { /** * Binds the desired blur behavior on a given terminal object. */ - private _onTextAreaBlur(): void { + private _handleTextAreaBlur(): void { // Text can safely be removed on blur. Doing it earlier could interfere with // screen readers reading it out. this.textarea!.value = ''; @@ -488,8 +488,8 @@ export class Terminal extends CoreTerminal implements ITerminal { this.textarea.setAttribute('autocapitalize', 'off'); this.textarea.setAttribute('spellcheck', 'false'); this.textarea.tabIndex = 0; - this.register(addDisposableDomListener(this.textarea, 'focus', (ev: KeyboardEvent) => this._onTextAreaFocus(ev))); - this.register(addDisposableDomListener(this.textarea, 'blur', () => this._onTextAreaBlur())); + this.register(addDisposableDomListener(this.textarea, 'focus', (ev: KeyboardEvent) => this._handleTextAreaFocus(ev))); + this.register(addDisposableDomListener(this.textarea, 'blur', () => this._handleTextAreaBlur())); this._helperContainer.appendChild(this.textarea); this._coreBrowserService = this._instantiationService.createInstance(CoreBrowserService, this.textarea, this._document.defaultView ?? window); diff --git a/src/browser/Viewport.ts b/src/browser/Viewport.ts index 94503dde5d..395052e6af 100644 --- a/src/browser/Viewport.ts +++ b/src/browser/Viewport.ts @@ -65,7 +65,7 @@ export class Viewport extends Disposable implements IViewport { // Unfortunately the overlay scrollbar would be hidden underneath the screen element in that case, // therefore we account for a standard amount to make it visible this.scrollBarWidth = (this._viewportElement.offsetWidth - this._scrollArea.offsetWidth) || FALLBACK_SCROLL_BAR_WIDTH; - this.register(addDisposableDomListener(this._viewportElement, 'scroll', this._onScroll.bind(this))); + this.register(addDisposableDomListener(this._viewportElement, 'scroll', this._handleScroll.bind(this))); // Track properties used in performance critical code manually to avoid using slow getters this._activeBuffer = this._bufferService.buffer; @@ -157,7 +157,7 @@ export class Viewport extends Disposable implements IViewport { * terminal to scroll to it. * @param ev The scroll event. */ - private _onScroll(ev: Event): void { + private _handleScroll(ev: Event): void { // Record current scroll top position this._lastScrollTop = this._viewportElement.scrollTop; diff --git a/src/browser/renderer/dom/DomRenderer.ts b/src/browser/renderer/dom/DomRenderer.ts index bdd3b0c61e..a961bbe0d9 100644 --- a/src/browser/renderer/dom/DomRenderer.ts +++ b/src/browser/renderer/dom/DomRenderer.ts @@ -87,8 +87,8 @@ export class DomRenderer extends Disposable implements IRenderer { this._screenElement.appendChild(this._rowContainer); this._screenElement.appendChild(this._selectionContainer); - this.register(this._linkifier2.onShowLinkUnderline(e => this._onLinkHover(e))); - this.register(this._linkifier2.onHideLinkUnderline(e => this._onLinkLeave(e))); + this.register(this._linkifier2.onShowLinkUnderline(e => this._handleLinkHover(e))); + this.register(this._linkifier2.onHideLinkUnderline(e => this._handleLinkLeave(e))); this.register(toDisposable(() => { this._element.classList.remove(TERMINAL_CLASS_PREFIX + this._terminalClass); @@ -376,11 +376,11 @@ export class DomRenderer extends Disposable implements IRenderer { return `.${TERMINAL_CLASS_PREFIX}${this._terminalClass}`; } - private _onLinkHover(e: ILinkifierEvent): void { + private _handleLinkHover(e: ILinkifierEvent): void { this._setCellUnderline(e.x1, e.x2, e.y1, e.y2, e.cols, true); } - private _onLinkLeave(e: ILinkifierEvent): void { + private _handleLinkLeave(e: ILinkifierEvent): void { this._setCellUnderline(e.x1, e.x2, e.y1, e.y2, e.cols, false); } diff --git a/src/browser/services/RenderService.ts b/src/browser/services/RenderService.ts index b58c372dd1..a51fe722b4 100644 --- a/src/browser/services/RenderService.ts +++ b/src/browser/services/RenderService.ts @@ -92,13 +92,13 @@ export class RenderService extends Disposable implements IRenderService { // Detect whether IntersectionObserver is detected and enable renderer pause // and resume based on terminal visibility if so if ('IntersectionObserver' in coreBrowserService.window) { - const observer = new coreBrowserService.window.IntersectionObserver(e => this._onIntersectionChange(e[e.length - 1]), { threshold: 0 }); + const observer = new coreBrowserService.window.IntersectionObserver(e => this._handleIntersectionChange(e[e.length - 1]), { threshold: 0 }); observer.observe(screenElement); this.register({ dispose: () => observer.disconnect() }); } } - private _onIntersectionChange(entry: IntersectionObserverEntry): void { + private _handleIntersectionChange(entry: IntersectionObserverEntry): void { this._isPaused = entry.isIntersecting === undefined ? (entry.intersectionRatio === 0) : !entry.isIntersecting; // Terminal was hidden on open diff --git a/src/browser/services/SelectionService.ts b/src/browser/services/SelectionService.ts index 1dbc833383..868fadda26 100644 --- a/src/browser/services/SelectionService.ts +++ b/src/browser/services/SelectionService.ts @@ -134,15 +134,15 @@ export class SelectionService extends Disposable implements ISelectionService { super(); // Init listeners - this._mouseMoveListener = event => this._onMouseMove(event as MouseEvent); - this._mouseUpListener = event => this._onMouseUp(event as MouseEvent); + this._mouseMoveListener = event => this._handleMouseMove(event as MouseEvent); + this._mouseUpListener = event => this._handleMouseUp(event as MouseEvent); this._coreService.onUserInput(() => { if (this.hasSelection) { this.clearSelection(); } }); - this._trimListener = this._bufferService.buffer.lines.onTrim(amount => this._onTrim(amount)); - this.register(this._bufferService.buffers.onBufferActivate(e => this._onBufferActivate(e))); + this._trimListener = this._bufferService.buffer.lines.onTrim(amount => this._handleTrim(amount)); + this.register(this._bufferService.buffers.onBufferActivate(e => this._handleBufferActivate(e))); this.enable(); @@ -375,7 +375,7 @@ export class SelectionService extends Disposable implements ISelectionService { * Handle the buffer being trimmed, adjust the selection position. * @param amount The amount the buffer is being trimmed. */ - private _onTrim(amount: number): void { + private _handleTrim(amount: number): void { const needsRefresh = this._model.handleTrim(amount); if (needsRefresh) { this.refresh(); @@ -468,14 +468,14 @@ export class SelectionService extends Disposable implements ISelectionService { this._dragScrollAmount = 0; if (this._enabled && event.shiftKey) { - this._onIncrementalClick(event); + this._handleIncrementalClick(event); } else { if (event.detail === 1) { - this._onSingleClick(event); + this._handleSingleClick(event); } else if (event.detail === 2) { - this._onDoubleClick(event); + this._handleDoubleClick(event); } else if (event.detail === 3) { - this._onTripleClick(event); + this._handleTripleClick(event); } } @@ -512,7 +512,7 @@ export class SelectionService extends Disposable implements ISelectionService { * position. * @param event The mouse event. */ - private _onIncrementalClick(event: MouseEvent): void { + private _handleIncrementalClick(event: MouseEvent): void { if (this._model.selectionStart) { this._model.selectionEnd = this._getMouseBufferCoords(event); } @@ -523,7 +523,7 @@ export class SelectionService extends Disposable implements ISelectionService { * start position. * @param event The mouse event. */ - private _onSingleClick(event: MouseEvent): void { + private _handleSingleClick(event: MouseEvent): void { this._model.selectionStartLength = 0; this._model.isSelectAllActive = false; this._activeSelectionMode = this.shouldColumnSelect(event) ? SelectionMode.COLUMN : SelectionMode.NORMAL; @@ -557,7 +557,7 @@ export class SelectionService extends Disposable implements ISelectionService { * Performs a double click, selecting the current word. * @param event The mouse event. */ - private _onDoubleClick(event: MouseEvent): void { + private _handleDoubleClick(event: MouseEvent): void { if (this._selectWordAtCursor(event, true)) { this._activeSelectionMode = SelectionMode.WORD; } @@ -568,7 +568,7 @@ export class SelectionService extends Disposable implements ISelectionService { * select mode. * @param event The mouse event. */ - private _onTripleClick(event: MouseEvent): void { + private _handleTripleClick(event: MouseEvent): void { const coords = this._getMouseBufferCoords(event); if (coords) { this._activeSelectionMode = SelectionMode.LINE; @@ -589,7 +589,7 @@ export class SelectionService extends Disposable implements ISelectionService { * end of the selection and refreshing the selection. * @param event The mousemove event. */ - private _onMouseMove(event: MouseEvent): void { + private _handleMouseMove(event: MouseEvent): void { // If the mousemove listener is active it means that a selection is // currently being made, we should stop propagation to prevent mouse events // to be sent to the pty. @@ -690,7 +690,7 @@ export class SelectionService extends Disposable implements ISelectionService { * Handles the mouseup event, removing the mousedown listeners. * @param event The mouseup event. */ - private _onMouseUp(event: MouseEvent): void { + private _handleMouseUp(event: MouseEvent): void { const timeElapsed = event.timeStamp - this._mouseDownTimeStamp; this._removeMouseDownListeners(); @@ -746,14 +746,14 @@ export class SelectionService extends Disposable implements ISelectionService { this._onSelectionChange.fire(); } - private _onBufferActivate(e: {activeBuffer: IBuffer, inactiveBuffer: IBuffer}): void { + private _handleBufferActivate(e: {activeBuffer: IBuffer, inactiveBuffer: IBuffer}): void { this.clearSelection(); // Only adjust the selection on trim, shiftElements is rarely used (only in // reverseIndex) and delete in a splice is only ever used when the same // number of elements was just added. Given this is could actually be // beneficial to leave the selection as is for these cases. this._trimListener.dispose(); - this._trimListener = e.activeBuffer.lines.onTrim(amount => this._onTrim(amount)); + this._trimListener = e.activeBuffer.lines.onTrim(amount => this._handleTrim(amount)); } /**