From 3e43b2fe4734d9fe3fbf3b39572d834f52baf186 Mon Sep 17 00:00:00 2001 From: William So Date: Fri, 5 May 2023 22:01:29 +0800 Subject: [PATCH] Remove unnecessary calls to `cloneAsWritable()` Signed-off-by: William So --- sources/@types/obsidian.d.ts | 8 ++++++ sources/terminal/view.ts | 56 +++++++++++++----------------------- 2 files changed, 28 insertions(+), 36 deletions(-) diff --git a/sources/@types/obsidian.d.ts b/sources/@types/obsidian.d.ts index 0c5ff7fb..18ac5cd7 100644 --- a/sources/@types/obsidian.d.ts +++ b/sources/@types/obsidian.d.ts @@ -4,6 +4,14 @@ import type { Private } from "sources/utils/private" declare module "obsidian" { interface DataAdapter extends Private<$DataAdapter> { } + interface Scope { + // eslint-disable-next-line @typescript-eslint/method-signature-style + register( + modifiers: readonly Modifier[], + key: string | null, + func: KeymapEventListener, + ): KeymapEventHandler + } interface ViewStateResult extends Private<$ViewStateResult> { } interface WorkspaceLeaf extends Private<$WorkspaceLeaf> { } interface WorkspaceRibbon extends Private<$WorkspaceRibbon> { } diff --git a/sources/terminal/view.ts b/sources/terminal/view.ts index 88893252..7f6a96db 100644 --- a/sources/terminal/view.ts +++ b/sources/terminal/view.ts @@ -252,42 +252,26 @@ export class TerminalView extends ItemView { super(leaf) this.navigation = true const { scope, focusedScope } = this - scope.register( - cloneAsWritable(TerminalView.modifiers), - "`", - event => { - this.#emulator?.terminal.focus() - consumeEvent(event) - }, - ) - focusedScope.register( - cloneAsWritable(TerminalView.modifiers), - "`", - event => { - const { contentEl: { ownerDocument: { activeElement } } } = this - if (instanceOf(activeElement, HTMLElement) || - instanceOf(activeElement, SVGElement)) { - activeElement.blur() - } - consumeEvent(event) - }, - ) - focusedScope.register( - cloneAsWritable(TerminalView.modifiers), - "f", - event => { - this.startFind() - consumeEvent(event) - }, - ) - focusedScope.register( - cloneAsWritable(TerminalView.modifiers), - "k", - event => { - this.#emulator?.terminal.clear() - consumeEvent(event) - }, - ) + scope.register(TerminalView.modifiers, "`", event => { + this.#emulator?.terminal.focus() + consumeEvent(event) + }) + focusedScope.register(TerminalView.modifiers, "`", event => { + const { contentEl: { ownerDocument: { activeElement } } } = this + if (instanceOf(activeElement, HTMLElement) || + instanceOf(activeElement, SVGElement)) { + activeElement.blur() + } + consumeEvent(event) + }) + focusedScope.register(TerminalView.modifiers, "f", event => { + this.startFind() + consumeEvent(event) + }) + focusedScope.register(TerminalView.modifiers, "k", event => { + this.#emulator?.terminal.clear() + consumeEvent(event) + }) } protected get state(): TerminalView.State {